diff --git a/code/modules/client/preference_setup/loadout/loadout_eyes.dm b/code/modules/client/preference_setup/loadout/loadout_eyes.dm index 5e1d7488303..858affe1f08 100644 --- a/code/modules/client/preference_setup/loadout/loadout_eyes.dm +++ b/code/modules/client/preference_setup/loadout/loadout_eyes.dm @@ -134,16 +134,30 @@ gear_tweaks += new /datum/gear_tweak/path(blindfold) /datum/gear/eyes/goon_goggles - display_name = "tactical goggles selection" + display_name = "tactical HUD goggles selection (security)" description = "A selection of tactical eyewear. Note that factional ones can only be taken by members of that faction." path = /obj/item/clothing/glasses/safety/goggles/goon /datum/gear/eyes/goon_goggles/New() - allowed_roles = security_positions ..() + allowed_roles = security_positions var/list/goggles = list() goggles["goggles, tactical"] = list(/obj/item/clothing/glasses/safety/goggles/goon, null) goggles["goggles, tactical (PMCG)"] = list(/obj/item/clothing/glasses/safety/goggles/goon/pmc, "Private Military Contracting Group") goggles["goggles, tactical (Zavodskoi)"] = list(/obj/item/clothing/glasses/safety/goggles/goon/zavod, "Zavodskoi Interstellar") goggles["goggles, tactical (Idris)"] = list(/obj/item/clothing/glasses/safety/goggles/goon/idris, "Idris Incorporated") gear_tweaks += new /datum/gear_tweak/path/faction(goggles) + +/datum/gear/eyes/medical_goggles + display_name = "HUD goggles selection (medical)" + description = "A selection of medical goggles. Note that factional ones can only be taken by members of that faction." + path = /obj/item/clothing/glasses/safety/goggles/medical + allowed_roles = list("First Responder") + +/datum/gear/eyes/medical_goggles/New() + ..() + var/list/goggles = list() + goggles["goggles, medical"] = list(/obj/item/clothing/glasses/safety/goggles/medical, null) + goggles["goggles, medical (PMCG)"] = list(/obj/item/clothing/glasses/safety/goggles/medical/pmc, "Private Military Contracting Group") + goggles["goggles, medical (Zeng-Hu)"] = list(/obj/item/clothing/glasses/safety/goggles/medical/zeng, "Zeng-Hu Pharmaceuticals") + gear_tweaks += new /datum/gear_tweak/path/faction(goggles) diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm index 1e56f72a5ad..1216f514506 100644 --- a/code/modules/clothing/glasses/glasses.dm +++ b/code/modules/clothing/glasses/glasses.dm @@ -240,6 +240,7 @@ BLIND // can't see anything var/flip_down = "down to protect your eyes." var/flip_up = "up out of your face." var/up = 0 + normal_layer = FALSE /obj/item/clothing/glasses/safety/goggles/Initialize(mapload, material_key) . = ..() @@ -295,15 +296,41 @@ BLIND // can't see anything flip_down = "up to protect your eyes." flip_up = "and let it hang around your neck." +//essentially just sunglasses +/obj/item/clothing/glasses/safety/goggles/tactical + name = "tactical goggles" + desc = "A stylish pair of tactical goggles that protect the eyes from aerosolized chemicals, debris and bright flashes." + var/brand_name + icon = 'icons/clothing/eyes/goon_goggles.dmi' + var/sprite_state = "military_goggles" + flash_protection = FLASH_PROTECTION_MODERATE //This needs to be set even if the state changes later, otherwise it spawns with no flash protection while appearing to be down + contained_sprite = TRUE + change_item_state_on_flip = TRUE + +/obj/item/clothing/glasses/safety/goggles/tactical/Initialize(mapload, material_key) + icon_state = sprite_state + item_state = sprite_state + off_state = sprite_state + . = ..() + if(brand_name) + desc += " This pair has been made in [brand_name] colors." + +/obj/item/clothing/glasses/safety/goggles/tactical/handle_additional_changes() + flash_protection = up ? FLASH_PROTECTION_NONE : FLASH_PROTECTION_MODERATE + +/obj/item/clothing/glasses/safety/goggles/tactical/generic + sprite_state = "security_goggles" + +//security hud /obj/item/clothing/glasses/safety/goggles/goon name = "tactical goggles" - desc = "A stylish pair of tactical goggles that protect the eyes from aerosolized chemicals." + desc = "A stylish pair of tactical goggles that protect the eyes from aerosolized chemicals, debris and bright flashes. Comes with a security HUD." var/brand_name icon = 'icons/clothing/eyes/goon_goggles.dmi' var/sprite_state = "security_goggles" + flash_protection = FLASH_PROTECTION_MODERATE contained_sprite = TRUE change_item_state_on_flip = TRUE - normal_layer = FALSE /obj/item/clothing/glasses/safety/goggles/goon/Initialize(mapload, material_key) icon_state = sprite_state @@ -335,6 +362,39 @@ BLIND // can't see anything sprite_state = "idris_goggles" brand_name = "Idris" +//medical hud +/obj/item/clothing/glasses/safety/goggles/medical + name = "medical goggles" + desc = "A stylish pair of medical goggles that protect the eyes from aerosolized chemicals and debris. Comes with a medical HUD." + var/brand_name + icon = 'icons/clothing/eyes/goon_goggles.dmi' + var/sprite_state = "security_goggles" + contained_sprite = TRUE + change_item_state_on_flip = TRUE + +/obj/item/clothing/glasses/safety/goggles/medical/Initialize(mapload, material_key) + icon_state = sprite_state + item_state = sprite_state + off_state = sprite_state + . = ..() + if(brand_name) + desc += " This pair has been made in [brand_name] colors." + +/obj/item/clothing/glasses/safety/goggles/medical/process_hud(var/mob/M) + if(!up) + process_med_hud(M, TRUE) + +/obj/item/clothing/glasses/safety/goggles/medical/is_med_hud() + return !up + +/obj/item/clothing/glasses/safety/goggles/medical/pmc + sprite_state = "pmc_goggles" + brand_name = "PMCG" + +/obj/item/clothing/glasses/safety/goggles/medical/zeng + sprite_state = "zeng_goggles" + brand_name = "Zeng-Hu" + /obj/item/clothing/glasses/eyepatch name = "eyepatch" desc = "Yarr." diff --git a/html/changelogs/wickedcybs_larp.yml b/html/changelogs/wickedcybs_larp.yml new file mode 100644 index 00000000000..852d7519dba --- /dev/null +++ b/html/changelogs/wickedcybs_larp.yml @@ -0,0 +1,11 @@ +author: WickedCybs + +delete-after: True + +changes: + - rscadd: "Added a Zeng-Hu and military version of the tactical goon goggles added by HappyFox." + - rscadd: "There is a medical goggles loadout selection now. Only First Responders can select these." + - tweak: "Renamed the tactical goggles selection due to the above. The label 'security' is appended to it." + - bugfix: "Fixes the tactical goggles not offering any flash protection until you pushed it up and then back down." + - rscadd: "Added the generic military goggles to the mercenary spawn zone and the three Solarian offships" + - tweak: "Safety goggles now inherently layer above hair unless you adjust them." \ No newline at end of file diff --git a/icons/clothing/eyes/goon_goggles.dmi b/icons/clothing/eyes/goon_goggles.dmi index 3541e7d9aa2..08445d6094e 100644 Binary files a/icons/clothing/eyes/goon_goggles.dmi and b/icons/clothing/eyes/goon_goggles.dmi differ diff --git a/maps/away/ships/sol_merc/fsf_patrol_ship.dmm b/maps/away/ships/sol_merc/fsf_patrol_ship.dmm index 51b32620fb0..de5eb8a134a 100644 --- a/maps/away/ships/sol_merc/fsf_patrol_ship.dmm +++ b/maps/away/ships/sol_merc/fsf_patrol_ship.dmm @@ -661,6 +661,8 @@ inserted_light = /obj/item/light/tube/colored/blue }, /obj/item/device/gps, +/obj/item/clothing/glasses/safety/goggles/tactical, +/obj/item/clothing/mask/gas/half, /turf/simulated/floor/tiled/dark, /area/ship/fsf_patrol_ship) "eTq" = ( @@ -1344,6 +1346,8 @@ /obj/item/clothing/suit/space/void/sol/fsf, /obj/item/clothing/head/helmet/space/void/sol/fsf, /obj/item/device/gps, +/obj/item/clothing/glasses/safety/goggles/tactical, +/obj/item/clothing/mask/gas/half, /turf/simulated/floor/tiled/dark, /area/ship/fsf_patrol_ship) "iQy" = ( @@ -1678,6 +1682,8 @@ /obj/item/clothing/suit/space/void/sol/fsf, /obj/item/clothing/head/helmet/space/void/sol/fsf, /obj/item/device/gps, +/obj/item/clothing/glasses/safety/goggles/tactical, +/obj/item/clothing/mask/gas/half, /turf/simulated/floor/tiled/dark, /area/ship/fsf_patrol_ship) "lBQ" = ( @@ -2623,6 +2629,8 @@ /obj/item/clothing/suit/space/void/sol/fsf, /obj/item/clothing/head/helmet/space/void/sol/fsf, /obj/item/device/gps, +/obj/item/clothing/glasses/safety/goggles/tactical, +/obj/item/clothing/mask/gas/half, /turf/simulated/floor/tiled/dark, /area/ship/fsf_patrol_ship) "vgc" = ( diff --git a/maps/away/ships/sol_pirate/sfa_patrol_ship.dmm b/maps/away/ships/sol_pirate/sfa_patrol_ship.dmm index 56f0dad6857..0e42078ed8f 100644 --- a/maps/away/ships/sol_pirate/sfa_patrol_ship.dmm +++ b/maps/away/ships/sol_pirate/sfa_patrol_ship.dmm @@ -1199,6 +1199,8 @@ }, /obj/item/device/radio/off, /obj/item/device/gps, +/obj/item/clothing/glasses/safety/goggles/tactical, +/obj/item/clothing/mask/gas/half, /turf/simulated/floor/tiled/dark, /area/ship/sfa_patrol_ship/Suit_Storage) "eLQ" = ( diff --git a/maps/away/ships/sol_ssmd/ssmd_ship.dmm b/maps/away/ships/sol_ssmd/ssmd_ship.dmm index 7dbd5374ea3..db414e48aea 100644 --- a/maps/away/ships/sol_ssmd/ssmd_ship.dmm +++ b/maps/away/ships/sol_ssmd/ssmd_ship.dmm @@ -232,6 +232,8 @@ dir = 8 }, /obj/item/device/gps, +/obj/item/clothing/mask/gas/half, +/obj/item/clothing/glasses/safety/goggles/tactical, /turf/simulated/floor/tiled/dark, /area/ship/ssmd_corvette/dorms) "aHC" = ( @@ -473,6 +475,8 @@ dir = 8 }, /obj/item/device/gps, +/obj/item/clothing/mask/gas/half, +/obj/item/clothing/glasses/safety/goggles/tactical, /turf/simulated/floor/tiled/dark, /area/ship/ssmd_corvette/dorms) "bdq" = ( @@ -1491,6 +1495,7 @@ /obj/item/clothing/gloves/latex, /obj/item/clothing/mask/surgical/w, /obj/item/clothing/mask/surgical/w, +/obj/item/clothing/glasses/safety/goggles/tactical, /turf/simulated/floor/tiled/dark, /area/ship/ssmd_corvette/dorms) "dUd" = ( @@ -2643,6 +2648,8 @@ /obj/item/clothing/head/helmet/space/void/sol/ssmd, /obj/item/tank/emergency_oxygen/double, /obj/item/device/gps, +/obj/item/clothing/mask/gas/half, +/obj/item/clothing/glasses/safety/goggles/tactical, /turf/simulated/floor/tiled/dark, /area/ship/ssmd_corvette/dorms) "gKp" = ( @@ -2887,6 +2894,8 @@ dir = 4 }, /obj/item/device/gps, +/obj/item/clothing/mask/gas/half, +/obj/item/clothing/glasses/safety/goggles/tactical, /turf/simulated/floor/tiled/dark, /area/ship/ssmd_corvette/dorms) "hBs" = ( diff --git a/maps/sccv_horizon/sccv_horizon-4_centcomm.dmm b/maps/sccv_horizon/sccv_horizon-4_centcomm.dmm index 3734f71625b..932f6ab37cf 100644 --- a/maps/sccv_horizon/sccv_horizon-4_centcomm.dmm +++ b/maps/sccv_horizon/sccv_horizon-4_centcomm.dmm @@ -27866,6 +27866,30 @@ pixel_x = -6; pixel_y = 8 }, +/obj/item/clothing/glasses/safety/goggles/tactical{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/clothing/glasses/safety/goggles/tactical{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/clothing/glasses/safety/goggles/tactical{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/clothing/glasses/safety/goggles/tactical{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/clothing/glasses/safety/goggles/tactical{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/clothing/glasses/safety/goggles/tactical{ + pixel_x = 6; + pixel_y = 6 + }, /turf/unsimulated/floor{ icon_state = "new_reinforced" },