diff --git a/code/modules/clothing/shoes/_shoes.dm b/code/modules/clothing/shoes/_shoes.dm index b03d71221d..233a529dcf 100644 --- a/code/modules/clothing/shoes/_shoes.dm +++ b/code/modules/clothing/shoes/_shoes.dm @@ -15,6 +15,10 @@ var/offset = 0 var/equipped_before_drop = FALSE + //CITADEL EDIT Enables digitigrade shoe styles + var/adjusted = NORMAL_STYLE + var/mutantrace_variation = MUTANTRACE_VARIATION + /obj/item/clothing/shoes/ComponentInitialize() . = ..() AddComponent(/datum/component/redirect, list(COMSIG_COMPONENT_CLEAN_ACT = CALLBACK(src, .proc/clean_blood))) @@ -54,6 +58,16 @@ /obj/item/clothing/shoes/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 = DIGITIGRADE_STYLE + H.update_inv_shoes() + else if(adjusted == DIGITIGRADE_STYLE) + adjusted = NORMAL_STYLE + H.update_inv_shoes() + if(offset && slot_flags & slotdefine2slotbit(slot)) user.pixel_y += offset worn_y_dimension -= (offset * 2) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 5a37007271..d1450cad15 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -918,9 +918,10 @@ GLOBAL_LIST_EMPTY(roundstart_races) if(num_legs < 2) return FALSE if(DIGITIGRADE in species_traits) - if(!disable_warning) - to_chat(H, "The footwear around here isn't compatible with your feet!") - return FALSE + if(!is_species(H, /datum/species/lizard/ashwalker)) + H.update_inv_shoes() + else + return FALSE return equip_delay_self_check(I, H, bypass_equip_delay_self) if(SLOT_BELT) if(H.belt) diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 6572cf4e27..53c45d199f 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -268,11 +268,17 @@ There are several things that need to be remembered: inv.update_icon() if(shoes) + var/obj/item/clothing/shoes/S = shoes shoes.screen_loc = ui_shoes //move the item to the appropriate screen loc if(client && hud_used && hud_used.hud_shown) if(hud_used.inventory_shown) //if the inventory is open client.screen += shoes //add it to client's screen update_observer_view(shoes,1) + if(S.adjusted == DIGITIGRADE_STYLE) + S.icon_override = 'modular_citadel/icons/mob/digishoes.dmi' + else if(S.adjusted == NORMAL_STYLE) + S.icon_override = null + overlays_standing[SHOES_LAYER] = shoes.build_worn_icon(state = shoes.icon_state, default_layer = SHOES_LAYER, default_icon_file = ((shoes.icon_override) ? shoes.icon_override : 'icons/mob/feet.dmi')) var/mutable_appearance/shoes_overlay = overlays_standing[SHOES_LAYER] if(OFFSET_SHOES in dna.species.offset_features) @@ -281,7 +287,6 @@ There are several things that need to be remembered: overlays_standing[SHOES_LAYER] = shoes_overlay apply_overlay(SHOES_LAYER) - /mob/living/carbon/human/update_inv_s_store() remove_overlay(SUIT_STORE_LAYER) diff --git a/code/modules/surgery/bodyparts/helpers.dm b/code/modules/surgery/bodyparts/helpers.dm index 1921f68165..d5ee3466d4 100644 --- a/code/modules/surgery/bodyparts/helpers.dm +++ b/code/modules/surgery/bodyparts/helpers.dm @@ -298,5 +298,10 @@ else U.adjusted = DIGITIGRADE_STYLE H.update_inv_w_uniform() - if(H.shoes && !swap_back) - H.dropItemToGround(H.shoes) + if(H.shoes) + var/obj/item/clothing/shoes/S = H.shoes + if(swap_back) + S.adjusted = NORMAL_STYLE + else + S.adjusted = DIGITIGRADE_STYLE + H.update_inv_shoes() 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 e533829ca1..456478ae63 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 @@ -221,10 +221,10 @@ id = "xeno" say_mod = "hisses" default_color = "00FF00" - species_traits = list(MUTCOLORS,EYECOLOR,LIPS) + species_traits = list(MUTCOLORS,EYECOLOR,LIPS,DIGITIGRADE) inherent_biotypes = list(MOB_ORGANIC, MOB_HUMANOID) - mutant_bodyparts = list("xenotail", "xenohead", "xenodorsal", "legs", "taur", "mam_body_markings") - default_features = list("xenotail"="Xenomorph Tail","xenohead"="Standard","xenodorsal"="Standard","mcolor" = "0F0","mcolor2" = "0F0","mcolor3" = "0F0","taur" = "None","mam_body_markings" = "Xeno", "legs" = "Digitigrade Legs") + mutant_bodyparts = list("xenotail", "xenohead", "xenodorsal", "taur", "mam_body_markings") + default_features = list("xenotail"="Xenomorph Tail","xenohead"="Standard","xenodorsal"="Standard","mcolor" = "0F0","mcolor2" = "0F0","mcolor3" = "0F0","taur" = "None","mam_body_markings" = "Xeno") attack_verb = "slash" attack_sound = 'sound/weapons/slash.ogg' miss_sound = 'sound/weapons/slashmiss.ogg' @@ -260,4 +260,4 @@ no_vore = TRUE /mob/living/carbon/human/vore - devourable = TRUE \ No newline at end of file + devourable = TRUE diff --git a/modular_citadel/icons/mob/digishoes.dmi b/modular_citadel/icons/mob/digishoes.dmi new file mode 100644 index 0000000000..49988f88f6 Binary files /dev/null and b/modular_citadel/icons/mob/digishoes.dmi differ