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

Some MobState Refactoring #1382

Conversation

VMSolidus
Copy link
Member

Description

This PR does some refactoring of MobState in preparation for adding a more in-depth SoftCritical system, mostly adding code support for the new threshold existing in the first place. Additionally, the MobStateComponent now also includes several DataFields that allow more precise fine tuning of what all mobs are allowed to do in each state, as opposed to hardcoding a majority of these interactions.

The actual SoftCritical state isn't currently used by anything, and so is a largely vestigial feature. It would have to be added individually to mobs, such as the BaseMobSpeciesOrganic when the time comes to actually add this feature.

Changelog

🆑

  • add: Lots of refactoring of the Mob State Systerm in preparation for implementing a much more detailed Soft Critical state.

@github-actions github-actions bot added Changes: C# Changes any cs files Changes: YML Changes any yml files labels Dec 30, 2024
Comment on lines +438 to +472
if (AllowMovementWhileCrit is not null)
mobStateComponent.AllowMovementWhileCrit = AllowMovementWhileCrit.Value;

if (AllowMovementWhileSoftCrit is not null)
mobStateComponent.AllowHandInteractWhileSoftCrit = AllowMovementWhileSoftCrit.Value;

if (AllowMovementWhileDead is not null)
mobStateComponent.AllowMovementWhileDead = AllowMovementWhileDead.Value;

if (AllowTalkingWhileCrit is not null)
mobStateComponent.AllowTalkingWhileCrit = AllowTalkingWhileCrit.Value;

if (AllowTalkingWhileSoftCrit is not null)
mobStateComponent.AllowTalkingWhileSoftCrit = AllowTalkingWhileSoftCrit.Value;

if (AllowTalkingWhileDead is not null)
mobStateComponent.AllowTalkingWhileDead = AllowTalkingWhileDead.Value;

if (DownWhenCrit is not null)
mobStateComponent.DownWhenCrit = DownWhenCrit.Value;

if (DownWhenSoftCrit is not null)
mobStateComponent.DownWhenSoftCrit = DownWhenSoftCrit.Value;

if (DownWhenDead is not null)
mobStateComponent.DownWhenDead = DownWhenDead.Value;

if (AllowHandInteractWhileCrit is not null)
mobStateComponent.AllowHandInteractWhileCrit = AllowHandInteractWhileCrit.Value;

if (AllowHandInteractWhileSoftCrit is not null)
mobStateComponent.AllowHandInteractWhileSoftCrit = AllowHandInteractWhileSoftCrit.Value;

if (AllowHandInteractWhileDead is not null)
mobStateComponent.AllowHandInteractWhileDead = AllowHandInteractWhileDead.Value;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hate this, is there no better way?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

reflection could

Content.Shared/Mobs/MobState.cs Outdated Show resolved Hide resolved
Co-authored-by: DEATHB4DEFEAT <[email protected]>
Signed-off-by: VMSolidus <[email protected]>
@VMSolidus VMSolidus merged commit 1e9cb1c into Simple-Station:master Jan 2, 2025
10 of 11 checks passed
SimpleStation14 added a commit that referenced this pull request Jan 2, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Changes: C# Changes any cs files Changes: YML Changes any yml files
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants