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

[RDY] Correct MOVEMENT_EXERTION_MODIFIER values for exoskeletons, expand descriptions for player clarity #74801

Open
wants to merge 8 commits into
base: master
Choose a base branch
from

Conversation

Regilith
Copy link
Contributor

@Regilith Regilith commented Jun 26, 2024

Summary

Bugfixes "Powered exoskeletons are now less exerting to operate than unpowered ones, correct powered states to reduce exertion rather than increase it"

Purpose of change

Fixes #74785

Powered mk2 and mk3 exoskeletons cause more exertion to the player than their inactive states.

As per the author of the PR that added these, exoskeletons are supposed to reduce exertion, and newer models should have a greater reduction. The current numbers are doing the opposite effect.

The activity level for powered mk2 and mk3 exoskeletons when walking is the same as an inactive suit: Brisk. This confused me, and would likely confuse other players, as there is no visual indication that your activity level changed at all, and a player would expect that powering the suit would decrease exertion.

Lastly, I would expect that with later generations, the more advanced suits would be progressively less exerting on the operator compared with the first generation, which is described as a 'tank suit' in the description.

Describe the solution

Changed values to be negative, made lighter suits have greater effect.

See below comment for reasoning of current proposed values.

Expand the descriptions to improve player clarity as to what benefits the different armors are providing.

Describe alternatives you've considered

Creating inactive states for each version of exoskeleton, and providing unique values to each's exertion cost. Considering each suit weighs the same and the original author did not do this, just having a big exertion cost across the board seems sufficient.

Testing

With the current values I now propose (heavy -0.2, medium -0.3, light -0.4), walking becomes a Light activity for all three suits (an improvement over the Moderate of walking without the suit), while running becomes a Moderate activity for the mk3 and mk2, and Brisk for the mk1.

Additional context

It's been a while since I've used git and contributed to this project, apologies in advance if I messed anything up.

@github-actions github-actions bot added [JSON] Changes (can be) made in JSON Mechanics: Enchantments / Spells Enchantments and spells <Bugfix> This is a fix for a bug (or closes open issue) astyled astyled PR, label is assigned by github actions json-styled JSON lint passed, label assigned by github actions labels Jun 26, 2024
@Regilith Regilith changed the title Update enchantments.json Update MOVEMENT_EXERTION_MODIFIER for exoskeletons Jun 26, 2024
@Regilith Regilith changed the title Update MOVEMENT_EXERTION_MODIFIER for exoskeletons Update MOVEMENT_EXERTION_MODIFIER values for exoskeletons Jun 26, 2024
@Regilith Regilith changed the title Update MOVEMENT_EXERTION_MODIFIER values for exoskeletons Update MOVEMENT_EXERTION_MODIFIER values for exoskeletons, now all powered exoskeletons are less exerting an Jun 26, 2024
@Regilith Regilith changed the title Update MOVEMENT_EXERTION_MODIFIER values for exoskeletons, now all powered exoskeletons are less exerting an Update MOVEMENT_EXERTION_MODIFIER values for exoskeletons Jun 26, 2024
Copy link
Contributor

@BalthazarArgall BalthazarArgall left a comment

Choose a reason for hiding this comment

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

Due to a quirk somewhere in the code "multiply": x actually means "multiply": 1+x and to reduce a value you need to input "multiply": -x.

So basically my error was not putting minuses in front of the active exos multiply values.

As for the design side, I tried to simulate the heavy exoskeletons having more assistive power, hence the better reduction in movement exertion and increased carry weight in exchange for more power consumption and encumbrance. Those characteristics being flipped as the exoskeletons improve.

On a balance side I also fear that taking away one of the strengths of the heavy exoskeleton means that it'll basically just be a worse version of the others instead of having tradeoffs.

As for the specific values chosen, I intended to have exertion reduction values of -80% (the exo is basically doing all the work) > -60% > -40%. Your current intended values are -40%>-30%>-20%, I fear that having values very close to each other will reduce the uniqueness of each version but I think lowering the reduction overall may be a good idea, I would propose something along the lines of -60%>-40%>-20%.

Keep in mind that I'm not a merger, just the one who updated the exoskeletons, those are only suggestions, I would appreciate discussing those aspects but ultimately you are free to disregard them. Except the - part of the multiply values, those need to be fixed.

data/json/enchantments.json Outdated Show resolved Hide resolved
data/json/enchantments.json Outdated Show resolved Hide resolved
data/json/enchantments.json Outdated Show resolved Hide resolved
@Regilith
Copy link
Contributor Author

Regilith commented Jun 27, 2024

Thank you for leaving a review! I am happy to discuss the revised numbers.

I did notice during testing that negative numbers decreased exertion, but since the current values were all exertion-increasing, I assumed that was the intention, and thus became the basis of the numbers I chose.

I've changed the numbers to have all powered states reduce exertion, and have the heavier, older exoskeletons be less exertive to operate, but this might be counter-intuitive to some players, and either a flag or notice in description somewhere might be in order.

Testing various negative values for MOVEMENT_EXERTION_MODIFIER, at -0.6 running becomes a Light activity (akin to tailoring), and at -0.8 running becomes a None activity level (akin to using a laptop). However, stamina loss for these activities is not affected by the exertion level, and drains just as quickly, giving the odd state where you are not exerting yourself / not losing calories but your body is slowing down regardless. This is likely a bug, but I don't have the knowledge to fix it, and until that bug is fixed I believe it's better to stick with lower numbers.

With the current values I now propose (heavy -0.4, medium -0.3, light -0.2), walking becomes a Light activity for all three suits (an improvement over the Moderate of walking without the suit), while running becomes a Moderate activity for the mk1 and mk2, and Brisk for the mk3.

@BalthazarArgall
Copy link
Contributor

BalthazarArgall commented Jun 27, 2024

I've changed the numbers to have all powered states reduce exertion, and have the heavier, older exoskeletons be less exertive to operate, but this might be counter-intuitive to some players, and either a flag or notice in description somewhere might be in order.

I do admit that this can be counterintuitive, indeed this could be explained somewhere, in fact the enchantments (enchantments.json) look like a perfect fit for these kind of clarifications, I'll let you figure out how to shove them in there.

Or it could go in the descriptions of the exoskeletons themselves, your call.

Testing various negative values for MOVEMENT_EXERTION_MODIFIER, at -0.6 running becomes a Light activity, and at -0.8 running becomes a None activity level (akin to using a laptop). However, stamina loss for these activities is not affected by the exertion level, and drains just as quickly, giving the odd state where you are not exerting yourself / not losing calories but your body is slowing down regardless. This is likely a bug, but I don't have the knowledge to fix it, and until that bug is fixed I believe it's better to stick with lower numbers.

With the current values I now propose (heavy -0.4, medium -0.3, light -0.2), walking becomes a Light activity for all three suits (an improvement over the Moderate of walking without the suit), while running becomes a Moderate activity for the mk1 and mk2, and Brisk for the mk3.

Keep in mind that while activity levels are displayed as NONE/LIGHT/BRISK etc. the values underneath are very much numeric, there is such a thing as a "low" BRISK and "high" BRISK so don't focus too much on the specific activity level "name" when testing.

As for the values, as I said, I think making the increases 10% steps make the exoskeletons a bit too similar to each other and I'm not sure an overall nerf to exertion modifiers is absolutely needed but I won't oppose your decision in this regard.

@Regilith
Copy link
Contributor Author

I do admit that this can be counterintuitive, indeed this could be explained somewhere, in fact the enchantments (enchantments.json) look like a perfect fit for these kind of clarifications, I'll let you figure out how to shove them in there.

I'll take a shot at this.

Keep in mind that while activity levels are displayed as NONE/LIGHT/BRISK etc. the values underneath are very much numeric, there is such a thing as a "low" BRISK and "high" BRISK so don't focus too much on the specific activity level "name" when testing.

I am aware that there are variations within the labels, but player-side the labels are important, as it's the only way they can see what is happening without digging into the code, hence why I emphasize them. Players can see the difference between Active running without exoskeleton and Brisk running with exoskeleton, and use this to have an idea as to what's happening behind the scenes.

As for the values, as I said, I think making the increases 10% steps make the exoskeletons a bit too similar to each other and I'm not sure an overall nerf to exertion modifiers is absolutely needed but I won't oppose your decision in this regard.

As it stands, the current state of the exoskeletons is that they all increase exertion. Either my suggestion or your suggestion would be a significant buff regardless (powered mk3 goes from 1.8 to 0.8), neither is a nerf to the status quo, only what was intended.

I don't know exactly how exertion costs are calculated in this game, but if it is just applying a simple multiplier, then it isn't just a 10% difference between the states, it's actually increasingly higher the closer the value is to -1.0 due to absolute vs relative differences, and it being a non-linear change. The difference in exertion between -0.9 and -0.8 isn't a 10% increase, it's 50%, since you are spending only half the calories to do the same activity, i.e. a 1000kcal activity becomes 100kcal and 200kcal respectively.

Using your proposed numbers, -0.6 -0.4 -0.2, the difference in efficiency between light and medium is 25%, medium and heavy is 33.33%, light and heavy is 50%.

With my numbers, it's 12.5%, 14.3%, and 25%, respectively.

I don't feel strongly about the exact numbers, I'm mostly hesitant to propose a greater than -0.5 multiplier due to the bug I explained. It would be confusing to the player to only be doing Light activity when running but their stamina is rapidly depleting.

