BeeStation / NSV13

NSV13, a Ship-to-ship Combat SS13 Server
GNU Affero General Public License v3.0
115 stars 257 forks source link

Adds digitigrade robotic legs #2646

Closed DeltaFire15 closed 2 weeks ago

DeltaFire15 commented 1 month ago

About The Pull Request

This PR adds digitigrade as an option to choose to modify robotic legs to at the augment manipulator machine. Behavior is just as you would expect from something taking on both characteristics.

Sprites created by @Bokkiewokkie, code by me.

Additionally, took the time to get the three engineering hardsuits we preserved to work with digitigrade legs again, since we did have those sprites still in the digitigrade suit file. This took a bit of modification to icon procs (because NSV already overrides the icon file so I have to tell the digi file to override the override if it exists), but in theory it should work fine.

At request, the "prosthetic limb" quirk now also respects digitigrade bodytype when it handles limb replacement.

Why It's Good For The Game

There not being any digitigrade robotic legs has been a personal point of annoyance for a long, long time. Thanks to Bokkie, there is finally an equivalent for digitigrade legs if augmented, which helps with preserving character expression (and preserving the fact you don't get to wear magboots, if so desired). But I guess you could just augment yourself with digitigrade legs if you wanted to for whatever reason.

Testing Photographs and Procedure

woe, lizards upon ye ![image](https://github.com/BeeStation/NSV13/assets/46569814/bc11bf85-3284-4a2e-82bb-9b0e0063b3fb) ![image](https://github.com/BeeStation/NSV13/assets/46569814/f144ece8-68eb-41e0-b68f-6ceb91b75360)

Changelog

:cl: Bokkiewokkie, DeltaFire15 add: Robotic legs can now be modified to a digitigrade version in the augment manipulator. Rejoice, full-metal lizards. imageadd: Robot Digitigrade leg sprites. tweak: The CE, Engineering, and Atmos hardsuit once again do not squish digilegs (we had the sprites still around) code: Some mild hooking into icon code to bypass our own crimes. fix: Coincidentally, IPC limbs no longer commit crimes against icons after being thrown in the augment manipulator. tweak: The prosthetic limb quirk now respects digitigrade bodytypes. /:cl:

Pockets-byte commented 1 month ago

would you know how to make an exception for the humanlike prosthetics in terms of hair, I looked briefly, but did not manage to find anything I could poke personally to mess with that beyond it being caused by robotic limbs(and finding the line that removes hair on loose heads)

DeltaFire15 commented 1 month ago

would you know how to make an exception for the humanlike prosthetics in terms of hair, I looked briefly, but did not manage to find anything I could poke personally to mess with that beyond it being caused by robotic limbs(and finding the line that removes hair on loose heads)

It appears to be a bit different on bee than I'm used to, but seems to happen in /datum/species/handle_hair() within [...]\code\modules\mob\living\carbon\human\species.dm. A few lines in you'll find a check for IS_ORGANIC_LIMB() used on the head, which prevents progressing further into the proc if said head isn't organic.

The very basics of changing it would probably be adding a flag or variable to limbs (or just heads) that bypasses this check if it is set right, buuut given this is icon stuff there's a lot of things that might behave weird or look odd.

Pockets-byte commented 1 month ago

would you know how to make an exception for the humanlike prosthetics in terms of hair, I looked briefly, but did not manage to find anything I could poke personally to mess with that beyond it being caused by robotic limbs(and finding the line that removes hair on loose heads)

It appears to be a bit different on bee than I'm used to, but seems to happen in /datum/species/handle_hair() within [...]\code\modules\mob\living\carbon\human\species.dm. A few lines in you'll find a check for IS_ORGANIC_LIMB() used on the head, which prevents progressing further into the proc if said head isn't organic.

The very basics of changing it would probably be adding a flag or variable to limbs (or just heads) that bypasses this check if it is set right, buuut given this is icon stuff there's a lot of things that might behave weird or look odd.

I'll look into it, but my limited coding skills may not be up to it