From 2e5141df0fdc95bf13cb116af7e3ed4adad35d7a Mon Sep 17 00:00:00 2001 From: FabianK3 <21039694+FabianK3@users.noreply.github.com> Date: Thu, 4 Dec 2025 08:55:53 +0100 Subject: [PATCH] Colorable high visibility clothing (#21635) # Summary This PR introduces colorable high visibility jackets and pants. They are available in the character loadout. **[Breaking change]** Existing high visibility clothing received its own category in the loadout and breaks current loadouts using said clothing. The currently worn clothes need to be re-selected from the new group. ## Changes - Added a colorable version of high visibility jackets and pants. - Moved existing high visibility clothing to their own selection in the loadout out of the generic jackets/pants group. - Fixed a bug that prevents the usage of accents/part-building for pants. - Added a dedicated code file for high visibility jackets and pants along some refactoring. - Introduced minor protection values for high visibility clothing. - Removed duplicate jacket emissive sprites and fixed jackets getting the right pattern for their type. ## PR Notes Any mapping-tag is due to the changes in the high visibility clothing type names, no map has been changed aside a global type name replacement. ## Preview A combination of colored jacket and pants. Selected was green for the base color and yellow for the accent color. Screenshot 2025-11-30 023923 --- aurorastation.dme | 2 + .../outfits/event/outfit_generic/_generic.dm | 2 +- .../event/outfit_generic/engineering.dm | 2 +- .../outfits/event/outfit_generic/mining.dm | 2 +- code/game/machinery/vending/wardrobe.dm | 60 ++++++++-------- .../crates_lockers/closets/wardrobe.dm | 4 +- .../preference_setup/loadout/items/pants.dm | 23 +++++-- .../preference_setup/loadout/items/suit.dm | 49 ++++++++----- code/modules/clothing/pants/highvis.dm | 39 +++++++++++ code/modules/clothing/pants/pants.dm | 56 --------------- code/modules/clothing/suits/highvis.dm | 49 +++++++++++++ code/modules/clothing/suits/miscellaneous.dm | 65 ------------------ .../mob/living/carbon/human/update_icons.dm | 2 + html/changelogs/fabiank3-highvis-refactor.yml | 11 +++ icons/obj/item/clothing/pants/highvis.dmi | Bin 3080 -> 3832 bytes .../clothing/suit/storage/toggle/highvis.dmi | Bin 9550 -> 11744 bytes .../abandoned_propellant_depot.dmm | 2 +- maps/away/away_site/cult_base/cult_base.dmm | 4 +- .../scenarios/cryo_outpost/cryo_outpost.dmm | 4 +- .../cryo_outpost/cryo_outpost_outfits.dm | 2 +- .../enviro_testing_facility_submaps_main.dmm | 8 +-- .../nuclear_silo/nuclear_silo_outfits.dm | 2 +- .../ruined_propellant_depot.dmm | 2 +- maps/away/ships/scc/scc_scout_ship.dmm | 2 +- .../tirakqi_smuggler_ghostroles.dm | 2 +- 25 files changed, 204 insertions(+), 190 deletions(-) create mode 100644 code/modules/clothing/pants/highvis.dm create mode 100644 code/modules/clothing/suits/highvis.dm create mode 100644 html/changelogs/fabiank3-highvis-refactor.yml diff --git a/aurorastation.dme b/aurorastation.dme index 53b6bc79e71..ff58a54fcce 100644 --- a/aurorastation.dme +++ b/aurorastation.dme @@ -2014,6 +2014,7 @@ #include "code\modules\clothing\masks\xeno\skrell.dm" #include "code\modules\clothing\masks\xeno\tajara.dm" #include "code\modules\clothing\masks\xeno\unathi.dm" +#include "code\modules\clothing\pants\highvis.dm" #include "code\modules\clothing\pants\pants.dm" #include "code\modules\clothing\pants\shorts.dm" #include "code\modules\clothing\pants\skirts.dm" @@ -2074,6 +2075,7 @@ #include "code\modules\clothing\suits\armor.dm" #include "code\modules\clothing\suits\hazardvests.dm" #include "code\modules\clothing\suits\hazmat.dm" +#include "code\modules\clothing\suits\highvis.dm" #include "code\modules\clothing\suits\hoodies.dm" #include "code\modules\clothing\suits\jobs.dm" #include "code\modules\clothing\suits\labcoat.dm" diff --git a/code/datums/outfits/event/outfit_generic/_generic.dm b/code/datums/outfits/event/outfit_generic/_generic.dm index 7be449ffbc4..6ccbb46fffb 100644 --- a/code/datums/outfits/event/outfit_generic/_generic.dm +++ b/code/datums/outfits/event/outfit_generic/_generic.dm @@ -25,7 +25,7 @@ /obj/item/clothing/suit/storage/toggle/leather_jacket/flight/white, /obj/item/clothing/suit/storage/toggle/leather_jacket/military/tan, /obj/item/clothing/suit/storage/toggle/highvis, - /obj/item/clothing/suit/storage/toggle/highvis_alt, + /obj/item/clothing/suit/storage/toggle/highvis/alt, /obj/item/clothing/suit/storage/toggle/track, /obj/item/clothing/suit/storage/toggle/track/blue, /obj/item/clothing/suit/storage/toggle/trench/colorable/random, diff --git a/code/datums/outfits/event/outfit_generic/engineering.dm b/code/datums/outfits/event/outfit_generic/engineering.dm index e32747f06ff..79cad7dd248 100644 --- a/code/datums/outfits/event/outfit_generic/engineering.dm +++ b/code/datums/outfits/event/outfit_generic/engineering.dm @@ -17,7 +17,7 @@ /obj/item/clothing/suit/storage/toggle/leather_jacket/military/tan, /obj/item/clothing/suit/storage/toggle/highvis, /obj/item/clothing/suit/storage/toggle/highvis, - /obj/item/clothing/suit/storage/toggle/highvis_alt, + /obj/item/clothing/suit/storage/toggle/highvis/alt, /obj/item/clothing/suit/storage/toggle/track, /obj/item/clothing/suit/storage/hazardvest, /obj/item/clothing/suit/storage/hazardvest/green, diff --git a/code/datums/outfits/event/outfit_generic/mining.dm b/code/datums/outfits/event/outfit_generic/mining.dm index 97cc4a8cf9b..807667655b4 100644 --- a/code/datums/outfits/event/outfit_generic/mining.dm +++ b/code/datums/outfits/event/outfit_generic/mining.dm @@ -17,7 +17,7 @@ /obj/item/clothing/suit/storage/toggle/leather_jacket/military/tan, /obj/item/clothing/suit/storage/toggle/highvis, /obj/item/clothing/suit/storage/toggle/highvis, - /obj/item/clothing/suit/storage/toggle/highvis_alt, + /obj/item/clothing/suit/storage/toggle/highvis/alt, /obj/item/clothing/suit/storage/toggle/track, /obj/item/clothing/suit/storage/hazardvest, /obj/item/clothing/suit/storage/hazardvest/green, diff --git a/code/game/machinery/vending/wardrobe.dm b/code/game/machinery/vending/wardrobe.dm index 9ee33ca8b6f..9067797730a 100644 --- a/code/game/machinery/vending/wardrobe.dm +++ b/code/game/machinery/vending/wardrobe.dm @@ -32,9 +32,9 @@ /obj/item/clothing/suit/storage/toggle/corp/zavod = 2, /obj/item/clothing/suit/storage/toggle/corp/zavod/alt = 2, /obj/item/clothing/suit/storage/toggle/highvis = 5, - /obj/item/clothing/suit/storage/toggle/highvis_alt = 5, - /obj/item/clothing/suit/storage/toggle/highvis_orange = 5, - /obj/item/clothing/suit/storage/toggle/highvis_red = 5, + /obj/item/clothing/suit/storage/toggle/highvis/alt = 5, + /obj/item/clothing/suit/storage/toggle/highvis/orange = 5, + /obj/item/clothing/suit/storage/toggle/highvis/red = 5, /obj/item/clothing/suit/storage/toggle/labcoat/heph = 2, /obj/item/clothing/suit/storage/toggle/labcoat/zavodskoi = 2, /obj/item/clothing/suit/storage/toggle/labcoat/zavodskoi/alt = 2, @@ -61,9 +61,9 @@ /obj/item/clothing/head/wool/zavod/alt = 2, /obj/item/clothing/accessory/storage/overalls/engineer = 4, /obj/item/clothing/pants/highvis = 5, - /obj/item/clothing/pants/highvis_alt = 5, - /obj/item/clothing/pants/highvis_orange = 5, - /obj/item/clothing/pants/highvis_red = 5, + /obj/item/clothing/pants/highvis/alt = 5, + /obj/item/clothing/pants/highvis/orange = 5, + /obj/item/clothing/pants/highvis/red = 5, /obj/item/clothing/shoes/sneakers/orange = 6, /obj/item/clothing/shoes/workboots = 4, /obj/item/clothing/shoes/workboots/dark = 6, @@ -101,9 +101,9 @@ /obj/item/clothing/suit/storage/toggle/corp/zavod = 2, /obj/item/clothing/suit/storage/toggle/corp/zavod/alt = 2, /obj/item/clothing/suit/storage/toggle/highvis = 3, - /obj/item/clothing/suit/storage/toggle/highvis_alt = 3, - /obj/item/clothing/suit/storage/toggle/highvis_orange = 3, - /obj/item/clothing/suit/storage/toggle/highvis_red = 3, + /obj/item/clothing/suit/storage/toggle/highvis/alt = 3, + /obj/item/clothing/suit/storage/toggle/highvis/orange = 3, + /obj/item/clothing/suit/storage/toggle/highvis/red = 3, /obj/item/clothing/suit/storage/toggle/labcoat/heph = 2, /obj/item/clothing/suit/storage/toggle/labcoat/zavodskoi = 2, /obj/item/clothing/suit/storage/toggle/labcoat/zavodskoi/alt = 2, @@ -111,9 +111,9 @@ /obj/item/clothing/suit/storage/toggle/longcoat/zavodskoi = 2, /obj/item/clothing/accessory/poncho/roles/engineering = 3, /obj/item/clothing/pants/highvis = 3, - /obj/item/clothing/pants/highvis_alt = 3, - /obj/item/clothing/pants/highvis_orange = 3, - /obj/item/clothing/pants/highvis_red = 3, + /obj/item/clothing/pants/highvis/alt = 3, + /obj/item/clothing/pants/highvis/orange = 3, + /obj/item/clothing/pants/highvis/red = 3, /obj/item/clothing/glasses/safety/goggles = 3, /obj/item/clothing/head/bandana/atmos = 2, /obj/item/clothing/head/beret/atmos = 2, @@ -394,13 +394,13 @@ /obj/item/clothing/suit/storage/toggle/corp/orion = 2, /obj/item/clothing/suit/storage/toggle/corp/orion/alt = 2, /obj/item/clothing/suit/storage/toggle/highvis = 5, - /obj/item/clothing/suit/storage/toggle/highvis_alt = 5, - /obj/item/clothing/suit/storage/toggle/highvis_orange = 5, - /obj/item/clothing/suit/storage/toggle/highvis_red = 5, + /obj/item/clothing/suit/storage/toggle/highvis/alt = 5, + /obj/item/clothing/suit/storage/toggle/highvis/orange = 5, + /obj/item/clothing/suit/storage/toggle/highvis/red = 5, /obj/item/clothing/pants/highvis = 3, - /obj/item/clothing/pants/highvis_alt = 3, - /obj/item/clothing/pants/highvis_orange = 3, - /obj/item/clothing/pants/highvis_red = 3, + /obj/item/clothing/pants/highvis/alt = 3, + /obj/item/clothing/pants/highvis/orange = 3, + /obj/item/clothing/pants/highvis/red = 3, /obj/item/clothing/head/bandana/janitor = 3, /obj/item/clothing/head/beret/janitor = 3, /obj/item/clothing/head/softcap/idris = 3, @@ -758,14 +758,14 @@ /obj/item/clothing/suit/storage/toggle/corp/heph = 4, /obj/item/clothing/suit/storage/toggle/corp/orion = 4, /obj/item/clothing/suit/storage/toggle/highvis = 3, - /obj/item/clothing/suit/storage/toggle/highvis_alt = 3, - /obj/item/clothing/suit/storage/toggle/highvis_orange = 3, - /obj/item/clothing/suit/storage/toggle/highvis_red = 3, + /obj/item/clothing/suit/storage/toggle/highvis/alt = 3, + /obj/item/clothing/suit/storage/toggle/highvis/orange = 3, + /obj/item/clothing/suit/storage/toggle/highvis/red = 3, /obj/item/clothing/pants/shorts/khaki = 24, /obj/item/clothing/pants/highvis = 3, - /obj/item/clothing/pants/highvis_alt = 3, - /obj/item/clothing/pants/highvis_orange = 3, - /obj/item/clothing/pants/highvis_red = 3, + /obj/item/clothing/pants/highvis/alt = 3, + /obj/item/clothing/pants/highvis/orange = 3, + /obj/item/clothing/pants/highvis/red = 3, /obj/item/clothing/head/bandana/cargo = 3, /obj/item/clothing/head/bandana/miner = 4, /obj/item/clothing/head/beret/cargo = 3, @@ -808,18 +808,18 @@ /obj/item/clothing/suit/storage/toggle/corp/heph = 4, /obj/item/clothing/suit/storage/toggle/corp/orion = 4, /obj/item/clothing/suit/storage/toggle/highvis = 3, - /obj/item/clothing/suit/storage/toggle/highvis_alt = 3, - /obj/item/clothing/suit/storage/toggle/highvis_orange = 3, - /obj/item/clothing/suit/storage/toggle/highvis_red = 3, + /obj/item/clothing/suit/storage/toggle/highvis/alt = 3, + /obj/item/clothing/suit/storage/toggle/highvis/orange = 3, + /obj/item/clothing/suit/storage/toggle/highvis/red = 3, /obj/item/clothing/suit/storage/toggle/labcoat = 3, /obj/item/clothing/suit/storage/toggle/labcoat/heph = 2, /obj/item/clothing/suit/storage/toggle/labcoat/orion = 2, /obj/item/clothing/suit/storage/toggle/longcoat/heph = 2, /obj/item/clothing/suit/storage/toggle/longcoat/orion = 2, /obj/item/clothing/pants/highvis = 3, - /obj/item/clothing/pants/highvis_alt = 3, - /obj/item/clothing/pants/highvis_orange = 3, - /obj/item/clothing/pants/highvis_red = 3, + /obj/item/clothing/pants/highvis/alt = 3, + /obj/item/clothing/pants/highvis/orange = 3, + /obj/item/clothing/pants/highvis/red = 3, /obj/item/clothing/head/bandana/cargo = 3, /obj/item/clothing/head/beret/cargo = 3, /obj/item/clothing/head/beret/corporate/heph = 3, diff --git a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm index 493bc235a50..83514433127 100644 --- a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm +++ b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm @@ -177,7 +177,7 @@ new /obj/item/clothing/suit/storage/hazardvest/red(src) new /obj/item/clothing/suit/storage/hazardvest/blue/atmos(src) new /obj/item/clothing/suit/storage/toggle/highvis(src) - new /obj/item/clothing/suit/storage/toggle/highvis_alt(src) + new /obj/item/clothing/suit/storage/toggle/highvis/alt(src) return @@ -205,7 +205,7 @@ new /obj/item/clothing/head/bandana/engineering(src) new /obj/item/clothing/head/bandana/engineering(src) new /obj/item/clothing/suit/storage/toggle/highvis(src) - new /obj/item/clothing/suit/storage/toggle/highvis_alt(src) + new /obj/item/clothing/suit/storage/toggle/highvis/alt(src) new /obj/item/clothing/suit/storage/hazardvest/green(src) new /obj/item/clothing/suit/storage/hazardvest/red(src) diff --git a/code/modules/client/preference_setup/loadout/items/pants.dm b/code/modules/client/preference_setup/loadout/items/pants.dm index 4303147c533..52a99739f6c 100644 --- a/code/modules/client/preference_setup/loadout/items/pants.dm +++ b/code/modules/client/preference_setup/loadout/items/pants.dm @@ -21,10 +21,6 @@ ABSTRACT_TYPE(/datum/gear/pants) pants["red pants"] = /obj/item/clothing/pants/red pants["tan pants"] = /obj/item/clothing/pants/tan pants["khaki pants"] = /obj/item/clothing/pants/khaki - pants["high visibility pants"] = /obj/item/clothing/pants/highvis - pants["high visibility pants, alt"] = /obj/item/clothing/pants/highvis_alt - pants["high visibility pants, red"] = /obj/item/clothing/pants/highvis_red - pants["high visibility pants, orange"] = /obj/item/clothing/pants/highvis_orange pants["track pants"] = /obj/item/clothing/pants/track pants["blue track pants"] = /obj/item/clothing/pants/track/blue pants["green track pants"] = /obj/item/clothing/pants/track/green @@ -111,3 +107,22 @@ ABSTRACT_TYPE(/datum/gear/pants) skirts["jumper dress"] = /obj/item/clothing/pants/skirt/jumper_highcut skirts["long straight skirt"] = /obj/item/clothing/pants/skirt/straightlong gear_tweaks += new /datum/gear_tweak/path(skirts) + +/datum/gear/pants/highvis + display_name = "high visibility pants selection" + description = "A selection of high visibility pants." + path = /obj/item/clothing/pants/highvis + +/datum/gear/pants/highvis/New() + ..() + var/list/highvis = list() + highvis["high visibility pants"] = /obj/item/clothing/pants/highvis + highvis["high visibility pants, alt"] = /obj/item/clothing/pants/highvis/alt + highvis["high visibility pants, red"] = /obj/item/clothing/pants/highvis/red + highvis["high visibility pants, orange"] = /obj/item/clothing/pants/highvis/orange + gear_tweaks += new /datum/gear_tweak/path(highvis) + +/datum/gear/pants/highvis_colorable + display_name = "colorable high visibility pants" + path = /obj/item/clothing/pants/highvis/colorable + flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION | GEAR_HAS_ACCENT_COLOR_SELECTION diff --git a/code/modules/client/preference_setup/loadout/items/suit.dm b/code/modules/client/preference_setup/loadout/items/suit.dm index 7a51ec663ad..d81a6c6df9c 100644 --- a/code/modules/client/preference_setup/loadout/items/suit.dm +++ b/code/modules/client/preference_setup/loadout/items/suit.dm @@ -42,10 +42,6 @@ jackets["flannel jacket, grey"] = /obj/item/clothing/suit/storage/toggle/flannel/gray jackets["flannel jacket, purple"] = /obj/item/clothing/suit/storage/toggle/flannel/purple jackets["flannel jacket, yellow"] = /obj/item/clothing/suit/storage/toggle/flannel/yellow - jackets["high visibility jacket"] = /obj/item/clothing/suit/storage/toggle/highvis - jackets["high visibility jacket, alt"] = /obj/item/clothing/suit/storage/toggle/highvis_alt - jackets["high visibility jacket, red"] = /obj/item/clothing/suit/storage/toggle/highvis_red - jackets["high visibility jacket, orange"] = /obj/item/clothing/suit/storage/toggle/highvis_orange jackets["black vest"] = /obj/item/clothing/suit/storage/toggle/leather_vest jackets["brown vest"] = /obj/item/clothing/suit/storage/toggle/brown_jacket/sleeveless jackets["leather coat"] = /obj/item/clothing/suit/storage/leathercoat @@ -56,6 +52,7 @@ /datum/gear/suit/hazard_vest display_name = "hazard vest selection" + description = "A selection of hazard vests." path = /obj/item/clothing/suit/storage/hazardvest /datum/gear/suit/hazard_vest/New() @@ -71,6 +68,38 @@ hazard["hazard vest, hephaestus green"] = /obj/item/clothing/suit/storage/hazardvest/green gear_tweaks += new /datum/gear_tweak/path(hazard) +/datum/gear/suit/hazard_vest_colorable + display_name = "colorable hazard vest selection" + description = "A selection of colorable hazard vests." + path = /obj/item/clothing/suit/storage/hazardvest/colorable + flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION | GEAR_HAS_ACCENT_COLOR_SELECTION + +/datum/gear/suit/hazard_vest_colorable/New() + ..() + var/list/hazard_vest = list() + hazard_vest["colorable hazard vest"] = /obj/item/clothing/suit/storage/hazardvest/colorable + hazard_vest["colorable hazard vest, alt"] = /obj/item/clothing/suit/storage/hazardvest/colorable/alt + gear_tweaks += new /datum/gear_tweak/path(hazard_vest) + +/datum/gear/suit/highvis + display_name = "high visibility jacket selection" + description = "A selection of high visibility jackets." + path = /obj/item/clothing/suit/storage/toggle/highvis + +/datum/gear/suit/highvis/New() + ..() + var/list/highvis = list() + highvis["high visibility jacket"] = /obj/item/clothing/suit/storage/toggle/highvis + highvis["high visibility jacket, alt"] = /obj/item/clothing/suit/storage/toggle/highvis/alt + highvis["high visibility jacket, red"] = /obj/item/clothing/suit/storage/toggle/highvis/red + highvis["high visibility jacket, orange"] = /obj/item/clothing/suit/storage/toggle/highvis/orange + gear_tweaks += new /datum/gear_tweak/path(highvis) + +/datum/gear/suit/highvis_colorable + display_name = "colorable high visibility jacket" + path = /obj/item/clothing/suit/storage/toggle/highvis/colorable + flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION | GEAR_HAS_ACCENT_COLOR_SELECTION + /datum/gear/suit/hoodie display_name = "hoodie selection" path = /obj/item/clothing/suit/storage/hooded/wintercoat/hoodie @@ -631,15 +660,3 @@ ABSTRACT_TYPE(/datum/gear/suit/miscellaneous) description = "A heavy threaded tweed gray jacket. For a different sort of Gentleman." path = /obj/item/clothing/suit/storage/toggle/wizrobe/gentlecoat flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION - -/datum/gear/suit/hazard_vest_colorable - display_name = "colorable hazard vest selection" - path = /obj/item/clothing/suit/storage/hazardvest/colorable - flags = GEAR_HAS_NAME_SELECTION | GEAR_HAS_DESC_SELECTION | GEAR_HAS_COLOR_SELECTION | GEAR_HAS_ACCENT_COLOR_SELECTION - -/datum/gear/suit/hazard_vest_colorable/New() - ..() - var/list/hazard_vest = list() - hazard_vest["colorable hazard vest"] = /obj/item/clothing/suit/storage/hazardvest/colorable - hazard_vest["colorable hazard vest, alt"] = /obj/item/clothing/suit/storage/hazardvest/colorable/alt - gear_tweaks += new /datum/gear_tweak/path(hazard_vest) diff --git a/code/modules/clothing/pants/highvis.dm b/code/modules/clothing/pants/highvis.dm new file mode 100644 index 00000000000..a1a0c92e135 --- /dev/null +++ b/code/modules/clothing/pants/highvis.dm @@ -0,0 +1,39 @@ +/obj/item/clothing/pants/highvis + name = "high visibility pants" + desc = "A pair of loose-fitting, high visibility pants to help the wearer be recognizable in high traffic areas with large industrial equipment." + icon = 'icons/obj/item/clothing/pants/highvis.dmi' + icon_state = "pants_highvis" + item_state = "pants_highvis" + contained_sprite = TRUE + body_parts_covered = LOWER_TORSO|LEGS + siemens_coefficient = 0.8 + armor = list( + MELEE = ARMOR_MELEE_MINOR, + BIO = ARMOR_BIO_MINOR + ) + +/obj/item/clothing/pants/highvis/get_mob_overlay(mob/living/carbon/human/H, mob_icon, mob_state, slot) + var/image/I = ..() + if(slot == slot_pants_str) + var/image/emissive_overlay = emissive_appearance(mob_icon, "[icon_state][species_sprite_adaption_type]-emis", alpha = src.alpha) + I.AddOverlays(emissive_overlay) + return I + +/obj/item/clothing/pants/highvis/colorable + icon_state = "pants_highvis_colorable" + item_state = "pants_highvis_colorable" + build_from_parts = TRUE + worn_overlay = "lining" + has_accents = TRUE + +/obj/item/clothing/pants/highvis/alt + icon_state = "pants_highvis_alt" + item_state = "pants_highvis_alt" + +/obj/item/clothing/pants/highvis/red + icon_state = "pants_highvis_red" + item_state = "pants_highvis_red" + +/obj/item/clothing/pants/highvis/orange + icon_state = "pants_highvis_orange" + item_state = "pants_highvis_orange" diff --git a/code/modules/clothing/pants/pants.dm b/code/modules/clothing/pants/pants.dm index 61a9c5a6cc9..52689fb9fcd 100644 --- a/code/modules/clothing/pants/pants.dm +++ b/code/modules/clothing/pants/pants.dm @@ -84,62 +84,6 @@ ABSTRACT_TYPE(/obj/item/clothing/pants) icon_state = "khaki" item_state = "khaki" -/obj/item/clothing/pants/highvis - name = "high visibility pants" - desc = "A pair of loose-fitting, high visibility pants to help the wearer be recognizable in high traffic areas with large industrial equipment." - icon = 'icons/obj/item/clothing/pants/highvis.dmi' - icon_state = "pants_highvis" - item_state = "pants_highvis" - -/obj/item/clothing/pants/highvis/get_mob_overlay(mob/living/carbon/human/H, mob_icon, mob_state, slot) - var/image/I = ..() - if(slot == slot_pants_str) - var/image/emissive_overlay = emissive_appearance(mob_icon, "[icon_state][species_sprite_adaption_type]-emis", alpha = src.alpha) - I.AddOverlays(emissive_overlay) - return I - -/obj/item/clothing/pants/highvis_alt - name = "high visibility pants" - desc = "A pair of bright yellow pants with reflective stripes. For use in operations, engineering, and sometimes even law enforcement, in cold and poor weather or when visibility is low." - icon = 'icons/obj/item/clothing/pants/highvis.dmi' - icon_state = "pants_highvis_alt" - item_state = "pants_highvis_alt" - -/obj/item/clothing/pants/highvis_alt/get_mob_overlay(mob/living/carbon/human/H, mob_icon, mob_state, slot) - var/image/I = ..() - if(slot == slot_pants_str) - var/image/emissive_overlay = emissive_appearance(mob_icon, "[icon_state][species_sprite_adaption_type]-emis", alpha = src.alpha) - I.AddOverlays(emissive_overlay) - return I - -/obj/item/clothing/pants/highvis_red - name = "high visibility pants" - desc = "A pair of red pants with reflective stripes. For use in different departments, commonly found in civilian emergency services, in cold and poor weather or when visibility is low." - icon = 'icons/obj/item/clothing/pants/highvis.dmi' - icon_state = "pants_highvis_red" - item_state = "pants_highvis_red" - -/obj/item/clothing/pants/highvis_red/get_mob_overlay(mob/living/carbon/human/H, mob_icon, mob_state, slot) - var/image/I = ..() - if(slot == slot_pants_str) - var/image/emissive_overlay = emissive_appearance(mob_icon, "[icon_state][species_sprite_adaption_type]-emis", alpha = src.alpha) - I.AddOverlays(emissive_overlay) - return I - -/obj/item/clothing/pants/highvis_orange - name = "high visibility pants" - desc = "A pair of orange pants with reflective stripes. For use in different departments, commonly found in civilian industrial services, in dark or secluded areas where visibility is critical for safety." - icon = 'icons/obj/item/clothing/pants/highvis.dmi' - icon_state = "pants_highvis_orange" - item_state = "pants_highvis_orange" - -/obj/item/clothing/pants/highvis_orange/get_mob_overlay(mob/living/carbon/human/H, mob_icon, mob_state, slot) - var/image/I = ..() - if(slot == slot_pants_str) - var/image/emissive_overlay = emissive_appearance(mob_icon, "[icon_state][species_sprite_adaption_type]-emis", alpha = src.alpha) - I.AddOverlays(emissive_overlay) - return I - /obj/item/clothing/pants/camo name = "camouflage pants" desc = "A pair of woodland camouflage pants. Probably not the best choice for a space station." diff --git a/code/modules/clothing/suits/highvis.dm b/code/modules/clothing/suits/highvis.dm new file mode 100644 index 00000000000..2be87574f30 --- /dev/null +++ b/code/modules/clothing/suits/highvis.dm @@ -0,0 +1,49 @@ +/obj/item/clothing/suit/storage/toggle/highvis + name = "high visibility jacket" + desc = "A loose-fitting, high visibility jacket to help the wearer be recognizable in high traffic areas with large industrial equipment." + icon = 'icons/obj/item/clothing/suit/storage/toggle/highvis.dmi' + icon_state = "jacket_highvis" + item_state = "jacket_highvis" + var/emissive_variant = "plain" + contained_sprite = TRUE + body_parts_covered = UPPER_TORSO|ARMS + siemens_coefficient = 0.8 + armor = list( + MELEE = ARMOR_MELEE_MINOR, + BIO = ARMOR_BIO_MINOR + ) + protects_against_weather = TRUE + fire_resist = T0C+200 + +/obj/item/clothing/suit/storage/toggle/highvis/get_mob_overlay(mob/living/carbon/human/H, mob_icon, mob_state, slot) + var/image/I = ..() + if(slot == slot_wear_suit_str) + var/image/emissive_overlay = emissive_appearance(mob_icon, "[opened ? "jacket_highvis_[emissive_variant]_open_su-emis" : "jacket_highvis_[emissive_variant]_su-emis"]", alpha = src.alpha) + I.AddOverlays(emissive_overlay) + return I + +/obj/item/clothing/suit/storage/toggle/highvis/colorable + name = "high visibility jacket" + desc = "A jacket with reflective stripes. For use in different departments, commonly found in civilian industrial services, in dark or secluded areas where visibility is critical for safety." + icon = 'icons/obj/item/clothing/suit/storage/toggle/highvis.dmi' + icon_state = "jacket_highvis_colorable" + item_state = "jacket_highvis_colorable" + emissive_variant = "light" + build_from_parts = TRUE + worn_overlay = "lining" + has_accents = TRUE + +/obj/item/clothing/suit/storage/toggle/highvis/alt + icon_state = "jacket_highvis_alt" + item_state = "jacket_highvis_alt" + emissive_variant = "light" + +/obj/item/clothing/suit/storage/toggle/highvis/red + icon_state = "jacket_highvis_red" + item_state = "jacket_highvis_red" + emissive_variant = "light" + +/obj/item/clothing/suit/storage/toggle/highvis/orange + icon_state = "jacket_highvis_orange" + item_state = "jacket_highvis_orange" + emissive_variant = "plain_alt" diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 9feb0eaec0a..71f440e65d2 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -399,71 +399,6 @@ item_state = "trench_colorable2" has_accents = TRUE -/obj/item/clothing/suit/storage/toggle/highvis - name = "high visibility jacket" - desc = "A loose-fitting, high visibility jacket to help the wearer be recognizable in high traffic areas with large industrial equipment." - icon = 'icons/obj/item/clothing/suit/storage/toggle/highvis.dmi' - icon_state = "jacket_highvis" - item_state = "jacket_highvis" - body_parts_covered = UPPER_TORSO|ARMS - contained_sprite = TRUE - -/obj/item/clothing/suit/storage/toggle/highvis/get_mob_overlay(mob/living/carbon/human/H, mob_icon, mob_state, slot) - var/image/I = ..() - if(slot == slot_wear_suit_str) - var/image/emissive_overlay = emissive_appearance(mob_icon, "[opened ? "jacket_highvis_open_su-emis" : "jacket_highvis_su-emis"]", alpha = src.alpha) - I.AddOverlays(emissive_overlay) - return I - -/obj/item/clothing/suit/storage/toggle/highvis_alt - name = "high visibility jacket" - desc = "A bright yellow jacket with reflective stripes. For use in operations, engineering, and sometimes even law enforcement, in cold and poor weather or when visibility is low." - icon = 'icons/obj/item/clothing/suit/storage/toggle/highvis.dmi' - icon_state = "jacket_highvis_alt" - item_state = "jacket_highvis_alt" - body_parts_covered = UPPER_TORSO|ARMS - contained_sprite = TRUE - -/obj/item/clothing/suit/storage/toggle/highvis_alt/get_mob_overlay(mob/living/carbon/human/H, mob_icon, mob_state, slot) - var/image/I = ..() - if(slot == slot_wear_suit_str) - var/image/emissive_overlay = emissive_appearance(mob_icon, "[opened ? "jacket_highvis_alt_open_su-emis" : "jacket_highvis_alt_su-emis"]", alpha = src.alpha) - I.AddOverlays(emissive_overlay) - return I - -/obj/item/clothing/suit/storage/toggle/highvis_red - name = "high visibility jacket" - desc = "A red jacket with reflective stripes. For use in different departments, commonly found in civilian emergency services, in cold and poor weather or when visibility is low." - icon = 'icons/obj/item/clothing/suit/storage/toggle/highvis.dmi' - icon_state = "jacket_highvis_red" - item_state = "jacket_highvis_red" - body_parts_covered = UPPER_TORSO|ARMS - contained_sprite = TRUE - -/obj/item/clothing/suit/storage/toggle/highvis_red/get_mob_overlay(mob/living/carbon/human/H, mob_icon, mob_state, slot) - var/image/I = ..() - if(slot == slot_wear_suit_str) - var/image/emissive_overlay = emissive_appearance(mob_icon, "[opened ? "jacket_highvis_red_open_su-emis" : "jacket_highvis_red_su-emis"]", alpha = src.alpha) - I.AddOverlays(emissive_overlay) - return I - -/obj/item/clothing/suit/storage/toggle/highvis_orange - name = "high visibility jacket" - desc = "An orange jacket with reflective stripes. For use in different departments, commonly found in civilian industrial services, in dark or secluded areas where visibility is critical for safety." - icon = 'icons/obj/item/clothing/suit/storage/toggle/highvis.dmi' - icon_state = "jacket_highvis_orange" - item_state = "jacket_highvis_orange" - body_parts_covered = UPPER_TORSO|ARMS - contained_sprite = TRUE - -/obj/item/clothing/suit/storage/toggle/highvis_orange/get_mob_overlay(mob/living/carbon/human/H, mob_icon, mob_state, slot) - var/image/I = ..() - if(slot == slot_wear_suit_str) - var/image/emissive_overlay = emissive_appearance(mob_icon, "[opened ? "jacket_highvis_orange_open_su-emis" : "jacket_highvis_orange_su-emis"]", alpha = src.alpha) - I.AddOverlays(emissive_overlay) - return I - - /obj/item/clothing/suit/storage/toggle/track name = "track jacket" desc = "a track jacket, for the athletic." diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 1bc2562975e..077519b12a4 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -312,6 +312,8 @@ There are several things that need to be remembered: return WORN_BELT if(slot_wear_suit_str) return WORN_SUIT + if(slot_pants_str) + return WORN_PANTS if(slot_l_ear_str) return WORN_LEAR if(slot_r_ear_str) diff --git a/html/changelogs/fabiank3-highvis-refactor.yml b/html/changelogs/fabiank3-highvis-refactor.yml new file mode 100644 index 00000000000..717159fddf2 --- /dev/null +++ b/html/changelogs/fabiank3-highvis-refactor.yml @@ -0,0 +1,11 @@ +author: FabianK3 + +delete-after: True + +changes: + - imageadd: "Added colorable high visibility jackets and pants. They can be found in the loadout as a dedicated piece to select. Existing presets of high visibility clothing still exists and can still be selected in the loadout or in vendors." + - balance: "Added some very minor brute, bio and electrical protection to high visibility clothing." + - qol: "Added a dedicated category in the loadout selection for existing high visibility jackets and pants respectively. This change will break current loadouts using either jacket or pants, they need to be re-added manually." + - bugfix: "Fixed pants slot items not getting the correct overlays due to a missing formatting. This PR probably encountered on it for the first time." + - bugfix: "Fixed some high visibility jackets having the incorrect emissive sprite." + - code_imp: "High visibility jackets and plants now have their own dedicated code file and their code has been refactored. Duplicate emissive patterns for the jackets have been removed." diff --git a/icons/obj/item/clothing/pants/highvis.dmi b/icons/obj/item/clothing/pants/highvis.dmi index 81c9ffa5596ab02570a05280f32f6d00436b6371..fed736240c6f0966d8e864040f039c3c264faec5 100644 GIT binary patch literal 3832 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 Cz6`hk literal 3080 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 diff --git a/maps/away/away_site/abandoned_propellant_depot/abandoned_propellant_depot.dmm b/maps/away/away_site/abandoned_propellant_depot/abandoned_propellant_depot.dmm index 4f0026cd3cd..993e2f828f8 100644 --- a/maps/away/away_site/abandoned_propellant_depot/abandoned_propellant_depot.dmm +++ b/maps/away/away_site/abandoned_propellant_depot/abandoned_propellant_depot.dmm @@ -1861,7 +1861,7 @@ /obj/item/clothing/shoes/jackboots/cavalry{ pixel_y = -3 }, -/obj/item/clothing/suit/storage/toggle/highvis_alt, +/obj/item/clothing/suit/storage/toggle/highvis/alt, /turf/simulated/floor/tiled, /area/abandoned_propellant_depot/security) "fK" = ( diff --git a/maps/away/away_site/cult_base/cult_base.dmm b/maps/away/away_site/cult_base/cult_base.dmm index 33ba6188b74..36c6666dbda 100644 --- a/maps/away/away_site/cult_base/cult_base.dmm +++ b/maps/away/away_site/cult_base/cult_base.dmm @@ -3978,7 +3978,7 @@ /obj/random/gloves, /obj/random/loot, /obj/item/clothing/suit/storage/toggle/leather_jacket/flight/green, -/obj/item/clothing/suit/storage/toggle/highvis_alt, +/obj/item/clothing/suit/storage/toggle/highvis/alt, /obj/random/dirt_75, /turf/simulated/floor/tiled/dark, /area/cult_base/crew_quarters) @@ -5712,7 +5712,7 @@ "aDH" = ( /obj/structure/closet, /obj/item/clothing/shoes/winter/tajara, -/obj/item/clothing/suit/storage/toggle/highvis_alt, +/obj/item/clothing/suit/storage/toggle/highvis/alt, /obj/random/spacecash, /obj/random/loot, /obj/random/colored_jumpsuit, diff --git a/maps/away/scenarios/cryo_outpost/cryo_outpost.dmm b/maps/away/scenarios/cryo_outpost/cryo_outpost.dmm index 1566a9eadc4..1192db71209 100644 --- a/maps/away/scenarios/cryo_outpost/cryo_outpost.dmm +++ b/maps/away/scenarios/cryo_outpost/cryo_outpost.dmm @@ -4104,7 +4104,7 @@ /area/cryo_outpost/inside/labs_rnd) "exS" = ( /obj/structure/closet, -/obj/item/clothing/suit/storage/toggle/highvis_alt, +/obj/item/clothing/suit/storage/toggle/highvis/alt, /obj/item/reagent_containers/spray/pepper, /obj/effect/floor_decal/corner/blue/diagonal, /obj/item/melee/telebaton, @@ -13273,7 +13273,7 @@ pixel_x = -3; pixel_y = 4 }, -/obj/item/clothing/suit/storage/toggle/highvis_alt{ +/obj/item/clothing/suit/storage/toggle/highvis/alt{ pixel_x = 3; pixel_y = -2 }, diff --git a/maps/away/scenarios/cryo_outpost/cryo_outpost_outfits.dm b/maps/away/scenarios/cryo_outpost/cryo_outpost_outfits.dm index ee8f60f4fde..a4aef3dd0cd 100644 --- a/maps/away/scenarios/cryo_outpost/cryo_outpost_outfits.dm +++ b/maps/away/scenarios/cryo_outpost/cryo_outpost_outfits.dm @@ -195,7 +195,7 @@ /obj/item/clothing/suit/storage/toggle/leather_jacket/military/tan, /obj/item/clothing/suit/storage/toggle/highvis, /obj/item/clothing/suit/storage/toggle/highvis, - /obj/item/clothing/suit/storage/toggle/highvis_alt, + /obj/item/clothing/suit/storage/toggle/highvis/alt, /obj/item/clothing/suit/storage/toggle/track, /obj/item/clothing/suit/storage/hazardvest, /obj/item/clothing/suit/storage/hazardvest/green, diff --git a/maps/away/scenarios/enviro_testing_facility/enviro_testing_facility_submaps_main.dmm b/maps/away/scenarios/enviro_testing_facility/enviro_testing_facility_submaps_main.dmm index 4ce934661e6..74fb89e0b8e 100644 --- a/maps/away/scenarios/enviro_testing_facility/enviro_testing_facility_submaps_main.dmm +++ b/maps/away/scenarios/enviro_testing_facility/enviro_testing_facility_submaps_main.dmm @@ -13979,8 +13979,8 @@ /area/enviro_testing_facility/inside/engineering/storage_1) "nZi" = ( /obj/structure/closet, -/obj/item/clothing/pants/highvis_alt, -/obj/item/clothing/suit/storage/toggle/highvis_alt, +/obj/item/clothing/pants/highvis/alt, +/obj/item/clothing/suit/storage/toggle/highvis/alt, /obj/item/clothing/head/softcap/engineering, /obj/item/clothing/suit/storage/hazardvest, /obj/outfit/admin/generic/engineer, @@ -23355,8 +23355,8 @@ "xQT" = ( /obj/structure/closet, /obj/effect/floor_decal/industrial/outline/engineering, -/obj/item/clothing/pants/highvis_alt, -/obj/item/clothing/suit/storage/toggle/highvis_alt, +/obj/item/clothing/pants/highvis/alt, +/obj/item/clothing/suit/storage/toggle/highvis/alt, /obj/item/clothing/head/softcap/engineering, /obj/item/clothing/suit/storage/hazardvest, /obj/outfit/admin/generic/engineer, diff --git a/maps/away/scenarios/nuclear_silo/nuclear_silo_outfits.dm b/maps/away/scenarios/nuclear_silo/nuclear_silo_outfits.dm index a2abc629e21..7d7dae99685 100644 --- a/maps/away/scenarios/nuclear_silo/nuclear_silo_outfits.dm +++ b/maps/away/scenarios/nuclear_silo/nuclear_silo_outfits.dm @@ -173,7 +173,7 @@ ) suit = list( /obj/item/clothing/suit/storage/toggle/highvis, - /obj/item/clothing/suit/storage/toggle/highvis_alt, + /obj/item/clothing/suit/storage/toggle/highvis/alt, /obj/item/clothing/suit/storage/hooded/wintercoat/engineering, /obj/item/clothing/suit/storage/hazardvest, /obj/item/clothing/suit/storage/hazardvest/blue, diff --git a/maps/away/scenarios/ruined_propellant_depot/ruined_propellant_depot.dmm b/maps/away/scenarios/ruined_propellant_depot/ruined_propellant_depot.dmm index 80dcae5de51..6b87881e138 100644 --- a/maps/away/scenarios/ruined_propellant_depot/ruined_propellant_depot.dmm +++ b/maps/away/scenarios/ruined_propellant_depot/ruined_propellant_depot.dmm @@ -1916,7 +1916,7 @@ /obj/item/clothing/shoes/jackboots/cavalry{ pixel_y = -3 }, -/obj/item/clothing/suit/storage/toggle/highvis_alt, +/obj/item/clothing/suit/storage/toggle/highvis/alt, /turf/simulated/floor/tiled, /area/ruined_propellant_depot/security) "fK" = ( diff --git a/maps/away/ships/scc/scc_scout_ship.dmm b/maps/away/ships/scc/scc_scout_ship.dmm index 866b0706529..693732f911f 100644 --- a/maps/away/ships/scc/scc_scout_ship.dmm +++ b/maps/away/ships/scc/scc_scout_ship.dmm @@ -1206,7 +1206,7 @@ /obj/item/clothing/accessory/tie/black, /obj/random/hoodie, /obj/item/clothing/under/konyangdresstraditional, -/obj/item/clothing/suit/storage/toggle/highvis_alt, +/obj/item/clothing/suit/storage/toggle/highvis/alt, /obj/item/clothing/suit/ianshirt, /turf/simulated/floor/tiled/dark, /area/ship/scc_scout_ship/quarters) diff --git a/maps/away/ships/tirakqi_smuggler/tirakqi_smuggler_ghostroles.dm b/maps/away/ships/tirakqi_smuggler/tirakqi_smuggler_ghostroles.dm index 6e1a360d77d..8444473f3fb 100644 --- a/maps/away/ships/tirakqi_smuggler/tirakqi_smuggler_ghostroles.dm +++ b/maps/away/ships/tirakqi_smuggler/tirakqi_smuggler_ghostroles.dm @@ -188,5 +188,5 @@ uniform = /obj/item/clothing/under/skrell/wetsuit/tirakqi/engineer accessory = /obj/item/clothing/accessory/storage/pouches/brown - suit = /obj/item/clothing/suit/storage/toggle/highvis_alt + suit = /obj/item/clothing/suit/storage/toggle/highvis/alt gloves = /obj/item/clothing/gloves/yellow