diff --git a/code/modules/mod/mod_activation.dm b/code/modules/mod/mod_activation.dm index 3df3bf1c2b8..cef9bd5315e 100644 --- a/code/modules/mod/mod_activation.dm +++ b/code/modules/mod/mod_activation.dm @@ -203,6 +203,7 @@ ///Seals or unseals the given part /obj/item/mod/control/proc/seal_part(obj/item/clothing/part, seal) if(seal) + part.icon_state = "[skin]-[part.base_icon_state]-sealed" part.clothing_flags |= part.visor_flags part.flags_inv |= part.visor_flags_inv part.flags_cover |= part.visor_flags_cover @@ -210,6 +211,7 @@ part.cold_protection = initial(part.cold_protection) part.alternate_worn_layer = null else + part.icon_state = "[skin]-[part.base_icon_state]" part.flags_cover &= ~part.visor_flags_cover part.flags_inv &= ~part.visor_flags_inv part.clothing_flags &= ~part.visor_flags @@ -217,17 +219,13 @@ part.cold_protection = NONE part.alternate_worn_layer = mod_parts[part] if(part == boots) - boots.icon_state = "[skin]-boots[seal ? "-sealed" : ""]" wearer.update_worn_shoes() if(part == gauntlets) - gauntlets.icon_state = "[skin]-gauntlets[seal ? "-sealed" : ""]" wearer.update_worn_gloves() if(part == chestplate) - chestplate.icon_state = "[skin]-chestplate[seal ? "-sealed" : ""]" wearer.update_worn_oversuit() wearer.update_worn_undersuit() if(part == helmet) - helmet.icon_state = "[skin]-helmet[seal ? "-sealed" : ""]" wearer.update_worn_head() wearer.update_worn_mask() wearer.update_worn_glasses() diff --git a/code/modules/mod/mod_clothes.dm b/code/modules/mod/mod_clothes.dm index 0d453fca583..09510884624 100644 --- a/code/modules/mod/mod_clothes.dm +++ b/code/modules/mod/mod_clothes.dm @@ -3,6 +3,7 @@ desc = "A helmet for a MODsuit." icon = 'icons/obj/clothing/modsuit/mod_clothing.dmi' icon_state = "standard-helmet" + base_icon_state = "helmet" worn_icon = 'icons/mob/clothing/modsuit/mod_clothing.dmi' armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0, WOUND = 0) body_parts_covered = HEAD @@ -15,13 +16,14 @@ desc = "A chestplate for a MODsuit." icon = 'icons/obj/clothing/modsuit/mod_clothing.dmi' icon_state = "standard-chestplate" + base_icon_state = "chestplate" worn_icon = 'icons/mob/clothing/modsuit/mod_clothing.dmi' blood_overlay_type = "armor" allowed = list( /obj/item/tank/internals, /obj/item/flashlight, /obj/item/tank/jetpack/oxygen/captain, - ) + ) armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0, WOUND = 0) body_parts_covered = CHEST|GROIN heat_protection = CHEST|GROIN @@ -33,6 +35,7 @@ desc = "A pair of gauntlets for a MODsuit." icon = 'icons/obj/clothing/modsuit/mod_clothing.dmi' icon_state = "standard-gauntlets" + base_icon_state = "gauntlets" worn_icon = 'icons/mob/clothing/modsuit/mod_clothing.dmi' armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0, WOUND = 0) body_parts_covered = HANDS|ARMS @@ -45,6 +48,7 @@ desc = "A pair of boots for a MODsuit." icon = 'icons/obj/clothing/modsuit/mod_clothing.dmi' icon_state = "standard-boots" + base_icon_state = "boots" worn_icon = 'icons/mob/clothing/modsuit/mod_clothing.dmi' armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0, WOUND = 0) body_parts_covered = FEET|LEGS diff --git a/code/modules/mod/mod_control.dm b/code/modules/mod/mod_control.dm index b1df5530d13..d9879859dcb 100644 --- a/code/modules/mod/mod_control.dm +++ b/code/modules/mod/mod_control.dm @@ -8,8 +8,9 @@ /obj/item/mod/control name = "MOD control unit" desc = "The control unit of a Modular Outerwear Device, a powered suit that protects against various environments." - icon_state = "control" + icon_state = "standard-control" inhand_icon_state = "mod_control" + base_icon_state = "control" w_class = WEIGHT_CLASS_BULKY slot_flags = ITEM_SLOT_BACK strip_delay = 10 SECONDS @@ -286,7 +287,7 @@ return // SKYRAT ADDITION END - + if(!wearer.incapacitated()) var/atom/movable/screen/inventory/hand/ui_hand = over_object if(wearer.putItemFromInventoryInHandIfPossible(src, ui_hand.held_index)) @@ -461,7 +462,7 @@ . += module_icons /obj/item/mod/control/update_icon_state() - icon_state = "[skin]-control[active ? "-sealed" : ""]" + icon_state = "[skin]-[base_icon_state][active ? "-sealed" : ""]" return ..() /obj/item/mod/control/proc/set_wearer(mob/living/carbon/human/user) @@ -566,6 +567,8 @@ new_module.on_install() if(wearer) new_module.on_equip() + if(active) + new_module.on_suit_activation() // SKYRAT EDIT START - pAIs in MODsuits if(mod_pai) var/datum/action/item_action/mod/pinned_module/action = new_module.pinned_to[ref(mod_pai)] @@ -579,6 +582,8 @@ /obj/item/mod/control/proc/uninstall(obj/item/mod/module/old_module, deleting = FALSE) modules -= old_module complexity -= old_module.complexity + if(wearer) + old_module.on_unequip() if(active) old_module.on_suit_deactivation(deleting = deleting) if(old_module.active) @@ -652,7 +657,7 @@ for(var/obj/item/part as anything in skin_updating) part.icon = used_skin[MOD_ICON_OVERRIDE] || 'icons/obj/clothing/modsuit/mod_clothing.dmi' part.worn_icon = used_skin[MOD_WORN_ICON_OVERRIDE] || 'icons/mob/clothing/modsuit/mod_clothing.dmi' - part.icon_state = "[skin]-[initial(part.icon_state)]" + part.icon_state = "[skin]-[part.base_icon_state]" for(var/obj/item/clothing/part as anything in mod_parts) var/used_category if(part == helmet) diff --git a/icons/obj/clothing/modsuit/mod_clothing.dmi b/icons/obj/clothing/modsuit/mod_clothing.dmi index bc1c113cd88..ed85ade5249 100644 Binary files a/icons/obj/clothing/modsuit/mod_clothing.dmi and b/icons/obj/clothing/modsuit/mod_clothing.dmi differ diff --git a/modular_skyrat/modules/assault_operatives/code/equipment_items/stealth_mod.dm b/modular_skyrat/modules/assault_operatives/code/equipment_items/stealth_mod.dm index 5454f4fdf43..58564e01027 100644 --- a/modular_skyrat/modules/assault_operatives/code/equipment_items/stealth_mod.dm +++ b/modular_skyrat/modules/assault_operatives/code/equipment_items/stealth_mod.dm @@ -66,6 +66,7 @@ /obj/item/mod/control/pre_equipped/stealth_operative worn_icon = 'modular_skyrat/modules/assault_operatives/icons/modsuits/wornmod.dmi' icon = 'modular_skyrat/modules/assault_operatives/icons/modsuits/mod.dmi' + icon_state = "stealth-control" theme = /datum/mod_theme/covert applied_cell = /obj/item/stock_parts/cell/hyper applied_modules = list( diff --git a/modular_skyrat/modules/contractor/code/items/modsuit/modsuit.dm b/modular_skyrat/modules/contractor/code/items/modsuit/modsuit.dm index dbf95acf6d3..585c4690dd0 100644 --- a/modular_skyrat/modules/contractor/code/items/modsuit/modsuit.dm +++ b/modular_skyrat/modules/contractor/code/items/modsuit/modsuit.dm @@ -2,6 +2,7 @@ /obj/item/mod/control/pre_equipped/contractor worn_icon = 'modular_skyrat/modules/contractor/icons/worn_modsuit.dmi' icon = 'modular_skyrat/modules/contractor/icons/modsuit.dmi' + icon_state = "contractor-control" theme = /datum/mod_theme/contractor applied_cell = /obj/item/stock_parts/cell/hyper applied_modules = list(