-
Notifications
You must be signed in to change notification settings - Fork 4.1k
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
Limbs: Apply crawling score to prone movement cost #54194
Conversation
Nice! I'd raise the legs' contribution a bit, but in the game's context this distribution might work better. The one weirdness I can see is if hands/feet contribute you can't be immobilized barring encumbrance - minor parts don't have HP, so HP-scaled scores are kept at 100% even if the main part is broken. I haven't really decided how to deal with that in general, though. |
Good point! I'll leave hands and feet out of it for now. |
Wow I did not expect my issue to get fixed so quickly! Thank you! |
Summary
None
Purpose of change
Fixes #54032.
Movement cost modifiers rely on having legs, even while prone. This means that characters without legs suffer maximum movement penalties even with perfectly functional arms.
Describe the solution
Add a crawling score and character modifier to determine movement cost while prone.
I'm far from an expert here, so hopefully someone can correct me on this. I've set the ability to crawl to be determined by:
When the character is prone,
crawl_speed_movecost_mod
applies toCharacter::run_cost
instead of the regular run cost modifier. If the character is downed (not just prone), the crawl modifier is stacked on top of the regular move cost (instead of a flat x3 multiplier).Describe alternatives you've considered
The values and modifiers are up in the air as far as accuracy goes. Thankfully those are easy to tweak. (again, I'm no expert)
Testing
Added unit tests to confirm the prone move costs below:
Manual testing
At normal health, unencumbered (~6 seconds to move 1 tile):
With 43 arm encumbrance (~8 seconds to move 1 tile):
With a heavily damaged arm, unencumbered (~10 seconds to move 1 tile):
With a heavily damaged arm and 43 arm encumbrance (~12 seconds to move 1 tile):
At normal health, but with 2 broken legs (~10 seconds to move 1 tile):
Additional context
I mostly just wanted to demonstrate the jsonified scores/modifiers from #53069 :P
Ping: @Venera3. Do you have any thoughts about this?