diff --git a/code/modules/clothing/suits/_suits.dm b/code/modules/clothing/suits/_suits.dm index 6aabee0c81..6e963f6612 100644 --- a/code/modules/clothing/suits/_suits.dm +++ b/code/modules/clothing/suits/_suits.dm @@ -9,6 +9,19 @@ var/togglename = null var/suittoggled = FALSE + var/adjusted = NORMAL_STYLE + mutantrace_variation = MUTANTRACE_VARIATION + +/obj/item/clothing/suit/equipped(mob/user, slot) + ..() + if(mutantrace_variation && ishuman(user)) + var/mob/living/carbon/human/H = user + if(DIGITIGRADE in H.dna.species.species_traits) + adjusted = ALT_STYLE + H.update_inv_wear_suit() + else if(adjusted == ALT_STYLE) + adjusted = NORMAL_STYLE + H.update_inv_wear_suit() /obj/item/clothing/suit/worn_overlays(isinhands = FALSE) . = list() diff --git a/code/modules/clothing/suits/vg_suits.dm b/code/modules/clothing/suits/vg_suits.dm index 2c97653637..08fe029f9e 100644 --- a/code/modules/clothing/suits/vg_suits.dm +++ b/code/modules/clothing/suits/vg_suits.dm @@ -9,6 +9,7 @@ siemens_coefficient = 0.5 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/suit.dmi' + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/suit/armor/xcomsquaddie/dredd name = "Judge Armor" @@ -17,6 +18,7 @@ item_state = "dredd-suit" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/suit.dmi' + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/suit/armor/xcomarmor @@ -30,6 +32,7 @@ siemens_coefficient = 0.5 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/suit.dmi' + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/suit/armor/vest/neorussian name = "neo-Russian vest" @@ -38,6 +41,7 @@ item_state = "nr_vest" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/suit.dmi' + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/suit/armor/doomguy name = "Doomguy's armor" @@ -49,6 +53,7 @@ armor = list(melee = 50, bullet = 30, laser = 20, energy = 20, bomb = 30, bio = 0, rad = 0) icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/suit.dmi' + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/suit/kaminacape @@ -58,6 +63,7 @@ body_parts_covered = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/suit.dmi' + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/suit/officercoat name = "Officer's Coat" @@ -65,6 +71,7 @@ icon_state = "officersuit" body_parts_covered = CHEST|GROIN|LEGS|ARMS|HANDS icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/suit/soldiercoat name = "Soldier's Coat" @@ -72,6 +79,7 @@ icon_state = "soldiersuit" body_parts_covered = CHEST|GROIN|LEGS|ARMS|HANDS icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/suit/russofurcoat name = "russian fur coat" @@ -81,6 +89,7 @@ body_parts_covered = CHEST|GROIN|LEGS|ARMS|HANDS icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/suit.dmi' + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/suit/doshjacket name = "Plasterer's Jacket" @@ -89,6 +98,7 @@ body_parts_covered = CHEST|GROIN|ARMS icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/suit.dmi' + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/suit/maidapron name = "Apron" @@ -97,6 +107,7 @@ body_parts_covered = CHEST|GROIN icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/suit.dmi' + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/suit/clownpiece name = "small fairy wings" @@ -105,6 +116,7 @@ body_parts_covered = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/suit.dmi' + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/suit/clownpiece/flying name = "small fairy wings" @@ -112,6 +124,7 @@ icon_state = "clownpiece-fly" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/suit.dmi' + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/suit/raincoat name = "Raincoat" @@ -120,5 +133,6 @@ body_parts_covered =CHEST|GROIN|LEGS|ARMS|HANDS icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/suit.dmi' + mutantrace_variation = NO_MUTANTRACE_VARIATION diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 79ea11682d..58026d5a5f 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -629,7 +629,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) species_traits += DIGITIGRADE var/should_be_squished = FALSE if(H.wear_suit) - if((H.wear_suit.flags_inv & HIDEJUMPSUIT) || ((H.wear_suit.body_parts_covered & LEGS) && (H.wear_suit.body_parts_covered & FEET))) + if(H.wear_suit.mutantrace_variation == NO_MUTANTRACE_VARIATION) //we got digitigrade suits now fam should_be_squished = TRUE if(H.w_uniform && !H.wear_suit) if(H.w_uniform.mutantrace_variation == NO_MUTANTRACE_VARIATION) diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index cf29b3541f..3c1afeb04a 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -363,14 +363,19 @@ There are several things that need to be remembered: var/obj/screen/inventory/inv = hud_used.inv_slots[SLOT_WEAR_SUIT] inv.update_icon() - if(istype(wear_suit, /obj/item/clothing/suit)) + if(wear_suit) + var/obj/item/clothing/suit/S = wear_suit wear_suit.screen_loc = ui_oclothing if(client && hud_used && hud_used.hud_shown) if(hud_used.inventory_shown) client.screen += wear_suit update_observer_view(wear_suit,1) - overlays_standing[SUIT_LAYER] = wear_suit.build_worn_icon(state = wear_suit.icon_state, default_layer = SUIT_LAYER, default_icon_file = ((wear_suit.alternate_worn_icon) ? wear_suit.alternate_worn_icon : 'icons/mob/suit.dmi')) + if(S.mutantrace_variation) + if(S.adjusted == ALT_STYLE) + S.alternate_worn_icon = 'modular_citadel/icons/mob/suit_digi.dmi' + + overlays_standing[SUIT_LAYER] = S.build_worn_icon(state = wear_suit.icon_state, default_layer = SUIT_LAYER, default_icon_file = ((wear_suit.alternate_worn_icon) ? S.alternate_worn_icon : 'icons/mob/suit.dmi')) var/mutable_appearance/suit_overlay = overlays_standing[SUIT_LAYER] if(OFFSET_SUIT in dna.species.offset_features) suit_overlay.pixel_x += dna.species.offset_features[OFFSET_SUIT][1] diff --git a/code/modules/surgery/bodyparts/helpers.dm b/code/modules/surgery/bodyparts/helpers.dm index 7d337c67c2..9d9e26c6fa 100644 --- a/code/modules/surgery/bodyparts/helpers.dm +++ b/code/modules/surgery/bodyparts/helpers.dm @@ -305,3 +305,10 @@ else S.adjusted = ALT_STYLE H.update_inv_shoes() + if(H.wear_suit) + var/obj/item/clothing/suit/S = H.wear_suit + if(swap_back) + S.adjusted = NORMAL_STYLE + else + S.adjusted = ALT_STYLE + H.update_inv_wear_suit() \ No newline at end of file diff --git a/modular_citadel/code/modules/clothing/spacesuits/cydonian_armor.dm b/modular_citadel/code/modules/clothing/spacesuits/cydonian_armor.dm index 209c2d0448..1d896952c4 100644 --- a/modular_citadel/code/modules/clothing/spacesuits/cydonian_armor.dm +++ b/modular_citadel/code/modules/clothing/spacesuits/cydonian_armor.dm @@ -18,6 +18,7 @@ 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) var/energy_color = "#35FFF0" var/obj/item/clothing/suit/space/hardsuit/lavaknight/linkedsuit = null + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/head/helmet/space/hardsuit/lavaknight/New() ..() diff --git a/modular_citadel/code/modules/clothing/suits/suits.dm b/modular_citadel/code/modules/clothing/suits/suits.dm index 8d7de7be01..22e4aef6a9 100644 --- a/modular_citadel/code/modules/clothing/suits/suits.dm +++ b/modular_citadel/code/modules/clothing/suits/suits.dm @@ -11,6 +11,7 @@ alternate_worn_icon = 'modular_citadel/icons/mob/citadel/suit.dmi' icon_state = "hostrench" item_state = "hostrench" + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/suit/hooded/cloak/david name = "red cloak" @@ -18,12 +19,14 @@ desc = "Ever wanted to look like a badass without ANY effort? Try this nanotrasen brand red cloak, perfect for kids" hoodtype = /obj/item/clothing/head/hooded/cloakhood/david body_parts_covered = CHEST|GROIN|ARMS + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/head/hooded/cloakhood/david name = "red cloak hood" icon_state = "golhood" desc = "conceal your face in shame with this nanotrasen brand hood" flags_inv = HIDEEARS|HIDEEYES|HIDEHAIR|HIDEFACIALHAIR + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/suit/flakjack name = "flak jacket" @@ -35,4 +38,5 @@ blood_overlay_type = "armor" body_parts_covered = CHEST resistance_flags = NONE + mutantrace_variation = NO_MUTANTRACE_VARIATION armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 5, "bio" = 0, "rad" = 0, "fire" = -5, "acid" = -15) //nylon sucks against acid \ No newline at end of file diff --git a/modular_citadel/code/modules/custom_loadout/custom_items.dm b/modular_citadel/code/modules/custom_loadout/custom_items.dm index a243d48e27..8e26f8014f 100644 --- a/modular_citadel/code/modules/custom_loadout/custom_items.dm +++ b/modular_citadel/code/modules/custom_loadout/custom_items.dm @@ -78,6 +78,7 @@ icon_state = "labred" alternate_worn_icon = 'icons/mob/custom_w.dmi' item_state = "labred" + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/suit/toggle/labcoat/labredblack name = "Black and Red Coat" @@ -86,6 +87,7 @@ icon_state = "labredblack" alternate_worn_icon = 'icons/mob/custom_w.dmi' item_state = "labredblack" + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/toy/plush/carrot name = "carrot plushie" @@ -191,6 +193,7 @@ alternate_worn_icon = 'icons/mob/custom_w.dmi' item_state = "hos-g" body_parts_covered = CHEST|GROIN|ARMS|LEGS + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/reagent_containers/food/drinks/flask/russian name = "russian flask" @@ -272,6 +275,7 @@ /obj/item/clothing/under/bb_sweater/black/naomi name = "worn black sweater" + mutantrace_variation = NO_MUTANTRACE_VARIATION desc = "A well-loved sweater, showing signs of several cleanings and re-stitchings. And a few stains. Is that cat fur?" /obj/item/clothing/neck/petcollar/naomi @@ -344,6 +348,7 @@ item_state = "darkcarapace" blood_overlay_type = "armor" dog_fashion = /datum/dog_fashion/back + mutantrace_variation = NO_MUTANTRACE_VARIATION armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) @@ -370,6 +375,7 @@ icon_state = "rdcoat" alternate_worn_icon = 'icons/mob/custom_w.dmi' item_state = "rdcoat" + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/custom/leechjar name = "Jar of Leeches" diff --git a/modular_citadel/icons/mob/suit_digi.dmi b/modular_citadel/icons/mob/suit_digi.dmi new file mode 100644 index 0000000000..9fe7a447aa Binary files /dev/null and b/modular_citadel/icons/mob/suit_digi.dmi differ