From a2f2e18be3f9a6b4682df524185ffd58319641cd Mon Sep 17 00:00:00 2001 From: MilkForever <96450841+MilkForever@users.noreply.github.com> Date: Wed, 27 Dec 2023 14:56:27 -0400 Subject: [PATCH] Arachnids part 7 Slight modification of bodypart sprites and chelicerae. Modified species and perk descriptions. Vegetables are okay to eat now but seafood is whatever. Arachnids now click their mandibles in the *click emote. Eyewear slot now properly gets greyed out if you have arachnid eyes. Appendages no longer have moth antennae sprites while in obj form. Removed Brute and Burn damage modifiers. --- code/__DEFINES/is_helpers.dm | 1 + code/datums/emotes.dm | 2 +- .../carbon/human/species_type/arachnid.dm | 16 ++++++-------- monkestation/code/modules/mob/living/emote.dm | 2 +- .../organs/external/appendages/appendages.dm | 1 - .../organs/external/chelicerae/chelicerae.dm | 2 +- .../modules/surgery/organs/internal/eyes.dm | 20 ++++++++++++++++++ .../species/arachnid/arachnid_chelicerae.dmi | Bin 321 -> 293 bytes .../icons/mob/species/arachnid/bodyparts.dmi | Bin 1169 -> 1185 bytes 9 files changed, 31 insertions(+), 13 deletions(-) diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index 4f139d26e5aa..dd8b341bee6d 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -100,6 +100,7 @@ GLOBAL_LIST_INIT(turfs_openspace, typecacheof(list( #define isipc(A) (is_species(A, /datum/species/ipc)) #define isgoblin(A) (is_species(A, /datum/species/goblin)) //Monkestation Addition #define isfloran(A) (is_species(A, /datum/species/floran)) //Monkestation Addition +#define isarachnid(A) (is_species(A, /datum/species/arachnid)) //Monkestation Addition //More carbon mobs diff --git a/code/datums/emotes.dm b/code/datums/emotes.dm index 89596951b2c2..8dc6919c7a16 100644 --- a/code/datums/emotes.dm +++ b/code/datums/emotes.dm @@ -204,7 +204,7 @@ . = message_monkey // Monkestation Edit start - else if((ismoth(user) || isflyperson(user) || istype(user, /mob/living/basic/mothroach)) && message_insect) + else if((ismoth(user) || isflyperson(user) || isarachnid(user) || istype(user, /mob/living/basic/mothroach)) && message_insect) . = message_insect else if(isipc(user) && message_ipc) . = message_ipc diff --git a/monkestation/code/modules/mob/living/carbon/human/species_type/arachnid.dm b/monkestation/code/modules/mob/living/carbon/human/species_type/arachnid.dm index d6860598873e..4bd428ad34ec 100644 --- a/monkestation/code/modules/mob/living/carbon/human/species_type/arachnid.dm +++ b/monkestation/code/modules/mob/living/carbon/human/species_type/arachnid.dm @@ -14,15 +14,13 @@ /obj/item/organ/external/arachnid_appendages = "long", /obj/item/organ/external/chelicerae = "basic") meat = /obj/item/food/meat/slab/spider - disliked_food = VEGETABLES - liked_food = GORE | MEAT | SEAFOOD | BUGS | GROSS + disliked_food = NONE // Okay listen, i don't actually know what irl spiders don't like to eat and i'm pretty tired of looking for answers. + liked_food = GORE | MEAT | BUGS | GROSS species_language_holder = /datum/language_holder/fly mutanttongue = /obj/item/organ/internal/tongue/arachnid mutanteyes = /obj/item/organ/internal/eyes/night_vision/arachnid - burnmod = 1.2 - heatmod = 1.2 - brutemod = 0.8 speedmod = -0.1 + inherent_factions = list(FACTION_SPIDER) bodypart_overrides = list( BODY_ZONE_HEAD = /obj/item/bodypart/head/arachnid, BODY_ZONE_CHEST = /obj/item/bodypart/chest/arachnid, @@ -60,7 +58,7 @@ return 'monkestation/sound/voice/laugh/arachnid/arachnid_laugh.ogg' /datum/species/arachnid/get_species_description() - return "Arachnids are a species of humanoid spiders recently employed by Nanotrasen." + return "Arachnids are a species of humanoid spiders employed by Nanotrasen in recent years." // Allan please add details /datum/species/arachnid/create_pref_unique_perks() var/list/to_add = list() @@ -70,7 +68,7 @@ SPECIES_PERK_TYPE = SPECIES_POSITIVE_PERK, SPECIES_PERK_ICON = "bolt", SPECIES_PERK_NAME = "Agile", - SPECIES_PERK_DESC = "Arachnids run slightly faster than other species.", + SPECIES_PERK_DESC = "Arachnids run slightly faster than other species, but are still outpaced by Goblins.", ), list( SPECIES_PERK_TYPE = SPECIES_NEUTRAL_PERK, @@ -80,10 +78,10 @@ or MODsuits. This can make concealing your identity harder.", ), list( - SPECIES_PERK_TYPE = SPECIES_NEUTRAL_PERK, + SPECIES_PERK_TYPE = SPECIES_NEGATIVE_PERK, SPECIES_PERK_ICON = "sun", SPECIES_PERK_NAME = "Maybe Too Many Eyes", - SPECIES_PERK_DESC = "Arachnids cannot equip any kind of glasses, requiring \ + SPECIES_PERK_DESC = "Arachnids cannot equip any kind of eyewear, requiring \ alternatives like welding helmets or implants. Their eyes have night vision however.", ), ) diff --git a/monkestation/code/modules/mob/living/emote.dm b/monkestation/code/modules/mob/living/emote.dm index 38bb8760ffdd..d86c0ee991af 100644 --- a/monkestation/code/modules/mob/living/emote.dm +++ b/monkestation/code/modules/mob/living/emote.dm @@ -6,7 +6,7 @@ message_insect = "clicks their mandibles." /datum/emote/living/click/get_sound(mob/living/user) - if(ismoth(user) || isflyperson(user) || istype(user, /mob/living/basic/mothroach)) + if(ismoth(user) || isflyperson(user) || isarachnid(user) || istype(user, /mob/living/basic/mothroach)) return 'monkestation/sound/creatures/rattle.ogg' else if(isipc(user)) return 'sound/machines/click.ogg' diff --git a/monkestation/code/modules/surgery/organs/external/appendages/appendages.dm b/monkestation/code/modules/surgery/organs/external/appendages/appendages.dm index ed576c6dadd7..1a33ddb33101 100644 --- a/monkestation/code/modules/surgery/organs/external/appendages/appendages.dm +++ b/monkestation/code/modules/surgery/organs/external/appendages/appendages.dm @@ -1,7 +1,6 @@ /obj/item/organ/external/arachnid_appendages name = "arachnid appendages" desc = "Extra legs that go on your back, don't actually work for walking sadly." - icon_state = "antennae" preference = "feature_arachnid_appendages" zone = BODY_ZONE_CHEST diff --git a/monkestation/code/modules/surgery/organs/external/chelicerae/chelicerae.dm b/monkestation/code/modules/surgery/organs/external/chelicerae/chelicerae.dm index 95a3c24671e7..e2ab67da7941 100644 --- a/monkestation/code/modules/surgery/organs/external/chelicerae/chelicerae.dm +++ b/monkestation/code/modules/surgery/organs/external/chelicerae/chelicerae.dm @@ -10,7 +10,7 @@ bodypart_overlay = /datum/bodypart_overlay/mutant/arachnid_chelicerae /datum/bodypart_overlay/mutant/arachnid_chelicerae - layers = EXTERNAL_FRONT | EXTERNAL_BEHIND + layers = EXTERNAL_ADJACENT feature_key = "arachnid_chelicerae" /datum/bodypart_overlay/mutant/arachnid_chelicerae/get_global_feature_list() diff --git a/monkestation/code/modules/surgery/organs/internal/eyes.dm b/monkestation/code/modules/surgery/organs/internal/eyes.dm index b9f478525ec3..e43b251973a0 100644 --- a/monkestation/code/modules/surgery/organs/internal/eyes.dm +++ b/monkestation/code/modules/surgery/organs/internal/eyes.dm @@ -16,6 +16,26 @@ medium_light_cutoff = list(35, 30, 0) high_light_cutoff = list(50, 40, 0) +/obj/item/organ/internal/eyes/night_vision/arachnid/on_insert(mob/living/carbon/tongue_owner) + . = ..() + if(!ishuman(tongue_owner)) + return + var/mob/living/carbon/human/human_receiver = tongue_owner + if(!human_receiver.can_mutate()) + return + var/datum/species/rec_species = human_receiver.dna.species + rec_species.update_no_equip_flags(tongue_owner, rec_species.no_equip_flags | ITEM_SLOT_EYES) + +/obj/item/organ/internal/eyes/night_vision/arachnid/on_remove(mob/living/carbon/tongue_owner) + . = ..() + if(!ishuman(tongue_owner)) + return + var/mob/living/carbon/human/human_receiver = tongue_owner + if(!human_receiver.can_mutate()) + return + var/datum/species/rec_species = human_receiver.dna.species + rec_species.update_no_equip_flags(tongue_owner, initial(rec_species.no_equip_flags)) + /obj/item/organ/internal/eyes/floran name = "phytoid eyes" desc = "They look like big berries..." diff --git a/monkestation/icons/mob/species/arachnid/arachnid_chelicerae.dmi b/monkestation/icons/mob/species/arachnid/arachnid_chelicerae.dmi index 2a9e71a1af2f65dda7aa25060e4990638d7c6453..05bc6a444eb8e636426afdd90211af9ad7afe307 100644 GIT binary patch literal 293 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0L3?#3!&-4XSoB=)|t_Kbr$jGei>YjUV$)iA^ zAY)08UoeBivm0qZPE%D#M2SmkadJ^+K}lwQ9s@(g9M#_4e1{Bp7@q&oUQ_12=NjLF zkQE+Z#FfkqZwTp55a)LxjgCK{Zf+MSw^#%vlpr8v^x>zop3|yQbz>u-4pn*GOQGkO2 n>$Kz;Ch>$;jvh5(DMp67Z&~JFxA5EpG>5^{)z4*}Q$iB}JSlJh literal 321 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeG3?%1&o4*=J@dWsUxE?rgAS1K3t9vex@$T=7 zETA}JNswPKgTu2MX+TbYRY*jMOKNd)QD#9&W_}(6L&colzTI3*h5`()--PRw@BNXL z+vnn&$g+_?d($k|_bnE#p=6HZNb4qc%J zwS%u5T+4f#0u2}rFit(qab8~X1y|$(t!WPoIt6X3dw>#LZU;3Sm>G7qvBX*O-tYjL O$>8bg=d#Wzp$PyYaehhw diff --git a/monkestation/icons/mob/species/arachnid/bodyparts.dmi b/monkestation/icons/mob/species/arachnid/bodyparts.dmi index b8f896694b96aac5dc1954c0783382c1bda4ac76..6c9d2616622c781f92805fae7d84b13d9b7d9478 100644 GIT binary patch delta 942 zcmV;f15x~u384wF0s()DNkl;Yre z1U)KbvdG|7Xoc(vi+ixQ$2}}$)Yt%1N=c~LT95^TTqrfe?^Az*HK%kI)D8QXB_Pl_9nR<9u8@9{y3*xWeC37r|kLN!$U9~J2D`+WC*_6r|dnD zhv~S31HqgZ_gDLrJ>+2z9#VD|G)8q5w7D#>)aYa5ClOG1VIqrpTQ=>3|#qWn8iFSw^TK* zoEj#i4(U~STi2(b;|EKXeUYU1j=7E2O8M>8Yj;ToSfj8OckEVm1#UA2$ z3?61#KkCL@BH6(si_yfHs1=NEBrF(Bepc>&V6h;ci;CtVE1w%vocuAN=i?k)L#FRF zvoy@cSq1`asNhPW7D82d$i{fpe{*oYiU)ZCGv#>`U(T-vEy_ry-W9ee;rn|?5ClPd z4g7zT&;JXLHY`SO*5MY=M^5tmxgh$-fhal(m$4fN!Z-C;&<7s+oaFg)LAdB0=SBD+ z+^Wx<5bzw$k-2aycGd=nb3qjRMCN=X7dzSg3 QVE_OC07*qoM6N<$fGWd|Pg;LDZ+yRxvpVArb;cb^ou0P$BJ640ajjK?$FiE`M0u+|Pxv9+K`1f{mNhu?owf;CIp>)@flDca!% z4Mvv=;_ z3eG56TXh$uOoJUP5SW4w9<-&>rs}FriJw_{ zSUPQxht`d4Jq*slb0pn}msHzuYbxk_bWtqNe!PTHyQYGt`8MC4wdD*?F~cwn!!SRH zrt#Dk0>|_>Y7Fd*1vb~1{hZs=;{XCk@tZQ>*N@T{EXRKuy>z)fGpbckI8xB9A*J*M zKWoF~apWcY(s-rTWpd>F&3c%G;q6zf;|Y6a0884@=B9N`r7aMAjHm2P8Z2o?$BqIB zjs=2`@szzg@{kVYBoM?|9h%2@%HE_DN^`uN2t7Q4$#{FHpbWO;v@{g-L(`CWn;FM* z48t%C!!Unu!ofePmYD5!tl)ICpgdgA9xZ5&7Ssm|0=f@6<_BqwWIK}Fx9>gGOA7i6 z)ja?M6OO7oYP>BL6!fOQhJyGpL3*gmck=1#AbA0wZ`)SHp}94NVHk#C7=~fqpDvJL z2JXB!tYYrQ3)PJ~O~Z1{j^35Wov~$oXo;H;_k#r%7IH5joEvh;4}h&{Z&hYZ6o z%)fs@e)0KLOz4Hh&9dryN%8!1LG+IUTb1gffgt>)zA1Q`N{Z(9QMBL$-2eap07*qoM6N<$f=VIC Ab^rhX