diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm index 1841ac52b5..8d0547d2c5 100644 --- a/code/modules/surgery/bodyparts/bodyparts.dm +++ b/code/modules/surgery/bodyparts/bodyparts.dm @@ -295,6 +295,7 @@ var/datum/species/S = H.dna.species species_id = S.limbs_id + should_draw_citadel = S.should_draw_citadel // Citadel Addition species_flags_list = H.dna.species.species_traits if(S.use_skintones) @@ -396,7 +397,7 @@ limb.icon_state = "[species_id]_[body_zone]" // Citadel Start - if(should_draw_citadel) + if(should_draw_citadel && !use_digitigrade) limb.icon = 'modular_citadel/icons/mob/mutant_bodyparts.dmi' if(should_draw_gender) limb.icon_state = "[species_id]_[body_zone]_[icon_gender]" diff --git a/modular_citadel/code/modules/mob/living/carbon/human/species.dm b/modular_citadel/code/modules/mob/living/carbon/human/species.dm index 232725e320..1dd6276140 100644 --- a/modular_citadel/code/modules/mob/living/carbon/human/species.dm +++ b/modular_citadel/code/modules/mob/living/carbon/human/species.dm @@ -1,3 +1,6 @@ +/datum/species + var/should_draw_citadel = FALSE + /datum/species/proc/alt_spec_attack_hand(mob/living/carbon/human/M, mob/living/carbon/human/H, datum/martial_art/attacker_style) if(!istype(M)) return TRUE @@ -78,17 +81,8 @@ //////////////////// -/obj/item/bodypart/var/should_draw_citadel = FALSE - -/mob/living/carbon/proc/draw_citadel_parts(undo = FALSE) - if(!undo) - for(var/O in bodyparts) - var/obj/item/bodypart/B = O - B.should_draw_citadel = TRUE - else - for(var/O in bodyparts) - var/obj/item/bodypart/B = O - B.should_draw_citadel = FALSE +/obj/item/bodypart + var/should_draw_citadel = FALSE /datum/species/proc/citadel_mutant_bodyparts(bodypart, mob/living/carbon/human/H) switch(bodypart) diff --git a/modular_citadel/code/modules/mob/living/carbon/human/species_types/furrypeople.dm b/modular_citadel/code/modules/mob/living/carbon/human/species_types/furrypeople.dm index d7124d949c..16c5460174 100644 --- a/modular_citadel/code/modules/mob/living/carbon/human/species_types/furrypeople.dm +++ b/modular_citadel/code/modules/mob/living/carbon/human/species_types/furrypeople.dm @@ -2,6 +2,7 @@ name = "Mammal" id = "mammal" default_color = "4B4B4B" + should_draw_citadel = TRUE species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR) inherent_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) mutant_bodyparts = list("mam_tail", "mam_ears", "mam_body_markings", "snout", "taur", "legs") @@ -45,20 +46,13 @@ /datum/species/mammal/qualifies_for_rank(rank, list/features) return TRUE -/datum/species/mammal/on_species_gain(mob/living/carbon/human/C) - C.draw_citadel_parts() - . = ..() - -/datum/species/mammal/on_species_loss(mob/living/carbon/human/C) - C.draw_citadel_parts(TRUE) - . = ..() - //AVIAN// /datum/species/avian name = "Avian" id = "avian" say_mod = "chirps" default_color = "BCAC9B" + should_draw_citadel = TRUE species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR) inherent_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) mutant_bodyparts = list("snout", "wings", "taur", "mam_tail", "mam_body_markings", "taur") @@ -99,19 +93,12 @@ /datum/species/avian/qualifies_for_rank(rank, list/features) return TRUE -/datum/species/avian/on_species_gain(mob/living/carbon/human/C) - C.draw_citadel_parts() - . = ..() - -/datum/species/avian/on_species_loss(mob/living/carbon/human/C) - C.draw_citadel_parts(TRUE) - . = ..() - //AQUATIC// /datum/species/aquatic name = "Aquatic" id = "aquatic" default_color = "BCAC9B" + should_draw_citadel = TRUE species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR) inherent_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) mutant_bodyparts = list("mam_tail", "mam_body_markings", "mam_ears", "taur", "legs") @@ -153,19 +140,12 @@ /datum/species/aquatic/qualifies_for_rank(rank, list/features) return TRUE -/datum/species/aquatic/on_species_gain(mob/living/carbon/human/C) - C.draw_citadel_parts() - . = ..() - -/datum/species/aquatic/on_species_loss(mob/living/carbon/human/C) - C.draw_citadel_parts(TRUE) - . = ..() - //INSECT// /datum/species/insect name = "Insect" id = "insect" default_color = "BCAC9B" + should_draw_citadel = TRUE species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR) inherent_biotypes = list(MOB_ORGANIC, MOB_HUMANOID, MOB_BUG) mutant_bodyparts = list("mam_body_markings", "mam_ears", "mam_tail", "taur", "moth_wings") @@ -206,14 +186,6 @@ /datum/species/insect/qualifies_for_rank(rank, list/features) return TRUE -/datum/species/insect/on_species_gain(mob/living/carbon/human/C) - C.draw_citadel_parts() - . = ..() - -/datum/species/insect/on_species_loss(mob/living/carbon/human/C) - C.draw_citadel_parts(TRUE) - . = ..() - //Alien// /datum/species/xeno // A cloning mistake, crossing human and xenomorph DNA @@ -221,6 +193,7 @@ id = "xeno" say_mod = "hisses" default_color = "00FF00" + should_draw_citadel = TRUE species_traits = list(MUTCOLORS,EYECOLOR,LIPS,DIGITIGRADE) inherent_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) mutant_bodyparts = list("xenotail", "xenohead", "xenodorsal", "taur", "mam_body_markings") @@ -235,7 +208,6 @@ liked_food = MEAT /datum/species/xeno/on_species_gain(mob/living/carbon/human/C, datum/species/old_species) - C.draw_citadel_parts() if(("legs" in C.dna.species.mutant_bodyparts) && C.dna.features["legs"] == "Digitigrade Legs") species_traits += DIGITIGRADE if(DIGITIGRADE in species_traits) @@ -243,7 +215,6 @@ . = ..() /datum/species/xeno/on_species_loss(mob/living/carbon/human/C, datum/species/new_species) - C.draw_citadel_parts(TRUE) if(("legs" in C.dna.species.mutant_bodyparts) && C.dna.features["legs"] == "Normal Legs") species_traits -= DIGITIGRADE if(DIGITIGRADE in species_traits) diff --git a/modular_citadel/code/modules/mob/living/carbon/human/species_types/ipc.dm b/modular_citadel/code/modules/mob/living/carbon/human/species_types/ipc.dm index 08d9d73f00..bbbe863ec2 100644 --- a/modular_citadel/code/modules/mob/living/carbon/human/species_types/ipc.dm +++ b/modular_citadel/code/modules/mob/living/carbon/human/species_types/ipc.dm @@ -3,6 +3,7 @@ id = "ipc" say_mod = "beeps" default_color = "00FF00" + should_draw_citadel = TRUE blacklisted = 0 sexes = 0 species_traits = list(MUTCOLORS,NOEYES,NOTRANSSTING) @@ -16,14 +17,12 @@ var/datum/action/innate/monitor_change/screen /datum/species/ipc/on_species_gain(mob/living/carbon/human/C) - C.draw_citadel_parts() if(isipcperson(C) && !screen) screen = new screen.Grant(C) ..() /datum/species/ipc/on_species_loss(mob/living/carbon/human/C) - C.draw_citadel_parts(TRUE) if(screen) screen.Remove(C) ..() diff --git a/modular_citadel/code/modules/mob/living/carbon/human/species_types/jellypeople.dm b/modular_citadel/code/modules/mob/living/carbon/human/species_types/jellypeople.dm index 59c4bc5ef1..d188b43083 100644 --- a/modular_citadel/code/modules/mob/living/carbon/human/species_types/jellypeople.dm +++ b/modular_citadel/code/modules/mob/living/carbon/human/species_types/jellypeople.dm @@ -6,6 +6,7 @@ /datum/species/jelly/roundstartslime name = "Slimeperson" id = "slimeperson" + limbs_id = "slime" default_color = "00FFFF" species_traits = list(MUTCOLORS,EYECOLOR,HAIR,FACEHAIR,NOBLOOD) inherent_traits = list(TRAIT_TOXINLOVER) @@ -19,14 +20,6 @@ heatmod = 1 burnmod = 1 -/datum/species/jelly/roundstartslime/on_species_gain(mob/living/carbon/human/C) - C.draw_citadel_parts() - . = ..() - -/datum/species/jelly/roundstartslime/on_species_loss(mob/living/carbon/human/C) - C.draw_citadel_parts(TRUE) - . = ..() - /datum/action/innate/slime_change name = "Alter Form" check_flags = AB_CHECK_CONSCIOUS diff --git a/modular_citadel/icons/mob/mutant_bodyparts.dmi b/modular_citadel/icons/mob/mutant_bodyparts.dmi index 8f3bfb3b87..7dcff09747 100644 Binary files a/modular_citadel/icons/mob/mutant_bodyparts.dmi and b/modular_citadel/icons/mob/mutant_bodyparts.dmi differ