Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Selectable New Character Loadouts [WIP] #58689

Closed
wants to merge 15 commits into from

Conversation

a-chancey
Copy link
Contributor

Summary

Features "Adding Selectable Loadouts to Character Generation"

Purpose of change

This replaces #58664. I broke the commit history on the other branch but was able to recover by moving branches.

This is my attempt to implement the suggestions in #54113. I'm reworking the chargen process to allow different loadouts to be selected, moving some of the more "silly" professions like Shower Victim to loadouts, as well as allow hobbies to optionally add items to the player's inventory.

Describe the solution

Currently planned features:

  • Adds a new tab between Backgrounds and Skills to allow the user to select a loadout
  • adds a new loadout.json file to allow predefined loadouts.
  • get items added to the character when a loadout is selected.
  • allow a loadout to replace or remove items from a character
  • read item lists from professions and hobbies.
  • define a "core" set of loadouts and an "addon" set
  • allow hobbies to provide access to additional loadouts.
  • allow scenarios, professions and core loadouts to allow or disallow various loadouts
  • refactor the add_profession_items method to use the loadouts to keep it unified.
  • allow a dynamic storage solution selection to ensure a player will have enough storage capacity for the gear they start with

Currently, the code is mostly stolen from the hobbies section of newcharacter, but i'm working through some other ideas still. The general workflow tabs straight through and picks the default loadout for the selected profession.

The loadout code still retained the code for adding CBMs, pets, vehicles and missions. I removed the ability to modify skills, traits or proficiencies. I want the loadouts to be gear focused, but the other hooks still made sense. As was discussed on discord, a "rare gun owner" background, for example, could have a variety of loadouts, and each could add a mission to travel back to your house to reclaim your precious weapon.

I want to get a dynamic storage solution in place as well, to ensure, at a cost, the player will receive storage large enough to hold the gear they are getting (assuming the loadout or hobby didn't provide storage).

Core loadouts (profession/scenario, and challenge scenarios like naked and afraid) are unique from each other, but addons can be selected as long as the player has points and they're not forbidden by the core loadout. Hobby loadouts should only appear when the character has the hobby.

Describe alternatives you've considered

Not doing it. I'm open to suggestions, though.

Testing

It's super early in the development and i'm manually testing it.

Additional context

I'll include screenshots as i get more progress done.

Got the loadout tab added, need to get it defined because it jumps to traits (what i copied from)
only a few type errors, but i can get into chargen again.
Got data structure partially built for the loadout object now, and working through newcharacter to get the tab loading the list of possible loadouts.
Loadouts tab loads. removed the custom fields until I can figure them out. May just use flags.
Populating loadouts is next.
might as well
Got some refactoring done that I missed changing hobbies to loadouts.
added loadouts to init so that it'll verify on load and reset on unload to stop a fatal lock out of new character when backing out.
Got the private variable actually being set on the loadout object, so it'll now apply name and description properly - and load them into the list in newcharacter.
Added a hook to the add_profession_items method to load in a list of the added loadouts, check for items, then merge them into the main profession items loadout.
Still need logic for replacing the default scenario items. Looking into this still.
Failing translation tests but OH WELL I HAVE BASIC LOADOUTS WORKING
@github-actions github-actions bot added [C++] Changes (can be) made in C++. Previously named `Code` [JSON] Changes (can be) made in JSON Character / World Generation Issues and enhancements concerning stages of creating a character or a world <Enhancement / Feature> New features, or enhancements on existing json-styled JSON lint passed, label assigned by github actions astyled astyled PR, label is assigned by github actions BasicBuildPassed This PR builds correctly, label assigned by github actions labels Jun 24, 2022
@descan
Copy link
Contributor

descan commented Jun 24, 2022

This idea is super exciting to me conceptually, and I'd love to help test things if you need a second set of eyes!

@a-chancey
Copy link
Contributor Author

It’s been really interesting so far. I need to hook up the point cost, may get to that tonight if I fire up the PC.

next step is getting hobbies hooked in as well. That part may be trickier, as I’m trying to avoid duplicating data, but I’m working on it.

@a-chancey
Copy link
Contributor Author

I'm considering putting this on hold for now, at least until the next stable releases. It's a solid proof of concept right now, it's minimally functional, but I think my time might be better spent wrapping up issues for release for a few reasons. I'll think about it over the weekend.

For one, we're in feature freeze, so it's not going to make it into 0.G. This is too big to squeeze in before then.

For another, there's desire to refactor chargen, and this relies on both current chargen UI and code implementation. If we're redoing chargen, it might make sense to wait for the redesign.

Got the flags added, going to work on logic for them next
@github-actions github-actions bot removed json-styled JSON lint passed, label assigned by github actions BasicBuildPassed This PR builds correctly, label assigned by github actions labels Jun 28, 2022
@github-actions
Copy link
Contributor

github-actions bot commented Feb 7, 2023

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. Please do not bump or comment on this issue unless you are actively working on it. Stale issues, and stale issues that are closed are still considered.

@github-actions github-actions bot added the stale Closed for lack of activity, but still valid. label Feb 7, 2023
@TheShadowFerret
Copy link
Contributor

I'm considering putting this on hold for now, at least until the next stable releases

It has happened. 🎉

@a-chancey
Copy link
Contributor Author

I'm considering putting this on hold for now, at least until the next stable releases

It has happened. 🎉

Woah Woah Woah don't ambush me like that. :P

I'll have to see if there's still plans for an overhaul on the character creation/menu UI but I can get back to this when work calms back down.

@github-actions github-actions bot removed the stale Closed for lack of activity, but still valid. label Mar 5, 2023
@github-actions
Copy link
Contributor

github-actions bot commented Apr 4, 2023

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. Please do not bump or comment on this issue unless you are actively working on it. Stale issues, and stale issues that are closed are still considered.

@github-actions github-actions bot added the stale Closed for lack of activity, but still valid. label Apr 4, 2023
@github-actions github-actions bot closed this May 4, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
astyled astyled PR, label is assigned by github actions [C++] Changes (can be) made in C++. Previously named `Code` Character / World Generation Issues and enhancements concerning stages of creating a character or a world <Enhancement / Feature> New features, or enhancements on existing [JSON] Changes (can be) made in JSON stale Closed for lack of activity, but still valid.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants