mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-20 22:54:46 +00:00
* Brings the monkey back down (body horror edition/addition.) (#73325) ## About The Pull Request Let me paint you a story. A long time ago monkeys once rested their feet on the floor, this was a time of bliss and peace. But sometime around the horrors of making monkeys subtypes of humans did an atrocity occur.  **The monkeys were moved up.** I thought this was bad, and alot of people on the forum tended to agree with me  This was do to some purpose of adjusting them so it could be easier to fit item sprites onto them instead of preforming the hours of work refractoring to make the heights of the items dynamic and adjustable. A simple pixel shift may have sufficed, but you see, such a change would NEVER allow the frankensteining of monkey and human features together. This is that refractor. In essence, the following is now true. A top_offset can now be generated for a human based on a varible on their chest and legs. By default, and as is true with human legs and chests, this variable is ZERO by default. Monkey legs and chest have NEGATIVE values proportionate and onto how much smaller their sprite is compared to humans. Other bodyparts, as well as any other accociated overlays, or clothing will automatically be offset to this axis. THIS MEANS THAT MONKEYS ARE ON THE FLOOR. But is means something else too. Something more freakish,  **What abominable monsters**, unreachable by players as long as we can't stitch monkeys and humans together (oh but just wait until the feature freeze ends) Oh but you might be thinking, if legs can make a mob go down. can it make a mob **go** **up??** **OH NO**    These lads are stepping, and have been implemented solely for proof of concept as a way to flex the system I have created and remain inaccessible without admin intervention. But really, when all is said and done, all this PR does in terms of player facing changes is move the monkey back down.  Oh and fixed monkey husked which have been broken for who knows how long.  ## Why It's Good For The Game The monkey is restored to its original position. Tools now exist to have legs and torsos of varying heights. Monkey Husking is fixed. ## Changelog 🆑 itseasytosee fix: Monkeys ues the proper husk sprites. imageadd: The monkey has been moved back down to its lower, more submissive position. refactor: Your bodyparts are now dynamically rendered at a height relevant to the length of your legs and torso, what does this mean for you? Not much to be honest, but you might see a monkey pop up a bit if you cut its legs off. admin: The Tallboy is here /🆑 --------- Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com> Co-authored-by: san7890 <the@ san7890.com> * Brings the monkey back down (body horror edition/addition.) * Update species.dm * Delete infuser_entries.dm --------- Co-authored-by: itseasytosee <55666666+itseasytosee@users.noreply.github.com> Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com> Co-authored-by: san7890 <the@ san7890.com> Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
39 lines
2.3 KiB
Plaintext
39 lines
2.3 KiB
Plaintext
/datum/unit_test/limbsanity
|
|
|
|
/datum/unit_test/limbsanity/Run()
|
|
for(var/path in subtypesof(/obj/item/bodypart) - list(/obj/item/bodypart/arm, /obj/item/bodypart/leg)) /// removes the abstract items.
|
|
var/obj/item/bodypart/part = new path(null)
|
|
if(part.is_dimorphic)
|
|
if(!icon_exists(UNLINT(part.should_draw_greyscale ? part.icon_greyscale : part.icon_static), "[part.limb_id]_[part.body_zone]_m"))
|
|
TEST_FAIL("[path] does not have a valid icon for male variants")
|
|
if(!icon_exists(UNLINT(part.should_draw_greyscale ? part.icon_greyscale : part.icon_static), "[part.limb_id]_[part.body_zone]_f"))
|
|
TEST_FAIL("[path] does not have a valid icon for female variants")
|
|
else if(!icon_exists(UNLINT(part.should_draw_greyscale ? part.icon_greyscale : part.icon_static), "[part.limb_id]_[part.body_zone]"))
|
|
TEST_FAIL("[path] does not have a valid icon")
|
|
|
|
/// Tests the height adjustment system which dynamically changes how much the chest, head, and arms of a carbon are adjusted upwards or downwards based on the length of their legs and chest.
|
|
/datum/unit_test/limb_height_adjustment
|
|
|
|
/datum/unit_test/limb_height_adjustment/Run()
|
|
var/mob/living/carbon/human/john_doe = allocate(/mob/living/carbon/human/consistent)
|
|
var/mob/living/carbon/human/species/monkey/monkey = allocate(/mob/living/carbon/human/species/monkey)
|
|
var/mob/living/carbon/human/tallboy = allocate(/mob/living/carbon/human/consistent)
|
|
|
|
tallboy.set_species(/datum/species/human/tallboy)
|
|
TEST_ASSERT_EQUAL(john_doe.get_top_offset(), 0, "John Doe found to have a top offset other than zero.")
|
|
TEST_ASSERT_EQUAL(monkey.get_top_offset(), -8, "Monkey found to have a top offset other than -8.")
|
|
TEST_ASSERT_EQUAL(tallboy.get_top_offset(), 23, "Tallboy human varient found to have a top offset other than 23.")
|
|
|
|
|
|
var/obj/item/bodypart/leg/left/monkey/left_monky_leg = allocate(/obj/item/bodypart/leg/left/monkey)
|
|
var/obj/item/bodypart/leg/right/monkey/right_monky_leg = allocate(/obj/item/bodypart/leg/right/monkey)
|
|
|
|
left_monky_leg.replace_limb(john_doe, TRUE)
|
|
|
|
TEST_ASSERT_EQUAL(john_doe.get_top_offset(), 0, "John Doe has a top offset other than 0 with one human leg and one monkey leg.")
|
|
|
|
right_monky_leg.replace_limb(john_doe, TRUE)
|
|
|
|
TEST_ASSERT_EQUAL(john_doe.get_top_offset(), -3, "John Doe has a top offset other than -3 with two monkey legs.")
|
|
|