From 3b3f0da414c527f13c3943da35adf5d9f6fac721 Mon Sep 17 00:00:00 2001 From: Geeves Date: Tue, 22 Dec 2020 16:31:57 +0200 Subject: [PATCH] Sensical Emergency Lockers (#10749) --- .../structures/crates_lockers/closets.dm | 8 ++-- .../crates_lockers/closets/walllocker.dm | 35 +++++------------- .../reagents/reagent_containers/hypospray.dm | 8 ++++ .../geeves-sensical_emergency_lockers.yml | 7 ++++ icons/obj/walllocker.dmi | Bin 1514 -> 2483 bytes maps/aurora/aurora-1_centcomm.dmm | 18 +++------ maps/aurora/aurora-6_surface.dmm | 6 +-- 7 files changed, 37 insertions(+), 45 deletions(-) create mode 100644 html/changelogs/geeves-sensical_emergency_lockers.yml diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index fbfeadb660c..21dbccd6306 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -132,9 +132,9 @@ dump_contents() icon_state = icon_opened - opened = 1 + opened = TRUE playsound(loc, open_sound, 25, 0, -3) - density = 0 + density = FALSE return 1 /obj/structure/closet/proc/close() @@ -153,7 +153,7 @@ stored_units += store_mobs(stored_units) icon_state = icon_closed - opened = 0 + opened = FALSE if(linked_teleporter) if(linked_teleporter.last_use + 600 > world.time) return @@ -162,7 +162,7 @@ linked_teleporter.last_use = world.time playsound(get_turf(src), close_sound, 25, 0, -3) - density = TRUE + density = initial(density) return TRUE //Cham Projector Exception diff --git a/code/game/objects/structures/crates_lockers/closets/walllocker.dm b/code/game/objects/structures/crates_lockers/closets/walllocker.dm index 033b14a0b57..a90f758663d 100644 --- a/code/game/objects/structures/crates_lockers/closets/walllocker.dm +++ b/code/game/objects/structures/crates_lockers/closets/walllocker.dm @@ -6,40 +6,25 @@ name = "Wall Locker" icon = 'icons/obj/walllocker.dmi' icon_state = "wall-locker" - density = 0 - anchored = 1 + density = FALSE + anchored = TRUE store_mobs = FALSE icon_closed = "wall-locker" icon_opened = "wall-lockeropen" -//spawns endless (3 sets) amounts of breathmask, emergency oxy tank and crowbar - /obj/structure/closet/walllocker/emerglocker name = "emergency locker" desc = "A wall mounted locker with emergency supplies." - var/list/spawnitems = list(/obj/item/tank/emergency_oxygen,/obj/item/clothing/mask/breath) - var/amount = 2 // spawns each items X times. icon_state = "emerg" + icon_closed = "emerg" + icon_opened = "emerg-open" -/obj/structure/closet/walllocker/emerglocker/toggle(mob/user as mob) - attack_hand(user) - return - -/obj/structure/closet/walllocker/emerglocker/attackby(obj/item/W as obj, mob/user as mob) - return - -/obj/structure/closet/walllocker/emerglocker/attack_hand(mob/user as mob) - if (istype(user, /mob/living/silicon/ai)) //Added by Strumpetplaya - AI shouldn't be able to - return //activate emergency lockers. This fixes that. (Does this make sense, the AI can't call attack_hand, can it? --Mloc) - if(!amount) - to_chat(usr, "It's empty..") - return - if(amount) - to_chat(usr, "You take out some items from \the [src].") - for(var/path in spawnitems) - new path(loc) - amount-- - return +/obj/structure/closet/walllocker/emerglocker/fill() + for(var/i = 1 to 3) + new /obj/item/tank/emergency_oxygen(src) + new /obj/item/clothing/mask/breath(src) + if(prob(20)) + new /obj/item/reagent_containers/hypospray/autoinjector/emergency(src) /obj/structure/closet/walllocker/emerglocker/north pixel_y = 32 diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index 8c7f6c1f0ba..93a17351abb 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -169,6 +169,14 @@ reagents.add_reagent(/datum/reagent/inaprovaline, 5) update_icon() +/obj/item/reagent_containers/hypospray/autoinjector/emergency + name = "autoinjector (emergency)" + reagents_to_add = list(/datum/reagent/inaprovaline = 2.5, /datum/reagent/dexalin = 2.5) + +/obj/item/reagent_containers/hypospray/autoinjector/emergency/Initialize() + . = ..() + desc += " This auto-injector is to be used in emergencies. It contains a small amount of inaprovaline and dexalin." + /obj/item/reagent_containers/hypospray/autoinjector/sideeffectbgone name = "sideeffects-be-gone! autoinjector" desc = "A special cocktail designed to counter the side-effects of various drugs. Has 2 uses." diff --git a/html/changelogs/geeves-sensical_emergency_lockers.yml b/html/changelogs/geeves-sensical_emergency_lockers.yml new file mode 100644 index 00000000000..694570e463d --- /dev/null +++ b/html/changelogs/geeves-sensical_emergency_lockers.yml @@ -0,0 +1,7 @@ +author: Geeves + +delete-after: True + +changes: + - rscadd: "You can now open and close emergency wall lockers like you would any other locker / closet." + - rscadd: "Emergency wall lockers now have a chance to spawn with emergency auto-injectors. These contain a small amount of dexalin and inaprovaline." \ No newline at end of file diff --git a/icons/obj/walllocker.dmi b/icons/obj/walllocker.dmi index 8d43670829d85819d38627c805052b606a974f75..51b2dddcd5cb5ef0f0d83f57404222cfc2bac99b 100644 GIT binary patch delta 2231 zcmV;o2uSzp3$qiD7Y?8Z0{{R3yb+fl0003^ktKzHRC}4gz`z$AAtx_5CNDWBHb+EW zawaY|CNDN7E;l7EHYP1LCN4E4EHor6G$SfABP%l_D>5P~F(N53A}KHA0{mz zB`qI+CoLZ(EgK;w8X+YbASN0iCLSg$9wjUvBrG2#EFC2*9wjRuBr6^yD;y#y8zLwi zA}1UnC>tUt9V99pBPtyuDIOy!93v?mA}PSYz_=G7ivR!s0d!JMQvg8b*k%9#0Ihmd zSad{Xb7OL8aCB*JZU6vyoKseCa&`CgQ*iN--+zCJQ>BX<72?iE%ET!NyQ<_Y{6`Y zWbDj9%1z|#6f=Bn2h8ZG8NM`NR!5!jD(Zi9yOx%gmX?;5mX?-Q3o?j`z2*?9LfKvi*PWK_|vdS2F! zH92KdaRH^(rB(p5`~gV|o)rU1mIwpL+7J0HA$%QmvX3==i={1LzmX?;5mRA1c!dIT<7C>CWe!Z*D z0fPpENJ2nWeXfJ?8Zb-`$~+Ihgn+X89B%Jm#0xAFl6m+g0TkEgIt=IrfTq-flJZwZ zK(sIu6BG8?b5!XLkp(4tumwP2-Wq@G&r)d;e^0d<0KaR8z0&&_0eapA^i2XNsm~EW zapqql=f7OGrmXRCxQ|nSaQlppn>HT5g63cVi|SJ>tIsI`@yuvy8<7-Ch5)cqsqg@& zXJ)-f0$(Vr&*64S^{GTGQ&9ubIa1HhMb;tW0!r$0s`i#GNIInfU0}qP*o1#aN&qOd z5N?-PxMT*~OKm~!9z=k|4a0vO$Ke7>_85|EkK!f9+v`{s#D}D4VZk4q`SNi9Wv86( zLD3SUTWWk9p73&+9CsEF8qQjPk^)NnTtV(9ozTM(Uk8lz!;z2V_(=-52qg!U9}<}( z53Y!_HoP&=R^pE#kejlgXb*oX02Oz277;+Y2Zg6t2`G9P%td@o?*QFP@<0H# z8>WK*TMQPMKiH*T^!@PHRs{?=`4Sapa$s1_G6G!2y6mU>u+dIp{#buFG&jxd!Hkjy zFu)3s09p$KaP`X7)oa)N8w_AFT!h0h6X1BsYqEjxHogx!(qKG*pG+NlQ}1_ zAW7-Nw8ctWAT+M+;bMQS#|z34AQH!dmgj}LkZVE9M0|JFH}0-)`1kHJfOyz2@q>U# z`v7WP0%)RIV{C|E-+6Y>O91%b;pXO}P3|6q1FwLs$6HToPiy|O8Ut9K$AC0-=2);u zjmrh3*7a;r(nA5ax1aC4*x>@&sJ&i)S%3Aq?!S2}0*oxk0xo|nE)c*A=_QT>QWG+O zCIZ;q-Fx?bk9W%9u(18Z{>M+B_rLgGzli{Y@{JUbu@S(fTMq#ShE6>{ZQ+ZoanSgF z&}jHSex?r5oQK;F51Y+jznlJ_zx+KI6~Gub69+^v=Tm@Y2uQje5kT<=1gAKvAf}y2 z5)i)Opb91e2#KFpbY_`1ICNROdt)|gXZZuQNXJR=~XE~2q+9#<#G%0 zT!5DlsFI?V>VuMyza468TG^3;XWkR@{FgSgw6wHxEVm%9uDJ!(W!qUr!9-YG1D9N0 zdlaw4+dF?R7_OmQ2c}*Yjpvf#3=H^4pl5lug}WXt+-VaZNr-4X7!QeE5c~&3oLY9B z5QS=v6X#3E9q?B(P6)dn_e1ex^1(3NiSji7^MfQHdLt^b;qF}{B=&PqQh1SS1?DeF zz$LH}wE`PI&@IBa)j}<$0heNpQOE88hF06Ee>i_^>~23`Q!A2iJ=orD9Db;8h1TrW z8dKeQT;D%D*xi080(`i=dvLg4e|)E_1|$H>tN!ivt(PC0jlJiaBEZe(dyVGDms{(% z{nh2}M(<$xiodq;r2eV-{oRfjaOd6k=BN6TjWz#D*8#8kYjlwy_U7xKA9BDSf4;tXcCUKVzuaX&|HiHA{o31a zf0_D!vft0Y-`>{lS8v^rTe|IPq4ss8ep(w^T3Y{%{s$qs%a9O?&T9Yw002ovPDHLk FV1ieB>T&=8 delta 1227 zcmV;+1T_1z6Y2|)7Y=|30{{R3ySm1NAQMdS1K-Wa=xE1*xN1;$C6bgkxp-?x72nF}%Fewy@`U)5ZLZJq* z7l)!Se~7uXfR4vP=VK)YTndFN9iZF6+WBDqHvrdiiS>ZC=FV(x8Ml2N8t2+<6Dchq z*j>5>(B&U!TJX&b2rLl?fW|HTKX6&pL!u^> zj;^s5uoqh$F$YO6gn-VH_2BN_94HhDg+ihFf2W+j`mB5qUCVgg{rYnek;NdB5zyA3 z^H{G%Brd4pJ^eBQLj5^D?y=&H)-fe3_zM6u_vbtV<|SYZS`cV|IRdhUS*=#d+q;x{ zL2W_62X6p0o?A=*48slou8fk1znfH7sea4=i{gWQ0|0^koB%YR{6i7{X}aF7mrLr$ ze+nRVpXD-6`1~2WM+-2pM={i&vjXxvvs)*OBnXKCFv~I>;Nf^GY8i4N)Su(yK=&yW zmdWgZ@*c|P&$V@gw17Z=&NhCt1;s@wU>=dHC5~xG832tI;^TmY!?<)Wy9KpA$N)te zrayPPofZ)AF($}I`4V&Y`jG{BkOXTkfBMVrlKun`igM|LrX^;()N)B9JWWNow*jf) z)}K@$Adu$X#xB|lj9-$#8ve>9;` zC=?2XYO1w&=kiOwU;X)OYF9gr`(Kqq=Y#f&)+}8EHp@jqlpD~3lGo#eY>x654MLOz zyEILA!A}cLD_~W0E4R-hQjTv=q9`X(t_8eYE?xk|k-j>%tW^tE#!U*|tSxj143NnO zAfL86_))-I1(e23M3=DvSo&R&f0S2s513v!pgcNjEEq`RY5}Eni^TEJV+X7)*arOk z`V@d4>JncAN)!45EZa9AV9Q1kZ`~FQur#zEAFLZ-tu%8D$YAygU|a!;%lt%f-9c27 zNE4918i0F&?GdoqfZcA+%6KzK%s%K1kR^#)r{h5dyh<~AA7l>^`~gace`<-rM6Cnl zna5+0NC>ucEQx4$5@EumXqN+5fWFd92_c?FX#wRfrh7mT$=%OmqLvVae4?k_>O>u& z0jx@i)3!_ox>BMOK+uA`lG0jG7GuXvRh4qb_QrHSYhRZ p>$8Bj0|8L-_fFXGME#on6$6Wp;|(SIYJUI#002ovPDHLkV1nLxEP?<4 diff --git a/maps/aurora/aurora-1_centcomm.dmm b/maps/aurora/aurora-1_centcomm.dmm index 7abce4fd3f2..a94f6dc33d0 100644 --- a/maps/aurora/aurora-1_centcomm.dmm +++ b/maps/aurora/aurora-1_centcomm.dmm @@ -22188,8 +22188,7 @@ "jDe" = ( /obj/structure/closet/walllocker/emerglocker/north{ pixel_x = -26; - pixel_y = -3; - spawnitems = list(/obj/item/tank/emergency_oxygen/double,/obj/item/clothing/mask/breath) + pixel_y = -3 }, /obj/structure/closet/crate/secure/gear{ name = "secure crate"; @@ -22965,8 +22964,7 @@ tag_door = "legion_shuttle_hatch" }, /obj/structure/closet/walllocker/emerglocker/south{ - pixel_y = -28; - spawnitems = list(/obj/item/tank/emergency_oxygen/double,/obj/item/clothing/mask/breath) + pixel_y = -28 }, /turf/simulated/floor/tiled/ramp/bottom{ dir = 8 @@ -25208,8 +25206,7 @@ /area/antag/burglar) "lvr" = ( /obj/structure/closet/walllocker/emerglocker/south{ - pixel_y = -27; - spawnitems = list(/obj/item/tank/emergency_oxygen/double,/obj/item/clothing/mask/breath) + pixel_y = -27 }, /obj/structure/bed/chair/shuttle{ dir = 4 @@ -34797,8 +34794,7 @@ /obj/structure/closet/walllocker/emerglocker/north{ layer = 3; pixel_x = -1; - pixel_y = 29; - spawnitems = list(/obj/item/tank/emergency_oxygen/double,/obj/item/clothing/mask/breath) + pixel_y = 29 }, /turf/simulated/floor/shuttle/black, /area/shuttle/specops) @@ -35239,8 +35235,7 @@ "rtG" = ( /obj/structure/bed/chair/shuttle, /obj/structure/closet/walllocker/emerglocker{ - pixel_y = 31; - spawnitems = list(/obj/item/tank/emergency_oxygen/double,/obj/item/clothing/mask/breath) + pixel_y = 31 }, /obj/effect/floor_decal/corner/paleblue{ dir = 5 @@ -39824,8 +39819,7 @@ /obj/machinery/portable_atmospherics/canister/oxygen, /obj/structure/closet/walllocker/emerglocker{ pixel_x = 27; - pixel_y = -1; - spawnitems = list(/obj/item/tank/emergency_oxygen/double,/obj/item/clothing/mask/breath) + pixel_y = -1 }, /turf/simulated/floor/shuttle/black, /area/shuttle/mercenary) diff --git a/maps/aurora/aurora-6_surface.dmm b/maps/aurora/aurora-6_surface.dmm index 6b562d053b8..0763c1040b1 100644 --- a/maps/aurora/aurora-6_surface.dmm +++ b/maps/aurora/aurora-6_surface.dmm @@ -15636,8 +15636,7 @@ "naj" = ( /obj/structure/closet/walllocker/emerglocker/west{ pixel_x = -27; - pixel_y = 3; - spawnitems = list(/obj/item/tank/emergency_oxygen/double,/obj/item/clothing/mask/breath) + pixel_y = 3 }, /obj/effect/floor_decal/corner/purple{ dir = 9 @@ -23726,8 +23725,7 @@ dir = 9 }, /obj/structure/closet/walllocker/emerglocker/west{ - pixel_x = -29; - spawnitems = list(/obj/item/tank/emergency_oxygen/double,/obj/item/clothing/mask/breath) + pixel_x = -29 }, /turf/simulated/floor/tiled/dark, /area/shuttle/research)