From 94353cd673a906b7d9c5e513271556efe5a859f9 Mon Sep 17 00:00:00 2001 From: Wollywoger Date: Mon, 28 Oct 2024 18:20:40 -0400 Subject: [PATCH] fixes the ears and brain, breaks screenshot tests --- .../carbon/human/species_types/werewolf.dm | 14 +++++---- .../code/modules/surgery/organs/ears.dm | 27 ++++++++++++++++-- .../icons/mob/mutant_bodyparts.dmi | Bin 5374 -> 2627 bytes .../icons/mob/werewolf_parts_greyscale.dmi | Bin 1376 -> 1352 bytes 4 files changed, 33 insertions(+), 8 deletions(-) diff --git a/maplestation_modules/code/modules/mob/living/carbon/human/species_types/werewolf.dm b/maplestation_modules/code/modules/mob/living/carbon/human/species_types/werewolf.dm index cda65412224b..608acd216670 100644 --- a/maplestation_modules/code/modules/mob/living/carbon/human/species_types/werewolf.dm +++ b/maplestation_modules/code/modules/mob/living/carbon/human/species_types/werewolf.dm @@ -13,13 +13,13 @@ TRAIT_CHUNKYFINGERS ) mutanttongue = /obj/item/organ/internal/tongue/werewolf - mutantears = /obj/item/organ/internal/ears/werewolf + mutantears = /obj/item/organ/internal/ears/cat/werewolf mutanteyes = /obj/item/organ/internal/eyes/werewolf mutantbrain = /obj/item/organ/internal/brain/werewolf mutantliver = /obj/item/organ/internal/liver/werewolf mutantheart = /obj/item/organ/internal/heart/werewolf external_organs = list( - /obj/item/organ/external/tail/cat = "Cat", + /obj/item/organ/external/tail/cat = "Cat", // todo: add custom wolf tail ) skinned_type = /obj/item/stack/sheet/animalhide/human changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_MAGIC | MIRROR_PRIDE | ERT_SPAWN | RACE_SWAP | SLIME_EXTRACT @@ -34,19 +34,23 @@ BODY_ZONE_R_LEG = /obj/item/bodypart/leg/right/werewolf, ) -/obj/item/organ/internal/brain/werewolf/get_attacking_limb(mob/living/carbon/human/target) +/obj/item/organ/internal/brain/werewolf name = "werewolf brain" desc = "a strange mixture of a human and wolf brain" - organ_traits = list(TRAIT_PRIMITIVE, TRAIT_CAN_STRIP) + organ_traits = list(TRAIT_ADVANCEDTOOLUSER, TRAIT_LITERATE, TRAIT_PRIMITIVE, TRAIT_CAN_STRIP) // you may be a raging monster, but you still retain traits of your normal self + // also you can just inject clever mutation and get the first two traits anyways *shrug +/obj/item/organ/internal/brain/werewolf/get_attacking_limb(mob/living/carbon/human/target) if(target.body_position == LYING_DOWN) - return owner.get_bodypart(BODY_ZONE_HEAD) + return owner.get_bodypart(BODY_ZONE_HEAD) // performs a "maul" attack which does increased melee damage return ..() /datum/species/werewolf/prepare_human_for_preview(mob/living/carbon/human/human) human.set_haircolor("#bb9966", update = FALSE) // brown human.set_hairstyle("Business Hair", update = TRUE) +/* this shouldn't be a roundstart/base species players can choose, and is instead obtainable mid round +feel free to update this section if any of the three below can be accessed out of character set up. */ /datum/species/werewolf/get_species_description() return "N/A" diff --git a/maplestation_modules/code/modules/surgery/organs/ears.dm b/maplestation_modules/code/modules/surgery/organs/ears.dm index 8f9414303d08..ebae52331bd9 100644 --- a/maplestation_modules/code/modules/surgery/organs/ears.dm +++ b/maplestation_modules/code/modules/surgery/organs/ears.dm @@ -32,7 +32,7 @@ icon = 'maplestation_modules/icons/mob/mutant_bodyparts.dmi' locked = TRUE -/obj/item/organ/internal/ears/werewolf +/obj/item/organ/internal/ears/cat/werewolf name = "wolf ears" icon = 'icons/obj/clothing/head/costume.dmi' icon_state = "kitty" @@ -40,6 +40,27 @@ // Same sensitivity as felinid ears damage_multiplier = 2 -/obj/item/organ/internal/ears/werewolf/on_mob_insert(mob/living/carbon/ear_owner) +/obj/item/organ/internal/ears/cat/werewolf/on_mob_insert(mob/living/carbon/human/ear_owner) . = ..() - organ_traits = list(TRAIT_GOOD_HEARING) + if(istype(ear_owner)) + color = ear_owner.hair_color + ear_owner.dna.features["ears"] = ear_owner.dna.species.mutant_bodyparts["ears"] = "Werewolf" + ear_owner.update_body() + ADD_TRAIT(ear_owner, TRAIT_GOOD_HEARING, ORGAN_TRAIT) + +/obj/item/organ/internal/ears/cat/werewolf/on_mob_remove(mob/living/carbon/human/ear_owner) + . = ..() + 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() + REMOVE_TRAIT(ear_owner, TRAIT_GOOD_HEARING, ORGAN_TRAIT) + +/datum/sprite_accessory/ears/werewolf + name = "Werewolf" + icon_state = "werewolf" + icon = 'maplestation_modules/icons/mob/mutant_bodyparts.dmi' + locked = TRUE + hasinner = TRUE + color_src = HAIR_COLOR diff --git a/maplestation_modules/icons/mob/mutant_bodyparts.dmi b/maplestation_modules/icons/mob/mutant_bodyparts.dmi index 8b9d547aa12163b5e95ad46c5eab232e06b27fc7..92e28967302d297f84d126681eebd6c360f25423 100644 GIT binary patch literal 2627 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 diff --git a/maplestation_modules/icons/mob/werewolf_parts_greyscale.dmi b/maplestation_modules/icons/mob/werewolf_parts_greyscale.dmi index 542cb6a706810859fea1f1bb5a52152548a53a25..6c388d7b1374cd63d3e63fb97447f416ef49f371 100644 GIT binary patch delta 1109 zcmV-b1giVs3djnu0|9?9Nkl z!pSv8Q17+IBFS~rzCaM{1FyWmS~DagO10bq?R=*UH8a0RDZtRACuT)aMLdNr7>ngY=9wlC_USPIqxLkti=Ku09=rS##w)C4-FMeQH=ncG}yvA zfO&1s0Zbe3sFr%J(a1ZeNAq9?C z_p6WC1_zgY3Je|}9?3&?51U{66cEeBa?xZn48t(Y|AYPO|EEWNhwUT%@d=s9`acmb z2CK{U2sf$QI0)B~^n-^Sx- zDvoLVwo8r*7}Dir{a?kOVS8h|;&)>-F2BW%CIQL%KM`Mzx%M42ekRHKKM}ue7?B|x ztVlqz{!f3zhi}PXL&i8+|0m+BhBXxwH|xfF-?vlo48t%C!?faE>&A9T{Lt)|Sb(el zlm^lQwSSP$L%i65_)&73IH^OJA&lfEOcK$)WY~uTV zLn47TJ=pmN`LYY&_ZzAfkkCS4=da`W7=~dOhGBo0|0v!jul||QoqPSGf>}i00#}C? zICu{Z{R|Mjrq*s%v9zB^W-eyM54 zlnlc#48t%C^KWv#TfvCWJ!s?AaN1Qs*GnWV*42s@>rx)}`?pA0e2PpPOJCpzbbT&j z$en*jo0|(}1b})tYmuNcNI;bbn4wyzXH+WBr@af5MkC_@0t&563LAgQdr{&q;B5DQ zlC%K6X*uckL0=10PCmPw^gc$aqyp2v1w{G$xijB;(hG7_nVg3P% zNL%M$^u1~i@Tx>?BVLC5rKTJGlobJ`x9Wf7@Np3_fgvtUtfAtOvmj>lgbV4=vPTwK zcPw+9Bd2@!Y-DF)L32o~mzl6yrc(gx9Vudht$WHpLBnFf$N?d0hOWyn+P|aRFIP!| zS)>Q}C6Fh6bm1>7S${8}!aY!>FW{By#*YrpED2o16?#tLgo2jqGk^1;3f~Ir`%q1R zpj>VixC+lik>)e8fBbn`8_$1Eg@-DTzrvG)ZE)nb0(t&I?4N!^IbXj7{;EX&>Wdd# b?gYL9J50aG%m=c=00000NkvXXu0mjf!%!r! delta 1133 zcmV-z1d{v63g8N`0|9?XNklLq zimwrjDAx#q?Q7EhKw#v9vno*S3`vR0Xw??Uypta_GjE5x1|CIfh4{bVl+xlGvQKyO z1{KY?$P=(apBCfYT!_*VDu-p3KxM&ISfJsgqB1}Qz)f-lq%nWyf^dK#4yZkD!JKCa zIBT&$0RWezpm7%Sp`n5)G&2Ct_i$kyz^tV+0FxykY-PuUgCo4Ab7lct))Wafn-MO7 zK8MN}jRiF5NtQqol`F?cza-CuC~j8En?3wsyc+3|nIrDBhWYOJd;zyw;(|Azjq6k3 zwkddp3f>wAXMKMPESiVx#T;`-_`w*g!QB(?2tQolR-Y{}f8}7YGx}Qu{0@vZFM1W& z+yf#w()~`621f+UsOJvu0Nx%`;ADBXe1|zWxaw12@NoY?ZnC>y|K6v7Sj-pmeVoBy zFc^#<1Bd(n#|Qle^Jn_qBce(FpU4-3<<)A02bQZ3qxXNf;C}y~$`>cbJz`%Y9v(@7 zl>blVHvs@I$rUuqNaFYR`~Osa7;r}eQvQFFPn_HbPhjIMX^V{@4ru&8F;b2H_w(Q2 z&!2hugFC$OJ7HH#xdL}Ah+Ut;XPbv=B#v8u_Gma%xZCKG| z->;4L>+MLNqMk212yEkndPRI|RU&~d9c<%+dc}XGANw~{DoFJ%27|$1 zFuqfGhrIg7l%Cw{A1YWy^eu3GY=NV9aO``4P+Uf}Dzpr>bj=|%1zdEthDcyaS52Ac zX{8>=hAkGLCm%CA5b@Ko3iYKXnI#zv27|$1Fc^&g66f0;jQHAv4qgu@xdOV~BI&TN zR&{^am-1l$`7KfrUn0}N+86i#pz0&6P%X48Dpi(~ z-UVu-5jlc@LOYYf#_#e$sPQl0Z2mtBE6`1rbAnH#a zTk==$Gt{*3^tmNZM|g@D3>yr&;-#hs{gf2}YH!!c z;nzjP1cum}SVP4l?}C`pH(W@Ewmpi-zGGeD8YMluXCo&ID_TQhy~2cUnJxjW_ev2H z9Nkm?8#F8yjJzO3P0{Bv%=WLS^zAAsFpYG89|HN@&#wH9CF`FBRJa3G`vRU_H-2Sy z@XnGTL|mi$6fP*JU7z}g4^{Y7SU-je1a^79z;*ae6lp#Z{`0SsmVEkiB0Q)H#Vfox z*d#~3E0E`(3IF8}RP*Ue5U*+!ufBN6^;Y03Q+&aTA8TND00000NkvXXu0mjf(w8Fa