Cataclysm-DDA icon indicating copy to clipboard operation
Cataclysm-DDA copied to clipboard

Correct MOVEMENT_EXERTION_MODIFIER values for exoskeletons, expand descriptions for player clarity

Open Regilith opened this issue 1 year ago • 8 comments

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.

Regilith avatar Jun 26 '24 21:06 Regilith

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.

Regilith avatar Jun 27 '24 18:06 Regilith

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.

BalthazarArgall avatar Jun 27 '24 18:06 BalthazarArgall

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.

Regilith avatar Jun 27 '24 19:06 Regilith

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.

BalthazarArgall avatar Jun 27 '24 20:06 BalthazarArgall

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).

Regilith avatar Jun 27 '24 21:06 Regilith

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

BalthazarArgall avatar Jun 28 '24 13:06 BalthazarArgall

Suggestions applied. I really like the color addition!

Regilith avatar Jun 28 '24 14:06 Regilith

I appreciate the review!

Regilith avatar Jun 28 '24 16:06 Regilith

Are you done with this?

BalthazarArgall avatar Jul 05 '24 12:07 BalthazarArgall

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

Regilith avatar Jul 05 '24 17:07 Regilith

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.

BalthazarArgall avatar Jul 05 '24 17:07 BalthazarArgall

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

Regilith avatar Jul 05 '24 18:07 Regilith

Sorry about the wait! Glad to see this in!

Maleclypse avatar Aug 13 '24 05:08 Maleclypse