@BalthazarArgall
Copy link
Contributor

I don't know exactly how exertion costs are calculated in this game, but if it is just applying a simple multiplier, then it isn't just a 10% difference between the states, it's actually increasingly higher the closer the value is to -1.0 due to absolute vs relative differences, and it being a non-linear change. The difference in exertion between -0.9 and -0.8 isn't a 10% increase, it's 50%, since you are spending only half the calories to do the same activity, i.e. a 1000kcal activity becomes 100kcal and 200kcal respectively.

This is a very good point, I'll take a look at the c++ code and do some in game testing to check how much of a difference those values truly make.

@Regilith Regilith changed the title Update MOVEMENT_EXERTION_MODIFIER values for exoskeletons Update MOVEMENT_EXERTION_MODIFIER values for exoskeletons, expand descriptions for player clarity Jun 27, 2024
@Regilith
Copy link
Contributor Author

Regilith commented Jun 27, 2024

Expanded the descriptions if you'd like to review.

On a balance side I also fear that taking away one of the strengths of the heavy exoskeleton means that it'll basically just be a worse version of the others instead of having tradeoffs.

Speaking as a player now, I see the reduction in movement exertion more as a nicety than a major draw, since it doesn't actually decrease stamina cost for running. I would evaluate the exoskeletons mostly between their power draw, encumbrance, and load bearing increases, since these are far more important to me over the difference between losing 400 vs 600 vs 800 calories in a day just from walking (or whatever the real numbers are), as food is usually abundant, all the armors provide reductions regardless, and this modifier doesn't significantly affect my combat ability (unlike the other traits).

@github-actions github-actions bot added BasicBuildPassed This PR builds correctly, label assigned by github actions and removed BasicBuildPassed This PR builds correctly, label assigned by github actions labels Jun 27, 2024
BalthazarArgall

This comment was marked as duplicate.

data/json/enchantments.json Outdated Show resolved Hide resolved
data/json/enchantments.json Outdated Show resolved Hide resolved
BalthazarArgall

This comment was marked as duplicate.

@BalthazarArgall
Copy link
Contributor

The first review is not a duplicate, I messed up. The last comment is though.

Regilith and others added 5 commits June 28, 2024 08:43
Co-authored-by: BalthazarArgall <116303491+BalthazarArgall@users.noreply.github.com>
Co-authored-by: BalthazarArgall <116303491+BalthazarArgall@users.noreply.github.com>
Co-authored-by: BalthazarArgall <116303491+BalthazarArgall@users.noreply.github.com>
Co-authored-by: BalthazarArgall <116303491+BalthazarArgall@users.noreply.github.com>
Co-authored-by: BalthazarArgall <116303491+BalthazarArgall@users.noreply.github.com>
@Regilith
Copy link
Contributor Author

Regilith commented Jun 28, 2024

Suggestions applied. I really like the color addition!

Copy link
Contributor

@BalthazarArgall BalthazarArgall left a comment

Choose a reason for hiding this comment

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

I forgot to remove a comma, sorry for dragging this out. Unless I missed something we should be good to go after this, I'll let you take care of the rest.

data/json/enchantments.json Show resolved Hide resolved
data/json/enchantments.json Show resolved Hide resolved
data/json/enchantments.json Show resolved Hide resolved
@Regilith
Copy link
Contributor Author

I appreciate the review!

@Regilith Regilith changed the title Update MOVEMENT_EXERTION_MODIFIER values for exoskeletons, expand descriptions for player clarity Correct MOVEMENT_EXERTION_MODIFIER values for exoskeletons, expand descriptions for player clarity Jun 29, 2024
@BalthazarArgall
Copy link
Contributor

Are you done with this?

@Regilith
Copy link
Contributor Author

Regilith commented Jul 5, 2024

I am ready for this to be merged. Do I need to do something else?

@BalthazarArgall
Copy link
Contributor

I am ready for this to be merged. Do I need to do something else?

Technically no, but it can help posting your PR in the ready-to-merge channel in the devcord. I can do it for you if you want.

@Regilith
Copy link
Contributor Author

Regilith commented Jul 5, 2024

I don't have permissions to post in that channel, if you could do it on my behalf I'd appreciate it!

@Regilith Regilith changed the title Correct MOVEMENT_EXERTION_MODIFIER values for exoskeletons, expand descriptions for player clarity [RDY] Correct MOVEMENT_EXERTION_MODIFIER values for exoskeletons, expand descriptions for player clarity Jul 14, 2024
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 <Bugfix> This is a fix for a bug (or closes open issue) [JSON] Changes (can be) made in JSON json-styled JSON lint passed, label assigned by github actions Mechanics: Enchantments / Spells Enchantments and spells
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Moving in an inactive exoskeleton is less exerting than moving in powered medium or light exoskeletons
2 participants