Commit 7756b44
authored
Cyborg crawling fixes (#5863)
## Short description
<!-- What do you propose to change with your PR? -->
Cyborgs can now crawl unconditionally as long as they aren't down (and
at half speed with a module active).
## Why we need to add this
<!-- What is the reason for adding these changes? Please post links to
Discussions as well as Bug Reports here. Please describe how this will
change the game balance. -->
For a long while now cyborgs have had an issue wherein they aren't able
to crawl if they had a module deployed and it didn't have any freeform
hand slots empty (for example if you had the tools module open you just
couldn't crawl at all in any situation). This was very unclear behavior
and if you aren't in the know just made it seem like cyborgs arbitrarily
can't crawl sometimes. This issue was related to how movement speed is
calculated based on available hand slots (if all of your hand slots are
occupied, you can't crawl at all). To fix this, two components have been
created:
1. CanCrawlWithoutHands, a generic component that can be added to
anything we want to be able to crawl without hands. This is used by
cyborgs when they don't have a module out because in that state they
have no hands.
2. BorgModuleCrawlModifier, a component intended specifically for
cyborgs that checks if they have a module active then allows them to
crawl at half normal crawling speed if they do, regardless of whether
any freeform hand slots are open or are otherwise present (half speed is
the speed you would be at when one hand is holding something on an
entity with hands that is crawling)
Both components have been added to base_borg_chassis.yml so that it
affects any cyborgs that inherit from it. This ensures that cyborgs
retain their ability to crawl in a manner that's more intuitive and
doesn't seem arbitrary. This does not impact their ability to move while
crit; cyborgs in crit still cannot move, as expected.
Compared to #5789, this is implemented as components instead of adding
the carveout directly to the hand system, and CanCrawlWithoutHands was
added as a component for generic use by request of @walksanatora.
## Media (Video/Screenshots)
<!--
If your PR contains in-game changes you must provide screenshots/videos
of the changes.
-->
https://github.com/user-attachments/assets/ab16cc8d-19d0-43bd-bdf0-4606fc7be2e4
## Checks
<!-- check boxes for faster reviewing of your PR -->
- [x] I do not require assistance to complete the PR.
- [x] Before posting/requesting review of a PR, I have verified that the
changes work.
- [x] I have added screenshots/videos of the changes, or this PR does
not change in-game mechanics.
- [x] I affirm that my changes are licensed under the [MIT
License](https://github.com/ss14Starlight/space-station-14/blob/Starlight/LICENSE.TXT)
and grant permission for use in this repository under its conditions.
**Changelog**
<!--
If you want the players to know about changes made in this PR, specify
them using the template outside the comment. Short and informative.
:cl: STARLIGHT TEAM
- add: Added Starlight.
- remove: Removed SS13.
- tweak: Changed SS14.
- fix: Fixed Rinary.
-->
:cl: Rhapsody (Pepta Vismahl)
- tweak: Cyborgs can now crawl without a module active, and crawl at
half speed with any module active.1 parent b49e622 commit 7756b44
5 files changed
Lines changed: 114 additions & 0 deletions
Lines changed: 17 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
Lines changed: 44 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
Lines changed: 13 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
Lines changed: 38 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
Lines changed: 2 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
95 | 95 | | |
96 | 96 | | |
97 | 97 | | |
| 98 | + | |
| 99 | + | |
98 | 100 | | |
99 | 101 | | |
100 | 102 | | |
| |||
0 commit comments