From 5dbe6973e2ee20849a4dfbda17524e62946170c6 Mon Sep 17 00:00:00 2001 From: Geeves Date: Mon, 13 Sep 2021 14:52:54 +0200 Subject: [PATCH] Suit Cooler Stuff (#12411) --- .../objects/items/devices/suit_cooling.dm | 49 +++++++++++------- html/changelogs/geeves-suit_cooler_stuff.yml | 9 ++++ .../obj/contained_items/tools/suitcooler.dmi | Bin 0 -> 9113 bytes icons/obj/suitcooler.dmi | Bin 2994 -> 0 bytes 4 files changed, 40 insertions(+), 18 deletions(-) create mode 100644 html/changelogs/geeves-suit_cooler_stuff.yml create mode 100644 icons/obj/contained_items/tools/suitcooler.dmi delete mode 100644 icons/obj/suitcooler.dmi diff --git a/code/game/objects/items/devices/suit_cooling.dm b/code/game/objects/items/devices/suit_cooling.dm index 22974f42fae..ffcc6a23f31 100644 --- a/code/game/objects/items/devices/suit_cooling.dm +++ b/code/game/objects/items/devices/suit_cooling.dm @@ -2,7 +2,7 @@ name = "portable suit cooling unit" desc = "A portable heat sink and liquid cooled radiator that can be hooked up to a space suit's existing temperature controls to provide industrial levels of cooling." w_class = ITEMSIZE_LARGE - icon = 'icons/obj/suitcooler.dmi' + icon = 'icons/obj/contained_items/tools/suitcooler.dmi' icon_state = "suitcooler0" item_state = "coolingpack" contained_sprite = TRUE @@ -24,7 +24,7 @@ var/cover_open = 0 //is the cover open? var/obj/item/cell/cell var/max_cooling = 12 //in degrees per second - probably don't need to mess with heat capacity here - var/charge_consumption = 16.6 //charge per second at max_cooling + var/charge_consumption = 8.3 //charge per second at max_cooling var/thermostat = T20C //TODO: make it heat up the surroundings when not in space @@ -134,8 +134,13 @@ src.cell = null update_icon() return + toggle_power(user) - //TODO use a UI like the air tanks +/obj/item/device/suit_cooling_unit/AltClick(mob/user) + if(Adjacent(user)) + toggle_power(user) + +/obj/item/device/suit_cooling_unit/proc/toggle_power(var/mob/user) if(on) turn_off() else @@ -177,23 +182,31 @@ return icon_state = "suitcooler0" + item_state = "coolingpack" - if(!cell || !on) - return + if(cell && on) + var/battery_level = 0 + switch(round(cell.percent())) + if(86 to INFINITY) + battery_level = 0 + if(69 to 85) + battery_level = 1 + if(52 to 68) + battery_level = 2 + if(35 to 51) + battery_level = 3 + if(18 to 34) + battery_level = 4 + if(-INFINITY to 17) + battery_level = 5 - switch(round(cell.percent())) - if(86 to INFINITY) - add_overlay("battery-0") - if(69 to 85) - add_overlay("battery-1") - if(52 to 68) - add_overlay("battery-2") - if(35 to 51) - add_overlay("battery-3") - if(18 to 34) - add_overlay("battery-4") - if(-INFINITY to 17) - add_overlay("battery-5") + add_overlay("battery-[battery_level]") + item_state = "coolingpack[battery_level]" + + if(ismob(loc)) + var/mob/M = loc + M.update_inv_back() + M.update_inv_s_store() /obj/item/device/suit_cooling_unit/examine(mob/user) if(!..(user, 1)) diff --git a/html/changelogs/geeves-suit_cooler_stuff.yml b/html/changelogs/geeves-suit_cooler_stuff.yml new file mode 100644 index 00000000000..38ba2eefee9 --- /dev/null +++ b/html/changelogs/geeves-suit_cooler_stuff.yml @@ -0,0 +1,9 @@ +author: Geeves + +delete-after: True + +changes: + - tweak: "Suit coolers now use charge a half the usual rate, doubling their lifespan." + - rscadd: "You can now toggle a suit cooler on or near your person on-and-off by alt-clicking it." + - rscadd: "Suit coolers now have on-mob sprites that reflect the current charge." + - bugfix: "Suit coolers now have suit storage slot sprites too." \ No newline at end of file diff --git a/icons/obj/contained_items/tools/suitcooler.dmi b/icons/obj/contained_items/tools/suitcooler.dmi new file mode 100644 index 0000000000000000000000000000000000000000..109858f8c0e019768dd077f5aa8de0eaebffa165 GIT binary patch literal 9113 zcmb`N1ymI6{>NvLl13zy6jY=`1*N401(og=5CNroS4BW6LFp1y5SEaZTo3{2l1?R+ z&Slw{|Df-CU;pQgd+#}yb2xK&hMgVY`TV{yJh`EzMon>&0ssK&tLn{?x$<$p={@FWkO8=7sqAX`JTE+qZ7jRYiimp%U>ZI9SHoI!x4S4gl zu@=&?rZU^qsrxjt`kD=oA3f@&kLUIO+C*bICteaW^sq1Q+1-fL$ybJ{QO2Yb&mH+3 zs0()Pez#^h)Bm=|oXbu`HJ-+woXO!0yJT@F`Oub+s$H|3edQ^FI?>2Xt$*K|7hJa- zJ1c}T>jrttV-N1tX%Fk{dIWl+#>$%)hWgoVBEeVLl1m3rw^I*3IH zI6a8upbf&!>f_e7*6**5T`b663RAz#iv~+5=zuc$p^#}af^2n$oW5KAoc-|T){N%7 zaD13)LoR;01W3DdUlBLgr?xpbY+;WaDKJ6$_->pD2%6PQT!@|jASD&_G=a?G1GH{O zrl7oQCy$1AI4Q{c?)24K0yE1d$bDQ(!ssSP&zD+*mPN_>kHgY1TS9!;gpE9O1KN!g z7cX2`xlCIGqi4TXvIp-V+L`p8)}ud0&rXc30!^4+N_(%bVM0S`IlEa23n{Mi%F4i5G)oEmh8x|D%-T(169T0ms0s(b&9o-E-kHt2U)1Cek6wX7^pILlSHX_V;R-H}gnmE^RcS3q}ZEZU$hx zboTegwH%6wP9j|EF|2o;WrQY6aM6(9G4z|TfJtuC0A6>I0)l3 zCTxRBn%iKr?B+ccEZm4W^CCGLA%L-g^Pc1FMOyGheg9-|5e!fydq#{vW!oF|+}vtC@PT4r4ngp}+K*m^xZ<9LG?P*9K|!XVI5}soDA~5VP|_;}rm- zexa>6zMpy~_N^gz{n%)ojFBQGp!^--8SrA#{e+SKLb%exDxuhUb+K{S9o zI9!W5{2I3J>xbL28QrYvh_NbClFFfEAGgPn)!{$jITaO}XcO@(!cm+kGE2sWlKJVW znqk19=G0m_m>@$^Q&sy=dup=o3_4{RN2)EesoX{qwAsw;v;BE(`UnD4_isbx2Di>O zF65*PF?7hRxM$&8(pv(n0>5qgY&c%QwniU`jJz`@UtijdF2{FyV5`1Ot?&7tWDU<| zFKaar$GXP9CyQ>ikp>qQ&R%f#w^tW%0!54vZsFQ3u5hdg&>#ZGXzrkMw42i51kB2N zQ=zUdyUBiJaJHjHk;tGDc9LW@VeDM03#z!7UU6kQko5XM337UNQ(@qO-KstLss8b1 zxsf8pl)nB6D$7dQ8njXBk()yVR};iBd(irF{ku;qm7$z|HYgxBe*F*i$YhRd2 zRwX6!9Kr6%nolce>=>cjJ5I)X&DNU`=nAe)*79WFWhewrW8W@8^J44?1Fy1;4NvWq z8X`@4QsDrw>$!Dk*D~ z3MxS7%Q#0wSm^nhh?JGv-vRV7;)2kGq@twz%OxHCN*P|QRJtAzKOI-zpc+jkPq;4- zt~dUQGMa38`bf3EcMnZ74X0cx zntL&DV~WxfuCW}#GTBbOT+z=W1dqLFuprfahP_vFhgrXDChfUMQjXOVWyKvddR*AG z=$p$l_p?*5pF`0#xwbV@i!bwJUcJ_OBcs_fYv4mtkR?N)e z=X|34y7ID=6n{l!WpP#2lf6B!*SGkHiD3B!1$K)!>rRC)F>#RWJXk^Uc7w@J+{nBq40s8R+*nWkq0v!C=^!U3O;rZ}
nfR7BvT^AQ? z7Z;iw?F_H7>tGB|l(5BF=wN7Mbl-Ng6OKoo2IHAC&*zv!)0gJu0S7&d%loppprD}c z1@p5RJ!Ba@_Lqf@QyfJqZQm&`FQ2ELHZ>Pc=4GRyL`{nz+n!?Zgj%JIh!2L8)0#qw zpc&aI@Qik&i*V7*b8jT-4BY*)83|r(3~8=ZaSK8k=tWU=GPhdHelG^UN7{9gk-ZZBME1Ti*Zie$L~wD zv6H6eZ2<+dz9%})UuV#-w1jbSL_1|WwmY=k5@Z^9*vJKN`T0>JITug>7Yh|PQ}|Vk z?)MW^UvYyERyH18zb?*HBjRQw3-<(MA6?<=C`iCr_%YJ8;g}n6_PVj~ah-Rz;-E)f z4eNW|#^=3Ng@;3O5N}uSBU1?NGpppYQc_Z)5)$$3a(+8+S6lcr#gml9N5j@~YVKin zA3A1qSub8W$H&dUV7xR@wXz$$5YOb;;brWuNjW4b0RRjA$Dnh!wm#r$l+Iu(1CCYO z5rRJnDWLXSCo>k`2QJcZ`0iVEJT7p(JCm8p7>D&&Bx~N-c=z6CGwU|GXkfL?yq;l# z#l0#KtkXMI>I`egfm$2M@xJGZ4|R^5ZM}k^_c3YC(;+z?FM+=zAa~-iz|gnIrt7R0 zA*?pS%-g6+HydFi#2PW}ZP=--151DU)x-Tr{Fh%hPLy}%6IXMsWR?Y3_aD5#+TTbs>FzD ziaS2w&V%LGDy=aoy$% zSzcbJs2GerA?*`a~<9E-A~yn|MB`8rcO|J0lvQJU%Z+;s+CLezPwydk1lS1 zZc_WfEN~lG*_p_L(E)yb>CcC{rHjlOBkfTi8pgGWfLpmQ<^#lOoRM#qt8bUXZd)@d z&a|_-`+QHb3#j$b&`9Zo%PqjY11@5`yXbpAefqTaG<_5!nG|%i2BR*u020nhgN1%H z4naX2Au)uH9f9Q)ex(CxZuv;0L+W>FE-x{|WNIrhqklFjbO{J+olSO3cFQWE3vVv76eS1V@9=ZQ))WoW z4)oX&Kf3bKT8uA417bH7CH0Iw=w0sB7HhPMOa5XJ%}aaHb9Pm`vG7?vTiOTu@}@RF z-;*8IJbPbgTTo#k9e#U%sqa-qV_WRCvoY5svasKTO@rzz$LvehUE|!8&z>#ot#Th- zKH4QD)E~cE2Em)}dKUmX-<*NYy`FoF@g|d;M`e-GFE{=TlvRAUhZ(sny-CKYr6QBz6kY9nb7OgnxEw%X5It)>Z4Lz?G zQQ)itvjD`QF&H@zxa7O=@ZI+){qlR41l??iy=)TBKp>hThn56B8Mlm~?c%s`hT5NNZf)wZ4C! zUM_=HKtN!_N5;Xypj%OJ}aJVo@C4O}1WHUmwoud&_e2 zN0?6oo!?FiUmK>w~jw+ZZnjYmKHdMR;u~aW7JV+Fe53BO^-m_nKn$e9gHV9dd8a*vKYoeEl2pOlFO^gQ zSo-E$*xx+rw^%Olesjfu#Rq#8P~eX%Ni7;u8aH05E;MpRBpE)Yd%xAfmhN}^1gA(^ zZ2#?C?FNWzKIa!7aEs9G566Qg(FoNaYTMb3YTMBq=~C;@Js`FvEH_>0fUD$KZf|dk zM%=AYCvsTb&MF^FNn3kiV`io@t2+%V4sYZidc>6i&VDm+%1FSVw6`<50wXa+`^Tw( z>KY^lIcA!XHVLXC=dulvnOyin;~bZ#+1hxBQ&EB)WVKmBsVYR{V)=3H_wD_m{0@k^#9Cm1_Pr`lQ5O#l>#B9^Moa z1-|XglrbyMtj>$_)OAR9a7a~4=3_cr-uwqG`G<)XvLgS4kOUT*aXBC@v z5s{IOn?9x;GW01YvEb61LRnGf;&Vg8?Z*4V=imhj9Zz@aLB9I|MHL^4>< zyDaZze{%G@a$ zktON4+kyT|E4_zCJM}r}Qc+VMMG_K1LPFRk_r*QTm;(a?6VubXqn1}!hK7c39cr&ZgGer;#|<(B$Mi!N2CWGNVqlH!-1Oe@m9*i)nU+!utC>|^ z*lU0PvRliU&VOf!OF#3@3=PG|>7sS`-{QJ55INc#|j@ns=}bg&CveyEcla7b@x=6b=Z z<)lrVOt3B2i>n`}4CSU+ds5~M zNPz}ZV?|qQMU7iu|Bkpe+hc9EJk=R%ALfTCvjZi;#f<9n1n?357kw^dwYLnv^2_sHYqu|pXdR=jXEf=s0fl?pH|>P z*LT>^m;q5V{12&+vtziZQ@ZZo& z@=UC8DX8YrkHmPlTq9~YjWz{19K|F5vS7JdluC*6v7(BA#IYypuI~RJy0;eOq0uf3R^T7TjlUnH zV1Yuc<})jntRbxxEEZetaDg8pE?5uLgiLIdOTdZh!tnZfxog_m_N}{ndm65-5WA5R zdGb>u#80LFMAl|~_OOo?hwo&1j zX}zliCn=HvPqR`Au7U6@IwFIq#3r2{!P(h2I^`GQ^u9CPgMzjO>zjbBwVa0gz7&YrVFAbjkBeGs( z=0b+wfb!@av%6-=85yBgujMzl%-bfvX%!pi_#lqF15XmOS@9K+TfM`NIT~gw+*cbnC+~f|tsSx!$-m;lhZ&b!g(pqrC zYe8)&9yNtrT?&X!MRG@0i%l53D)K0@ zj{V*)A=Y*-Q6qrff$h{XuPNVE3KtnHBk5GoF@@?%HG%(Cj+|Wkkrh>(kdo4qe1B9( zkM#1%VA~d*tB0;OpTom@9i9U9LugbVe-+=*9Z~QNba)ztSaE5DDaddPUmJMA5ck+n zFq`Dj6#%ixU&8qS$ysQ%+qC0;qS2BLVzfQyR*xke6dG+qIq%+yEglJsVO_=`k1U;_ z(l8RvzfV<;S=p3J~6=AaRIHi^%`Zb+B)hSFf*4#$z4I9&`Pi3%CCNVW` z#9cz=u!p2I!JGXf&R{2{x4MwBNfa9Xx;v^okXPhv;9zHG93LManV3-a_m{qvdmK{! zp`oFY?YC=b;@gsyYIl-1iwJ)XYAP$7Gt*&#hmveM<^kTCMOGvM0T{g>K$|5wfoXF58r$9 zjh&sHeVZf`62cdbhBkdzM|a#Qu?|9U>JRf!{Ax#kR44}Jhnsfgxwkw?)R9D3ZyHC= z&qfC6alhhMl7MF#Zv+>SyS)`m)rC&_td?i>PZ1Z^iiPH+8@04*=DaR5`jx>WT}Y zw91~aUV~eluWy0cDhg8D=-R!(-BBZw0{zzO#rlshB3;*u^Ynj7i@mT;00PR+0-&QJ zr4Mg@9l*a!MS7p`UBPR=G5hR^@JZ&X;&hZ0BE9kDi}~d2qezo?09|zJ#eoZN%52_< zf>qF4ZnN*;)U=DPLIGDz;ma!57FV{APV5H>Io}AJ%pMca^#wW9%X0~x1_42q!)Ld_8B;X-#^&P_6h5y zUBBY@@5wWILgV5Xp{E^?gju?|^-HJ*F+NgfA76iXBIKsWj^%IZk6-au+VBc{Hx%Y> z{|t3sZP{*B@#$w_lbm69oSZsX>#J%_FK9#kZV<{MNY@UshVQC5^jMs}_#gJrCWu2A zp#4sEsvlcv*7Jg2+j(WI`y+pFL!9KoMz@o}-bG<e6C@%z1kQyL}FD*cX08%0n=_H^KIs!@*5s)S& zbdX*wfCw1c3(`@MuJj(rarfo!zTC{sec1iY?Ck99%rpDU#vo1gIUzz2001~|8R%J@ zlK78cWj@Ux{&4C!MNJUuj-Q^(1B|ab&d=S)8vp__68aI4M~YCUe!OoiqRwl;jXcJi zU*9kLw9t~%#xlh{u5L}Ike9LgNc23zmTvvrXifx0ZeO@`$Q8`CB>jCg*LE4915;Zu z_t%u~NQN=8g$KKP#0w5|g0Q7;xx_zaOqB-BrV!rV)^l6H%*h}7Kzv>V^bFf(*5%Jq zI?VgT5F)Dj6Isr+M+&N)@j=U(#e&|oHi3s-x}Qoos;Xwu!fa2Nc#J=v1pr9HEjlIIFyyhTM_7CFD3B>F>Y4&4-85wR>o%5&Qkpsvix16sS6Awdrw!EcBQkIfKKV56a(HHIRjIc5xI!vS;NrPfA` zW)9|5vyJ!fVTVUSO6pezpb*l7=|!BH z@)v9Ci=BEOrKQD34YE;5N%f#TgY!{mBDKnyDJCP~Vy6qe8)4WVH|f_x#eEvTpCJio zg!d)bczTUos5<0=C96Ie0zegwhpHo^B?xI;#SY-ZY9nHjpbds}&B2IkippvA8&1vn z=tMDq*a+GO%`OCh$(7;0v5!31#0b8}VeKnS{cNp%2`xaeDhV9LS5sQnmG9%S3k^-0%^#s@i3`l~oG~P`XAEZ8gNR`ApV_ z>yo%!uIw)kTnq_=;k5vjHJ{H?1r*i@;$lnTCh1jFL-#~mb!r44#@N(e z9n!FT+ClS1lg)u=0NnDh^!D~P05mo=rH&33Q40Hq^LtrzqKkg9%kKMk)7T@jCo+qH zJZE&`^;Dz2%wieJL7#A8RRp1}m!KjPIkYtFVrC9t{yaQdk|1u+m6%&vCLq<~-%y`+ zkMTNE*9^ZDV9;;}s0vk%_Ad7@J#9z`apm7~I zsAhJ|cG`h~RSwI$2O%>nu}>^fs1l$}R1lxg!&Gla#;bpO;bX7D$$0Ka&T5YGSf_Bh zT3=~ua8tQhMmBZf-aW)0yq@<_Ok$eHuOEsA3dUQrS?K1LmRfCOD$&(+zTv8_y}vwj zcvl{z^J{}+PO#yD`8i0Ma#nSr*wr)*mHzIHB#9ujmhSkHvv%Pe}|C>gT_&p8!@%`<+9e$DLf6>-Zyi8)TuqkV6 z68YV55S^VpZgFj;}dEh^dd2piLkhCHj7_@zF?Tg|09K{rL11FmK`#R)AVI7GY0 zHHnLK@ka>$inFmE|2maN9nDT&9uWSmOq(xe;AM=cNVIQKO>u`M3w?Cv0vI1oNM`&* z7(9@G$VW-gFM7AXa?#RNzjw2f6&VFY(coR)*~J&)VpsGO{Oe0#lE6c07;}5l>AdQde$@Ku5~M?seTy2Nw0B z=mvS5b1K>ZrL5KKIotH2b|H4i&aoTjVbO>_w z5VIpAJh-0qNDumR$P!N2W*p{3YE=XuV$~$c96Q{=U~1@muV9CQZKJ~~Py4TjLy3u8 za`N&LNvE9JMFoQd&A6r_&dEl5d4Wkiz$!CBkjVMg|0GV`F2$VD;|#1ZQVwu#{Qmu!|91Y|(Kge3;1) zQ4zzk_hE509(0FMvBXW0znVe(nZMve71*A_jQlmx?R{!zs+1Y3ysoB3VA;qtG_++I zYjH(UP0elc5KwSkP*&)_GgA6FcL2^hW|)yYcieaMax+HyL)#$#?!hEFnjq182^6-! z>=5GgSV_FDQVM_*%gWI6UJ6*@?5Z5tj|^x|fG5ej=_(r19pV_gdhX&0a;Z2%s=9=+9oFWPHg2JxgVdR{L1ed$zo)VL**0Nw^f3Us~>x?&2Ak; z!(&m?T>A^6kH+K+T-xKt)ZOpYH4z2ym>Rma81dUTr;eK=>+6cM)6?Fb7mL0(@nLe98WE^wi3ZMcqUn`m&|=1L5pI`iXO=6TIA#;+iW%jEahi-#S}8G0LzW zaJ{CXVQjxpWpHwmBY!vg`t1XHWU7u8V6D~o=vtPk_|+SkSy|S`Sl5B#dE3}$7O|(r z*=2oyL!r?XMo|_=kv_1R@BaGRd#-!Huro6DS#G>5C|)Z7*{jC!6CeARCyJ^6uhB$> z)?=~2)~4oWagZP)h=L9|0yQ3vo5XjH7eX9yjzq@HH)$^A1}`6a;Ri9C*9nR5!a+kN zG9@Xs5CIVZv8NUREe<&&>=m%Bt*!N-md6&KFKe-+7m&^>(I(rY16%wN?a0v=K jF^S>d_4`jXX`&l3sWnUUay+L`IB@HRsa~0mW5nM9RqLaJ