From 1015987d1223e59f91c3db986a056b6bacc6f097 Mon Sep 17 00:00:00 2001 From: Jerry Wester Date: Thu, 6 Oct 2022 23:38:16 -0600 Subject: [PATCH] driderman, driderman, does whatever a spider can --- code/__DEFINES/inventory.dm | 3 ++- .../sprite_accessories/legs_and_taurs.dm | 1 + .../human/innate_abilities/customization.dm | 15 ++++++++++++++- code/modules/mob/living/carbon/human/species.dm | 13 +++++++++++++ .../living/carbon/human/species_types/arachnid.dm | 4 ---- 5 files changed, 30 insertions(+), 6 deletions(-) diff --git a/code/__DEFINES/inventory.dm b/code/__DEFINES/inventory.dm index 6c83a46514..344ccc1b9b 100644 --- a/code/__DEFINES/inventory.dm +++ b/code/__DEFINES/inventory.dm @@ -103,11 +103,12 @@ #define STYLE_SNEK_TAURIC (1<<2) //taur-friendly suits #define STYLE_PAW_TAURIC (1<<3) #define STYLE_HOOF_TAURIC (1<<4) -#define STYLE_ALL_TAURIC (STYLE_SNEK_TAURIC|STYLE_PAW_TAURIC|STYLE_HOOF_TAURIC) +#define STYLE_ALL_TAURIC (STYLE_SNEK_TAURIC|STYLE_PAW_TAURIC|STYLE_HOOF_TAURIC|STYLE_ARACHNID_TAURIC) #define STYLE_NO_ANTHRO_ICON (1<<5) //When digis fit the default sprite fine and need no copypasted states. This is the case of skirts and winter coats, for example. #define USE_SNEK_CLIP_MASK (1<<6) #define USE_QUADRUPED_CLIP_MASK (1<<7) #define USE_TAUR_CLIP_MASK (USE_SNEK_CLIP_MASK|USE_QUADRUPED_CLIP_MASK) +#define STYLE_ARACHNID_TAURIC (1<<8) //digitigrade legs settings. #define NOT_DIGITIGRADE 0 diff --git a/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm b/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm index 11fde50a37..843082265e 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm @@ -97,6 +97,7 @@ icon_state = "drider" color_src = MUTCOLORS extra = TRUE + taur_mode = STYLE_ARACHNID_TAURIC /datum/sprite_accessory/taur/eevee name = "Eevee" diff --git a/code/modules/mob/living/carbon/human/innate_abilities/customization.dm b/code/modules/mob/living/carbon/human/innate_abilities/customization.dm index 621dc58650..59786c9200 100644 --- a/code/modules/mob/living/carbon/human/innate_abilities/customization.dm +++ b/code/modules/mob/living/carbon/human/innate_abilities/customization.dm @@ -116,7 +116,7 @@ if(new_snout) H.dna.features["mam_snouts"] = new_snout H.update_body() - + else if (select_alteration == "Wings") var/new_color = input(owner, "Choose your wing color:", "Race change","#"+H.dna.features["wings_color"]) as color|null if(new_color) @@ -167,6 +167,10 @@ H.dna.features["mam_tail"] = new_tail if(new_tail != "None") H.dna.features["taur"] = "None" + var/datum/action/innate/spin_web/SW = locate(/datum/action/innate/spin_web) in H.actions + var/datum/action/innate/spin_cocoon/SC = locate(/datum/action/innate/spin_cocoon) in H.actions + SC?.Remove(H) + SW?.Remove(H) H.update_body() else if (select_alteration == "Taur body") @@ -182,7 +186,16 @@ var/new_taur new_taur = input(owner, "Choose your character's tauric body:", "Tauric Alteration") as null|anything in snowflake_taur_list if(new_taur) + var/datum/action/innate/spin_web/SW = locate(/datum/action/innate/spin_web) in H.actions + var/datum/action/innate/spin_cocoon/SC = locate(/datum/action/innate/spin_cocoon) in H.actions + SC?.Remove(H) + SW?.Remove(H) H.dna.features["taur"] = new_taur + if(new_taur == "Drider") + SW = new + SC = new + SC.Grant(H) + SW.Grant(H) if(new_taur != "None") H.dna.features["mam_tail"] = "None" H.update_body() diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index afceabf2a6..8855137c99 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -527,6 +527,12 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) H.physiology.footstep_type = FOOTSTEP_MOB_CLAW if(STYLE_SNEK_TAURIC) H.physiology.footstep_type = FOOTSTEP_MOB_CRAWL + if(STYLE_ARACHNID_TAURIC) + if(!istype(H.dna.species,/datum/species/arachnid)) + var/datum/action/innate/spin_web/SW = new + var/datum/action/innate/spin_cocoon/SC = new + SC.Grant(H) + SW.Grant(H) else H.physiology.footstep_type = null else @@ -602,6 +608,13 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if((TRAIT_ROBOTIC_ORGANISM in inherent_traits) && C.hud_used) C.hud_used.coolant_display.clear() + if(ishuman(C)) + var/mob/living/carbon/human/H = C + var/datum/action/innate/spin_web/SW = locate(/datum/action/innate/spin_web) in H.actions + var/datum/action/innate/spin_cocoon/SC = locate(/datum/action/innate/spin_cocoon) in H.actions + SC?.Remove(H) + SW?.Remove(H) + SEND_SIGNAL(C, COMSIG_SPECIES_LOSS, src) // shamelessly inspired by antag_datum.remove_blacklisted_quirks() diff --git a/code/modules/mob/living/carbon/human/species_types/arachnid.dm b/code/modules/mob/living/carbon/human/species_types/arachnid.dm index 7495e2500e..5358f9fee5 100644 --- a/code/modules/mob/living/carbon/human/species_types/arachnid.dm +++ b/code/modules/mob/living/carbon/human/species_types/arachnid.dm @@ -54,10 +54,6 @@ /datum/species/arachnid/on_species_loss(mob/living/carbon/human/H) . = ..() - var/datum/action/innate/spin_web/SW = locate(/datum/action/innate/spin_web) in H.actions - var/datum/action/innate/spin_cocoon/SC = locate(/datum/action/innate/spin_cocoon) in H.actions - SC?.Remove(H) - SW?.Remove(H) /datum/action/innate/spin_web name = "Spin Web"