diff --git a/code/__DEFINES/inventory.dm b/code/__DEFINES/inventory.dm index 74b5ef0396..03cfde802f 100644 --- a/code/__DEFINES/inventory.dm +++ b/code/__DEFINES/inventory.dm @@ -99,6 +99,7 @@ #define HIDEFACIALHAIR (1<<9) #define HIDENECK (1<<10) #define HIDETAUR (1<<11) //gotta hide that snowflake +#define HIDESNOUT (1<<12) //or do we actually hide our snoots //bitflags for clothing coverage - also used for limbs #define HEAD (1<<0) @@ -131,11 +132,17 @@ #define NORMAL_SUIT_STYLE 0 #define DIGITIGRADE_SUIT_STYLE 1 +//Tauric Specific suits #define NOT_TAURIC 0 #define SNEK_TAURIC 1 #define PAW_TAURIC 2 #define HOOF_TAURIC 3 +//Helmets/masks for muzzles or beaks +#define NORMAL_FACED 0 +#define MUZZLE_FACED 1 +#define BEAKED_FACED 2 + //flags for outfits that have mutantrace variants (try not to use this): Currently only needed if you're trying to add tight fitting bootyshorts #define NO_MUTANTRACE_VARIATION 0 #define MUTANTRACE_VARIATION 1 diff --git a/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm b/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm index 8411fe9bc9..277aeca48d 100644 --- a/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm +++ b/code/modules/antagonists/clockcult/clock_items/clockwork_armor.dm @@ -6,7 +6,8 @@ icon_state = "clockwork_helmet" w_class = WEIGHT_CLASS_NORMAL resistance_flags = FIRE_PROOF | ACID_PROOF - flags_inv = HIDEEARS|HIDEHAIR|HIDEFACE + flags_inv = HIDEEARS|HIDEHAIR|HIDEFACE|HIDESNOUT + mutantrace_variation = MUTANTRACE_VARIATION armor = list("melee" = 50, "bullet" = 70, "laser" = -25, "energy" = 0, "bomb" = 60, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100) /obj/item/clothing/head/helmet/clockwork/Initialize() diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm index c582d0f8f2..0a949174b0 100644 --- a/code/modules/antagonists/cult/cult_items.dm +++ b/code/modules/antagonists/cult/cult_items.dm @@ -319,9 +319,10 @@ icon_state = "magus" item_state = "magus" desc = "A helm worn by the followers of Nar'Sie." - flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDEEARS|HIDEEYES + flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDEEARS|HIDEEYES|HIDESNOUT armor = list("melee" = 30, "bullet" = 30, "laser" = 30,"energy" = 20, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 10, "acid" = 10) flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH + mutantrace_variation = MUTANTRACE_VARIATION /obj/item/clothing/suit/magusred name = "magus robes" diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 446fe13d37..bb3a4442b3 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -1584,6 +1584,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) new_snout = input(user, "Choose your character's snout:", "Character Preference") as null|anything in snowflake_snouts_list if(new_snout) features["snout"] = new_snout + features["mam_snouts"] = "None" + if("mam_snouts") var/list/snowflake_mam_snouts_list = list() @@ -1597,6 +1599,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) new_mam_snouts = input(user, "Choose your character's snout:", "Character Preference") as null|anything in snowflake_mam_snouts_list if(new_mam_snouts) features["mam_snouts"] = new_mam_snouts + features["snout"] = "None" if("horns") var/new_horns diff --git a/code/modules/clothing/head/_head.dm b/code/modules/clothing/head/_head.dm index 6a3082b558..f47361e794 100644 --- a/code/modules/clothing/head/_head.dm +++ b/code/modules/clothing/head/_head.dm @@ -8,6 +8,8 @@ var/blockTracking = 0 //For AI tracking var/can_toggle = null dynamic_hair_suffix = "+generic" + var/muzzle_var = NORMAL_STYLE + mutantrace_variation = NO_MUTANTRACE_VARIATION //not all hats have muzzles /obj/item/clothing/head/Initialize() . = ..() @@ -15,6 +17,25 @@ var/mob/living/carbon/human/H = loc H.update_hair() +/obj/item/clothing/head/equipped(mob/user, slot) + ..() + if(ishuman(user)) + var/mob/living/carbon/human/H = user + var/datum/species/pref_species = H.dna.species + + if(mutantrace_variation) + if("mam_snouts" in pref_species.default_features) + if(H.dna.features["mam_snouts"] != "None") + muzzle_var = ALT_STYLE + + else if("snout" in pref_species.default_features) + if(H.dna.features["snout"] != "None") + muzzle_var = ALT_STYLE + + else + muzzle_var = NORMAL_STYLE + H.update_inv_head() + /obj/item/clothing/head/worn_overlays(isinhands = FALSE) . = list() if(!isinhands) diff --git a/code/modules/clothing/head/hardhat.dm b/code/modules/clothing/head/hardhat.dm index 69d6fe545e..9d38b73cd3 100644 --- a/code/modules/clothing/head/hardhat.dm +++ b/code/modules/clothing/head/hardhat.dm @@ -79,8 +79,9 @@ name = "atmospheric technician's firefighting helmet" desc = "A firefighter's helmet, able to keep the user cool in any situation." clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL | BLOCK_GAS_SMOKE_EFFECT - flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT heat_protection = HEAD max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT cold_protection = HEAD min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT + mutantrace_variation = MUTANTRACE_VARIATION diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index ab9ffb9b18..8ffcc6eea7 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -74,6 +74,7 @@ flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH visor_flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH dog_fashion = null + mutantrace_variation = MUTANTRACE_VARIATION /obj/item/clothing/head/helmet/attack_self(mob/user) if(can_toggle && !user.incapacitated()) @@ -210,10 +211,11 @@ icon_state = "knight_green" item_state = "knight_green" armor = list("melee" = 41, "bullet" = 15, "laser" = 5,"energy" = 5, "bomb" = 5, "bio" = 2, "rad" = 0, "fire" = 0, "acid" = 50) - flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH strip_delay = 80 dog_fashion = null + mutantrace_variation = MUTANTRACE_VARIATION /obj/item/clothing/head/helmet/knight/Initialize(mapload) @@ -242,6 +244,7 @@ icon_state = "skull" item_state = "skull" strip_delay = 100 + mutantrace_variation = MUTANTRACE_VARIATION //LightToggle diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm index 281a48bfda..d9c151a47b 100644 --- a/code/modules/clothing/head/misc.dm +++ b/code/modules/clothing/head/misc.dm @@ -65,7 +65,8 @@ icon_state = "syndicate-helm-black-red" item_state = "syndicate-helm-black-red" desc = "A plastic replica of a Syndicate agent's space helmet. You'll look just like a real murderous Syndicate agent in this! This is a toy, it is not made for use in space!" - flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT + mutantrace_variation = MUTANTRACE_VARIATION /obj/item/clothing/head/cueball name = "cueball helmet" @@ -73,7 +74,7 @@ icon_state = "cueball" item_state="cueball" flags_cover = HEADCOVERSEYES|HEADCOVERSMOUTH - flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT /obj/item/clothing/head/snowman name = "Snowman Head" @@ -81,14 +82,14 @@ icon_state = "snowman_h" item_state = "snowman_h" flags_cover = HEADCOVERSEYES - flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT /obj/item/clothing/head/justice name = "justice hat" desc = "Fight for what's righteous!" icon_state = "justicered" item_state = "justicered" - flags_inv = HIDEHAIR|HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR + flags_inv = HIDEHAIR|HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR|HIDESNOUT flags_cover = HEADCOVERSEYES /obj/item/clothing/head/justice/blue @@ -159,14 +160,14 @@ desc = "Bkaw!" icon_state = "chickenhead" item_state = "chickensuit" - flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT /obj/item/clothing/head/griffin name = "griffon head" desc = "Why not 'eagle head'? Who knows." icon_state = "griffinhat" item_state = "griffinhat" - flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT /obj/item/clothing/head/bearpelt name = "bear pelt hat" @@ -179,7 +180,7 @@ icon_state = "xenos" item_state = "xenos_helm" desc = "A helmet made out of chitinous alien hide." - flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT /obj/item/clothing/head/fedora name = "fedora" @@ -267,13 +268,13 @@ name = "paper sack hat" desc = "A paper sack with crude holes cut out for eyes. Useful for hiding one's identity or ugliness." icon_state = "papersack" - flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS + flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS|HIDESNOUT /obj/item/clothing/head/papersack/smiley name = "paper sack hat" desc = "A paper sack with crude holes cut out for eyes and a sketchy smile drawn on the front. Not creepy at all." icon_state = "papersack_smile" - flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS + flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS|HIDESNOUT /obj/item/clothing/head/crown name = "crown" @@ -297,7 +298,7 @@ name = "foam lobster head" desc = "When everything's going to crab, protecting your head is the best choice." icon_state = "lobster_hat" - flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT /obj/item/clothing/head/drfreezehat name = "doctor freeze's wig" diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm index 36ba2fa76c..3f96796a00 100644 --- a/code/modules/clothing/head/misc_special.dm +++ b/code/modules/clothing/head/misc_special.dm @@ -28,6 +28,7 @@ visor_flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE visor_flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH resistance_flags = FIRE_PROOF + mutantrace_variation = MUTANTRACE_VARIATION /obj/item/clothing/head/welding/attack_self(mob/user) weldingvisortoggle(user) @@ -113,7 +114,7 @@ icon_state = "hardhat0_pumpkin" item_state = "hardhat0_pumpkin" item_color = "pumpkin" - flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) brightness_on = 2 //luminosity when on flags_cover = HEADCOVERSEYES @@ -163,7 +164,7 @@ icon_state = "cardborg_h" item_state = "cardborg_h" flags_cover = HEADCOVERSEYES - flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT dog_fashion = /datum/dog_fashion/head/cardborg diff --git a/code/modules/clothing/masks/_masks.dm b/code/modules/clothing/masks/_masks.dm index da3e114edd..ea4c9e16b7 100644 --- a/code/modules/clothing/masks/_masks.dm +++ b/code/modules/clothing/masks/_masks.dm @@ -7,6 +7,8 @@ equip_delay_other = 40 var/mask_adjusted = 0 var/adjusted_flags = null + var/muzzle_var = NORMAL_STYLE + mutantrace_variation = NO_MUTANTRACE_VARIATION //most masks have overrides, but not all probably. /obj/item/clothing/mask/worn_overlays(isinhands = FALSE) @@ -18,6 +20,26 @@ IF_HAS_BLOOD_DNA(src) . += mutable_appearance('icons/effects/blood.dmi', "maskblood") +/obj/item/clothing/mask/equipped(mob/user, slot) + ..() + if(ishuman(user)) + var/mob/living/carbon/human/H = user + var/datum/species/pref_species = H.dna.species + + if(mutantrace_variation) + if("mam_snouts" in pref_species.default_features) + if(H.dna.features["mam_snouts"] != "None") + muzzle_var = ALT_STYLE + + else if("snout" in pref_species.default_features) + if(H.dna.features["snout"] != "None") + muzzle_var = ALT_STYLE + else + muzzle_var = NORMAL_STYLE + + H.update_inv_wear_mask() + + /obj/item/clothing/mask/update_clothes_damaged_state(damaging = TRUE) ..() if(ismob(loc)) diff --git a/code/modules/clothing/masks/boxing.dm b/code/modules/clothing/masks/boxing.dm index ad632e1653..c0752d9799 100644 --- a/code/modules/clothing/masks/boxing.dm +++ b/code/modules/clothing/masks/boxing.dm @@ -7,6 +7,7 @@ visor_flags_inv = HIDEFACE|HIDEFACIALHAIR w_class = WEIGHT_CLASS_SMALL actions_types = list(/datum/action/item_action/adjust) + mutantrace_variation = MUTANTRACE_VARIATION /obj/item/clothing/mask/balaclava/attack_self(mob/user) adjustmask(user) @@ -18,6 +19,7 @@ item_state = "luchag" flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR w_class = WEIGHT_CLASS_SMALL + mutantrace_variation = MUTANTRACE_VARIATION /obj/item/clothing/mask/luchador/speechModification(message) if(copytext(message, 1, 2) != "*") diff --git a/code/modules/clothing/masks/breath.dm b/code/modules/clothing/masks/breath.dm index a088a425be..ed0ef27174 100644 --- a/code/modules/clothing/masks/breath.dm +++ b/code/modules/clothing/masks/breath.dm @@ -13,6 +13,7 @@ flags_cover = MASKCOVERSMOUTH visor_flags_cover = MASKCOVERSMOUTH resistance_flags = NONE + mutantrace_variation = MUTANTRACE_VARIATION /obj/item/clothing/mask/breath/suicide_act(mob/living/carbon/user) user.visible_message("[user] is wrapping \the [src]'s tube around [user.p_their()] neck! It looks like [user.p_theyre()] trying to commit suicide!") diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index 56687674b4..bcf3064c49 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -3,13 +3,21 @@ desc = "A face-covering mask that can be connected to an air supply. While good for concealing your identity, it isn't good for blocking gas flow." //More accurate icon_state = "gas_alt" clothing_flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS - flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR + flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR|HIDESNOUT w_class = WEIGHT_CLASS_NORMAL item_state = "gas_alt" gas_transfer_coefficient = 0.01 permeability_coefficient = 0.01 flags_cover = MASKCOVERSEYES | MASKCOVERSMOUTH resistance_flags = NONE + mutantrace_variation = MUTANTRACE_VARIATION + +/obj/item/clothing/mask/gas/glass + name = "glass gas mask" + desc = "A face-covering mask that can be connected to an air supply. This one doesn't obscure your face however." //More accurate + icon_state = "gas_clear" + flags_inv = HIDEEYES + // **** Welding gas mask **** diff --git a/code/modules/clothing/masks/miscellaneous.dm b/code/modules/clothing/masks/miscellaneous.dm index 4cc339a776..9476c50603 100644 --- a/code/modules/clothing/masks/miscellaneous.dm +++ b/code/modules/clothing/masks/miscellaneous.dm @@ -7,6 +7,7 @@ w_class = WEIGHT_CLASS_SMALL gas_transfer_coefficient = 0.9 equip_delay_other = 20 + mutantrace_variation = MUTANTRACE_VARIATION /obj/item/clothing/mask/muzzle/attack_paw(mob/user) if(iscarbon(user)) @@ -30,6 +31,7 @@ permeability_coefficient = 0.01 armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 25, "rad" = 0, "fire" = 0, "acid" = 0) actions_types = list(/datum/action/item_action/adjust) + mutantrace_variation = MUTANTRACE_VARIATION /obj/item/clothing/mask/surgical/attack_self(mob/user) adjustmask(user) @@ -39,6 +41,7 @@ desc = "Warning: moustache is fake." icon_state = "fake-moustache" flags_inv = HIDEFACE + mutantrace_variation = MUTANTRACE_VARIATION /obj/item/clothing/mask/fakemoustache/italian name = "italian moustache" @@ -66,6 +69,7 @@ name = "joy mask" desc = "Express your happiness or hide your sorrows with this laughing face with crying tears of joy cutout." icon_state = "joy" + mutantrace_variation = MUTANTRACE_VARIATION /obj/item/clothing/mask/pig name = "pig mask" @@ -225,6 +229,7 @@ slot_flags = ITEM_SLOT_MASK adjusted_flags = ITEM_SLOT_HEAD icon_state = "bandbotany" + mutantrace_variation = MUTANTRACE_VARIATION /obj/item/clothing/mask/bandana/attack_self(mob/user) adjustmask(user) diff --git a/code/modules/clothing/spacesuits/_spacesuits.dm b/code/modules/clothing/spacesuits/_spacesuits.dm index 913b92f9eb..9d3918ed84 100644 --- a/code/modules/clothing/spacesuits/_spacesuits.dm +++ b/code/modules/clothing/spacesuits/_spacesuits.dm @@ -8,7 +8,7 @@ item_state = "spaceold" permeability_coefficient = 0.01 armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 50, "fire" = 80, "acid" = 70) - flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT dynamic_hair_suffix = "" dynamic_fhair_suffix = "" cold_protection = HEAD @@ -21,6 +21,7 @@ flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH resistance_flags = NONE dog_fashion = null + mutantrace_variation = MUTANTRACE_VARIATION /obj/item/clothing/suit/space name = "space suit" diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index c061d756b7..02982998e1 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -443,6 +443,7 @@ icon_state = "hardsuit0-medical" item_state = "medical_helm" item_color = "medical" + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR flash_protect = 0 armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 10, "bio" = 100, "rad" = 60, "fire" = 60, "acid" = 75) scan_reagents = 1 diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index cd8efd74bf..652c0048c2 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -64,6 +64,7 @@ Contains: strip_delay = 130 max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT resistance_flags = FIRE_PROOF | ACID_PROOF + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/suit/space/officer name = "officer's jacket" @@ -114,6 +115,7 @@ Contains: desc = "Ho ho ho. Merrry X-mas!" icon_state = "santahat" flags_cover = HEADCOVERSEYES + mutantrace_variation = NO_MUTANTRACE_VARIATION dog_fashion = /datum/dog_fashion/head/santa @@ -137,12 +139,14 @@ Contains: strip_delay = 40 equip_delay_other = 20 flags_cover = HEADCOVERSEYES + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/head/helmet/space/pirate/bandana name = "royal bandana" desc = "A space-proof bandanna crafted with reflective kevlar." icon_state = "bandana" item_state = "bandana" + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/suit/space/pirate name = "royal waistcoat " @@ -250,6 +254,7 @@ Contains: strip_delay = 130 max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT resistance_flags = ACID_PROOF | FIRE_PROOF + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/suit/space/freedom name = "eagle suit" @@ -273,6 +278,7 @@ Contains: brightness_on = 0 //luminosity when on actions_types = list() item_flags = NODROP + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/suit/space/hardsuit/carp @@ -295,6 +301,7 @@ Contains: max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT actions_types = list() resistance_flags = FIRE_PROOF + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/suit/space/hardsuit/ert/paranormal name = "paranormal response team suit" @@ -304,6 +311,7 @@ Contains: helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT resistance_flags = FIRE_PROOF + tauric = TRUE //Citadel Add for tauric hardsuits /obj/item/clothing/suit/space/hardsuit/ert/paranormal/Initialize() . = ..() diff --git a/code/modules/clothing/suits/bio.dm b/code/modules/clothing/suits/bio.dm index 6d9a02e05a..5d0a9b9914 100644 --- a/code/modules/clothing/suits/bio.dm +++ b/code/modules/clothing/suits/bio.dm @@ -6,9 +6,10 @@ permeability_coefficient = 0.01 clothing_flags = THICKMATERIAL | BLOCK_GAS_SMOKE_EFFECT armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 60, "fire" = 30, "acid" = 100) - flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR|HIDEFACE + flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR|HIDEFACE|HIDESNOUT resistance_flags = ACID_PROOF flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH + mutantrace_variation = MUTANTRACE_VARIATION /obj/item/clothing/suit/bio_suit name = "bio suit" diff --git a/code/modules/clothing/suits/toggles.dm b/code/modules/clothing/suits/toggles.dm index c7d91604cf..481fbade71 100644 --- a/code/modules/clothing/suits/toggles.dm +++ b/code/modules/clothing/suits/toggles.dm @@ -180,6 +180,7 @@ /obj/item/clothing/suit/space/hardsuit/proc/ToggleHelmet() var/mob/living/carbon/human/H = src.loc + var/datum/species/pref_species = H.dna.species if(!helmettype) return if(!helmet) @@ -193,6 +194,18 @@ to_chat(H, "You're already wearing something on your head!") return else if(H.equip_to_slot_if_possible(helmet,SLOT_HEAD,0,0,1)) + if(helmet.mutantrace_variation) + if("mam_snouts" in pref_species.default_features) + if(H.dna.features["mam_snouts"] != "None") + helmet.muzzle_var = ALT_STYLE + + else if("snout" in pref_species.default_features) + if(H.dna.features["snout"] != "None") + helmet.muzzle_var = ALT_STYLE + else + helmet.muzzle_var = NORMAL_STYLE + H.update_inv_head() + to_chat(H, "You engage the helmet on the hardsuit.") suittoggled = TRUE H.update_inv_wear_suit() diff --git a/code/modules/clothing/suits/utility.dm b/code/modules/clothing/suits/utility.dm index 10ddf37265..d003a20167 100644 --- a/code/modules/clothing/suits/utility.dm +++ b/code/modules/clothing/suits/utility.dm @@ -60,7 +60,7 @@ icon_state = "bombsuit" clothing_flags = THICKMATERIAL armor = list("melee" = 20, "bullet" = 0, "laser" = 20,"energy" = 10, "bomb" = 100, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 50) - flags_inv = HIDEFACE|HIDEMASK|HIDEEARS|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR + flags_inv = HIDEFACE|HIDEMASK|HIDEEARS|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT dynamic_hair_suffix = "" dynamic_fhair_suffix = "" cold_protection = HEAD @@ -71,6 +71,7 @@ equip_delay_other = 70 flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH resistance_flags = NONE + mutantrace_variation = MUTANTRACE_VARIATION /obj/item/clothing/suit/bomb_suit @@ -123,13 +124,14 @@ icon_state = "rad" desc = "A hood with radiation protective properties. The label reads, 'Made with lead. Please do not consume insulation.'" clothing_flags = THICKMATERIAL - flags_inv = HIDEMASK|HIDEEARS|HIDEFACE|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR + flags_inv = HIDEMASK|HIDEEARS|HIDEFACE|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 60, "rad" = 100, "fire" = 30, "acid" = 30) strip_delay = 60 equip_delay_other = 60 flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH resistance_flags = NONE rad_flags = RAD_PROTECT_CONTENTS + mutantrace_variation = MUTANTRACE_VARIATION /obj/item/clothing/suit/radiation name = "radiation suit" diff --git a/code/modules/mining/equipment/explorer_gear.dm b/code/modules/mining/equipment/explorer_gear.dm index 46ae6cfbaf..dec574566f 100644 --- a/code/modules/mining/equipment/explorer_gear.dm +++ b/code/modules/mining/equipment/explorer_gear.dm @@ -122,28 +122,23 @@ /****************SEVA Suit and Mask****************/ -/obj/item/clothing/suit/hooded/seva +/obj/item/clothing/suit/hooded/explorer/seva name = "SEVA Suit" desc = "A fire-proof suit for exploring hot environments." icon_state = "seva" item_state = "seva" w_class = WEIGHT_CLASS_BULKY - body_parts_covered = CHEST|GROIN|LEGS|ARMS max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS - hoodtype = /obj/item/clothing/head/hooded/seva + hoodtype = /obj/item/clothing/head/hooded/explorer/seva armor = list("melee" = 15, "bullet" = 10, "laser" = 10, "energy" = 10, "bomb" = 25, "bio" = 50, "rad" = 25, "fire" = 100, "acid" = 25) - allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe) resistance_flags = FIRE_PROOF | GOLIATH_WEAKNESS - tauric = TRUE //Citadel Add for tauric hardsuits -/obj/item/clothing/head/hooded/seva +/obj/item/clothing/head/hooded/explorer/seva name = "SEVA Hood" desc = "A fire-proof hood for exploring hot environments." icon_state = "seva" item_state = "seva" - body_parts_covered = HEAD - flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT armor = list("melee" = 10, "bullet" = 10, "laser" = 10, "energy" = 10, "bomb" = 25, "bio" = 50, "rad" = 25, "fire" = 100, "acid" = 25) resistance_flags = FIRE_PROOF | GOLIATH_WEAKNESS @@ -152,43 +147,27 @@ name = "SEVA Mask" desc = "A face-covering plate that can be connected to an air supply. Intended for use with the SEVA Suit." icon_state = "seva" - clothing_flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS - flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR - w_class = WEIGHT_CLASS_NORMAL item_state = "seva" - gas_transfer_coefficient = 0.01 - permeability_coefficient = 0.01 - flags_cover = MASKCOVERSEYES | MASKCOVERSMOUTH resistance_flags = FIRE_PROOF /****************Exo-Suit and Mask****************/ -/obj/item/clothing/suit/hooded/exo +/obj/item/clothing/suit/hooded/explorer/exo name = "Exo-suit" desc = "A robust suit for exploring dangerous environments." icon_state = "exo" item_state = "exo" w_class = WEIGHT_CLASS_BULKY - body_parts_covered = CHEST|GROIN|LEGS|ARMS - min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT - cold_protection = CHEST|GROIN|LEGS|ARMS - max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS - hoodtype = /obj/item/clothing/head/hooded/exo + hoodtype = /obj/item/clothing/head/hooded/explorer/exo armor = list("melee" = 65, "bullet" = 5, "laser" = 5, "energy" = 5, "bomb" = 60, "bio" = 25, "rad" = 10, "fire" = 0, "acid" = 0) - allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator, /obj/item/pickaxe) resistance_flags = FIRE_PROOF | GOLIATH_RESISTANCE - tauric = TRUE //Citadel Add for tauric hardsuits -/obj/item/clothing/head/hooded/exo +/obj/item/clothing/head/hooded/explorer/exo name = "Exo-hood" desc = "A robust helmet for exploring dangerous environments." icon_state = "exo" item_state = "exo" - body_parts_covered = HEAD - flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS - min_cold_protection_temperature = FIRE_HELM_MIN_TEMP_PROTECT - max_heat_protection_temperature = FIRE_HELM_MAX_TEMP_PROTECT armor = list("melee" = 65, "bullet" = 5, "laser" = 5, "energy" = 5, "bomb" = 60, "bio" = 25, "rad" = 10, "fire" = 0, "acid" = 0) resistance_flags = FIRE_PROOF | GOLIATH_RESISTANCE @@ -196,11 +175,5 @@ name = "Exosuit Mask" desc = "A face-covering mask that can be connected to an air supply. Intended for use with the Exosuit." icon_state = "exo" - clothing_flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS - flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR - w_class = WEIGHT_CLASS_NORMAL item_state = "exo" - gas_transfer_coefficient = 0.01 - permeability_coefficient = 0.01 - flags_cover = MASKCOVERSEYES | MASKCOVERSMOUTH resistance_flags = FIRE_PROOF \ No newline at end of file diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm index 5fa7b9d571..79270ebf63 100644 --- a/code/modules/mining/machine_vending.dm +++ b/code/modules/mining/machine_vending.dm @@ -329,7 +329,7 @@ /obj/item/storage/backpack/duffelbag/mining_cloned name = "mining replacement kit" desc = "A large bag that has advance tools and a spare jumpsuit, boots, and gloves for a newly cloned miner to get back in the field. Even as a new Id!" - + /obj/item/storage/backpack/duffelbag/mining_cloned/PopulateContents() new /obj/item/pickaxe/mini(src) new /obj/item/clothing/under/rank/miner/lavaland(src) @@ -356,10 +356,10 @@ var/drop_location = drop_location() switch(selection) if("Exo-suit") - new /obj/item/clothing/suit/hooded/exo(drop_location) + new /obj/item/clothing/suit/hooded/explorer/exo(drop_location) new /obj/item/clothing/mask/gas/exo(drop_location) if("SEVA suit") - new /obj/item/clothing/suit/hooded/seva(drop_location) + new /obj/item/clothing/suit/hooded/explorer/seva(drop_location) new /obj/item/clothing/mask/gas/seva(drop_location) SSblackbox.record_feedback("tally", "suit_voucher_redeemed", 1, selection) diff --git a/code/modules/mob/living/carbon/alien/special/facehugger.dm b/code/modules/mob/living/carbon/alien/special/facehugger.dm index 202647f9bd..c2c8904aa1 100644 --- a/code/modules/mob/living/carbon/alien/special/facehugger.dm +++ b/code/modules/mob/living/carbon/alien/special/facehugger.dm @@ -21,6 +21,7 @@ flags_cover = MASKCOVERSEYES | MASKCOVERSMOUTH layer = MOB_LAYER max_integrity = 100 + mutantrace_variation = MUTANTRACE_VARIATION var/stat = CONSCIOUS //UNCONSCIOUS is the idle state in this case diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index ca4f230905..c145053990 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -557,7 +557,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) bodyparts_to_add -= "waggingspines" if("snout" in mutant_bodyparts) //Take a closer look at that snout! - if((H.wear_mask && (H.wear_mask.flags_inv & HIDEFACE)) || (H.head && (H.head.flags_inv & HIDEFACE)) || !HD || HD.status == BODYPART_ROBOTIC) + if((H.wear_mask && (H.wear_mask.flags_inv & HIDESNOUT)) || (H.head && (H.head.flags_inv & HIDESNOUT)) || !HD || HD.status == BODYPART_ROBOTIC) bodyparts_to_add -= "snout" if("frills" in mutant_bodyparts) @@ -569,7 +569,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) bodyparts_to_add -= "horns" if("ears" in mutant_bodyparts) - if(!H.dna.features["ears"] || H.dna.features["ears"] == "None" || H.head && (H.head.flags_inv & HIDEHAIR) || (H.wear_mask && (H.wear_mask.flags_inv & HIDEHAIR)) || !HD || HD.status == BODYPART_ROBOTIC) + if(!H.dna.features["ears"] || H.dna.features["ears"] == "None" || H.head && (H.head.flags_inv & HIDEEARS) || (H.wear_mask && (H.wear_mask.flags_inv & HIDEEARS)) || !HD || HD.status == BODYPART_ROBOTIC) bodyparts_to_add -= "ears" if("wings" in mutant_bodyparts) @@ -607,11 +607,11 @@ GLOBAL_LIST_EMPTY(roundstart_races) bodyparts_to_add -= "mam_waggingtail" if("mam_ears" in mutant_bodyparts) - if(!H.dna.features["mam_ears"] || H.dna.features["mam_ears"] == "None" || H.head && (H.head.flags_inv & HIDEHAIR) || (H.wear_mask && (H.wear_mask.flags_inv & HIDEHAIR)) || !HD || HD.status == BODYPART_ROBOTIC) + if(!H.dna.features["mam_ears"] || H.dna.features["mam_ears"] == "None" || H.head && (H.head.flags_inv & HIDEEARS) || (H.wear_mask && (H.wear_mask.flags_inv & HIDEEARS)) || !HD || HD.status == BODYPART_ROBOTIC) bodyparts_to_add -= "mam_ears" if("mam_snouts" in mutant_bodyparts) //Take a closer look at that snout! - if((H.wear_mask && (H.wear_mask.flags_inv & HIDEFACE)) || (H.head && (H.head.flags_inv & HIDEFACE)) || !HD || HD.status == BODYPART_ROBOTIC) + if((H.wear_mask && (H.wear_mask.flags_inv & HIDESNOUT)) || (H.head && (H.head.flags_inv & HIDESNOUT)) || !HD || HD.status == BODYPART_ROBOTIC) bodyparts_to_add -= "mam_snouts" if("taur" in mutant_bodyparts) @@ -691,8 +691,29 @@ GLOBAL_LIST_EMPTY(roundstart_races) S = GLOB.moth_wings_list[H.dna.features["moth_wings"]] if("caps") S = GLOB.caps_list[H.dna.features["caps"]] - else - S = citadel_mutant_bodyparts(bodypart, H) + if("ipc_screen") + S = GLOB.ipc_screens_list[H.dna.features["ipc_screen"]] + if("ipc_antenna") + S = GLOB.ipc_antennas_list[H.dna.features["ipc_antenna"]] + if("mam_tail") + S = GLOB.mam_tails_list[H.dna.features["mam_tail"]] + if("mam_waggingtail") + S = GLOB.mam_tails_animated_list[H.dna.features["mam_tail"]] + if("mam_body_markings") + S = GLOB.mam_body_markings_list[H.dna.features["mam_body_markings"]] + if("mam_ears") + S = GLOB.mam_ears_list[H.dna.features["mam_ears"]] + if("mam_snouts") + S = GLOB.mam_snouts_list[H.dna.features["mam_snouts"]] + if("taur") + S = GLOB.taur_list[H.dna.features["taur"]] + if("xenodorsal") + S = GLOB.xeno_dorsal_list[H.dna.features["xenodorsal"]] + if("xenohead") + S = GLOB.xeno_head_list[H.dna.features["xenohead"]] + if("xenotail") + S = GLOB.xeno_tail_list[H.dna.features["xenotail"]] + if(!S || S.icon_state == "none") continue diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 71717bfc16..9b5375035e 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -324,13 +324,22 @@ There are several things that need to be remembered: /mob/living/carbon/human/update_inv_head() ..() update_mutant_bodyparts() - var/mutable_appearance/head_overlay = overlays_standing[HEAD_LAYER] - if(head_overlay) + if(head) remove_overlay(HEAD_LAYER) + var/obj/item/clothing/head/H = head + if(H.mutantrace_variation) + if(H.muzzle_var == ALT_STYLE) + H.alternate_worn_icon = 'modular_citadel/icons/mob/muzzled_helmet.dmi' + else + H.alternate_worn_icon = null + + overlays_standing[HEAD_LAYER] = H.build_worn_icon(state = H.icon_state, default_layer = HEAD_LAYER, default_icon_file = ((head.alternate_worn_icon) ? H.alternate_worn_icon : 'icons/mob/head.dmi')) + var/mutable_appearance/head_overlay = overlays_standing[HEAD_LAYER] + if(OFFSET_HEAD in dna.species.offset_features) head_overlay.pixel_x += dna.species.offset_features[OFFSET_HEAD][1] head_overlay.pixel_y += dna.species.offset_features[OFFSET_HEAD][2] - overlays_standing[HEAD_LAYER] = head_overlay + overlays_standing[HEAD_LAYER] = head_overlay apply_overlay(HEAD_LAYER) /mob/living/carbon/human/update_inv_belt() @@ -429,13 +438,22 @@ There are several things that need to be remembered: /mob/living/carbon/human/update_inv_wear_mask() ..() - var/mutable_appearance/mask_overlay = overlays_standing[FACEMASK_LAYER] - if(mask_overlay) + if(wear_mask) + var/obj/item/clothing/mask/M = wear_mask remove_overlay(FACEMASK_LAYER) + if(M.mutantrace_variation) + if(M.muzzle_var == ALT_STYLE) + M.alternate_worn_icon = 'modular_citadel/icons/mob/muzzled_mask.dmi' + else + M.alternate_worn_icon = null + + overlays_standing[FACEMASK_LAYER] = M.build_worn_icon(state = wear_mask.icon_state, default_layer = FACEMASK_LAYER, default_icon_file = ((wear_mask.alternate_worn_icon) ? M.alternate_worn_icon : 'icons/mob/mask.dmi')) + var/mutable_appearance/mask_overlay = overlays_standing[FACEMASK_LAYER] + if(OFFSET_FACEMASK in dna.species.offset_features) mask_overlay.pixel_x += dna.species.offset_features[OFFSET_FACEMASK][1] mask_overlay.pixel_y += dna.species.offset_features[OFFSET_FACEMASK][2] - overlays_standing[FACEMASK_LAYER] = mask_overlay + overlays_standing[FACEMASK_LAYER] = mask_overlay apply_overlay(FACEMASK_LAYER) update_mutant_bodyparts() //e.g. upgate needed because mask now hides lizard snout diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm index cf4401c68a..12c98b8b5d 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/hivelord.dm @@ -290,7 +290,7 @@ gloves = /obj/item/clothing/gloves/color/black mask = /obj/item/clothing/mask/gas/explorer if(prob(20)) - suit = pickweight(list(/obj/item/clothing/suit/hooded/explorer = 6, /obj/item/clothing/suit/hooded/cloak/goliath = 2, /obj/item/clothing/suit/hooded/exo = 6, /obj/item/clothing/suit/hooded/seva = 6)) + suit = pickweight(list(/obj/item/clothing/suit/hooded/explorer = 6, /obj/item/clothing/suit/hooded/cloak/goliath = 2, /obj/item/clothing/suit/hooded/explorer/exo = 6, /obj/item/clothing/suit/hooded/explorer/seva = 6)) if(prob(30)) r_pocket = pickweight(list(/obj/item/stack/marker_beacon = 20, /obj/item/stack/spacecash/c1000 = 7, /obj/item/reagent_containers/hypospray/medipen/survival = 2, /obj/item/borg/upgrade/modkit/damage = 1 )) if(prob(10)) diff --git a/icons/mob/mask.dmi b/icons/mob/mask.dmi index 788bfc0447..fbfa039451 100644 Binary files a/icons/mob/mask.dmi and b/icons/mob/mask.dmi differ diff --git a/modular_citadel/code/modules/clothing/spacesuits/cydonian_armor.dm b/modular_citadel/code/modules/clothing/spacesuits/cydonian_armor.dm index 1d896952c4..423bc536ac 100644 --- a/modular_citadel/code/modules/clothing/spacesuits/cydonian_armor.dm +++ b/modular_citadel/code/modules/clothing/spacesuits/cydonian_armor.dm @@ -86,6 +86,7 @@ heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS actions_types = list(/datum/action/item_action/toggle_helmet) var/obj/item/clothing/head/helmet/space/hardsuit/lavaknight/linkedhelm + tauric = TRUE //Citadel Add for tauric hardsuits var/energy_color = "#35FFF0" @@ -101,7 +102,14 @@ update_icon() /obj/item/clothing/suit/space/hardsuit/lavaknight/update_icon() - var/mutable_appearance/suit_overlay = mutable_appearance('modular_citadel/icons/lavaknight/item/suit.dmi', "knight_cydonia_overlay", LIGHTING_LAYER + 1) + var/mutable_appearance/suit_overlay + + if(taurmode == SNEK_TAURIC) + suit_overlay = mutable_appearance('modular_citadel/icons/mob/taur_naga.dmi', "knight_cydonia_overlay", LIGHTING_LAYER + 1) + else if(taurmode == PAW_TAURIC) + suit_overlay = mutable_appearance('modular_citadel/icons/mob/taur_canine.dmi', "knight_cydonia_overlay", LIGHTING_LAYER + 1) + else + suit_overlay = mutable_appearance('modular_citadel/icons/lavaknight/item/suit.dmi', "knight_cydonia_overlay", LIGHTING_LAYER + 1) if(energy_color) suit_overlay.color = energy_color @@ -122,7 +130,14 @@ emissivelightsoff() /obj/item/clothing/suit/space/hardsuit/lavaknight/proc/emissivelights(mob/user = usr) - var/mutable_appearance/energy_overlay = mutable_appearance('modular_citadel/icons/lavaknight/mob/suit.dmi', "knight_cydonia_overlay", LIGHTING_LAYER + 1) + var/mutable_appearance/energy_overlay + if(taurmode == SNEK_TAURIC) + energy_overlay = mutable_appearance('modular_citadel/icons/mob/taur_naga.dmi', "knight_cydonia_overlay", LIGHTING_LAYER + 1) + else if(taurmode == PAW_TAURIC) + energy_overlay = mutable_appearance('modular_citadel/icons/mob/taur_canine.dmi', "knight_cydonia_overlay", LIGHTING_LAYER + 1) + else + energy_overlay = mutable_appearance('modular_citadel/icons/lavaknight/mob/suit.dmi', "knight_cydonia_overlay", LIGHTING_LAYER + 1) + energy_overlay.color = energy_color energy_overlay.plane = LIGHTING_PLANE + 1 user.cut_overlay(energy_overlay) //honk 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 d468f34653..fcc60fbe81 100644 --- a/modular_citadel/code/modules/mob/living/carbon/human/species.dm +++ b/modular_citadel/code/modules/mob/living/carbon/human/species.dm @@ -82,7 +82,7 @@ if(get_turf(target) == target_oldturf) target_table = locate(/obj/structure/table) in target_shove_turf.contents shove_blocked = TRUE - + if(shove_blocked && !target.is_shove_knockdown_blocked()) var/directional_blocked = FALSE if(shove_dir in GLOB.cardinals) //Directional checks to make sure that we're not shoving through a windoor or something like that @@ -151,28 +151,3 @@ /obj/item/bodypart var/should_draw_citadel = FALSE - -/datum/species/proc/citadel_mutant_bodyparts(bodypart, mob/living/carbon/human/H) - switch(bodypart) - if("ipc_screen") - return GLOB.ipc_screens_list[H.dna.features["ipc_screen"]] - if("ipc_antenna") - return GLOB.ipc_antennas_list[H.dna.features["ipc_antenna"]] - if("mam_tail") - return GLOB.mam_tails_list[H.dna.features["mam_tail"]] - if("mam_waggingtail") - return GLOB.mam_tails_animated_list[H.dna.features["mam_tail"]] - if("mam_body_markings") - return GLOB.mam_body_markings_list[H.dna.features["mam_body_markings"]] - if("mam_ears") - return GLOB.mam_ears_list[H.dna.features["mam_ears"]] - if("mam_snouts") - return GLOB.mam_snouts_list[H.dna.features["mam_snouts"]] - if("taur") - return GLOB.taur_list[H.dna.features["taur"]] - if("xenodorsal") - return GLOB.xeno_dorsal_list[H.dna.features["xenodorsal"]] - if("xenohead") - return GLOB.xeno_head_list[H.dna.features["xenohead"]] - if("xenotail") - return GLOB.xeno_tail_list[H.dna.features["xenotail"]] diff --git a/modular_citadel/icons/mob/mask.dmi b/modular_citadel/icons/mob/mask.dmi new file mode 100644 index 0000000000..788bfc0447 Binary files /dev/null and b/modular_citadel/icons/mob/mask.dmi differ diff --git a/modular_citadel/icons/mob/muzzled_helmet.dmi b/modular_citadel/icons/mob/muzzled_helmet.dmi new file mode 100644 index 0000000000..3c0a229d58 Binary files /dev/null and b/modular_citadel/icons/mob/muzzled_helmet.dmi differ diff --git a/modular_citadel/icons/mob/muzzled_mask.dmi b/modular_citadel/icons/mob/muzzled_mask.dmi new file mode 100644 index 0000000000..59c669ea72 Binary files /dev/null and b/modular_citadel/icons/mob/muzzled_mask.dmi differ diff --git a/modular_citadel/icons/mob/suit_digi.dmi b/modular_citadel/icons/mob/suit_digi.dmi index 95d03bb6d0..22fddbe59d 100644 Binary files a/modular_citadel/icons/mob/suit_digi.dmi and b/modular_citadel/icons/mob/suit_digi.dmi differ diff --git a/modular_citadel/icons/mob/taur_canine.dmi b/modular_citadel/icons/mob/taur_canine.dmi index 215518b779..0242d2e673 100644 Binary files a/modular_citadel/icons/mob/taur_canine.dmi and b/modular_citadel/icons/mob/taur_canine.dmi differ diff --git a/modular_citadel/icons/mob/taur_naga.dmi b/modular_citadel/icons/mob/taur_naga.dmi index 200c336b2f..f4d6a6139f 100644 Binary files a/modular_citadel/icons/mob/taur_naga.dmi and b/modular_citadel/icons/mob/taur_naga.dmi differ