From e08b26a7b103bef9f7ea9edc6b751beaec24829c Mon Sep 17 00:00:00 2001 From: shellspeed1 <46614774+shellspeed1@users.noreply.github.com> Date: Mon, 30 Sep 2019 20:27:45 -0700 Subject: [PATCH] createsmedkit wallmounts --- code/game/objects/structures/medkit.dm | 154 +++++++++++++++++++++++++ icons/obj/wallframe.dmi | Bin 1059 -> 1230 bytes icons/obj/wallmounts.dmi | Bin 3618 -> 4548 bytes 3 files changed, 154 insertions(+) create mode 100644 code/game/objects/structures/medkit.dm diff --git a/code/game/objects/structures/medkit.dm b/code/game/objects/structures/medkit.dm new file mode 100644 index 00000000..a05f0983 --- /dev/null +++ b/code/game/objects/structures/medkit.dm @@ -0,0 +1,154 @@ +/obj/structure/medkit_cabinet + name = "Medkit Cabinet" + desc = "A small wall mounted cabinet designed to hold a medical kit." + icon = 'icons/obj/wallmounts.dmi' + icon_state = "medkit_closed" + anchored = TRUE + density = FALSE + max_integrity = 200 + integrity_failure = 50 + var/obj/item/storage/firstaid/regular/stored_medkit + var/opened = FALSE + +/obj/structure/medkit_cabinet/Initialize(mapload, ndir, building) + . = ..() + if(building) + setDir(ndir) + pixel_x = (dir & 3)? 0 : (dir == 4 ? -27 : 27) + pixel_y = (dir & 3)? (dir ==1 ? -30 : 30) : 0 + opened = TRUE + icon_state = "medkit_empty" + else + stored_medkit = new /obj/item/storage/firstaid/regular(src) + +/obj/structure/medkit_cabinet/examine(mob/user) + ..() + to_chat(user, "Alt-click to [opened ? "close":"open"] it.") + +/obj/structure/medkit_cabinet/Destroy() + if(stored_medkit) + qdel(stored_medkit) + stored_medkit = null + return ..() + +//obj/structure/medkit_cabinet/contents_explosion(severity, target) + //if(stored_medkit) + //stored_medkit.ex_act(severity, target) + +/obj/structure/medkit_cabinet/handle_atom_del(atom/A) + if(A == stored_medkit) + stored_medkit = null + update_icon() + +/obj/structure/medkit_cabinet/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/wrench) && !stored_medkit) + to_chat(user, "You start unsecuring [name]...") + I.play_tool_sound(src) + if(I.use_tool(src, user, 60)) + playsound(loc, 'sound/items/deconstruct.ogg', 50, 1) + to_chat(user, "You unsecure [name].") + deconstruct(TRUE) + return + + if(iscyborg(user) || isalien(user)) + return + if(istype(I, /obj/item/storage/firstaid)) + if(!stored_medkit && opened) + if(!user.transferItemToLoc(I, src)) + return + stored_medkit = I + to_chat(user, "You place [I] in [src].") + update_icon() + return TRUE + else + toggle_cabinet(user) + else if(user.a_intent != INTENT_HARM) + toggle_cabinet(user) + else + return ..() + + +/obj/structure/medkit_cabinet/attack_hand(mob/user) + . = ..() + if(.) + return + if(iscyborg(user) || isalien(user)) + return + if(stored_medkit) + user.put_in_hands(stored_medkit) + to_chat(user, "You take [stored_medkit] from [src].") + stored_medkit = null + if(!opened) + opened = 1 + playsound(loc, 'sound/machines/click.ogg', 15, 1, -3) + update_icon() + else + toggle_cabinet(user) + + +/obj/structure/medkit_cabinet/attack_tk(mob/user) + if(stored_medkit) + stored_medkit.forceMove(loc) + to_chat(user, "You telekinetically remove [stored_medkit] from [src].") + stored_medkit = null + opened = 1 + playsound(loc, 'sound/machines/click.ogg', 15, 1, -3) + update_icon() + else + toggle_cabinet(user) + + +/obj/structure/medkit_cabinet/attack_paw(mob/user) + return attack_hand(user) + +/obj/structure/medkit_cabinet/AltClick(mob/living/user) + if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user))) + return + toggle_cabinet(user) + +/obj/structure/medkit_cabinet/proc/toggle_cabinet(mob/user) + if(opened && broken) + to_chat(user, "[src] is broken open.") + else + playsound(loc, 'sound/machines/click.ogg', 15, 1, -3) + opened = !opened + update_icon() + +/obj/structure/medkit_cabinet/update_icon() + if(!opened) + icon_state = "medkit_closed" + return + if(stored_medkit) + if(istype(stored_medkit, /obj/item/storage/hypospraykit)) + icon_state = "medkit_white" + else + icon_state = "medkit_white" + else + icon_state = "medkit_empty" + +/obj/structure/medkit_cabinet/obj_break(damage_flag) + if(!broken && !(flags_1 & NODECONSTRUCT_1)) + broken = 1 + opened = 1 + if(stored_medkit) + stored_medkit.forceMove(loc) + stored_medkit = null + update_icon() + + +/obj/structure/medkit_cabinet/deconstruct(disassembled = TRUE) + if(!(flags_1 & NODECONSTRUCT_1)) + if(disassembled) + new /obj/item/wallframe/medkit_cabinet(loc) + else + new /obj/item/stack/sheet/metal (loc, 2) + if(stored_medkit) + stored_medkit.forceMove(loc) + stored_medkit = null + qdel(src) + +/obj/item/wallframe/medkit_cabinet + name = "Medkit wall frame." + desc = "Used for building wall-mounted medkit cabinets." + icon_state = "medkit" + result_path = /obj/structure/medkit_cabinet diff --git a/icons/obj/wallframe.dmi b/icons/obj/wallframe.dmi index 70149901e33acdf8a077fe7f7b4b2850bc183d0c..99b904fca87398aea638fa31feaafba4ce56385b 100644 GIT binary patch delta 1007 zcmVfFDZ*Bkpc$}q>!3x4K5Jb<(SA_O1TD^La7U{wMLrm6Ykt8L% zwf%g91+Njj&4b4bOsy{6wI5V_>*Wg)VGQc5PP@Gn3tDy=j*S!!aCE!@v1Z7z(vzvA zu$X@+(?NkAodc7_*K80x<3FtCxHlalr7ToEdff`_eEDMcejs$;A z!)Wb)xPnTgKtydHlt(CkREVbO!58RXA_YRbGB0qQn%kl(Jg8tXX!C+uKu?2dR;DHD%UvQqF)$Ko828J!r^m}NE2<#dd zMz@bg=O)m=1UUg&9p);+>;)Gj_y&IpB+C*}aFd}t{&g;R@`w@)F;M~$;^co?0kEJ< z1Vc^Nff|rG!jDlz_v9Y_pzAh%MfJwV1`SGp=SY$S|DkQ+k94J=L@5^Gd;Mr`I{0(t zBfAjdsxM|_WMqWk^!Et}*!_JjX9mO-F#G$QX#~VGaQb^Zz8@f_A=G|XfE|Cy#N$8j z!G@Fs&lE^7It36M`g>?kWeZ03*s({G$;2k$>*U-JYW<)ha|B~&?2KM)drGkFml;a{ z_V*ltGk4~rnLYhZnA$UT0;v7w2=MqM!IT(q1Wp1_P~|6>jOi4O*);(Bd(%A#sz8yQ z`4vS51&bw1Kv>Zgx`Nkfs5^fKS5Zjd0twdZ_3L`ihFop707|fB3N~*)Hm{rA&e`qo z_2;h*Qvlw{Yyp}2mF=;=!UEdgg97FhUHGVA_4jyGYFGkAz64HxZ&nxPa*yf86ma@` z({&fy-`j;7b9{b(f9sZ+k&%({U!bIY#5tUBqK-H>3%pG~@`!V@pyXEz;3H0g0{8^- z7YNjYKu=e27xCgVNkO^^qF&u5DM&p*T7n^MuhSCH?l-j>_}z8X>+@R$CEn}v8!2S3 d&oeSo;tzQqq~iJUd~g5&002ovPDHLkV1nGS%>V!Z delta 836 zcmV-K1H1gr38M&*7YaZK0{{R3(&~adks*=;z`($fvrB*B^I1ax0004WQchCV=-0C=2@&$|wTFbsv^Iev-=_NuqFO9iSJ;2qN75)U|4 zYzmLxs7T!^x}9J8mQ&hmeQP>fwGF&52}QOSd*1EA%+zbhaXNwtNJG#yM4e)ug?st} zOixL29l(D)k{fZ|Uvr;SBX2TXlz5m(0;WyOIE#0pe^BDAd>ntl($-z|IsXRZk4q9) z8Qs_b00LV{L_t(oh3%DVcbY&Dh6A`LD3MZItwpJ;CXH!MTrq0#5^Zh!|Nl{Exkb$Y zg+f2{@ZfR%AoHAeW?8PT{u_i#@)n3vwKJkf7>O<0uJ&ObM#0 zT372FMM)B5OQ2S(a--3Z8=9unFhNMh1a)6<-E3k4iM)_4K_JkZZ!|<88bJW>N8WStkG@bD4Ctj`7|@GP5Fs!OE*OnQlyU)*U^w2|BfkLzB#a*%ujq;Z O0000yMUze?TBK0RbT*O~Ft_sx;|6 z^xiwtRk|eqct70o z=PB_*nniEV1taslHYOjmAVwtymqY5`2JpBS2IV^51rH}3p7LcDlhcc3C-7BjqN$#= ze{wz)@;<&UM9_hhqgixzsO;r-Tl${eQxuEfoF z18$MA<*rMP48xwsju{U-0jEdnSwS@`XZK`-{?5hVwaB6!+- zUFNp>8!6Z6ZFKeBDR}1WjSd>ul=%bb-B%{Twcm_8Ge~t7f@Zdh9R)3)vXsg!!HNpq z4ZeK2%gUj(Bh~gA$%zUFUE(r!avd9@ci!*32M=u-s*U{mt%5-4AhynAuYZeTg&l{o zL6OR_UIoM-WM}n>pS@P5(&V@)&K}8g{OqAQKfT0wb6cCT(oFDSQ@1K3WC9v_>B2FC z1X@oQK)~-sH~qew#mQ>Pc0f)f5~CoJBsKQBo= z@olxEF8OM*gCbx}I|>3iJ3F_xw@=gc-ld`v65RI|j$HxdSZQZhJhNHhQcS^#%q&_n zR!^$P$lnfGHmb_cX5q{1r59hij2 zWft9AP^+u9EDCk3QD(oI+B9_gZ%I50O)%ZT+kT@0j=uR}Ipw&S0c%Y(QMU<0QpVfT zI`@h&o;+#9P{^k;%Qz`{gEHT9Nru58NQS;Y*}7dVj10(ldI2C&1H1rI66eW?aqPz7 z9?)NE9g|x#k`WUVbDU`19=!0`#N@0DBAqi0SNy+?%qV#EDMRRX?yaaQC^WH~ zn4ROtvic~L+~_3pcyUj1cuVLoTLkP(9jZemYUQ;6gp#ZJ;9`1eb zN+$=#3{(2@?(X(JipdFo=4*5<2pizpP#sIko0hRd{rmgcZHey$UR6au&~BAabe%S+ z&4c+zoQ~FqY2Ksai1*SBV3w2sV~%zWRMi|dNXZlFgl&;7l9_5bqDa+UpbNl{rKYAsW=i8Jsn*Tgn$Ki(Nwhy_}NyjHWq(Vv9ut1b7^|eFs zlu+?UZU*roh3V7~6|zI-7^37yGdiC6*bu#2R3PA)Rj`0Hf?sr))|LF$oV=35MiA#E z3tDuu!%~#4QVRd_$^oyV{k7lkMU%1Y24CkBq0%;yIsCF!dVsM1Vg#wkNRE3p zebO~@Bn=ck{Rf|>>_vPUuxNal^rp@f28D#8Z9aa0i#fD9VG+u!Bubf!!c=2A7t<#m z-ztmjW32JMhRt{lj|{RVn|B`$e3M6L+55t`t!FI-@zzfK2N7on*Y|uODKR@fPrXBT zrz8hrGfM!jp_Wgz8v2{QA+N||AV(u*)XC`z_gbI2*UBt^{MRd3I>wG}#BdxLVmm@| zG|1o@ic6t64U02PIt$~5%5BL)&mk7|wkixjWwis%MyqNXL6D`8$rCm?S_O~0F@+au;!|}zm#=Z{VDdy804x@lq6N|xA2n&80S^r2 zy$ORO&BW(UOCUheTw8nKH#MttJnVX0X5D8kt0lL5N=EDJ;Knlz;Ts2kI$v-8nR+kX zd9+1L)HguBjs?s5ZM?I7#&_?;=R18|M^N%5w(UNqG8QX7K##UL8olB{s9_vGom6DsRM1BS1naXtie6q8tXEoyuD1bX-U_4{v zy#i2qs`<=%IEWFBmwQ0}4To=|aHdX3PEg|fGQeON5(IdlB5;xT2zxZPeUCsdU^ z@<8@|gahx6Q!@gLb)^-S76J#fc&!$ftWbL-2JtB0i7` zgFINO5j2PkZgQW-&w{RCySY=HYkWwfeg@94Wf=hIm+w$Ogxs0&3f&&*BpwWC%slF& z5v;BX?9J=0ZCYU{ChtZF$V!>HEHGfp8=0%EX%yzaYJI`gms;GJO5|{1()(K0iWF*Y z%Bg?m;!xd7UWZ2qkQV)!It7cNug)3=zFfb0edSIg35FbnY-oV4xG%#jfW7ktzSCgx zw#T_fvriKV8!IQ@V zm~P0-cN?pa;Fi(r=H#a|adCR)IbyR8bFe#<#)#vt=;)3gQ8F2=NCo`TuVE)KPb}

