From e4a46aef03591129343c5ada9e0858effe03f549 Mon Sep 17 00:00:00 2001 From: Skies-Of-Blue Date: Fri, 7 Jun 2024 00:27:11 -0700 Subject: [PATCH] new genemods that will surely not start a riot --- .../new_player/sprite_accessories/ears.dm | 38 +++++++-- .../new_player/sprite_accessories/tails.dm | 18 +++++ .../carbon/human/species_types/humans.dm | 19 ++++- code/modules/surgery/organs/ears.dm | 76 ++++++++++++++++++ code/modules/surgery/organs/tails.dm | 46 ++++++++++- icons/mob/species/misc/dog.dmi | Bin 0 -> 1169 bytes icons/mob/species/misc/rabbit.dmi | Bin 0 -> 972 bytes 7 files changed, 188 insertions(+), 9 deletions(-) create mode 100644 icons/mob/species/misc/dog.dmi create mode 100644 icons/mob/species/misc/rabbit.dmi diff --git a/code/modules/mob/dead/new_player/sprite_accessories/ears.dm b/code/modules/mob/dead/new_player/sprite_accessories/ears.dm index 8b0ec1d6f79d..705ecb6870ae 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/ears.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/ears.dm @@ -7,6 +7,12 @@ name = "None" icon_state = "none" +/datum/sprite_accessory/ears/elf + name = "Elf" + icon_state = "elf" + secondary_color = FALSE + color_src = SKINCOLORS + /datum/sprite_accessory/ears/cat icon = 'icons/mob/species/misc/cat.dmi' name = "Cat" @@ -21,6 +27,13 @@ color_src = HAIR image_alpha = 150 +/datum/sprite_accessory/ears/dog + icon = 'icons/mob/species/misc/dog.dmi' + name = "Dog" + icon_state = "dog" + secondary_color = FALSE + color_src = HAIR + /datum/sprite_accessory/ears/fox icon = 'icons/mob/species/misc/fox.dmi' name = "Fox" @@ -28,8 +41,23 @@ secondary_color = TRUE color_src = HAIR -/datum/sprite_accessory/ears/elf - name = "Elf" - icon_state = "elf" - secondary_color = FALSE - color_src = SKINCOLORS +/datum/sprite_accessory/ears/rabbit + icon = 'icons/mob/species/misc/rabbit.dmi' + name = "Rabbit" + icon_state = "bunny" + secondary_color = TRUE + color_src = HAIR + +/datum/sprite_accessory/ears/rabbit/bent + icon = 'icons/mob/species/misc/rabbit.dmi' + name = "Bent Rabbit" + icon_state = "bunny_bent" + secondary_color = TRUE + color_src = HAIR + +/datum/sprite_accessory/ears/rabbit/floppy + icon = 'icons/mob/species/misc/rabbit.dmi' + name = "Floppy Rabbit" + icon_state = "bunny_floppy" + secondary_color = TRUE + color_src = HAIR diff --git a/code/modules/mob/dead/new_player/sprite_accessories/tails.dm b/code/modules/mob/dead/new_player/sprite_accessories/tails.dm index 5a3d2eb3d62b..e4192248215e 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/tails.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/tails.dm @@ -32,6 +32,18 @@ color_src = HAIR image_alpha = 150 +/datum/sprite_accessory/tails/human/dog + icon = 'icons/mob/species/misc/dog.dmi' + name = "Dog" + icon_state = "dog" + color_src = HAIR + +/datum/sprite_accessory/tails_animated/human/dog + icon = 'icons/mob/species/misc/dog.dmi' + name = "Dog" + icon_state = "dog" + color_src = HAIR + /datum/sprite_accessory/tails/human/fox icon = 'icons/mob/species/misc/fox.dmi' name = "Fox" @@ -55,3 +67,9 @@ name = "Fox 2" icon_state = "fox2" color_src = HAIR + +/datum/sprite_accessory/tails/human/rabbit + icon = 'icons/mob/species/misc/rabbit.dmi' + name = "Rabbit" + icon_state = "bunny" + color_src = HAIR 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 885be6f5886a..7961dd95eaab 100644 --- a/code/modules/mob/living/carbon/human/species_types/humans.dm +++ b/code/modules/mob/living/carbon/human/species_types/humans.dm @@ -13,16 +13,31 @@ loreblurb = "Mostly hairless mammalians. Their home system, Sol, lies in a sort of \"bluespace dead-zone\" that blocks anything from entering or exiting Sol's dead-zone through bluespace without a relay. While it leaves Sol extremely well-defended, it meant that they went unnoticed and uncontacted until they were themselves able to breach it." /datum/species/human/on_species_gain(mob/living/carbon/C, datum/species/old_species, pref_load) + if(C.dna.features["ears"] == "Elf") + mutantears = /obj/item/organ/ears/elf if(C.dna.features["ears"] == "Cat") mutantears = /obj/item/organ/ears/cat + if(C.dna.features["ears"] == "Dog") + mutantears = /obj/item/organ/ears/dog if(C.dna.features["ears"] == "Fox") mutantears = /obj/item/organ/ears/fox + if(C.dna.features["ears"] == "Rabbit") + mutantears = /obj/item/organ/ears/rabbit + if(C.dna.features["ears"] == "Bent Rabbit") + mutantears = /obj/item/organ/ears/rabbit/bent + if(C.dna.features["ears"] == "Floppy Rabbit") + mutantears = /obj/item/organ/ears/rabbit/floppy if(C.dna.features["tail_human"] == "Cat") mutant_organs |= /obj/item/organ/tail/cat + if(C.dna.features["tail_human"] == "Dog") + mutant_organs |= /obj/item/organ/tail/dog if(C.dna.features["tail_human"] == "Fox") mutant_organs |= /obj/item/organ/tail/fox - if(C.dna.features["ears"] == "Elf") - mutantears = /obj/item/organ/ears/elf + if(C.dna.features["tail_human"] == "Fox 2") + mutant_organs |= /obj/item/organ/tail/fox/alt + if(C.dna.features["tail_human"] == "Rabbit") + mutant_organs |= /obj/item/organ/tail/rabbit + return ..() /datum/species/human/spec_death(gibbed, mob/living/carbon/human/H) diff --git a/code/modules/surgery/organs/ears.dm b/code/modules/surgery/organs/ears.dm index f1eb39b84162..7120764dbb2e 100644 --- a/code/modules/surgery/organs/ears.dm +++ b/code/modules/surgery/organs/ears.dm @@ -150,6 +150,10 @@ ear_owner.dna.species.mutant_bodyparts -= "ears" ear_owner.update_body() + /obj/item/organ/ears/fox + name = "fox ears" + damage_multiplier = 2 + /obj/item/organ/ears/fox/Insert(mob/living/carbon/human/ear_owner, special = 0, drop_if_replaced = TRUE) ..() if(istype(ear_owner)) @@ -166,6 +170,78 @@ ear_owner.dna.species.mutant_bodyparts -= "ears" ear_owner.update_body() +/obj/item/organ/ears/rabbit + name = "rabbit ears" + damage_multiplier = 3 + +/obj/item/organ/ears/rabbit/Insert(mob/living/carbon/human/ear_owner, special = 0, drop_if_replaced = TRUE) + ..() + if(istype(ear_owner)) + color = ear_owner.hair_color + ear_owner.dna.species.mutant_bodyparts |= "ears" + ear_owner.dna.features["ears"] = "Rabbit" + ear_owner.update_body() + +/obj/item/organ/ears/rabbit/Remove(mob/living/carbon/human/ear_owner, special = 0) + ..() + if(istype(ear_owner)) + color = ear_owner.hair_color + ear_owner.dna.features["ears"] = "None" + ear_owner.dna.species.mutant_bodyparts -= "ears" + ear_owner.update_body() + +/obj/item/organ/ears/rabbit/bent/Insert(mob/living/carbon/human/ear_owner, special = 0, drop_if_replaced = TRUE) + ..() + if(istype(ear_owner)) + color = ear_owner.hair_color + ear_owner.dna.species.mutant_bodyparts |= "ears" + ear_owner.dna.features["ears"] = "Bent Rabbit" + ear_owner.update_body() + +/obj/item/organ/ears/rabbit/bent/Remove(mob/living/carbon/human/ear_owner, special = 0) + ..() + if(istype(ear_owner)) + color = ear_owner.hair_color + ear_owner.dna.features["ears"] = "None" + ear_owner.dna.species.mutant_bodyparts -= "ears" + ear_owner.update_body() + +/obj/item/organ/ears/rabbit/floppy/Insert(mob/living/carbon/human/ear_owner, special = 0, drop_if_replaced = TRUE) + ..() + if(istype(ear_owner)) + color = ear_owner.hair_color + ear_owner.dna.species.mutant_bodyparts |= "ears" + ear_owner.dna.features["ears"] = "Floppy Rabbit" + ear_owner.update_body() + +/obj/item/organ/ears/floppy/Remove(mob/living/carbon/human/ear_owner, special = 0) + ..() + if(istype(ear_owner)) + color = ear_owner.hair_color + ear_owner.dna.features["ears"] = "None" + ear_owner.dna.species.mutant_bodyparts -= "ears" + ear_owner.update_body() + +/obj/item/organ/ears/dog + name = "dog ears" + damage_multiplier = 2 + +/obj/item/organ/ears/dog/Insert(mob/living/carbon/human/ear_owner, special = 0, drop_if_replaced = TRUE) + ..() + if(istype(ear_owner)) + color = ear_owner.hair_color + ear_owner.dna.species.mutant_bodyparts |= "ears" + ear_owner.dna.features["ears"] = "Dog" + ear_owner.update_body() + +/obj/item/organ/ears/dog/Remove(mob/living/carbon/human/ear_owner, special = 0) + ..() + if(istype(ear_owner)) + color = ear_owner.hair_color + ear_owner.dna.features["ears"] = "None" + ear_owner.dna.species.mutant_bodyparts -= "ears" + ear_owner.update_body() + /obj/item/organ/ears/elf name = "elf ears" damage_multiplier = 1.5 diff --git a/code/modules/surgery/organs/tails.dm b/code/modules/surgery/organs/tails.dm index 2d3e402150a2..be43bc99f62d 100644 --- a/code/modules/surgery/organs/tails.dm +++ b/code/modules/surgery/organs/tails.dm @@ -137,7 +137,7 @@ desc = "A severed fox tail. Sad." tail_type = "Fox 2" -/obj/item/organ/tail/cat/Insert(mob/living/carbon/human/H, special = 0, drop_if_replaced = TRUE) +/obj/item/organ/tail/fox/alt/Insert(mob/living/carbon/human/H, special = 0, drop_if_replaced = TRUE) ..() if(istype(H)) if(!("tail_human" in H.dna.species.mutant_bodyparts)) @@ -145,7 +145,49 @@ H.dna.features["tail_human"] = tail_type H.update_body() -/obj/item/organ/tail/cat/Remove(mob/living/carbon/human/H, special = 0) +/obj/item/organ/tail/fox/alt/Remove(mob/living/carbon/human/H, special = 0) + ..() + if(istype(H)) + H.dna.features["tail_human"] = "None" + H.dna.species.mutant_bodyparts -= "tail_human" + color = H.hair_color + H.update_body() + +/obj/item/organ/tail/rabbit + name = "rabbit tail" + desc = "A severed rabbit tail." + tail_type = "Rabbit" + +/obj/item/organ/tail/rabbit/Insert(mob/living/carbon/human/H, special = 0, drop_if_replaced = TRUE) + ..() + if(istype(H)) + if(!("tail_human" in H.dna.species.mutant_bodyparts)) + H.dna.species.mutant_bodyparts |= "tail_human" + H.dna.features["tail_human"] = tail_type + H.update_body() + +/obj/item/organ/tail/rabbit/Remove(mob/living/carbon/human/H, special = 0) + ..() + if(istype(H)) + H.dna.features["tail_human"] = "None" + H.dna.species.mutant_bodyparts -= "tail_human" + color = H.hair_color + H.update_body() + +/obj/item/organ/tail/dog + name = "dog tail" + desc = "A severed dog tail." + tail_type = "Dog" + +/obj/item/organ/tail/dog/Insert(mob/living/carbon/human/H, special = 0, drop_if_replaced = TRUE) + ..() + if(istype(H)) + if(!("tail_human" in H.dna.species.mutant_bodyparts)) + H.dna.species.mutant_bodyparts |= "tail_human" + H.dna.features["tail_human"] = tail_type + H.update_body() + +/obj/item/organ/tail/dog/Remove(mob/living/carbon/human/H, special = 0) ..() if(istype(H)) H.dna.features["tail_human"] = "None" diff --git a/icons/mob/species/misc/dog.dmi b/icons/mob/species/misc/dog.dmi new file mode 100644 index 0000000000000000000000000000000000000000..e430616940a1cd3beee3ffda486c85268c1a80e8 GIT binary patch literal 1169 zcmV;C1aA9@P)fFDZ*Bkp zc$`yKaB_9`^iy#0_2eo`Eh^5;&r`5fFwryM;w;ZhDainGjE%TBGg33tGfE(w;*!LY zR3K9+H$FA7s5m|)KRwFJqy>BQ)>0E(vOBvyiq&_RLt48-Sj+$I9eR90~Ha{Hq)(dr3q=RCt{2-BE6%FcgJh6Iei<*#OX4KnG?4sC55p8qib<7`V2%rl92iq&@_& zxpDK5oY;;r2y!>KH_ru*O4px9_RHkfbAjWJbi?f3W|?9 zsXw3Q1 z@m>8-D;jGTpKMOm*L8Vz4KqdCo?QX}0002ssj0p|Owc}gheG?|RIzrv+e~oAY^T%} zlL-Y`WA5GZaIu}>j4g!k7rln|w%k5lS^K_L&~}2e(IVK;UV1`#UH@G>-q%}Sv)(pZ zgc{l}zGR+i+ivZ!kl<{z2-dcm|2O~u0000hUMUaSMapx6+NYkIBjq_EQWun|0;<6+ z@noUpqJc<>3sMhI>Vnh*l(--(EujdLtDjP06y!z92><{9oa}1x%k>J<#wTO@q(xQA z-iG$tkZVrdqamoh)rMSixpIi|x~>zI@=ZHL$>#`ZhbX<~auopp006)z>%z{w&%gK2k4 z_P4)UL9tV5g#Dz0_Am1OBuwm78eu=_p#6({KM51P94dY{qIrv=k%uULIn?%k(qa1- z_2LliST7d88_~RlJVg5SV)3LQO0ZrmUZI_`1poj5059eEJm`lzjBLM^=R8<3tQgzR zF38;WSs8Wztvn~Rpj+o8Uc;keR)U;nEbhOa=S&|}ngS1-=4 z=Q-g84MXnaC(Zm{c9-|BUYzy6hU9|GVroS`d*m6Q_4~`JGQQ1&XMpyQe&pFpw*&e* zRY6Di?9Q&hvEyY20002sN?tt=TGdTE6IRj$%@4{-=~n(M!A$d@?9F7tWRRfwL6Lco zaq}oM&4X^%O6fqz{Gix8$hdjb=#dB2wbWn8{Gix8Xny~1j~en;?9V?xXjdL2H_|Dhsg`l&JU8;i|zO}fdC*){N@x4Z zy7Pma2uWTH6_y7@6jU_s570Mmge0yP3(JEd3NpRBx%47J5{GEVYsgbj0C`DWH2rj( j#OuYFALMhH`9c2xTZBXJ?)}UO00000NkvXXu0mjfB`7w9 literal 0 HcmV?d00001 diff --git a/icons/mob/species/misc/rabbit.dmi b/icons/mob/species/misc/rabbit.dmi new file mode 100644 index 0000000000000000000000000000000000000000..efeaba6e4dbe45b0ff9550e0cd2bc44c91dec794 GIT binary patch literal 972 zcmV;-12g=IP)V=-0C=2J zR&a84_w-Y6@%7{?OD!tS%+FJ>RWQ*r;NmRLOex6#a*U0*I5Sc+(=$py98<31lEji! zAX6zfJ~gqZI6kQ~FRwD*$<@Qt&qaxgGbOXA7-R$&XIfEWZYqdvh(nKCkiTCDv092# zlk@XZ5{oLy(G1a&l$uvUwm#B4i0)dFtS(8+%po;ck@S$^!?c|If&vO7gcviF6j zXhbqe&zGszf*h_*Gak4|^an6z+zE3@R9^;Kn$Miu2_tE&f04U2tl(Q1rJ@6z+Y@9% zUD`zy!?{&#fUdovzTFQnP&iQ4q$(RNNLG2ll zuRm%I000000001@5ys{f^c-_NZq<3s9KGS@0`+P1V{lTMC)-*AKh^MbQlwT(_)X zN=t11jTT(<*EAin?x#2RDvuxl000000N|Th`&GeOttd+!KoqO<4QsW^X%^fb5iD)# z9~QD;Dz{FnECSQI9& ZBXmQBx>J6zoK;OX2Cmtnt3JoZsG5wyby=ZcbuT^NOysG z?G^poq_iHoV1GMQvy;}1o-8%RU(-YA$K096Baa{e00000004kY^s8M4n$_-nq@DJd zBL)C~Kg7=Pbzphd0k#v&_<{RFY>&_jZW#R-%hE6nNMaQ9?h4IMQauu5|F64( zBJ~vw2^y35hV6Ah$cvybiN8WpZcM3JQZrrzjd?B?NQL&c4r$!a;`!4X0%S5tk_f7* zBbNd*%U7ubeDA=m8(+)O*|>a^XHJU$?yEV^9`6wUB$YJC;yi!6iK@@@$J=!9#{d8T zKn8LxOa6sld3^#Zdx-pM_7iAx--@c}#}=j%ESC@!Z7lImjc%6^U6RBzVd6aQONjP& ub0)g|