From 79d19eda44bd6881b2695ad19581d516e4f06881 Mon Sep 17 00:00:00 2001 From: WickedCybs <52309324+WickedCybs@users.noreply.github.com> Date: Mon, 6 Feb 2023 14:29:48 -0500 Subject: [PATCH] LARP Expansion Pack: Goggles for First Responders, Sol and Mercenaries (#15706) --- .../preference_setup/loadout/loadout_eyes.dm | 18 ++++- code/modules/clothing/glasses/glasses.dm | 64 +++++++++++++++++- html/changelogs/wickedcybs_larp.yml | 11 +++ icons/clothing/eyes/goon_goggles.dmi | Bin 1156 -> 1594 bytes maps/away/ships/sol_merc/fsf_patrol_ship.dmm | 8 +++ .../away/ships/sol_pirate/sfa_patrol_ship.dmm | 2 + maps/away/ships/sol_ssmd/ssmd_ship.dmm | 9 +++ maps/sccv_horizon/sccv_horizon-4_centcomm.dmm | 24 +++++++ 8 files changed, 132 insertions(+), 4 deletions(-) create mode 100644 html/changelogs/wickedcybs_larp.yml 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 3541e7d9aa2ff142f4c4703b44388ab2ad2fd87e..08445d6094e8b08376e2d65878d3481c3acc85ac 100644 GIT binary patch delta 1544 zcmX|>dpMJA7{K2pr#7s0cssCkSUNF$-&b5@E2}=1Rg!eFVTl|Ul8j}+YOLE{uit(-ktXGi=`Ys9uyNA6&rdi5&+_gujO^m zYPQC1c|ASv@)zooffKuNp7Wm)XJ)*@44*5?8 zH|EQx*Y3RN?zCJA=Cb8NhWml*9H)KT(Hro=DY1N26&Mmv%u-G!?_9z(#xBA%oMpAe zDs4DC%+L>iQ`%w6F|9oB35Mk4;+%#?%Z13%|1o-k0M>sx#i&ayB6>_3k$S zm|5UK+2j*f{PkT#Zjn7!5RK1svrhRpHN8JDQ$VyO05W8*z=xJ`(VUy zVEFP(lWn)u2o8UEis{(-hlt)>8eU}cvZ{S%SyjB5c_zcEvA!NU9k5y`83czm_>kCb z9rCn26m177X`@W)vYSxoQozm(DC9E*|3nFdlS@cDlGKPJJ`W6hLaxFKA0~B44?ACd zngCswF1AyCcZE6y>jW4-&x32k%TPEATLUhRSaI}YMv2ykU~OuP;^InYJsfF|k29^e zQx2N;7$M^j!t+dsS)+{CwjN<2+P#(oUK#oo0kApO$J-ao7rpFc2A=m=rN)$f* zTUIdobC*5Tc}6BaV=#?gCMWL97JHILI8HEx?oqKYsrB4o8L`rC4mJ=nR0SXR_Pa+3;u``@ZJmzC`8ryda`Y7=+$wbkt_zeR82Gdc`psuCDo)EWr&{)mT! zgWUyQFV=;k$c3MX>5Y6cUg344^t)HF#!xy%HQIdeK#uvx>@Pmp zU`xB{Rcp_~?z1ZjhQ=`JjUxW46=?=VBZV46IxO$M;M`n6W%j8wiIZT6cUzliQ?tZH z!TpKGK6K}euU$-5EnlqDO->IB<02^&j;N&*pr2>sLCzJM(}>I(Mu!u4^JBuYCl$D; zLz3Qc@Dq-H&C`{Kq+G=r>&e7k6cL?GABCKBwy-w~Q~g~G1{%Cxg*`x0xQ7w+(<%Yn>}K_|Fuy6zx+BOLnU{R>HCqj z1F^G-q~JljQ7(RtLU!Thf+QGinfM9!!~Wb78S#=s0~`R&>$F7N1Zs#bc4x62P!>6k z>z~ja#dW;dE)$|{JZ;h>JQ-;NK5ToaMSgZ1zas*cpVY~S);8%@<=HiJj_k-KSRO$@ zRu6Ms-ZxVPdor|Ba|RKZgUddq)%;%QlkXudW;D3gp>@UF1fv(#gW+C6=<7|{jA!Is z;aOp|o)4^436Mw%#*suM*(97Ok4s9<>=jvX(y5S8ec!!w%(z{JHg5_*E~9h}8;^mM z_jER1*p$>Y89f0OONk3jq9dNZqCcmvv~EFWP%~I*{%QT=SSFNwr^RA(q(+JNpHWS9 zZBS|M{<5+Ew+@J>RY->2y%#>7oBKTMh}iT(Zm39}MWmR+JZKc-I+UP28y(?0Y7sO6 hW=8x_X?_pfzJ#AI48Ldz?#a*#@Yq75RBvXa{13p|_!& zf55=N%kzjd00001bW%=J06^y0W&i*Hy?RtwbVOxyV{&P5bZKvH004NLm6JUSgD?<= z=j2xe-Ag}QyA(wn>R*sxuE{~Il0=LB^_4o*3@w-Kj=T?f-r-VlDaxuA`L*H`Scm;X zoJF?VbM{2#&9a=1oEboE{JJ+`=u zDvCP)9MKyiNCn7P?l=Sh00SgRL_t(|obBA}a+@#|g;6esHkC0KnfHIy9$}Bof7lUn zq7XRpw|OWE_=W==K z_pQm2`h>YW_In?Qt3z2TPgvKLxBGF*s$Q|4i|rp@=yea?;m%s zXq&8QsR*$R`bXW2+#s7~x=S``_K){`l2Bte5b7VBc|eW*V_*bL>yl+tzE)-b7#hJ= z$f3C&^#yz!!Q}eKX#`KV5lpXtd>TOj0001ZBR}!}-k$r%KsoY~Tu$LzlcjAFx^kqA zD@Ss9?Dswpx2L9wPPpy+e|vQ;-=hUh8`VEfFXy>moOsSID>3iy?W2E`G4p;88_GEV zNEH>hZl>$|u9FY>R9b;AGxvOwP-Q)}On!p1fC?Mp5HoaBK=(O#`bXUcA&2gI1ONa4 zfVYzT{-M(&d&2cdF?8}^%l@I?7Z{P(_78QxIQe|pt*qKV2DuUGe4rV;A9_27Z*lYeL+$x|wvqj#oWrhjdGU(TW_FD1 zA4j{}eAqYoN8OCOf4SM|E@_qakAeL|@A)L5#%>_Af2f@YRM|wZ00000003Zf{{b6S VI%wxkx)T5Z002ovPDHLkV1kUa7})>- 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" },