-b$E*`m!w%8zdqd#v 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 EH!Z-Vn*aa+ literal 3618 zcma)9c{tSXyZ(%I#E@+;5m}P5mSrq4N=1APM%l?1*=3n141*}^P_l%O?2L-BFOy=( znyu_bw(K&N8O)ikbN>9DbDcll=l`!&|Xy%YRXFbzSnJW?b zO_*3JVoW;n3+pzC6LIgxhxQEvIqG)oRZK=+hUPn2%UFMH2M1<(D>!v_V2l#zG0LB$IHprTYl!V zE0wDl?t|;EBq!dyQfG|n+AR3m>v)mP$z8Cg-SPz2VWP^+_fV>>ET0Ic6dr}p$w?aM z>6$;vUe5{l44cAu)W-KU~{@24zNTwtQ?eR}d z7kVU6qeP!%Oy-h#S!3*S+U#ClQJir9v$&(Ku9_5-1h>3_U%Qkft0Y37^Ldjql{9U? z=d&;06cnN}w6A?dXk$iuk7_@&e>}CX+WWQOmhQQ9p>AV9s=Q_t>} zzhn=p{P4kyZ?E&r14YxK*x%A74z(Zvd!_{p2sTXNdK>;I`ZqZ6EzQ%81OVTKFZ@1Z z6;@>@JVjC3fO$2pT&7&#!Tp3^2mmq?LIL7Xp`ntZA|E*S%B`mn5$BY>k41pIZX>6R(++rim#;|GB^l&On^M}Q{$&K3@9qOT@$moo1)m z-MmkJFiw(thS35595>s5fPvP>r=zWdWb2aR^p;(VU9paW2{_!-Q6!Xp--FRj8Ma3G zBo1gxB=^==yY8^7r8Pg%i+Ce17O>GwTw0qay{Ew$2oBFk^PptzfI0D%TjF?1uhF9x zd!i-`EGpZ=`&f-7)FC6YY?WoD2Vrnh-~qCXiHM!wTHQszi=5c}-G+VtksZ5qK6rY< z%}0cnZFoPaeSZ7)Z|Q30XXk0AL7+>@uqhR#2!WxYNF&97K!55-=T%ZQb8^(s(Ir*H z9TzDh+wUrD2@reYcgr0Q-Da|ljwTb16wfx0i1@yiR5f2z%vX45;RR6B9TZj(6jYWPb&%6fXH@gTiF^? zoPQqu+v08X*=BZ?9LX)qTx=!)T4rOyu%ZTpFZy8+ZP?c#omGukVJBkIxV4 zXt_l}BeGWxOZ{a~G3XY_Q+<4x+ezSBOwXkk(Z}4J(=`!Ku@1wj(&B7@7p20kQ0Pyj zXqX^av-)3V;Kzc_W@pbT#xdHDa-3zfU|IhTtQol3ku)6w0v@ZYvkiyS23-%<3tDAd z_ZuE4YRpZ(O(_A1<%Y|=>DH0hx5bWnEX0INig*4DDrnyMa_P}_hd};fQua#T0IE;> zY`UD|c30aPG><+`U++p2>YV;j!w_OEPF(7MR2p)**0(*MMNHTO_& zJV7gL_gNX2+lBYM&e)tWm#GgoTmWqQhG7|a7rMkeo%>3R02ah597(LZj^1(0osuVb znF^`s#&IhG4hPbP7&*jD^Pz9kw4e~o99elRdjO4j4%6pk__Nq|t9V{HIA%>^@fT4$=_Pg8pZ{m+aTlXf!E7N=geroE}8Bu_6ba<;-rt(0(&$|{V9DaQ!0rp zb(iZ9nroe}@02%CXQywmCi-0)D;hLGfg#+%ayH7$hZu}mMk%&G$+ASs( zjZanf<^)`SP+MMSF54tS{_GomrToLnF=Hw`LuMigpvSz`Ei+%>`aK16h1Wqf|~iwImX&;q7-DY4C_U;+Wb9M5+7?OTgbRPkn#rY6nUrCWDZ{c9btPUk#kkAVCClaQyl$*%6&lYxy^x0`9KzNY>3d(TKoH914SkXuFN1a{EOj5pO1cGRAr&( z1Fg@8)(&sKz03)M1%!VNYs#Ze%$vL6xM6L%eK$iYt4#|?Tb?4AwQl+r2Y zw_XA42dAQ{Vq-^^SVKHkir;`zq0JNLQ!vQzfZTrTgw?rHQJ>U-Rkez;30VoqbINc& zd-Ao?`B8j+`~3!)846Fd!jP+6=fh?;$sxYG;TkYRlYh^PHyzKpUSkY@SLu@q-Hi<} z&HT7OGnA>@rX4M=0js1V+NF=(Lo3$4%OFB=reW z?w@Kq`OS4QQawRT1buQ?D+om!4;tD<;hFO!)6BD3%y_{6{kZv$HW`1BW0r=MkG@)y zl;oda_}?vk2912%UtA5HM*;UdS16wPmW^BWW=tX-OY>Io+cNp~88vQ&HPMbI10h!N zes=GB{5H)gZ@K-XOv-*R|6D=wY2e=UCDNTUPq7cWMHg6ThAC7KQ1q^30ZOV=_FvQe zkPB2#tA-92cgU0c@$FNqI8>LlQ7!|PMp3dcv_M^teV&@EYst73?VyFM(?1Xa;&vPT zKj!Q4tvqyTzaG!vbYbSqKvv?n@~TP-`|y|t)=;?a`+{ZvYCv#+!tj{&1tVU1?7EXd z_3GQB_fpR(PfC?L?XC|)Sh62({v|fiZJqGY$j0-W10(21v*&Wf*5I3W<1ZhhZ=31Z zeq?O5mM2?XG+G?LD$ecAj@wFt$^BSG9lnx&Qm(j9v0>Jp(fHdb#(Q+J^FH+^Vn#5} z<^iST`$EPJ5Y1D6D!{?18dH#}y}}jsOAEr`(HXznc)8SiWitpD9rGu;iV5Go_KQlf z{Bf}tb5g_q4mzwf!Tc;%ndK1+SUd9zy|=`^y(P=|6;vy3p=ulBUBPxr`S>ESh5+^D zUu^Zxac@INi!j|jN8rq3&V#5CJ}e?fKnS|r>U2TBRjP^1(=#vGT^DI@P17m72!5d= z=H*q}M#L?SV%V<6DEI^!PUmt5$g{&{$fQRes%wW%x7(kD1~20V`D)Yf=jrNS0sdB&V%uq( zxs33hc03&P!9|4|R fhamnl&={x1`Tbcjk1Ob(KEU9Hu^#@~y~zIpZ%)Ol