From 94e94dfa5d01336c532230324730d6708edcb082 Mon Sep 17 00:00:00 2001 From: Chinsky Date: Sun, 22 Dec 2013 23:08:09 +0400 Subject: [PATCH 1/2] Adds gun cabinets - special snowflake secure closets. Specialness is that icon of closed cabinet depends on if there are guns in it, and their type. --- baystation12.dme | 1 + .../closets/secure/guncabinet.dm | 49 ++++++++++++++++++ icons/obj/guncabinet.dmi | Bin 0 -> 2141 bytes 3 files changed, 50 insertions(+) create mode 100644 code/game/objects/structures/crates_lockers/closets/secure/guncabinet.dm create mode 100644 icons/obj/guncabinet.dmi diff --git a/baystation12.dme b/baystation12.dme index 0695839aea..ba1d424dfa 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -612,6 +612,7 @@ #include "code\game\objects\structures\crates_lockers\closets\secure\cargo.dm" #include "code\game\objects\structures\crates_lockers\closets\secure\engineering.dm" #include "code\game\objects\structures\crates_lockers\closets\secure\freezer.dm" +#include "code\game\objects\structures\crates_lockers\closets\secure\guncabinet.dm" #include "code\game\objects\structures\crates_lockers\closets\secure\hydroponics.dm" #include "code\game\objects\structures\crates_lockers\closets\secure\medical.dm" #include "code\game\objects\structures\crates_lockers\closets\secure\personal.dm" diff --git a/code/game/objects/structures/crates_lockers/closets/secure/guncabinet.dm b/code/game/objects/structures/crates_lockers/closets/secure/guncabinet.dm new file mode 100644 index 0000000000..c607eb5426 --- /dev/null +++ b/code/game/objects/structures/crates_lockers/closets/secure/guncabinet.dm @@ -0,0 +1,49 @@ +/obj/structure/closet/secure_closet/guncabinet + name = "gun cabinet" + req_access = list(access_armory) + icon = 'icons/obj/guncabinet.dmi' + icon_state = "base" + +/obj/structure/closet/secure_closet/guncabinet/New() + ..() + icon_off = icon_broken = icon_locked = icon_closed = icon_state + update_icon() + +/obj/structure/closet/secure_closet/guncabinet/toggle() + ..() + update_icon() + +/obj/structure/closet/secure_closet/guncabinet/update_icon() + overlays.Cut() + if(opened) + overlays += icon(icon,"door_open") + else + var/lazors = 0 + var/shottas = 0 + for (var/obj/item/weapon/gun/G in contents) + if (istype(G, /obj/item/weapon/gun/energy)) + lazors++ + if (istype(G, /obj/item/weapon/gun/projectile/)) + shottas++ + if (lazors || shottas) + for (var/i = 0 to 2) + var/image/gun = image(icon(src.icon)) + + if (lazors > 0 && (shottas <= 0 || prob(50))) + lazors-- + gun.icon_state = "laser" + else if (shottas > 0) + shottas-- + gun.icon_state = "projectile" + + gun.pixel_x = i*4 + overlays += gun + + overlays += icon(src.icon,"door") + + if(broken) + overlays += icon(src.icon,"broken") + else if (locked) + overlays += icon(src.icon,"locked") + else + overlays += icon(src.icon,"open") \ No newline at end of file diff --git a/icons/obj/guncabinet.dmi b/icons/obj/guncabinet.dmi new file mode 100644 index 0000000000000000000000000000000000000000..49d7db0840d227e585f025fad0588a2e44d3e7d6 GIT binary patch literal 2141 zcmaJ@cTm#{68=G?MhGR3j?zQ~B8XH)2?#HgP^3st;L!q)-hzM-N|1yem7)j;2ZD$c zX#tS{(nD3GdJsf}&=npA1ui!?@BX^Ence+ncXnsLo!vi{U}b^e;TGct0D#BD*wC7Z zZvR$JcBWm<$7(a-akQ;NxS>~=N2qUbxNlG(07MmLWOnd&OF{8IQN#z4S|>Hi6&dar zbe9{Mli0z-ckkYP3tsk?Fp|om4$R`%F>8$-hJF~jB+A`Ca)*em>%B#*%j>pjWi;fv zAf*-5b9FSVXR_6xk=CuAMUAT}Yu(@xyKjDKcF!Wq=Flj!Rl3=|N=rq8?hH)skIsAEwGHsTM>@WZ z`9_=hrZ<+$X5N@yv>Mf33Y-G^82W%ATKuhp`eM}w^wCrIGCn* zMfdccC33*<-JM#jtOnTE>7OI4riNVB)J&ptP`Rn~<#0fIB@zVO6caC-`^c?8kG}B~ zbZE)eY@y-TY8f!psyoWW05f zwDd$+%T#0++V4!GyJ<%5d5U^huQaS6n`}=Gg!`8F3R`68BqzoF8)O;4_;vtn{(`>A zD|vBnT*Lgt!a{mZ4*wKCa6+gFSsYDt!o}hjmkxI(qDi!#`}mOJEcGA92IT~a-E-2F z)zv-Y<9u{FT~$>zTZ?tTP%Ipa6JjojAS$_AAywiX4s~t`?6qmfmeto^35vaY8mF$Q zSz2C>r;AjC!5iD>)p^I$;%zSVdbM4XvO{Jo-a*GrY;UK7-jyNDKLZ_6ZKh<7nrhJF zW}S(~5kibuQ2+6l@M8er%R1N82nv*YKpciXQ3i(%$GlPJP1SjCEG#fXN)z5gJ%6Cs z<h2eZ3L%$*F)dY@0`8p5f#6pmQwM&iqzNu3jOV- z8(axfxAd8+`Nhb{_NQiyq?CyOiIDulIPFygT;H0qoht@a{*;JeF9Vh~s_mt(yDfZu z{SXAWDW9`wSvtm1tp4}_BLFjcp8(E^X00DY94#q+lqGQhNh=j z#`0{J86?wiAzNDgB<#b*ndM-Ik1ScMzNu?;;O85r9D!SnpypeE>=h$R?e<-et7~p3 z{3h~>5Oj?`v=FD;pB2XOk}U(&c=i^6`}!k<_NiHO8|O0qk;REKJR&FQ>uA9wi{9)O zCLo}fLczVz*40He#oK&f@s6NG>q1K6VlQYx?E47zD0y5q!D%28S0O3#?%vg_6zW+& z-09~v%yuQ|Ns%Z*DB0__(oSM#{Gg zR>|2slx;rGkgN5mQleQYBv;p-cfoQzeDuiu+q_h!KdxwZ=uj3@A|M6j_Ig~r7#n>% zCPi$P_I;^lZZ1Oal~BWCR*Amdh1lg4lLOIp3giUHJd-rsmqHz2)>Sq?bFAv@M04T| zqW18@jjI)0WQrGuC&WCTAGU+A(i7ZXUzZld>luiI)c8FX8%zLk4D1x2CcHmnMN#%; zD)DUsnT9f$yZsa-R6BAr-|BVQ90?Dx;vRqh{?^d&a89GQ&%;Z$tcEiDOo6J2@e3L8 zPfbl#)FwB$OkDP!hLN8!lSGAd*GNlLJ}xi?3vM zmhXIEN9Y&R)u8I8>klxC6aIfO$<*8s;{}?`>-<8c6OcB?RnLL|u8tf?Ap7bYt`kI^ChAej5c`aTK zuF?>%Kr4c6#K*$?kM8RK%2|=W|9{#2XD|k2P Date: Sun, 29 Dec 2013 17:52:56 +0400 Subject: [PATCH 2/2] BYOND cannot into chain assignment --- .../structures/crates_lockers/closets/secure/guncabinet.dm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/guncabinet.dm b/code/game/objects/structures/crates_lockers/closets/secure/guncabinet.dm index c607eb5426..8fb8b0c92c 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/guncabinet.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/guncabinet.dm @@ -3,10 +3,14 @@ req_access = list(access_armory) icon = 'icons/obj/guncabinet.dmi' icon_state = "base" + icon_off ="base" + icon_broken ="base" + icon_locked ="base" + icon_closed ="base" + icon_opened = "base" /obj/structure/closet/secure_closet/guncabinet/New() ..() - icon_off = icon_broken = icon_locked = icon_closed = icon_state update_icon() /obj/structure/closet/secure_closet/guncabinet/toggle()