From 12d522dbc09c51b5db5d93fdb30ddf2ab59bf2a6 Mon Sep 17 00:00:00 2001 From: Expletive Date: Wed, 7 Jun 2017 12:15:33 -0700 Subject: [PATCH] Organs for catgirls (#28148) --- .../carbon/human/species_types/humans.dm | 10 +++++++- code/modules/surgery/organs/ears.dm | 21 +++++++++++++++++ code/modules/surgery/organs/tails.dm | 23 +++++++++++++++++++ tgstation.dme | 1 + 4 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 code/modules/surgery/organs/tails.dm diff --git a/code/modules/mob/living/carbon/human/species_types/humans.dm b/code/modules/mob/living/carbon/human/species_types/humans.dm index cd4afa5b6273de..43516eaec9465d 100644 --- a/code/modules/mob/living/carbon/human/species_types/humans.dm +++ b/code/modules/mob/living/carbon/human/species_types/humans.dm @@ -20,4 +20,12 @@ /datum/species/human/space_move(mob/living/carbon/human/H) var/obj/item/device/flightpack/F = H.get_flightpack() if(istype(F) && (F.flight) && F.allow_thrust(0.01, src)) - return TRUE \ No newline at end of file + return TRUE + +datum/species/human/on_species_gain(mob/living/carbon/human/H, datum/species/old_species) + if(H.dna.features["ears"] == "Cat") + mutantears = /obj/item/organ/ears/cat + if(H.dna.features["tail_human"] == "Cat") + var/tail = /obj/item/organ/tail/cat + mutant_organs += tail + ..() \ No newline at end of file diff --git a/code/modules/surgery/organs/ears.dm b/code/modules/surgery/organs/ears.dm index fd6a3466bd9d91..0a29492c4a7f86 100644 --- a/code/modules/surgery/organs/ears.dm +++ b/code/modules/surgery/organs/ears.dm @@ -70,3 +70,24 @@ var/obj/item/organ/ears/ears = getorgan(/obj/item/organ/ears) if(ears) ears.minimumDeafTicks(value) + + +/obj/item/organ/ears/cat + name = "cat ears" + icon = 'icons/obj/clothing/hats.dmi' + icon_state = "kitty" + +/obj/item/organ/ears/cat/adjustEarDamage(ddmg, ddeaf) + ..(ddmg*2,ddeaf*2) + +/obj/item/organ/ears/cat/Insert(mob/living/carbon/human/H, special = 0, drop_if_replaced = TRUE) + ..() + color = H.hair_color + H.dna.features["ears"] = "Cat" + H.update_body() + +/obj/item/organ/ears/cat/Remove(mob/living/carbon/human/H, special = 0) + ..() + color = H.hair_color + H.dna.features["ears"] = "None" + H.update_body() \ No newline at end of file diff --git a/code/modules/surgery/organs/tails.dm b/code/modules/surgery/organs/tails.dm new file mode 100644 index 00000000000000..99d1ed24426f23 --- /dev/null +++ b/code/modules/surgery/organs/tails.dm @@ -0,0 +1,23 @@ +/obj/item/organ/tail + name = "tail" + desc = "What did you cut this off of?" + zone = "groin" + slot = "tail" + +/obj/item/organ/tail/cat + name = "cat tail" + desc = "Who's wagging now?" + icon_state = "severedtail" + +/obj/item/organ/tail/cat/Insert(mob/living/carbon/human/H, special = 0, drop_if_replaced = TRUE) + ..() + color = H.hair_color + H.dna.features["tail_human"] = "Cat" + H.update_body() + +/obj/item/organ/ears/cat/Remove(mob/living/carbon/human/H, special = 0) + ..() + H.endTailWag() + H.dna.features["tail_human"] = "None" + color = H.hair_color + H.update_body() diff --git a/tgstation.dme b/tgstation.dme index 5ef25d3c9422f0..7b5150230cc9a7 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -2105,6 +2105,7 @@ #include "code\modules\surgery\organs\helpers.dm" #include "code\modules\surgery\organs\lungs.dm" #include "code\modules\surgery\organs\organ_internal.dm" +#include "code\modules\surgery\organs\tails.dm" #include "code\modules\surgery\organs\tongue.dm" #include "code\modules\surgery\organs\vocal_cords.dm" #include "code\modules\tgui\external.dm"