From 186bbdabe249edaa0df7a43c38a6cedb708e6480 Mon Sep 17 00:00:00 2001 From: Lumipharon Date: Thu, 9 Nov 2023 07:22:35 +1300 Subject: [PATCH 01/44] Cryo directions (#14404) * cryo_dir * funny comment * mapping helper icon * sprite updates * map updates --- .../Campaign maps/nt_base/nt_base.dmm | 8 ++++--- .../map_files/Ice_Colony_v2/Ice_Colony_v2.dmm | 21 +++++++----------- _maps/map_files/Iteron/Iteron.dmm | 19 ++++++---------- _maps/map_files/gelida_iv/gelida_iv.dmm | 4 +++- .../components/unary_devices/cryo.dm | 4 ++-- icons/obj/machines/cloning.dmi | Bin 4197 -> 3435 bytes icons/obj/machines/cryogenics2.dmi | Bin 2827 -> 3966 bytes 7 files changed, 25 insertions(+), 31 deletions(-) diff --git a/_maps/map_files/Campaign maps/nt_base/nt_base.dmm b/_maps/map_files/Campaign maps/nt_base/nt_base.dmm index 633104db38ab7..7072cf5c884b1 100644 --- a/_maps/map_files/Campaign maps/nt_base/nt_base.dmm +++ b/_maps/map_files/Campaign maps/nt_base/nt_base.dmm @@ -10663,7 +10663,7 @@ /turf/open/floor/mainship/stripesquare, /area/gelida/indoors/c_block/garage) "hTM" = ( -/obj/machinery/sleep_console, +/obj/machinery/computer/sleep_console, /turf/open/floor/prison/sterilewhite/full, /area/gelida/indoors/a_block/medical) "hUc" = ( @@ -13774,7 +13774,7 @@ /turf/open/floor/prison/whitegreenfull2, /area/gelida/indoors/a_block/fitness) "kiW" = ( -/obj/machinery/body_scanconsole, +/obj/machinery/computer/body_scanconsole, /obj/machinery/light{ dir = 1 }, @@ -23795,7 +23795,9 @@ /turf/open/floor/plating/ground/desertdam/asphalt/cement, /area/gelida/outdoors/colony_streets/north_east_street) "roD" = ( -/obj/machinery/atmospherics/components/unary/cryo_cell, +/obj/machinery/atmospherics/components/unary/cryo_cell{ + dir = 1 + }, /turf/open/floor/tile/dark2{ dir = 4 }, diff --git a/_maps/map_files/Ice_Colony_v2/Ice_Colony_v2.dmm b/_maps/map_files/Ice_Colony_v2/Ice_Colony_v2.dmm index ed511ac705f8f..75f42e19bdbeb 100644 --- a/_maps/map_files/Ice_Colony_v2/Ice_Colony_v2.dmm +++ b/_maps/map_files/Ice_Colony_v2/Ice_Colony_v2.dmm @@ -18919,13 +18919,6 @@ /obj/machinery/atmospherics/pipe/simple/green/hidden, /turf/open/floor/plating, /area/ice_colony/underground/maintenance/central) -"dKp" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/green/hidden{ - dir = 4 - }, -/turf/open/floor/tile/dark2, -/area/ice_colony/surface/command) "dKq" = ( /obj/machinery/door/poddoor/timed_late/containment/landing_zone/lz2, /obj/structure/cable, @@ -27136,7 +27129,9 @@ /turf/open/floor/plating, /area/ice_colony/underground/maintenance/north) "pCL" = ( -/obj/machinery/atmospherics/components/unary/cryo_cell, +/obj/machinery/atmospherics/components/unary/cryo_cell{ + dir = 1 + }, /turf/open/floor/tile/green/whitegreen, /area/ice_colony/surface/clinic/treatment) "pDQ" = ( @@ -64075,7 +64070,7 @@ auX sdW iPL haC -dKp +aua iPL haC apL @@ -64497,7 +64492,7 @@ cXX mId auX odY -dKp +aua mId auX auS @@ -64709,7 +64704,7 @@ jos asd auX pDQ -dKp +aua apL uoG cIs @@ -65553,7 +65548,7 @@ aug aqw haC haC -dKp +aua ltl uLL kWN @@ -65765,7 +65760,7 @@ aJe nZl aqC haC -dKp +aua haC haC haC diff --git a/_maps/map_files/Iteron/Iteron.dmm b/_maps/map_files/Iteron/Iteron.dmm index 8e0486cf3ed32..72a866b659041 100644 --- a/_maps/map_files/Iteron/Iteron.dmm +++ b/_maps/map_files/Iteron/Iteron.dmm @@ -2477,15 +2477,6 @@ }, /turf/open/floor/plating/plating_catwalk, /area/mainship/patrol_base) -"FK" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer1{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer2{ - dir = 1 - }, -/turf/open/floor/plating/plating_catwalk, -/area/mainship/patrol_base) "FL" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer2{ dir = 4 @@ -3800,7 +3791,9 @@ /turf/open/floor/prison/sterilewhite, /area/mainship/patrol_base) "WP" = ( -/obj/machinery/atmospherics/components/unary/cryo_cell, +/obj/machinery/atmospherics/components/unary/cryo_cell{ + dir = 1 + }, /turf/open/floor/prison/sterilewhite, /area/mainship/patrol_base) "WU" = ( @@ -3819,10 +3812,12 @@ /turf/open/floor/mainship/mono, /area/mainship/patrol_base/barracks) "WY" = ( -/obj/machinery/atmospherics/components/unary/cryo_cell, /obj/machinery/light/mainship{ light_color = "#da2f1b" }, +/obj/machinery/atmospherics/components/unary/cryo_cell{ + dir = 1 + }, /turf/open/floor/prison/sterilewhite, /area/mainship/patrol_base) "Xc" = ( @@ -24553,7 +24548,7 @@ bu bu zS fV -FK +Fs Jp KN KN diff --git a/_maps/map_files/gelida_iv/gelida_iv.dmm b/_maps/map_files/gelida_iv/gelida_iv.dmm index cf32d7525c641..55132389a3a18 100644 --- a/_maps/map_files/gelida_iv/gelida_iv.dmm +++ b/_maps/map_files/gelida_iv/gelida_iv.dmm @@ -25894,7 +25894,9 @@ /turf/open/floor/plating/ground/desertdam/asphalt/cement, /area/gelida/outdoors/colony_streets/north_east_street) "roD" = ( -/obj/machinery/atmospherics/components/unary/cryo_cell, +/obj/machinery/atmospherics/components/unary/cryo_cell{ + dir = 1 + }, /turf/open/floor/tile/dark2{ dir = 4 }, diff --git a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm index 0f26152b383e0..4170667653ae5 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/cryo.dm @@ -3,7 +3,7 @@ /obj/machinery/atmospherics/components/unary/cryo_cell name = "cryo cell" icon = 'icons/obj/machines/cryogenics2.dmi' - icon_state = "cell-off" + icon_state = "cell_mapper" density = TRUE max_integrity = 350 soft_armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 100, BOMB = 0, BIO = 100, FIRE = 30, ACID = 30) @@ -155,7 +155,7 @@ occupant.client.eye = occupant.client.mob occupant.client.perspective = MOB_PERSPECTIVE if(occupant in contents) - occupant.forceMove(get_step(loc, SOUTH)) //this doesn't account for walls or anything, but i don't forsee that being a problem. + occupant.forceMove(get_step(loc, dir)) if (occupant.bodytemperature < 261 && occupant.bodytemperature >= 70) //Patch by Aranclanos to stop people from taking burn damage after being ejected occupant.bodytemperature = 261 // Changed to 70 from 140 by Zuhayr due to reoccurance of bug. if(auto_eject) //Turn off and announce if auto-ejected because patient is recovered or dead. diff --git a/icons/obj/machines/cloning.dmi b/icons/obj/machines/cloning.dmi index 007938a33e191caa93bab0d3d1e74aafbe6b4235..f9c5fe89cfdb0cd6df61fdd907426f42c37a1c6a 100644 GIT binary patch delta 3255 zcmZ{mc|276|Hsc5MzUucyDs4-Ay*zs<` zMj-|()g#>lo^*(fQBCYMR-vzR%IXG0@n&;4U%0l;DQ>0CZbH7;**PKgj{kH`>9v#A z0-1e&2{Kj!T%EBy=BhZYieW5paQ)5|~z{Cb1)H#YBG9>hR3V3BjNc zJ4_QU9>ar1JjkQGiO;28@$ zhKQ0xF~#8Vz3#=qx7uv9#g%wORBWP@t3d?!>7ur71#4(IDDQA@ET`Dl}w_ZA)@TdUEfQ=J}f9>rd@5Nk$jT zJ6Bt)TY_FLRf?qn0FyNue3odSQZ;0YA_ITUa{z$)r|=h7v`Zt(pC(rXAghKjD6J!| zuCrdEOR!b&$4CCN_<=%;NERasQO_aofd1F&MLuV(Ps|F=N=7lZck&dYy`mZSXShVuqy{G(7qFmnclVS}&0Qd;?-fP;K zVlUqxAFYAEmg38qr=pgUVo%swcXt<;LV!=|Wa)m_gzLHOE>iMYsiPd^@h_Y&fD{HK zUt3R#sdx!<*Z1MB=jF-b?@&LAErJEmlf^^#f?3-yxf88kaf6stF{MJ!ED8h zA@QHO1rQfDyH6a=`BQ?&Zt8^X!zx+gkUNl_w3k`&Vg7L6 zL5#_y49)lCyqep8R@Tn>H`d8|`rXAD>#oRj*EQqFq;|5$Tr!wuS|6r%BckFY0@0Q*^TzGVJ)nd$c&`e;`k|C)n zW)dbtTe*z5%UslRHQJLPc99kW%hYm)+7O4XxFeM|da~R5eqSmp0~3roKBb)rUD6H< z?rg*zd~ec((ZHWjLIYJ49KdTDz~vu!+H=k$15zSHMd2nUtKU?NmZcp%4Dd4C zp%(lRU)XQJ3YJD77&V35UA4A+>`_wba=mbUxh(_>8;nvX+6kpx`saQtMvI}B=`HQU{b>MSgdhB{JHEa6uu`m)FP_!5p z`X*?@G*XvQbQ%B*76R?{n^JEjTU=+e#}M0nkyy$R{m{x-U2?l1QU3uW7~%u+TpT!e zou22}>EYQsB{xzjux?Yq^^o=~nsJS0s7v^j#O%%u0U}IbwSTzMhxavZ!|&SY8`(&v z<=3^DDm5EQ2&#kT?<`r45kD74M2UW0v@IMkpA{byd-@#P~&r=f&CM|NV4A~S8Xv{ET7z;G%tH3R{V+*@9_Q9yKcGpPC z=gtI~xf}EO1O&N&tRH=Msm}Q-X=W=G)*DrPzeg8w_0>{g#kR_*m3i;@CypnuT5B;0 zDnTN)`lXKti^X$lCPMV-F|W0?m>!^s5JVEnqJ8UX&XRM%Xqynw!Jv}g7?bv6&-YqT zrWIo&tqY(w4&fxXyVNFv3}sLnM=k~pvY{J6AKtH!#*sV1?uIU*rF1W@waz`q+_hl^ zC&uDw<%zF*3< z@F+joc(*T%pqRk_$COSrr_&4E>qq&ba-L&OuPv4}{P!*>AqX0lsW4z!v7;|2b*%Mx z%+3~7#~soXvz+UCyi&K9j zmk?p=zQGd)K&R{4U}X!3+@6`}pqHDz{=uA&r-455u5VLASI5s9J+GAf7Sg4cjJ>M< zbQm_Ta9vcS`;hE!dg!np_GS5_rS&aum(;H=bkPWLPI1 zfEmjE0P2FdOILf156PCtqn7rq(erg8hG*d{&!az|@VM7uO+o|0ve?0Mo(iEF%2rx3 zCm2q#W5^D-73y)BL1fKueh`_Vdl`7MieB|IQVIm_OlgkhttKFoq7H69u<_$T2Og}- ztn4`MJgy79A`kp7nRCs-0|=?nwyou8rTgVnmgcb9eIIL>m8K`18#NNTT+Xvu&z)fV zZ7%n0^><_FmPG zY8xRQBkiGz$FRb)!5n3w-Wf|=aVu>)qeB#J#$qTlJhFz2DO-8B?}_YGs{(aQTFWP} zz8!27EHIq5CGD59#U{GWvabKkE-(@vOgbxnSxd#5^P^i4QHk$2S|sLJw>;R^;t;=1 zw^4Uqy-ELUPZ3`AVBmCvg~lFSx<~b1sI@3>58@WMQs@C1s_F4{ep>>_^Mk?FxwvE7 zs?UMa9aVU5ABK`-L@$cLAuZQImCX@f8IH|93?In{L0QR8bLTM(A^loP>$|0X}I?SmgiI^8G)Zg1miJ9_tkc#2+EPR+t^|H+NBZj zsg@xC-DWn6#5C zYYDzcWj(OXkMU|=1Ha6qJy}_cQ}RuRtU!ndh_n8=y-b?cFX}AefM1D5Kk-^{%RzII zhA^<8j!$9ILZNU1SjL^6L2^40DZMo)osuyBCYIZQcJY>r&KrK{#GriWWmnKtXK9qI z=2EQPCxMr`8>YBb5ixtkBuu;^Kt<%Z3r5%q5w)u@a%*QRQ;KP@}Xds{$dD6f7 z|FzIsWZu*s09Te}hqk3%ZV6`lqj9mem3T+wu83mr&8>A%wfXL@6VXaJUnKXwZ-Q?6 zqZ&21Hvz5xC@ctDGbB{OTi@Ku)pRg-XIL!C;VO{ob7J}FkmMpSev^Z@L>CJT8pE+^ z+lX{SF8N<2N&@rT66lazrRb@%-bvILiISO%|177~!5l5~ev44Fd0`YJg&=D{A*iN4 znK6t1MH9v5ag{mXQ*| zAc^dhkZqKm#?m0e@Qv^K{`$^;_kEw|zOLsw&-tDEEJ#erkiLP!_;V)4) zxH|?Z3L)}!)G;I&haC^SL)%0MG*8)->omxSxe>!OT2CyuU9U*=&j%eoph&*=V`(?p zp@k@bZ&=}j^eY`~B>+4aAc*I-3#DZJfC7qkB`5&ccyMYZN<2i5m5m7Uc=IDWG7;l@ zHZ9zh**wQBK>T?tqDfnB&RC6geT^L6P}yzgb|>pC6zq&wj3v-mMz9_Rek()k!RoBM zZZLCy-cStA&A;6U)oMsWv3{u}b@7 zg>?f2>8~D^JJvOV@@YeGl1+}gr8WCmKNJ}J;OC{%$p)$n4rm}OWA*T1HLJEs#iAWU z2i|yeXj+D_9hXeioQP>G$p`{E5a9!s@ui9qt;Q*%hp)5UmFpmYVAdx! zFKWMzhX{nJAry5#(xi8G@E5WZ{@ENwifZ6rQhF^)Ro}sF3Cz~5;B_*rWA*-e#3;UG zxft0#aSxkSlI1D_>NcRt8K2DS*R^(kv3J<@J4ft%yC`KxD(CclzrumLBRAq^WORMs ze#Zy+8Di1SSxtb!A*7-tPH?xNAc{VKHi*iiNQ8N2>4^l3NL9}5mqgA_tIdX+l(fu7 z&+=y?b_|xe7MUkI-*yp|nX_x+>=!goVmF#Cw{qrDqB>Xuf|GbX|Sk zgT9-&btyN?(j}eWxGGU0!I>|3L;wCv96^@?VT?G1er<6k9{TI~!zXr<`9_T1?%>jt z9loO)JmSEfa?mLhUe2Tn%xyEworR0D9-i)QE>{3=?ezO+dVoXNoT)pumpD5)74P5+kSzk(Fz3gea&8u>T3 zo4TaYkfg<%p6RJ3Jcs7*HdFRsZuM>mEH_3Y z1s&_|RfqFGr83*Tyo_Mj05WCU)5o{I8|A8+p?lx}29qHw&pRw`Z*cCwO=j~v_sh^p zEQw_9rbim#8OzjR-DAQKspZEfjDKa{Y5d2lZ&+s0N~G`AzhPBI&apIGHs(eT*sqjw z>YS4#_Y%-L+ukdDNw6kp;^B>yNc7+3+)r77k|BPq&@ISGXWj8ef=62#lMwWx9jR|? zUaNt1DW*~37(Xd@5~CV7rGDS6^(7+GFT}tztXFJr$6HG(0gRGTc}8VU!_Hz)qxwLJ z1=gjOM&-xMcpNn^RbWU|fqR6Ik9aF0rr$4z?Y%jvfm~CWF4PY@&I6XSK>&qUjS3E;3)1%)2s`9l{L6$4hf8^++g*s?L>g)aP3u2FmkY##--m)g=oM*n< z%Lq~mB8U4o?;YQGRbc#n$GOE5U@aDPrTBDEEv$Ishy6h@=gdjz)-T^xWgW-)ZG&bi z2OaOkUVAVw3;<;{W9#Hbl2nNR#>R*yaUjo35=Kh4aJxv7rtlkI z5ia&-gLU!RDjWm*qY9c@ikrTM-%v~4?;`++_(H8V+1Z_%B3nT?DNds(egAPKyAu04 zl>I+;B{cNe6MXjK4NlUpfCym#LO_`w!79~#Z*b(Bj!-bLzx{{x`ATNZA_G_BDGF0P zp8y$|dTNb?6*!f~D53=)2ELKAB6R0^i-APX70C+$F=;!dCSUlwJM~aJs2^S`1$H z^dH&%GNoy1d-r9z*(>)7#}>Gv-DoDymH<)e7=1~;=<0pPpbvR|yW?lha&AGyK$U)^ zua^XFg=j|97+iVdS*fwBrU+7RiE~#YJa2mdv8yniO|tW|(7` zMgkVkIlP(ami6MUq{*|A=^SEtx;Ybvl5m`-h=1tyGJg?$_J3 zYkF-h^Pqxh1mPw>$%YWJ*^I0kuXl;F=#K9TWawmbP63HJhKDk@hCpYN`Dh6l>NalU zf#l+WaQc{U)0`W(?6GfltjmY1bC|iVbAM#7pv&R(Lmu9iGWCSt4uCk%OGi;-^wLyc zaf=4Ac$-CFu52hX?cCq&vPmgM8_IkAz+6?E@x3bUDiiX-LTtBX{;JD`q)4MBvqp7h zU9_o7?OmFN$EA-?n|3%IWd1DVeiT7QjmDj*B(a2_O!F+qh)rle4Z8 ziu(1=TI`&CYQ))XTtD*(Rz~BjKfy50o0ChEIIdoAB*0lMdl&t`dK48-dg@{!>rfx_ zS3u@iJ;j7$!%6@|eRbh#pQ`NBp+*F%mf3gV%34L0$_NSh8GxH@-a+I)3h7*}`CGpB z2WtnThqi#?!IOKqMfe|fe4q80RHDi!&mHc1296xpAIGd|Y% z1v5Q_p~)J+O6qgkfR?9)oHiuWb*zBa*_Yx2OmTn3*G@(}y<=rWGR5}397rAwWNDX}*=5QDu1177gv%_nvr=_!Bq%W@1jaT;-Tfnxvqn~Wv* zEDwIvsyz;}e^0!5Z>Sq!-r82sJH*u{iJ3NiL7_cA)c#}@VHsIAi!+(w!Gmr@t_U(_ zrj7fonqZPRIfrYoCE7!*KYPoWgW`N#@A)scJ*4dt#V*1W50YgCulXKL%Mr>=cJ_L) zo9}v6*2>+5_tUJsG{;+d>C6H9WHBSyL6o|D{5#%B#%fH-6W$~wR~rREtFe9dI!os= z!t%Jf=`}H;=dR?1wNJ(e!8+!C6<^s$UXY}iiutz#af`9c4N=q3VABussq#Z@hKI@f;hC2*ZtDrIK3OY!#nq}o4mbiddLO$N z+<%!MD)YoyC|mN7b@ST{A#s?Ant>q?=gV{?0NcXOax@QM4xZ-)lZu}&Q~~lur_y=< zPcGwKVOM+NCpy`u+jpQ<*Fn?d^IU$ln*fPemWty@g?*1W_nH5Mt3U&j!}MsebSdktnbO!BWYV*;4A&ugJ5fSa*;7LMlEy$?QA zwCvSE5BJ_f0Ir__N76C8!lbtFSNNh|89YY6=?#C+)T-(u!t>;Yk3%5|Ly>nBtyjsN8Z5B@m<1M8x!6^Y>Be?#^ z`0kxbh;w{@!su>ctn>GsL{>qkGy{w0&2&%~CX3 zaKmjrZ5kcKQK~?ksJJIM!#MAbd*ux?c>u}T^8@S&n)MJuh8`Zr8$>nmne9!zD=Vn{ zT(4xjW36%-9N@Nhz+UkQNzruyl5>>dVd(rU}GYwL5`+3!Z z6te?`F(?3X*vaCW5ypSrHTCdpn@u&p8sde_B@lC(GFL1Lq}bH0LSiA%y>ax#N{@}7 z)%QHln9fcWmsG8xD-l<9OD(R(LU`^QdJ{;!pq_ zI|%bnzq36NdJ>#<9eVP{=FnHTi0f2zerj}ppr-rg6S1y9&OjJ^+_FMa4I$IemQ}8H y9Cj(N@1<1Bft%2)C?~*pkUTD2MJe>+Ik5~1ar0Ty{AsHI=Q?LX7oaa0A*L37>Mvl=eOLGr9EQ{Thre&&E2FVN0$si#re z<57qu2jD~Wh5|rLeodJeHOk(g@*uco^3&pQgY3e;GpZJB?QV4#T-QD(tsgFKC+)0* zgA;Y<9n?4}Cf*`Hy8LF{=sNH9nq5j!9p&QN8;#qGa!A6J-*fk)_gg|aiz=bwg&2!t z+ArC9Pld>Gf%C!B6~x~UD*TifK{!kx<=WD5xiwv7h0bNNq-)NMSZHj+ioF zuw-WnO9^z2dY6GND}GjpF@#T@(uE`c3I2cfy&%jHBb)zU*8iKpxN2o;FqgmjX%Sg6 zOrX}L%?fXhMQDgDOfL6K&-e03-WEe2wqUngo%Iu`h(xL*oSpr3l+Pv7hh;0@*lkr8 zA~uY~h^>8aLfaZXm_S?Ew*Iv7frl1i%;E9Od~SX6OU6V}nS$E!6o>=Bja z@h$QImB%9@?_1h}%MOuryS}T3e}C4Uo4h{e-0Qm`$z9?#K9RXlW_~9aA(msVlrGtD zJP4V0R$2OXYpxL+%1sGO$i%Q1t1=g2ELDw1qym^=GP&1UotawwLob2lJ@3SRAB@ZT zyD7Ls)Sbf3?#}70?!qrnSsvhL2yPHk=d1{zt&afJ=rQg>pD5d&3V*w&M3zP-!zvPD z3TnIRKMDFA74XKN+KehynUND~z}Uz~M%f<|ik@9wy^JgokAH}a@*sfyA|_^fY|QoM z>rJr(~+`9x`2lrmf$B)f8DB1@FsUmKIWly zfmvXY#aUxSYtV4-1qBon)LSwb^hn2K;(s<1VIT)4{y4r zx!3aXO@m;C9qe1p2^9Z*!ApY*2&ur zEG78j55GyMCIkNky&&ML#Bk~Hlo=otFu5B(t*THNmRIcdK7gtmHAMHn?uq=$xKrJi ze~Hhu<1E$}Wg7s>$ubVb^+(ZT0a%~Y??@5KN*7e7>T4gbZxC36_WBJsX24t(n|p47 z(2;=ESUKoq5sKE;T<6kbjs1$>5hiz{(QXkx4m_6}ly2-)9Vpnm-bLYJN7=C$7w+37 z5+NZWk$5dULhUj6>c470Krii`-wVZ<9WEnTUJYD-46mZDbl0*A$33v2eOK1?O4r1<5Ms9&tw7#HyRaY5Hzl8{_+EzJV1L-8xJJ10NAQm% z|E)0=Ms!|VNm-Bg0ZJ=r0w)%XquP`>0v3L<=K#z5dsHgpDO1l75NCf<%M&>_q6}sK zd=!)`Qe!^h?|Z*bnKon%fkc8!hPC{qj&Zhk$}eUExATcP_8V4Xe{@eq$DW%Z=jXF{ zX(Ew)ZBqDfT@;#121O7X52Vj&{L>cJSZTu?2=#m<@>c#;z@7 zv7&ybR-|NVrR>I?8q192s7PY+`Ypg0BIWN&dddQ5J$^h$HaBf0Y38zYa-rIqwhkyd zqvWv=)rKMWhjA$2)H%a$Ud4)+>i_D$t1}u6-LDvaWlomS$#nzrjh!O3`dRal*LGNL zmKiRAfRd~RANwbUY|&<<{@=ILrH?-}rLU>%r~bsPg6g1eZ*Yxt?3IJO1y5UNcsUy9 zIOk?$k7QI`ijvJsMckX197xNPLv?}UnH-oz0R5||3EzxFCdL9Oyug4K`e!7~N7nAH zw4i~%iU)9aRmM14TMRV*QnT>vai<)I#0T21+95^(26)o;i+6_sUow77iMMF@fTjt( zDtsJ}yVCdZrU*s8zwe33O1BM# zaHU6z_G_D8D_A#3oG3gdmh^Yq-;A4Pu>?| zD+^KMy;cFKOwR}+tC8+(;ChZyPd{U2ebF>Bs5dx}C8tn&tfOs-;OeN!cH^c;_OLmr zjTlfDmHpOdan#PZu$4rWl&@zh6bpD3#1JsT9`IRY*{&e}v*^cy$u`4r^Mlth5pwgV zD3qeLV$1A2#v%l|$Olvzbe)w$D&ym2h`)-DGKX=FL9Hw>UA3~cBdQ#@@ugU%68RPL zO_8(9YI3txlMSq{p*9@`igbX*&FQ}=XxHNJ71CCD_O0aXUMf;a(&C~s_XS{TCo#ZC zGVD`j`7`(m7{^$>5fKk4unsSz>^&Eylk86MPSprhzoqMqI@nPiwZ z;bh9=hEGo&`}!W1T({U1G%BL@C{(c7ctE_^cN#wEdBdl>BrWFSiPCXp}s;;khSHZx1r3-+1>(dY8z^8{n6#@!s_NK*Ly818omSBG8aSmRe@|l@IyHl;}W#BD(G&ZbA6%ev0%7)fsqR6m!)+x&< z)Bfjp^!Kg|w035gpDz=(G684Tunyld`g%P2=@ZYe93g5*JjI0WyJQL+G)h^eL6g1o1 zE2{janvr3Faa^apBJsgxtbznYS)v=B71l z>d3+3?uh5iRX4JX1A;_Q%9bHIF!_*Bn2wC-bmlFl|?cvb|1(1lFLZ1KT%5P`~TG_0nrZ zU!;3TZ;!s}ZEwDzzS-QgabK5sX!_W4gX-YY#0#=T)6!{cE)XwemFAx@T-dGAk(ve5 z_9%Jn3p)>%r%vEz`%rFXH7=X$0CE#5_rbih&=aAs-E6q!=k>0!nn_OO95j0aGhbw` zbe>by^^f}(!!6dyuM_20I`QvL4}_bepWY0`=EDwrXNa@A;!BkV62gCkjho0Dbnx*! zWkfTeA(Yg|O``ip@0(SVxnlQ)ghj}mZyejK8+xi>%Z~4tRbR#anQi2!lS5l`9aYG( zCc*axd;!}m`zHgZa_`lf<6k#9)gK5M=6N3Az&-v+3e3k+su(kwh0bhh6fS)N8x#L2 z3VIUU$_!xJ^w$XYYQL(Z>ux>G(Ibg(Ki$tWSg?U&1XS+77-Kfg=r$L5GOyZ1<_vdU z=L)kp)Mo{Jk75}vZtZwqaTf70G_t5j;oKYH`f}nB|5nIhBcUL9CJo=vL zO;6&JX*#VAHD=^>Foy>0Z$3Zib*xZ#yb#!`K<7CW2w$m&L{~u>+iKy+1&qB{Ibq^v zktkny$u{ti7CY81^#qeHTA4<6;~0@;4ZUD7DKjU*Ftmrbi5(}qu_Xg%ILm`Rh8C7J z)~lBVsC_ngRGHLK+99rL>uQ4?kD_;B>naL}KhEOc&+SYD(f-FeBO@asru0?`K&KC= zUHXbj<34h&_n$_1I=txc|40P^p>xvVa{EUFozd1_TN0>sZ|^V|ubAA(x*wV#1jbt> zxtl!VF*x|E9$__c@zpx>XPJd5nMa?zhV=-0C=30%sUFhFc5^{T6>DY?n53XothvMT-aAIMp{J+ejzE&^;4t_0jHbd zo4>@ZzBe6A+t9`_$udKuIvh#8#N_~u%b8SQd4vp&Yegv!nW0fw9>;$1z98i!CTN^U z`8Z7c*;4S$Bq_(BZm!^)H2?q#HAzH4RCt{2 zU0;YB#~J@rPCb0Yr^C9Sy^HLJED`pB4L%E0uxspxGn8V;OSmUPjIlZT5uHb-uTvFB!v$Lyja}ORofDFmuM@b(*+K~y6FsA$pym@PFDB9>J>zlb?hm$`3 z9Bm9h#QJ$lqeg4C0|3z5`KCaYovs||005M=ZUF$md^iw35Lx+Gua+F&fBwhkuClZ; zJp7&lym@PFNS?R|a6<$!f(-n~sD{}#MeA4fq7GmQ;m7Y10G)i06DLvDx&=`q$iTmP zwG_zkB&vE*_Y=W)5WaUsE8M%Hx!gW3B+b9JQqk8|Dtc7yI|Lwm-@PkZ;o|9=aPjm_ z2x5drYqq1GpW+_KWZ=hp|Jq7LNBluVFwC~OdbPyl_nid+0G$2R+uY%x*X;MF7xQ`E z@+$DJzWWQ2aI^~m^Sp(b0&L#j0e}rFmTn!|Wt~{B+3)ioBOfH-Hvu+uu#5`8Hta5A z9~HhHU>U(e6eplXCo7m1x5&W{_PgvuiLdcfLBC642enZFig`^to% zUbDYDz34q>m|mPxb}&{(003_hR5m^U=asMwKrx;i2k`iB36!4)fUy_y;({Uqd&9-G&HFY zgnIGj{T-l9KWVULM&Wot;vqw>9Jy&y_RdmZ5H!R+e*yj<8G5H%F>0KfR}s@GA)1EdweYt6^& zfA6)SK_T;i@!?p{@m>R(!j>VXM&I{$rx&L>WPMp7vjCnr=-IiI|@Pbs)?Y80K;9p$CJQA5UZSwP(%RB18BV;g{K4# zY-}hZ0NVplnOF`bWGFKWnpDL0c=`wLuY3MX=a;{}Mg0L=()?k9#viK(Y<>N;{W*5@ zl{l#b@uQ!cR`nv+ZAnxP)#Kq87z20)Id&XA)c&vi_rL!AAAahX`Kx+SH_Wz)eynGh z?K+PLhS{!?ttGG;4gprOgJfpD3)J-nYvGQ{_3kmFrK!d`fAa&4}EVuZ42`&avhL7kdZH* zzUi@d!`JvU*t4KVUp8n1nR^umk`AGpGIu z0ATlQa!bN%|Nf)b0D#T!2tm(U&tYz^0DF5KxO8&Kal&6LKK8xIed(~X&ZDm$!`xiK zJ~=6{pPn z$KW+et?~G60Y3cb<ew>7}pSJt}qMr*cK*1BUa~yy8sX~!@7*fLaU4{nb{dL$@muSSK>7Q_@`6-{AOOn) z%38OsFYhy_n)>p-T_)uG{h_rbBd7wPUXKRhMr*dl@&q*aMv%Whly+nVRe+$0P*u+1 znFOd7#(T2gbpV37HB(bLhi4LCdO%t0n!V-#{Ng{YUIu?K$AGF{)LD7@Y2V}ZGO$6l zQd#Soh6zyC!1K*SUite+y}xdlFkjZ9JnYGV@GVKyv-RcuI$8zAvzLdx6fx-#62L1> zyuQ3&$Gt&hyvQIRz@+ByPa517!;Q|&-=D>PA%x}uWSITV-^y_Ey_6#WG zu2*WLx29~7ugIbAh==%KC>}A?)GLOC^&>XfY!rN2+Ecp#KHIb zfHw{S0Dxh7$9ThR*H_=L()JqWerN}m25@a;DZZqoVtWd+j%$o%V-k?Y6s_+1>Els@XDW${vIcPJ}<(^-~Z|F{~(d+EpX3*qROAI3V&3v z1vto`@5~a8_dM$)-M`z#_j~ok%V*BP-|m0u$}&r)^7>?bGxyi+yADqbgJ0&XDR#1s z8`rN57qk+bI_b=xKMwHx`LtxHv}}T;5JB*>b(s(?A@EBY+ zaKAqws{Hx9P|>(NkmmgXX@ykp4@e`Vdw)RMAl>@|(gueBXdEC5k%D;bXCX)m`Lw{b z9358P&c<&98KmW=0jx9nKhP>er02$xw!bvogpz#EWkii>L dy+0t0_&>CVL8exG`?3H4002ovPDHLkV1fycgGB%U From daffd150e5c1e564ebce427a6559b8ab772af8c8 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 8 Nov 2023 18:22:55 +0000 Subject: [PATCH 02/44] Automatic changelog for PR #14404 [ci skip] --- html/changelogs/AutoChangeLog-pr-14404.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14404.yml diff --git a/html/changelogs/AutoChangeLog-pr-14404.yml b/html/changelogs/AutoChangeLog-pr-14404.yml new file mode 100644 index 0000000000000..fe1d7a7c8fe18 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14404.yml @@ -0,0 +1,5 @@ +author: "Lumipharon" +delete-after: True +changes: + - bugfix: "Certain cryo tubes will no longer eject their occupant into a wall" + - imageadd: "Slight updates to cryo and cloner tube sprites" \ No newline at end of file From ea4fa6e9d01f81e01af7a6bc626bc6dab14b3e71 Mon Sep 17 00:00:00 2001 From: ZeWaka Date: Wed, 8 Nov 2023 10:28:20 -0800 Subject: [PATCH 03/44] If you have a stronger acid, you can now click on weaker acid directly to upgrade it. (#14401) * sanity for acid upgrading * fix acid timer being reset * remove the old transfer code * better phrasing --- code/game/objects/effects/aliens.dm | 3 +- .../mob/living/carbon/xenomorph/abilities.dm | 33 +++++++------------ 2 files changed, 14 insertions(+), 22 deletions(-) diff --git a/code/game/objects/effects/aliens.dm b/code/game/objects/effects/aliens.dm index 308e9c2cd4c27..6db8fc5ffca8d 100644 --- a/code/game/objects/effects/aliens.dm +++ b/code/game/objects/effects/aliens.dm @@ -149,10 +149,11 @@ acid_damage = 175 icon_state = "acid_strong" -/obj/effect/xenomorph/acid/Initialize(mapload, target, melting_rate) +/obj/effect/xenomorph/acid/Initialize(mapload, target, melting_rate, existing_ticks) . = ..() acid_melt_multiplier = melting_rate acid_t = target + ticks += existing_ticks if(!acid_t) return INITIALIZE_HINT_QDEL layer = acid_t.layer diff --git a/code/modules/mob/living/carbon/xenomorph/abilities.dm b/code/modules/mob/living/carbon/xenomorph/abilities.dm index 1283ecf48f58a..18606ed56be63 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities.dm @@ -596,6 +596,10 @@ use_state_flags = XACT_USE_BUCKLED /datum/action/xeno_action/activable/corrosive_acid/can_use_ability(atom/A, silent = FALSE, override_flags) + // Check if it's an acid object we're upgrading + if (istype(A, /obj/effect/xenomorph/acid)) + var/obj/effect/xenomorph/acid/existing_acid = A + A = existing_acid.acid_t // Swap the target to the target of the acid . = ..() if(!.) return FALSE @@ -618,6 +622,12 @@ /datum/action/xeno_action/activable/corrosive_acid/use_ability(atom/A) var/mob/living/carbon/xenomorph/X = owner + + // Check if it's an acid object we're upgrading + if (istype(A, /obj/effect/xenomorph/acid)) + var/obj/effect/xenomorph/acid/existing_acid = A + A = existing_acid.acid_t // Swap the target to the target of the acid + if(!A.dissolvability(initial(acid_type.acid_strength))) return fail_activate() @@ -630,8 +640,9 @@ if(!can_use_ability(A, TRUE)) return fail_activate() + var/old_acid_ticks = A.current_acid?.ticks QDEL_NULL(A.current_acid) - A.current_acid = new acid_type(get_turf(A), A, A.dissolvability(initial(acid_type.acid_strength))) + A.current_acid = new acid_type(get_turf(A), A, A.dissolvability(initial(acid_type.acid_strength)), old_acid_ticks) succeed_activate() @@ -641,26 +652,6 @@ span_xenowarning("We vomit globs of vile stuff all over \the [A]. It begins to sizzle and melt under the bubbling mess of acid!"), null, 5) playsound(X.loc, "sound/bullets/acid_impact1.ogg", 25) -/datum/action/xeno_action/activable/corrosive_acid/proc/acid_progress_transfer(acid_type, obj/O, turf/T) - if(!O && !T) - return - - var/obj/effect/xenomorph/acid/new_acid = acid_type - - var/obj/effect/xenomorph/acid/current_acid - - if(T) - current_acid = T.current_acid - - else if(O) - current_acid = O.current_acid - - if(!current_acid) //Sanity check. No acid - return - new_acid.ticks = current_acid.ticks //Inherit the old acid's progress - qdel(current_acid) - - // *************************************** // *********** Super strong acid // *************************************** From 0e0bda0e0c6a3b20a3c250cf00d5860520b074bf Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 8 Nov 2023 18:28:41 +0000 Subject: [PATCH 04/44] Automatic changelog for PR #14401 [ci skip] --- html/changelogs/AutoChangeLog-pr-14401.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14401.yml diff --git a/html/changelogs/AutoChangeLog-pr-14401.yml b/html/changelogs/AutoChangeLog-pr-14401.yml new file mode 100644 index 0000000000000..a2bc08c3bbc33 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14401.yml @@ -0,0 +1,5 @@ +author: "ZeWaka" +delete-after: True +changes: + - rscadd: "If you have a stronger acid, you can now click on weaker acid directly to upgrade it." + - bugfix: "Fixed acid upgrading not inheriting the existing melt progress" \ No newline at end of file From 287051b4da76e6e579b80b83afae236ded2ceb73 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 8 Nov 2023 19:28:56 +0100 Subject: [PATCH 05/44] Update TGS DMAPI (#14399) Co-authored-by: tgstation-server --- code/__DEFINES/tgs.dm | 2 +- code/modules/tgs/core/datum.dm | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/code/__DEFINES/tgs.dm b/code/__DEFINES/tgs.dm index d468d60441968..0cc106ec9cf2f 100644 --- a/code/__DEFINES/tgs.dm +++ b/code/__DEFINES/tgs.dm @@ -1,6 +1,6 @@ // tgstation-server DMAPI -#define TGS_DMAPI_VERSION "6.6.1" +#define TGS_DMAPI_VERSION "6.6.2" // All functions and datums outside this document are subject to change with any version and should not be relied on. diff --git a/code/modules/tgs/core/datum.dm b/code/modules/tgs/core/datum.dm index de420a2a325a7..07ce3b684584e 100644 --- a/code/modules/tgs/core/datum.dm +++ b/code/modules/tgs/core/datum.dm @@ -12,8 +12,13 @@ TGS_DEFINE_AND_SET_GLOBAL(tgs, null) src.version = version /datum/tgs_api/proc/TerminateWorld() - del(world) - sleep(1) // https://www.byond.com/forum/post/2894866 + while(TRUE) + TGS_DEBUG_LOG("About to terminate world. Tick: [world.time], sleep_offline: [world.sleep_offline]") + world.sleep_offline = FALSE // https://www.byond.com/forum/post/2894866 + del(world) + world.sleep_offline = FALSE // just in case, this is BYOND after all... + sleep(1) + TGS_DEBUG_LOG("BYOND DIDN'T TERMINATE THE WORLD!!! TICK IS: [world.time], sleep_offline: [world.sleep_offline]") /datum/tgs_api/latest parent_type = /datum/tgs_api/v5 From 4b02ff688de514948203596506fd88b7c8003c9b Mon Sep 17 00:00:00 2001 From: ZeWaka Date: Wed, 8 Nov 2023 10:30:39 -0800 Subject: [PATCH 06/44] Fix #14179 (#14405) Fix #13795 --- .../carbon/xenomorph/castes/baneling/baneling.dm | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/code/modules/mob/living/carbon/xenomorph/castes/baneling/baneling.dm b/code/modules/mob/living/carbon/xenomorph/castes/baneling/baneling.dm index 6cc28f81757c5..e4e46a9f2cd2a 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/baneling/baneling.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/baneling/baneling.dm @@ -71,6 +71,7 @@ if(isnull(source)) return var/mob/living/carbon/xenomorph/xeno_ref = source + cleanup_baneling(xeno_ref) xeno_ref.forceMove(src) ADD_TRAIT(xeno_ref, TRAIT_STASIS, BANELING_STASIS_TRAIT) if(xeno_ref.stored_charge >= BANELING_CHARGE_MAX) @@ -85,6 +86,15 @@ addtimer(CALLBACK(src, PROC_REF(spawn_baneling), xeno_ref), BANELING_CHARGE_RESPAWN_TIME*4) return COMPONENT_CANCEL_DEATH +/// Handles cleaning up the baneling before teleporting it back to the pod +/obj/structure/xeno/baneling_pod/proc/cleanup_baneling(mob/living/carbon/xenomorph/baneling) + // Sticky grenades + for (var/obj/item/explosive/grenade/sticky/nade in baneling) + nade.clean_refs() + nade.forceMove(get_turf(baneling)) + // Fire + baneling.ExtinguishMob() + /// Increase our current charge /obj/structure/xeno/baneling_pod/proc/increase_charge(datum/source) var/mob/living/carbon/xenomorph/xeno_ref = source From 6e7266511976a03efef28f88f495654bc3e7c297 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 8 Nov 2023 18:30:57 +0000 Subject: [PATCH 07/44] Automatic changelog for PR #14405 [ci skip] --- html/changelogs/AutoChangeLog-pr-14405.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14405.yml diff --git a/html/changelogs/AutoChangeLog-pr-14405.yml b/html/changelogs/AutoChangeLog-pr-14405.yml new file mode 100644 index 0000000000000..e7d6dedd5c767 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14405.yml @@ -0,0 +1,4 @@ +author: "ZeWaka" +delete-after: True +changes: + - bugfix: "Banelings will no longer bring sticky nades back to their pod upon dying." \ No newline at end of file From 5ad9ca738d16f8793d4c70c5e0674c4f7a045130 Mon Sep 17 00:00:00 2001 From: Helg2 <93882977+Helg2@users.noreply.github.com> Date: Wed, 8 Nov 2023 20:31:12 +0200 Subject: [PATCH 08/44] Update pouch.dm (#14397) --- code/game/objects/items/storage/pouch.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/game/objects/items/storage/pouch.dm b/code/game/objects/items/storage/pouch.dm index ef61fac6cb4c7..ba3f11f2c64d8 100644 --- a/code/game/objects/items/storage/pouch.dm +++ b/code/game/objects/items/storage/pouch.dm @@ -16,6 +16,9 @@ if(fill_number && fill_type) for(var/i in 1 to fill_number) new fill_type(src) + +/obj/item/storage/pouch/LateInitialize() + . = ..() update_icon() /obj/item/storage/pouch/examine(mob/user) From 00975d6293a3744eeeebad497700fcdea09eb366 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 8 Nov 2023 18:31:33 +0000 Subject: [PATCH 09/44] Automatic changelog for PR #14397 [ci skip] --- html/changelogs/AutoChangeLog-pr-14397.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14397.yml diff --git a/html/changelogs/AutoChangeLog-pr-14397.yml b/html/changelogs/AutoChangeLog-pr-14397.yml new file mode 100644 index 0000000000000..86220a87f8cf6 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14397.yml @@ -0,0 +1,4 @@ +author: "Helg2" +delete-after: True +changes: + - bugfix: "Full pouches now don't look empty on spawn." \ No newline at end of file From 36d89e299abfb6b802521f6397909b81c01278a9 Mon Sep 17 00:00:00 2001 From: ColdIronWarrior Date: Wed, 8 Nov 2023 13:32:49 -0500 Subject: [PATCH 10/44] buff resin armor (#14155) --- code/game/turfs/walls/resin.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/turfs/walls/resin.dm b/code/game/turfs/walls/resin.dm index 78fb0575613a4..8f9c2a9d6b8ea 100644 --- a/code/game/turfs/walls/resin.dm +++ b/code/game/turfs/walls/resin.dm @@ -15,7 +15,7 @@ smoothing_flags = SMOOTH_BITMASK smoothing_groups = list(SMOOTH_GROUP_XENO_STRUCTURES) canSmoothWith = list(SMOOTH_GROUP_XENO_STRUCTURES) - soft_armor = list(MELEE = 0, BULLET = 60, LASER = 60, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0) + soft_armor = list(MELEE = 0, BULLET = 70, LASER = 60, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0) resistance_flags = UNACIDABLE /turf/closed/wall/resin/add_debris_element() From fcfa9be38cecc381a3f6ca40d48760a62c20afad Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 8 Nov 2023 18:33:08 +0000 Subject: [PATCH 11/44] Automatic changelog for PR #14155 [ci skip] --- html/changelogs/AutoChangeLog-pr-14155.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14155.yml diff --git a/html/changelogs/AutoChangeLog-pr-14155.yml b/html/changelogs/AutoChangeLog-pr-14155.yml new file mode 100644 index 0000000000000..2a0b4361f654a --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14155.yml @@ -0,0 +1,4 @@ +author: "coldironwarrior" +delete-after: True +changes: + - balance: "made resin walls have 70 bullet armor (up from 60)" \ No newline at end of file From 018baa530bc2e336fe1a5a5bcfc6769f8fcd7a9c Mon Sep 17 00:00:00 2001 From: Xander3359 <66163761+Xander3359@users.noreply.github.com> Date: Wed, 8 Nov 2023 15:06:22 -0500 Subject: [PATCH 12/44] Ports the CM Canister pouch (#14308) * Ports the CM Canister pouch * Un-CMiffies the code * Attackby_alt, some checks on fill Uses balloon alerts too. * fix runtime causing the container to vanish also change capitalization * NEW SPRITES! Changes on examine. Using overlays for sprite. * snowflake attackby to stop warning printing. I don't want the game to attempt to insert the item into the storage, that gets handled before attackby calls parent. * delete unused sprite * Tivi Review Changes on examine Moves around some early returns Uses overlays properly * BM Review "as in" instead of "in" * case sensitive * PR Review * qdelnull * Better init, compatible with subtypes moves the pouch to public vendor instead of medic points. --- .../objects/items/storage/reagent_pouch.dm | 189 ++++++++++++++++++ .../machinery/vending/marine_vending.dm | 1 + icons/Marine/marine-pouches.dmi | Bin 16716 -> 8574 bytes tgmc.dme | 1 + 4 files changed, 191 insertions(+) create mode 100644 code/game/objects/items/storage/reagent_pouch.dm diff --git a/code/game/objects/items/storage/reagent_pouch.dm b/code/game/objects/items/storage/reagent_pouch.dm new file mode 100644 index 0000000000000..6e8054582bae3 --- /dev/null +++ b/code/game/objects/items/storage/reagent_pouch.dm @@ -0,0 +1,189 @@ +//Reagent Canister pouch. Including the canister inside the pouch, as well as the pouch item. + +/obj/item/reagent_containers/glass/reagent_canister // See the Reagent Canister Pouch, this is just the container + name = "pressurized reagent container" + desc = "A pressurized container. The inner part of a pressurized reagent canister pouch. Too large to fit in anything but the pouch it comes with." + icon = 'icons/Marine/marine-pouches.dmi' + icon_state = "r_canister" + item_icons = list( + slot_l_hand_str = 'icons/mob/inhands/equipment/tanks_left.dmi', + slot_r_hand_str = 'icons/mob/inhands/equipment/tanks_right.dmi', + ) + item_state = "anesthetic" + possible_transfer_amounts = null + volume = 1200 //The equivalent of 5 pill bottles worth of BKTT + w_class = WEIGHT_CLASS_BULKY + +/obj/item/reagent_containers/glass/reagent_canister/examine(mob/user) + . = ..() + . += get_examine_info(user) + +///Used on examine for properly skilled people to see contents. +/obj/item/reagent_containers/glass/reagent_canister/proc/get_examine_info(mob/user) + if(isxeno(user)) + return + if(!(user.skills.getRating(SKILL_MEDICAL) >= SKILL_MEDICAL_NOVICE)) //Failed skill check + return span_notice("You don't know what's in it.") + if(!reagents.total_volume) + return span_notice("[src] is empty!") + var/list/dat = list() + dat += "\n \t [span_notice("Total Reagents: [reagents.total_volume]/[volume].")]
" + for(var/datum/reagent/R AS in reagents.reagent_list) + var/percent = round(R.volume / max(0.01 , reagents.total_volume * 0.01),0.01) + if(R.scannable) + dat += "\n \t [R]: [R.volume]|[percent]%
" + else + dat += "\n \t Unknown: [R.volume]|[percent]%
" + return span_notice("[src]'s contents: [dat.Join(" ")]") + +/obj/item/reagent_containers/hypospray/autoinjector/r_pouch //Custom empty autoinjector that we will manually fill the contents of + name = "custom autoinjector" + desc = "An autoinjector loaded with a custom mix. Useful whenever you need the rapid injection" + icon_state = "RedGreen" + amount_per_transfer_from_this = 30 + list_reagents = null //This injector gets filled up by the pouch on Initialize() + +/obj/item/storage/pouch/pressurized_reagent_pouch //The actual pouch itself and all its function + name = "pressurized reagent pouch" + w_class = WEIGHT_CLASS_BULKY + max_w_class = WEIGHT_CLASS_BULKY + allow_drawing_method = TRUE + icon_state = "reagent_pouch" + desc = "A very large reagent pouch. It is used to refill custom injectors, and can also store one.\ + You can Alt-Click to remove the canister in order to refill it." + can_hold = list(/obj/item/reagent_containers/hypospray) + cant_hold = list(/obj/item/reagent_containers/glass/reagent_canister) //To prevent chat spam when you try to put the container in + flags_item = NOBLUDGEON + ///The internal container of the pouch. Holds the reagent that you use to refill the connected injector + var/obj/item/reagent_containers/glass/reagent_canister/inner + ///List of chemicals we fill up our pouch with on Initialize() + var/list/chemicals_to_fill = list( + /datum/reagent/consumable/sodiumchloride = 1200, + ) + +/obj/item/storage/pouch/pressurized_reagent_pouch/Initialize(mapload) + . = ..() + inner = new /obj/item/reagent_containers/glass/reagent_canister + new /obj/item/reagent_containers/hypospray/autoinjector/r_pouch(src) + for(var/datum/reagent/chem_type AS in chemicals_to_fill) + if(!chem_type) + continue + inner.reagents.add_reagent(chem_type, chemicals_to_fill[chem_type]) + if(length(contents) > 0) + var/obj/item/reagent_containers/hypospray/autoinjector/hypo_to_fill = locate() in src + if(!hypo_to_fill) + update_icon() + return + for(var/datum/reagent/chem_type AS in chemicals_to_fill) + if(!chem_type) + continue + hypo_to_fill.reagents.add_reagent(chem_type, (chemicals_to_fill[chem_type])/inner.volume*hypo_to_fill.volume) + hypo_to_fill.update_icon() + update_icon() + + +/obj/item/storage/pouch/pressurized_reagent_pouch/Destroy() + if(inner) + QDEL_NULL(inner) + return ..() + +/obj/item/storage/pouch/pressurized_reagent_pouch/update_overlays() + . = ..() + if(!inner) + . += image('icons/Marine/marine-pouches.dmi', src, "reagent_pouch_0") + return + . += image('icons/Marine/marine-pouches.dmi', src, "reagent_canister") + var/percentage = round((inner.reagents.total_volume/inner.reagents.maximum_volume)*100) + switch(percentage) + if(0) + . += image('icons/Marine/marine-pouches.dmi', src, "reagent_pouch_0") + if(1 to 33) + . += image('icons/Marine/marine-pouches.dmi', src, "reagent_pouch_1") + if(34 to 66) + . += image('icons/Marine/marine-pouches.dmi', src, "reagent_pouch_2") + if(67 to 100) + . += image('icons/Marine/marine-pouches.dmi', src, "reagent_pouch_3") + +/obj/item/storage/pouch/pressurized_reagent_pouch/AltClick(mob/user) + if(!remove_canister(user)) + return ..() + +///Attempts to remove the reagent canister from the pouch. Returns FALSE if there is no canister to remove +/obj/item/storage/pouch/pressurized_reagent_pouch/proc/remove_canister(mob/user) + if(!inner) + to_chat(user, span_warning("There is no container inside this pouch!")) + return FALSE + if(!user.put_in_active_hand(inner)) + user.put_in_hands(inner) //If put_in_active fails, we still pick up or drop the canister + inner = null + update_icon() + return TRUE + +/obj/item/storage/pouch/pressurized_reagent_pouch/attackby(obj/item/held_item, mob/user) + if(istype(held_item, /obj/item/reagent_containers/hypospray)) + fill_autoinjector(held_item, user) + return ..() + + if(istype(held_item, /obj/item/reagent_containers/glass/reagent_canister)) //If it's the reagent canister, we put it in the special holder + if(!inner) + user.temporarilyRemoveItemFromInventory(held_item) + inner = held_item + to_chat(user, span_notice("You insert [held_item] into [src]!")) + update_icon() + return + to_chat(user, span_warning("There already is a container inside [src]!")) + return + + return ..() + +/obj/item/storage/pouch/pressurized_reagent_pouch/attackby_alternate(obj/item/held_item, mob/user, params) + . = ..() + if(istype(held_item, /obj/item/reagent_containers/hypospray)) + fill_autoinjector(held_item, user) + +///Fills the hypo that gets stored in the pouch from the internal storage tank. Returns FALSE if you fail to refill your injector +/obj/item/storage/pouch/pressurized_reagent_pouch/proc/fill_autoinjector(obj/item/reagent_containers/hypospray/autoinjector, mob/user) + if(!inner) + user.balloon_alert(user, "No container") + return FALSE + if(!inner.reagents.total_volume) + user.balloon_alert(user, "No reagent left") + return FALSE + inner.reagents.trans_to(autoinjector, autoinjector.volume) + playsound(loc, 'sound/effects/refill.ogg', 25, TRUE, 3) + autoinjector.update_icon() + update_icon() + +/obj/item/storage/pouch/pressurized_reagent_pouch/examine(mob/user) + . = ..() + . += get_display_contents(user) + +///Used on examine for properly skilled people to see contents. +/obj/item/storage/pouch/pressurized_reagent_pouch/proc/get_display_contents(mob/user) + if(isxeno(user)) + return + if(!(user.skills.getRating(SKILL_MEDICAL) >= SKILL_MEDICAL_NOVICE)) //Failed skill check + return span_notice("You don't know what's in it.") + if(!inner) + return span_notice("[src] has no container inside!") + if(!inner.reagents.total_volume) + return span_notice("[src] is empty!") + var/list/dat = list() + dat += "\n \t [span_notice("Total Reagents: [inner.reagents.total_volume]/[inner.volume].")]
" + if(length(inner.reagents.reagent_list) > 0) + for(var/datum/reagent/R AS in inner.reagents.reagent_list) + var/percent = round(R.volume / max(0.01 , inner.reagents.total_volume * 0.01),0.01) + if(R.scannable) + dat += "\n \t [R]: [R.volume]|[percent]%
" + else + dat += "\n \t Unknown: [R.volume]|[percent]%
" + return span_notice("[src]'s reagent display shows the following contents: [dat.Join(" ")]") + +/obj/item/storage/pouch/pressurized_reagent_pouch/bktt //Pre-filled with equal parts BKTT and a basic auto injector + chemicals_to_fill = list( + /datum/reagent/medicine/bicaridine = 300, + /datum/reagent/medicine/kelotane = 300, + /datum/reagent/medicine/tramadol = 300, + /datum/reagent/medicine/tricordrazine = 300, + ) + diff --git a/code/game/objects/machinery/vending/marine_vending.dm b/code/game/objects/machinery/vending/marine_vending.dm index 47ba5b85d641f..3ed008f98d8c5 100644 --- a/code/game/objects/machinery/vending/marine_vending.dm +++ b/code/game/objects/machinery/vending/marine_vending.dm @@ -1229,6 +1229,7 @@ /obj/item/storage/pouch/explosive = -1, /obj/item/storage/pouch/medkit = -1, /obj/item/storage/pouch/medical_injectors = -1, + /obj/item/storage/pouch/pressurized_reagent_pouch/bktt = -1, /obj/item/storage/pouch/med_lolipops = -1, /obj/item/storage/pouch/berrypouch = -1, /obj/item/storage/pouch/construction = -1, diff --git a/icons/Marine/marine-pouches.dmi b/icons/Marine/marine-pouches.dmi index ad3a4cc35ad27dedf56623d43c92b7ced00fc0d4..8e236ec899152be3aae308a60f1111f3bf1004ea 100644 GIT binary patch literal 8574 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 o$P;fRTf1Zz8n#z>77;gap07{h?3OWD)k@?jR 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 DOMVeb diff --git a/tgmc.dme b/tgmc.dme index 1c56881b838fd..946e47e347878 100644 --- a/tgmc.dme +++ b/tgmc.dme @@ -836,6 +836,7 @@ #include "code\game\objects\items\storage\misc.dm" #include "code\game\objects\items\storage\pill_packets.dm" #include "code\game\objects\items\storage\pouch.dm" +#include "code\game\objects\items\storage\reagent_pouch.dm" #include "code\game\objects\items\storage\secure.dm" #include "code\game\objects\items\storage\storage.dm" #include "code\game\objects\items\storage\surgical_tray.dm" From 7537b0b6c588ff90d0c71bf8f3365627cc9b9220 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 8 Nov 2023 20:06:44 +0000 Subject: [PATCH 13/44] Automatic changelog for PR #14308 [ci skip] --- html/changelogs/AutoChangeLog-pr-14308.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14308.yml diff --git a/html/changelogs/AutoChangeLog-pr-14308.yml b/html/changelogs/AutoChangeLog-pr-14308.yml new file mode 100644 index 0000000000000..e0d7793942b2a --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14308.yml @@ -0,0 +1,4 @@ +author: "Xander3359" +delete-after: True +changes: + - rscadd: "Port the CM Reagent Canister Pouch" \ No newline at end of file From bdce7275477aa33bd313d465546f8b9f391f0ccd Mon Sep 17 00:00:00 2001 From: Lumipharon Date: Thu, 9 Nov 2023 12:26:44 +1300 Subject: [PATCH 14/44] flare throw fix (#14395) --- .../game/objects/items/explosives/grenades/marines.dm | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/code/game/objects/items/explosives/grenades/marines.dm b/code/game/objects/items/explosives/grenades/marines.dm index aee05af094db1..3e4b2781aa3ce 100644 --- a/code/game/objects/items/explosives/grenades/marines.dm +++ b/code/game/objects/items/explosives/grenades/marines.dm @@ -527,6 +527,11 @@ set_light_on(FALSE) /obj/item/explosive/grenade/flare/throw_impact(atom/hit_atom, speed) + if(isopenturf(hit_atom)) + var/obj/alien/weeds/node/N = locate() in loc + if(N) + qdel(N) + turn_off() . = ..() if(!.) return @@ -542,12 +547,6 @@ if(launched && CHECK_BITFIELD(resistance_flags, ON_FIRE) && !L.on_fire) L.apply_damage(rand(throwforce*0.75,throwforce*1.25), BURN, target_zone, FIRE, updating_health = TRUE) //Do more damage if launched from a proper launcher and active - // Flares instantly burn out nodes when thrown at them. - var/obj/alien/weeds/node/N = locate() in loc - if(N) - qdel(N) - turn_off() - /obj/item/explosive/grenade/flare/civilian name = "flare" desc = "A NT standard emergency flare. There are instructions on the side, it reads 'pull cord, make light'." From 48e2f08b1afe8ce72ffbe32ff013fc7ba15fdd30 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 8 Nov 2023 23:31:44 +0000 Subject: [PATCH 15/44] Automatic changelog for PR #14395 [ci skip] --- html/changelogs/AutoChangeLog-pr-14395.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14395.yml diff --git a/html/changelogs/AutoChangeLog-pr-14395.yml b/html/changelogs/AutoChangeLog-pr-14395.yml new file mode 100644 index 0000000000000..d1af110344af3 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14395.yml @@ -0,0 +1,4 @@ +author: "Lumipharon" +delete-after: True +changes: + - bugfix: "fixed flares not hitting weed nodes" \ No newline at end of file From 5176fc18e32963ec53b7fc9ebe6d519252adfe4e Mon Sep 17 00:00:00 2001 From: Changelogs Date: Thu, 9 Nov 2023 00:50:35 +0000 Subject: [PATCH 16/44] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-14155.yml | 4 ---- html/changelogs/AutoChangeLog-pr-14308.yml | 4 ---- html/changelogs/AutoChangeLog-pr-14395.yml | 4 ---- html/changelogs/AutoChangeLog-pr-14397.yml | 4 ---- html/changelogs/AutoChangeLog-pr-14401.yml | 5 ----- html/changelogs/AutoChangeLog-pr-14402.yml | 4 ---- html/changelogs/AutoChangeLog-pr-14404.yml | 5 ----- html/changelogs/AutoChangeLog-pr-14405.yml | 4 ---- html/changelogs/archive/2023-11.yml | 18 ++++++++++++++++++ 9 files changed, 18 insertions(+), 34 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-14155.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-14308.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-14395.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-14397.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-14401.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-14402.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-14404.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-14405.yml diff --git a/html/changelogs/AutoChangeLog-pr-14155.yml b/html/changelogs/AutoChangeLog-pr-14155.yml deleted file mode 100644 index 2a0b4361f654a..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-14155.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "coldironwarrior" -delete-after: True -changes: - - balance: "made resin walls have 70 bullet armor (up from 60)" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-14308.yml b/html/changelogs/AutoChangeLog-pr-14308.yml deleted file mode 100644 index e0d7793942b2a..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-14308.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Xander3359" -delete-after: True -changes: - - rscadd: "Port the CM Reagent Canister Pouch" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-14395.yml b/html/changelogs/AutoChangeLog-pr-14395.yml deleted file mode 100644 index d1af110344af3..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-14395.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Lumipharon" -delete-after: True -changes: - - bugfix: "fixed flares not hitting weed nodes" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-14397.yml b/html/changelogs/AutoChangeLog-pr-14397.yml deleted file mode 100644 index 86220a87f8cf6..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-14397.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Helg2" -delete-after: True -changes: - - bugfix: "Full pouches now don't look empty on spawn." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-14401.yml b/html/changelogs/AutoChangeLog-pr-14401.yml deleted file mode 100644 index a2bc08c3bbc33..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-14401.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "ZeWaka" -delete-after: True -changes: - - rscadd: "If you have a stronger acid, you can now click on weaker acid directly to upgrade it." - - bugfix: "Fixed acid upgrading not inheriting the existing melt progress" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-14402.yml b/html/changelogs/AutoChangeLog-pr-14402.yml deleted file mode 100644 index 8ff2731a9783a..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-14402.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Barnet2" -delete-after: True -changes: - - bugfix: "LV is no longer voteable on Crash." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-14404.yml b/html/changelogs/AutoChangeLog-pr-14404.yml deleted file mode 100644 index fe1d7a7c8fe18..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-14404.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Lumipharon" -delete-after: True -changes: - - bugfix: "Certain cryo tubes will no longer eject their occupant into a wall" - - imageadd: "Slight updates to cryo and cloner tube sprites" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-14405.yml b/html/changelogs/AutoChangeLog-pr-14405.yml deleted file mode 100644 index e7d6dedd5c767..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-14405.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "ZeWaka" -delete-after: True -changes: - - bugfix: "Banelings will no longer bring sticky nades back to their pod upon dying." \ No newline at end of file diff --git a/html/changelogs/archive/2023-11.yml b/html/changelogs/archive/2023-11.yml index 946be6cd1cd5a..8eaf568458bd4 100644 --- a/html/changelogs/archive/2023-11.yml +++ b/html/changelogs/archive/2023-11.yml @@ -169,3 +169,21 @@ 2023-11-08: ZeWaka: - qol: Banelings can no longer explode before shutters unless they have a pod placed. +2023-11-09: + Barnet2: + - bugfix: LV is no longer voteable on Crash. + Helg2: + - bugfix: Full pouches now don't look empty on spawn. + Lumipharon: + - bugfix: Certain cryo tubes will no longer eject their occupant into a wall + - imageadd: Slight updates to cryo and cloner tube sprites + - bugfix: fixed flares not hitting weed nodes + Xander3359: + - rscadd: Port the CM Reagent Canister Pouch + ZeWaka: + - rscadd: If you have a stronger acid, you can now click on weaker acid directly + to upgrade it. + - bugfix: Fixed acid upgrading not inheriting the existing melt progress + - bugfix: Banelings will no longer bring sticky nades back to their pod upon dying. + coldironwarrior: + - balance: made resin walls have 70 bullet armor (up from 60) From 15c77cf531a6d423d1eecced051cec8ee33f9eb6 Mon Sep 17 00:00:00 2001 From: ClosetedSkeletonGH <120620754+ClosetedSkeletonGH@users.noreply.github.com> Date: Thu, 9 Nov 2023 17:09:45 -0500 Subject: [PATCH 17/44] Makes hiveminds sprite dependent on the type of weed theyre on + new hivemind sprites (#14370) * changes weeds defile (someone can fix this later) * updates handle_weeds_on_moement + hivemind variant * new hivemind sprites * makes hivemind color weed dependent + bug fixes * adds in fire sprite * doesnt fix it but makes code less bad * fixes sliding bug * fixes nitpick * fixes else * adds extra / * okay * uglifies code for clarity ig :/ * updates descrip of handle_weeds_on_movemnet * double updates autodoc * returns movement check to pretty version :3 --------- Co-authored-by: Yellow-Mushroom --- code/game/objects/effects/weeds.dm | 4 +-- .../xenomorph/castes/hivemind/hivemind.dm | 27 +++++++++++------- .../mob/living/carbon/xenomorph/xenomorph.dm | 18 +++++++++++- icons/Xeno/castes/hivemind.dmi | Bin 31253 -> 65080 bytes 4 files changed, 35 insertions(+), 14 deletions(-) diff --git a/code/game/objects/effects/weeds.dm b/code/game/objects/effects/weeds.dm index accaa8be11cc5..eeccab6e0b675 100644 --- a/code/game/objects/effects/weeds.dm +++ b/code/game/objects/effects/weeds.dm @@ -1,5 +1,5 @@ //Color variant defines -#define SPEED_COLOR "" +#define NORMAL_COLOR "" #define RESTING_COLOR "white" #define STICKY_COLOR "green" @@ -22,7 +22,7 @@ var/obj/alien/weeds/node/parent_node ///The color variant of the sprite - var/color_variant = SPEED_COLOR + var/color_variant = NORMAL_COLOR ///The healing buff when resting on this weed var/resting_buff = 1 ///If these weeds are not destroyed but just swapped diff --git a/code/modules/mob/living/carbon/xenomorph/castes/hivemind/hivemind.dm b/code/modules/mob/living/carbon/xenomorph/castes/hivemind/hivemind.dm index 042737deff2c4..63992f3c2f1ae 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/hivemind/hivemind.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/hivemind/hivemind.dm @@ -1,4 +1,4 @@ -#define TIME_TO_TRANSFORM 1.6 SECONDS +#define TIME_TO_TRANSFORM 1 SECONDS /mob/living/carbon/xenomorph/hivemind caste_base_type = /mob/living/carbon/xenomorph/hivemind @@ -115,7 +115,8 @@ wound_overlay.icon_state = "none" TIMER_COOLDOWN_START(src, COOLDOWN_HIVEMIND_MANIFESTATION, TIME_TO_TRANSFORM) invisibility = 0 - flick(status_flags & INCORPOREAL ? "Hivemind_materialisation" : "Hivemind_materialisation_reverse", src) + flick(status_flags & INCORPOREAL ? "Hivemind_[initial(loc_weeds_type.color_variant)]_materialisation" : "Hivemind_[initial(loc_weeds_type.color_variant)]_materialisation_reverse", src) + setDir(SOUTH) addtimer(CALLBACK(src, PROC_REF(do_change_form)), TIME_TO_TRANSFORM) /mob/living/carbon/xenomorph/hivemind/set_jump_component(duration = 0.5 SECONDS, cooldown = 2 SECONDS, cost = 0, height = 16, sound = null, flags = JUMP_SHADOW, flags_pass = PASS_LOW_STRUCTURE|PASS_FIRE) @@ -146,6 +147,7 @@ upgrade = XENO_UPGRADE_BASETYPE set_datum(FALSE) hive.xenos_by_upgrade[upgrade] += src + setDir(SOUTH) update_wounds() update_icon() update_action_buttons() @@ -188,17 +190,19 @@ if(!isopenturf(T)) balloon_alert(src, "Can't teleport into a wall") return - TIMER_COOLDOWN_START(src, COOLDOWN_HIVEMIND_MANIFESTATION, TIME_TO_TRANSFORM) - flick("Hivemind_materialisation_fast_reverse", src) - addtimer(CALLBACK(src, PROC_REF(end_teleport), T), TIME_TO_TRANSFORM / 2) + TIMER_COOLDOWN_START(src, COOLDOWN_HIVEMIND_MANIFESTATION, TIME_TO_TRANSFORM * 2) + flick("Hivemind_[initial(loc_weeds_type.color_variant)]_materialisation_reverse", src) + setDir(SOUTH) + addtimer(CALLBACK(src, PROC_REF(end_teleport), T), TIME_TO_TRANSFORM) ///Finish the teleportation process to send the hivemind manifestation to the selected turf /mob/living/carbon/xenomorph/hivemind/proc/end_teleport(turf/T) - flick("Hivemind_materialisation_fast", src) if(!check_weeds(T, TRUE)) balloon_alert(src, "No weeds in destination") - else - forceMove(T) + return + forceMove(T) + flick("Hivemind_[initial(loc_weeds_type.color_variant)]_materialisation", src) + setDir(SOUTH) /mob/living/carbon/xenomorph/hivemind/Move(NewLoc, Dir = 0) if(TIMER_COOLDOWN_CHECK(src, COOLDOWN_HIVEMIND_MANIFESTATION)) @@ -242,12 +246,12 @@ return abstract_move(get_turf(xeno)) -/// Hivemind just doesn't have any icons to update, disabled for now -/mob/living/carbon/xenomorph/hivemind/update_icon() +/// handles hivemind updating with their respective weedtype +/mob/living/carbon/xenomorph/hivemind/update_icon_state() if(status_flags & INCORPOREAL) icon_state = "hivemind_marker" return - icon_state = "Hivemind" + icon_state = "Hivemind_[initial(loc_weeds_type.color_variant)]" /mob/living/carbon/xenomorph/hivemind/update_icons() return @@ -277,6 +281,7 @@ if(!(status_flags & INCORPOREAL)) start_teleport(target_turf) return + setDir(SOUTH) abstract_move(target_turf) /mob/living/carbon/xenomorph/hivemind/CtrlClick(mob/user) diff --git a/code/modules/mob/living/carbon/xenomorph/xenomorph.dm b/code/modules/mob/living/carbon/xenomorph/xenomorph.dm index bb65415903e75..b07e0dd5ccb56 100644 --- a/code/modules/mob/living/carbon/xenomorph/xenomorph.dm +++ b/code/modules/mob/living/carbon/xenomorph/xenomorph.dm @@ -445,11 +445,27 @@ return loc_weeds_type = null -/// Handles logic for the xeno moving to a new weeds tile +/** Handles logic for the xeno moving to a new weeds tile. +Returns TRUE when loc_weeds_type changes. Returns FALSE when it doesn’t change */ /mob/living/carbon/xenomorph/proc/handle_weeds_on_movement(datum/source) SIGNAL_HANDLER var/obj/alien/weeds/found_weed = locate(/obj/alien/weeds) in loc + if(loc_weeds_type == found_weed?.type) + return FALSE loc_weeds_type = found_weed?.type + return TRUE + +/mob/living/carbon/xenomorph/hivemind/handle_weeds_on_movement(datum/source) + . = ..() + if(!.) + return + update_icon() + +/mob/living/carbon/xenomorph/hivemind/handle_weeds_on_movement(datum/source) + . = ..() + if(!.) + return + update_icon() /mob/living/carbon/xenomorph/lay_down() var/datum/action/xeno_action/xeno_resting/resting_action = actions_by_path[/datum/action/xeno_action/xeno_resting] diff --git a/icons/Xeno/castes/hivemind.dmi b/icons/Xeno/castes/hivemind.dmi index 05782aca5dda91c7cdfa0f46d8159f46e9e8393f..aefb0516a0e0c334f003b9cd1d9dfcf8c8226cbd 100644 GIT binary patch literal 65080 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

t9#61o11d+b3n_*-t}xp{;%MKycsyuf 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 Date: Thu, 9 Nov 2023 22:10:03 +0000 Subject: [PATCH 18/44] Automatic changelog for PR #14370 [ci skip] --- html/changelogs/AutoChangeLog-pr-14370.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14370.yml diff --git a/html/changelogs/AutoChangeLog-pr-14370.yml b/html/changelogs/AutoChangeLog-pr-14370.yml new file mode 100644 index 0000000000000..773e57cabd412 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14370.yml @@ -0,0 +1,7 @@ +author: "ClosetedSkeletonGH" +delete-after: True +changes: + - rscadd: "Hivemind sprite changes depending on the type of weed it is on" + - balance: "Hivemind demanifestation and remanifestation" + - bugfix: "Hivemind no longer flickers on tele" + - bugfix: "Hivemind direction of manifestation is normalized" \ No newline at end of file From a7e28778938a7c4729aecd927a70b5d3495646d8 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Fri, 10 Nov 2023 00:51:22 +0000 Subject: [PATCH 19/44] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-14370.yml | 7 ------- html/changelogs/archive/2023-11.yml | 6 ++++++ 2 files changed, 6 insertions(+), 7 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-14370.yml diff --git a/html/changelogs/AutoChangeLog-pr-14370.yml b/html/changelogs/AutoChangeLog-pr-14370.yml deleted file mode 100644 index 773e57cabd412..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-14370.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: "ClosetedSkeletonGH" -delete-after: True -changes: - - rscadd: "Hivemind sprite changes depending on the type of weed it is on" - - balance: "Hivemind demanifestation and remanifestation" - - bugfix: "Hivemind no longer flickers on tele" - - bugfix: "Hivemind direction of manifestation is normalized" \ No newline at end of file diff --git a/html/changelogs/archive/2023-11.yml b/html/changelogs/archive/2023-11.yml index 8eaf568458bd4..4d86030d6bcb3 100644 --- a/html/changelogs/archive/2023-11.yml +++ b/html/changelogs/archive/2023-11.yml @@ -187,3 +187,9 @@ - bugfix: Banelings will no longer bring sticky nades back to their pod upon dying. coldironwarrior: - balance: made resin walls have 70 bullet armor (up from 60) +2023-11-10: + ClosetedSkeletonGH: + - rscadd: Hivemind sprite changes depending on the type of weed it is on + - balance: Hivemind demanifestation and remanifestation + - bugfix: Hivemind no longer flickers on tele + - bugfix: Hivemind direction of manifestation is normalized From 3eee6169859098dbdf086f890add4055096616d0 Mon Sep 17 00:00:00 2001 From: Xander3359 <66163761+Xander3359@users.noreply.github.com> Date: Fri, 10 Nov 2023 09:21:29 -0500 Subject: [PATCH 20/44] Makes eating pills more fluid (#14418) * attack_speed 1 + interact() proc * attack_self * remove interact --- code/_onclick/click.dm | 11 ++++++----- code/game/objects/items/reagent_containers/pill.dm | 7 ++++--- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index 7fd0e380abcaf..a448d43b76cd3 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -1,8 +1,9 @@ -//Delays the mob's next click/action by num deciseconds -// eg: 10 - 3 = 7 deciseconds of delay -// eg: 10 * 0.5 = 5 deciseconds of delay -// DOES NOT EFFECT THE BASE 1 DECISECOND DELAY OF NEXT_CLICK - +/** + * Delays the mob's next click/action by num deciseconds + * eg: 10 - 3 = 7 deciseconds of delay + * eg: 10 * 0.5 = 5 deciseconds of delay + * DOES NOT EFFECT THE BASE 1 DECISECOND DELAY OF NEXT_CLICK + */ /mob/proc/changeNext_move(num) next_move = world.time + ((num + next_move_adjust) * next_move_modifier) diff --git a/code/game/objects/items/reagent_containers/pill.dm b/code/game/objects/items/reagent_containers/pill.dm index ba16b8ab7af2a..2e944b2aee2c5 100644 --- a/code/game/objects/items/reagent_containers/pill.dm +++ b/code/game/objects/items/reagent_containers/pill.dm @@ -12,6 +12,7 @@ init_reagent_flags = AMOUNT_SKILLCHECK w_class = WEIGHT_CLASS_TINY volume = 60 + attack_speed = 1 //War against input locking while pill munching var/pill_desc = "An unknown pill." //the real description of the pill, shown when examined by a medically trained person var/pill_id @@ -20,11 +21,11 @@ if(icon_state == "pill1") icon_state = pill_id ? GLOB.randomized_pill_icons[pill_id] : pick(GLOB.randomized_pill_icons) -/obj/item/reagent_containers/pill/attack_self(mob/user as mob) - return +/obj/item/reagent_containers/pill/attack_self(mob/user) + . = ..() + attack(user, user) /obj/item/reagent_containers/pill/attack(mob/M, mob/user, def_zone) - if(M == user) if(ishuman(M)) From 92c47508033cf7042e05b7c930a5021326a7f92c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 10 Nov 2023 14:51:01 +0000 Subject: [PATCH 21/44] Automatic changelog for PR #14418 [ci skip] --- html/changelogs/AutoChangeLog-pr-14418.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14418.yml diff --git a/html/changelogs/AutoChangeLog-pr-14418.yml b/html/changelogs/AutoChangeLog-pr-14418.yml new file mode 100644 index 0000000000000..210002d319b86 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14418.yml @@ -0,0 +1,5 @@ +author: "Xander3359" +delete-after: True +changes: + - balance: "pills no longer input-lock you" + - qol: "You can use a pill in-hand to eat it." \ No newline at end of file From 1321399400d4efc1767741f50eed194263abdc27 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sat, 11 Nov 2023 00:49:37 +0000 Subject: [PATCH 22/44] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-14418.yml | 5 ----- html/changelogs/archive/2023-11.yml | 4 ++++ 2 files changed, 4 insertions(+), 5 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-14418.yml diff --git a/html/changelogs/AutoChangeLog-pr-14418.yml b/html/changelogs/AutoChangeLog-pr-14418.yml deleted file mode 100644 index 210002d319b86..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-14418.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Xander3359" -delete-after: True -changes: - - balance: "pills no longer input-lock you" - - qol: "You can use a pill in-hand to eat it." \ No newline at end of file diff --git a/html/changelogs/archive/2023-11.yml b/html/changelogs/archive/2023-11.yml index 4d86030d6bcb3..b1140304e1061 100644 --- a/html/changelogs/archive/2023-11.yml +++ b/html/changelogs/archive/2023-11.yml @@ -193,3 +193,7 @@ - balance: Hivemind demanifestation and remanifestation - bugfix: Hivemind no longer flickers on tele - bugfix: Hivemind direction of manifestation is normalized +2023-11-11: + Xander3359: + - balance: pills no longer input-lock you + - qol: You can use a pill in-hand to eat it. From 651eb7b3066bd3ec3a2284aba78b98e24399aadd Mon Sep 17 00:00:00 2001 From: Bobthe28th <55060961+Bobthe28th@users.noreply.github.com> Date: Sat, 11 Nov 2023 04:38:52 -0800 Subject: [PATCH 23/44] Fix Defiler inject egg range (#14411) * add adjacent check to inject egg * change alert text Co-authored-by: Matt --------- Co-authored-by: Matt --- .../carbon/xenomorph/castes/defiler/abilities_defiler.dm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/modules/mob/living/carbon/xenomorph/castes/defiler/abilities_defiler.dm b/code/modules/mob/living/carbon/xenomorph/castes/defiler/abilities_defiler.dm index 9966830037b3e..9a7fa9b2ab8a9 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/defiler/abilities_defiler.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/defiler/abilities_defiler.dm @@ -302,6 +302,10 @@ /datum/action/xeno_action/activable/inject_egg_neurogas/use_ability(atom/A) var/mob/living/carbon/xenomorph/defiler/X = owner + if(!owner.Adjacent(A)) + A.balloon_alert(X, "Out of reach") + return fail_activate() + if(istype(A, /obj/alien/egg/gas)) A.balloon_alert(X, "Egg already injected") return fail_activate() From ca999f253a37029148d01e3498dc6bc8dbda67d0 Mon Sep 17 00:00:00 2001 From: Barnet Date: Sat, 11 Nov 2023 04:39:11 -0800 Subject: [PATCH 24/44] initial_commit (#14426) --- _maps/shuttles/tgs_canterbury.dmm | 5 ----- 1 file changed, 5 deletions(-) diff --git a/_maps/shuttles/tgs_canterbury.dmm b/_maps/shuttles/tgs_canterbury.dmm index 718f16c8a5f3d..4f139d2ada904 100644 --- a/_maps/shuttles/tgs_canterbury.dmm +++ b/_maps/shuttles/tgs_canterbury.dmm @@ -157,11 +157,6 @@ name = "\improper Command Cockpit" }, /obj/structure/cable, -/obj/machinery/door/poddoor/mainship{ - dir = 2; - id = "Interior_Emergency_umbilical"; - name = "\improper Umbillical Airlock" - }, /turf/open/floor/mainship/mono, /area/shuttle/canterbury/cic) "ax" = ( From b22f57edf66888332e67697d43ac3b7da7356864 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 11 Nov 2023 12:39:12 +0000 Subject: [PATCH 25/44] Automatic changelog for PR #14411 [ci skip] --- html/changelogs/AutoChangeLog-pr-14411.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14411.yml diff --git a/html/changelogs/AutoChangeLog-pr-14411.yml b/html/changelogs/AutoChangeLog-pr-14411.yml new file mode 100644 index 0000000000000..4bda1577a865d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14411.yml @@ -0,0 +1,4 @@ +author: "Bobthe28th" +delete-after: True +changes: + - bugfix: "Defiler can only inject eggs adjacent to them." \ No newline at end of file From 8d360318eb6421573ead898426826879f2522760 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 11 Nov 2023 12:39:31 +0000 Subject: [PATCH 26/44] Automatic changelog for PR #14426 [ci skip] --- html/changelogs/AutoChangeLog-pr-14426.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14426.yml diff --git a/html/changelogs/AutoChangeLog-pr-14426.yml b/html/changelogs/AutoChangeLog-pr-14426.yml new file mode 100644 index 0000000000000..6ca0ca8d0d155 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14426.yml @@ -0,0 +1,4 @@ +author: "Barnet2" +delete-after: True +changes: + - bugfix: "Removes unopenable blast door on smallbury CIC" \ No newline at end of file From ee72185877264bfba0928dd540e6e8d906015581 Mon Sep 17 00:00:00 2001 From: SiegeB0t <108781465+SiegeB0t@users.noreply.github.com> Date: Sat, 11 Nov 2023 06:39:39 -0600 Subject: [PATCH 27/44] Filter Supply Beacon Drop Locations if its in the Air (#14421) * filter beacon drop locations * qol for preventing drops after tad launch --- code/game/objects/machinery/squad_supply/supply_beacon.dm | 5 +++++ code/game/objects/machinery/squad_supply/supply_console.dm | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/code/game/objects/machinery/squad_supply/supply_beacon.dm b/code/game/objects/machinery/squad_supply/supply_beacon.dm index a26d701e7a54c..9db47ad17d27a 100644 --- a/code/game/objects/machinery/squad_supply/supply_beacon.dm +++ b/code/game/objects/machinery/squad_supply/supply_beacon.dm @@ -114,6 +114,11 @@ SIGNAL_HANDLER beacon_datum = null +/obj/item/beacon/supply_beacon/onTransitZ(old_z,new_z) + . = ..() + //Assumes doMove sets loc before onTransitZ + beacon_datum.drop_location = loc + /obj/item/beacon/supply_beacon/activate(mob/living/carbon/human/H) var/area/A = get_area(H) . = ..() diff --git a/code/game/objects/machinery/squad_supply/supply_console.dm b/code/game/objects/machinery/squad_supply/supply_console.dm index db18a56591d64..18c246a5ea5fd 100644 --- a/code/game/objects/machinery/squad_supply/supply_console.dm +++ b/code/game/objects/machinery/squad_supply/supply_console.dm @@ -101,7 +101,7 @@ to_chat(usr, "[icon2html(src, usr)] [span_warning("There wasn't any supplies found on the squads supply pad. Double check the pad.")]") return - if(!istype(supply_beacon.drop_location)) + if(!istype(supply_beacon.drop_location) || !is_ground_level(supply_beacon.drop_location.z)) to_chat(usr, "[icon2html(src, usr)] [span_warning("The [supply_beacon.name] was not detected on the ground.")]") return if(isspaceturf(supply_beacon.drop_location) || supply_beacon.drop_location.density) @@ -167,6 +167,10 @@ visible_message("[icon2html(supply_pad, usr)] [span_warning("Launch aborted! Supply beacon signal lost.")]") return + if(!is_ground_level(supply_beacon.drop_location.z)) + visible_message("[icon2html(supply_pad, usr)] [span_warning("Launch aborted! Supply beacon is not groundside.")]") + return + if(!length(supplies)) visible_message("[icon2html(supply_pad, usr)] [span_warning("Launch aborted! No deployable object detected on the drop pad.")]") return From 7423b275473e21a9bc285bfdc3b280875519dad7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 11 Nov 2023 12:39:55 +0000 Subject: [PATCH 28/44] Automatic changelog for PR #14421 [ci skip] --- html/changelogs/AutoChangeLog-pr-14421.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14421.yml diff --git a/html/changelogs/AutoChangeLog-pr-14421.yml b/html/changelogs/AutoChangeLog-pr-14421.yml new file mode 100644 index 0000000000000..bf0740c5b987d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14421.yml @@ -0,0 +1,5 @@ +author: "SiegeB0t" +delete-after: True +changes: + - qol: "req can be confident that crates to a supply beacon on tad will arrive on tad." + - bugfix: "A supply beacon on tad will work after tad moves." \ No newline at end of file From 4e9cb8221808756ba1fb140d15be0472cbb9ccb6 Mon Sep 17 00:00:00 2001 From: Lumipharon Date: Sun, 12 Nov 2023 02:27:41 +1300 Subject: [PATCH 29/44] mission_parameters (#14406) --- .../gamemodes/campaign/campaign_mission.dm | 4 ++++ code/datums/gamemodes/campaign/faction_stats.dm | 2 ++ .../campaign_structures/deploy_blockers.dm | 16 ++++++++++++++-- .../interfaces/CampaignMenu/CampaignOverview.tsx | 4 ++++ .../tgui/interfaces/CampaignMenu/index.tsx | 1 + 5 files changed, 25 insertions(+), 2 deletions(-) diff --git a/code/datums/gamemodes/campaign/campaign_mission.dm b/code/datums/gamemodes/campaign/campaign_mission.dm index 9b495b752f1ed..02bff792ceafa 100644 --- a/code/datums/gamemodes/campaign/campaign_mission.dm +++ b/code/datums/gamemodes/campaign/campaign_mission.dm @@ -42,6 +42,10 @@ var/starting_faction_mission_brief = "starting faction mission brief here" ///Detailed mission description for the hostile faction var/hostile_faction_mission_brief = "hostile faction mission brief here" + ///Optional mission parameters for the starting faction. Some are autopopulated + var/starting_faction_mission_parameters + ///Optional mission parameters for the hostile faction. Some are autopopulated + var/hostile_faction_mission_parameters ///Any additional rewards for the starting faction, for display purposes var/starting_faction_additional_rewards = "starting faction mission rewards here" ///Any additional rewards for the hostile faction, for display purposes diff --git a/code/datums/gamemodes/campaign/faction_stats.dm b/code/datums/gamemodes/campaign/faction_stats.dm index 424a232c2ad12..46544ec6094f2 100644 --- a/code/datums/gamemodes/campaign/faction_stats.dm +++ b/code/datums/gamemodes/campaign/faction_stats.dm @@ -270,6 +270,7 @@ GLOBAL_LIST_INIT(campaign_mission_pool, list( current_mission_data["outcome"] = current_mission.outcome current_mission_data["objective_description"] = (faction == current_mission.starting_faction ? current_mission.starting_faction_objective_description : current_mission.hostile_faction_objective_description) current_mission_data["mission_brief"] = (faction == current_mission.starting_faction ? current_mission.starting_faction_mission_brief : current_mission.hostile_faction_mission_brief) + current_mission_data["mission_parameters"] = (faction == current_mission.starting_faction ? current_mission.starting_faction_mission_parameters : current_mission.hostile_faction_mission_parameters) current_mission_data["mission_rewards"] = (faction == current_mission.starting_faction ? current_mission.starting_faction_additional_rewards : current_mission.hostile_faction_additional_rewards) current_mission_data["vp_major_reward"] = (faction == current_mission.starting_faction ? current_mission.victory_point_rewards[MISSION_OUTCOME_MAJOR_VICTORY][1] : current_mission.victory_point_rewards[MISSION_OUTCOME_MAJOR_LOSS][2]) current_mission_data["vp_minor_reward"] = (faction == current_mission.starting_faction ? current_mission.victory_point_rewards[MISSION_OUTCOME_MINOR_VICTORY][1] : current_mission.victory_point_rewards[MISSION_OUTCOME_MINOR_LOSS][2]) @@ -308,6 +309,7 @@ GLOBAL_LIST_INIT(campaign_mission_pool, list( mission_data["outcome"] = finished_mission.outcome mission_data["objective_description"] = (faction == finished_mission.starting_faction ? finished_mission.starting_faction_objective_description : finished_mission.hostile_faction_objective_description) mission_data["mission_brief"] = (faction == finished_mission.starting_faction ? finished_mission.starting_faction_mission_brief : finished_mission.hostile_faction_mission_brief) + mission_data["mission_parameters"] = (faction == finished_mission.starting_faction ? finished_mission.starting_faction_mission_parameters : finished_mission.hostile_faction_mission_parameters) mission_data["mission_rewards"] = (faction == finished_mission.starting_faction ? finished_mission.starting_faction_additional_rewards : finished_mission.hostile_faction_additional_rewards) finished_missions_data += list(mission_data) data["finished_missions"] = finished_missions_data diff --git a/code/game/objects/structures/campaign_structures/deploy_blockers.dm b/code/game/objects/structures/campaign_structures/deploy_blockers.dm index bc7b02963c543..925268c0cf1de 100644 --- a/code/game/objects/structures/campaign_structures/deploy_blockers.dm +++ b/code/game/objects/structures/campaign_structures/deploy_blockers.dm @@ -20,11 +20,21 @@ var/flags_to_remove = MISSION_DISALLOW_TELEPORT ///The faction this belongs to var/faction = FACTION_TERRAGOV + var/owning_faction_notification = "A teleportation disruptor has been deployed in this area. Protect the disruptor to ensure hostile forces cannot deploy via teleportation. " + var/hostile_faction_notification = "The enemy has a device in this area that will prevent the use of the teleporter array. Destroy this first to allow for teleportation insertion against primary objectives. " /obj/structure/campaign_deployblocker/Initialize(mapload) . = ..() GLOB.campaign_structures += src SSminimaps.add_marker(src, MINIMAP_FLAG_ALL, image('icons/UI_icons/map_blips.dmi', null, "tele_block")) + var/datum/game_mode/hvh/campaign/mode = SSticker.mode + if(!istype(mode)) + return + var/datum/campaign_mission/current_mission = mode.current_mission + if(!current_mission) + return + current_mission.starting_faction_mission_parameters += current_mission.starting_faction == faction ? owning_faction_notification : hostile_faction_notification + current_mission.hostile_faction_mission_parameters += current_mission.starting_faction == faction ? hostile_faction_notification : owning_faction_notification /obj/structure/campaign_deployblocker/Destroy() deactivate() @@ -50,7 +60,9 @@ spawn_object = /obj/structure/campaign_deployblocker/drop_blocker /obj/structure/campaign_deployblocker/drop_blocker - name = "DROPBLOCKER" - desc = "THIS PROBABLY BLOCKS DROPPODS OR SOMETHING, PAY A SPRITER FOR A NONPLACEHOLDER" + name = "drop pod guidance disruptor array" + desc = "A sophisticated device intended to severely disrupt drop pod guidance systems, rendering them unusable while the tower stands." flags_to_remove = MISSION_DISALLOW_DROPPODS faction = FACTION_SOM + owning_faction_notification = "A drop pod disruptor has been deployed in this area. Protect the disruptor to ensure hostile forces cannot deploy via drop pod. " + hostile_faction_notification = "The enemy has a device in this area that will prevent the use of our drop pods. Destroy this first to allow for drop pod assault against primary objectives. " diff --git a/tgui/packages/tgui/interfaces/CampaignMenu/CampaignOverview.tsx b/tgui/packages/tgui/interfaces/CampaignMenu/CampaignOverview.tsx index 1ffac8b6e2d56..048563b3bc4c5 100644 --- a/tgui/packages/tgui/interfaces/CampaignMenu/CampaignOverview.tsx +++ b/tgui/packages/tgui/interfaces/CampaignMenu/CampaignOverview.tsx @@ -18,6 +18,7 @@ export const CampaignOverview = (props, context) => { map_name, objective_description, mission_brief, + mission_parameters, vp_major_reward, ap_major_reward, vp_minor_reward, @@ -51,6 +52,9 @@ export const CampaignOverview = (props, context) => { {mission_brief} + + {mission_parameters} + {active_attrition_points} diff --git a/tgui/packages/tgui/interfaces/CampaignMenu/index.tsx b/tgui/packages/tgui/interfaces/CampaignMenu/index.tsx index 5ef4c56ca62a5..917875f5a5528 100644 --- a/tgui/packages/tgui/interfaces/CampaignMenu/index.tsx +++ b/tgui/packages/tgui/interfaces/CampaignMenu/index.tsx @@ -31,6 +31,7 @@ export type MissionData = { objective_description: string; mission_brief: string; + mission_parameters: string; mission_rewards: string; vp_major_reward: number; vp_minor_reward: number; From a721fbcd6b9dacec6c9631776ecc2ddb182d40aa Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 11 Nov 2023 13:28:00 +0000 Subject: [PATCH 30/44] Automatic changelog for PR #14406 [ci skip] --- html/changelogs/AutoChangeLog-pr-14406.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14406.yml diff --git a/html/changelogs/AutoChangeLog-pr-14406.yml b/html/changelogs/AutoChangeLog-pr-14406.yml new file mode 100644 index 0000000000000..a8e2676715562 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14406.yml @@ -0,0 +1,4 @@ +author: "Lumipharon" +delete-after: True +changes: + - qol: "Campaign missions will specify if a teleport or drop pod blocker is active in the current mission" \ No newline at end of file From 22f91045c10e76a8745c3a841361795814d4aef7 Mon Sep 17 00:00:00 2001 From: Lumipharon Date: Sun, 12 Nov 2023 02:30:14 +1300 Subject: [PATCH 31/44] Knockback replacements (#14394) * ammo * fix rav throw * ravage throw * defender and some define stuff * knockback proc --- code/__DEFINES/mobs.dm | 5 +++++ code/game/atoms_movable.dm | 8 ++++++-- .../castes/defender/abilities_defender.dm | 10 ++++------ .../carbon/xenomorph/castes/defender/defender.dm | 10 +++++----- .../xenomorph/castes/ravager/abilities_ravager.dm | 14 +++++++------- .../carbon/xenomorph/castes/ravager/ravager.dm | 10 +++++----- code/modules/projectiles/ammo_datums.dm | 3 +-- 7 files changed, 33 insertions(+), 27 deletions(-) diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 9bd6c66993360..d534c861b190b 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -572,6 +572,8 @@ GLOBAL_LIST_INIT(xenoupgradetiers, list(XENO_UPGRADE_BASETYPE, XENO_UPGRADE_INVA #define RAV_CHARGESPEED 2 #define RAV_CHARGEDISTANCE 4 +#define RAV_RAVAGE_THROW_RANGE 1 + #define RAVAGER_ENDURE_DURATION 10 SECONDS #define RAVAGER_ENDURE_DURATION_WARNING 0.7 #define RAVAGER_ENDURE_HP_LIMIT -100 @@ -668,6 +670,9 @@ GLOBAL_LIST_INIT(xenoupgradetiers, list(XENO_UPGRADE_BASETYPE, XENO_UPGRADE_INVA #define DRONE_ESSENCE_LINK_REGEN 0.012 // Amount of health regen given as a percentage. #define DRONE_ESSENCE_LINK_SHARED_HEAL 0.1 // The effectiveness of heals when applied to the other linked xeno, as a percentage +//Defender defines +#define DEFENDER_CHARGE_RANGE 4 + //Baneling defines #define BANELING_CHARGE_MAX 2 #define BANELING_CHARGE_GAIN_TIME 240 SECONDS diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 1d37e44d6b0e7..501c4df4bc241 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -509,7 +509,7 @@ step(src, angle_to_dir(new_angle)) -/atom/movable/proc/throw_at(atom/target, range, speed, thrower, spin, flying = FALSE, targetted_throw = TRUE) +/atom/movable/proc/throw_at(atom/target, range, speed = 5, thrower, spin, flying = FALSE, targetted_throw = TRUE) set waitfor = FALSE if(!target || !src) return FALSE @@ -1207,6 +1207,10 @@ return SSmapping.gravity_by_z_level["[src_turf.z]"] return 1 //if both fail we're in nullspace, just return a 1 as a fallback -//This is called when the AM is thrown into a dense turf +///This is called when the AM is thrown into a dense turf /atom/movable/proc/turf_collision(turf/T, speed) return + +//Throws AM away from something +/atom/movable/proc/knockback(source, distance, speed, dir) + throw_at(get_ranged_target_turf(src, dir ? dir : get_dir(source, src), distance), distance, speed, source) diff --git a/code/modules/mob/living/carbon/xenomorph/castes/defender/abilities_defender.dm b/code/modules/mob/living/carbon/xenomorph/castes/defender/abilities_defender.dm index 5189f4baec151..535167a8f879c 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/defender/abilities_defender.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/defender/abilities_defender.dm @@ -38,7 +38,7 @@ var/list/L = orange(sweep_range, X) // Not actually the fruit for (var/mob/living/carbon/human/H in L) - step_away(H, src, sweep_range, 2) + H.knockback(X, sweep_range, 4) H.add_filter("defender_tail_sweep", 2, gauss_blur_filter(1)) //Add cool SFX; motion blur addtimer(CALLBACK(H, TYPE_PROC_REF(/atom, remove_filter), "defender_tail_sweep"), 0.5 SECONDS) //Remove cool SFX if(H.stat != DEAD && !isnestedhost(H) ) //No bully @@ -96,8 +96,6 @@ keybinding_signals = list( KEYBINDING_NORMAL = COMSIG_XENOABILITY_FORWARD_CHARGE, ) - ///How far can we charge - var/range = 4 ///How long is the windup before charging var/windup_time = 0.5 SECONDS @@ -156,7 +154,7 @@ RegisterSignal(X, COMSIG_XENO_LIVING_THROW_HIT, PROC_REF(mob_hit)) RegisterSignal(X, COMSIG_MOVABLE_POST_THROW, PROC_REF(charge_complete)) - X.throw_at(A, range, 5, X) + X.throw_at(A, DEFENDER_CHARGE_RANGE, 5, X) add_cooldown() @@ -166,7 +164,7 @@ /datum/action/xeno_action/activable/forward_charge/ai_should_use(atom/target) if(!iscarbon(target)) return FALSE - if(!line_of_sight(owner, target, range)) + if(!line_of_sight(owner, target, DEFENDER_CHARGE_RANGE)) return FALSE if(!can_use_action(override_flags = XACT_IGNORE_SELECTED_ABILITY)) return FALSE @@ -441,7 +439,7 @@ playsound(X, pick('sound/effects/alien_tail_swipe1.ogg','sound/effects/alien_tail_swipe2.ogg','sound/effects/alien_tail_swipe3.ogg'), 25, 1) //Sound effects for(var/mob/living/carbon/human/slapped in orange(1, X)) - step_away(slapped, src, 1, 2) + slapped.knockback(X, 1, 4) if(slapped.stat == DEAD) continue var/damage = X.xeno_caste.melee_damage/2 diff --git a/code/modules/mob/living/carbon/xenomorph/castes/defender/defender.dm b/code/modules/mob/living/carbon/xenomorph/castes/defender/defender.dm index 42eb9ce729990..44a96116c6044 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/defender/defender.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/defender/defender.dm @@ -53,13 +53,13 @@ return ..() if(!ishuman(A)) return ..() - var/mob/living/carbon/human/H = A + var/mob/living/carbon/human/human_victim = A var/extra_dmg = xeno_caste.melee_damage * xeno_melee_damage_modifier * 0.5 // 50% dmg reduction - H.attack_alien_harm(src, extra_dmg, FALSE, TRUE, FALSE, TRUE) //Location is always random, cannot crit, harm only - var/target_turf = get_step_away(src, H, rand(1, 2)) //This is where we blast our target + human_victim.attack_alien_harm(src, extra_dmg, FALSE, TRUE, FALSE, TRUE) //Location is always random, cannot crit, harm only + var/target_turf = get_ranged_target_turf(human_victim, get_dir(src, human_victim), rand(1, 2)) //we blast our victim behind us target_turf = get_step_rand(target_turf) //Scatter - H.throw_at(get_turf(target_turf), 4, 5, src) - H.Paralyze(4 SECONDS) + human_victim.throw_at(get_turf(target_turf), DEFENDER_CHARGE_RANGE, 5, src) + human_victim.Paralyze(4 SECONDS) /mob/living/carbon/xenomorph/defender/Initialize(mapload) . = ..() diff --git a/code/modules/mob/living/carbon/xenomorph/castes/ravager/abilities_ravager.dm b/code/modules/mob/living/carbon/xenomorph/castes/ravager/abilities_ravager.dm index b38104305d1a2..d55a2bc38f479 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/ravager/abilities_ravager.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/ravager/abilities_ravager.dm @@ -121,15 +121,15 @@ if(!ishuman(ravaged)) ravaged.attack_alien(X, X.xeno_caste.melee_damage) if(!ravaged.anchored) - step_away(ravaged, X, 1, 2) + ravaged.knockback(X, RAV_RAVAGE_THROW_RANGE, RAV_CHARGESPEED) continue - var/mob/living/carbon/human/attacking = ravaged - if(attacking.stat == DEAD) + var/mob/living/carbon/human/human_victim = ravaged + if(human_victim.stat == DEAD) continue - step_away(attacking, X, 1, 2) - attacking.attack_alien_harm(X, X.xeno_caste.melee_damage * X.xeno_melee_damage_modifier * 0.25, FALSE, TRUE, FALSE, TRUE) - shake_camera(attacking, 2, 1) - attacking.Paralyze(1 SECONDS) + human_victim.attack_alien_harm(X, X.xeno_caste.melee_damage * X.xeno_melee_damage_modifier * 0.25, FALSE, TRUE, FALSE, TRUE) + human_victim.knockback(X, RAV_RAVAGE_THROW_RANGE, RAV_CHARGESPEED) + shake_camera(human_victim, 2, 1) + human_victim.Paralyze(1 SECONDS) succeed_activate() add_cooldown() diff --git a/code/modules/mob/living/carbon/xenomorph/castes/ravager/ravager.dm b/code/modules/mob/living/carbon/xenomorph/castes/ravager/ravager.dm index 78df9bbe34de0..e83be56668003 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/ravager/ravager.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/ravager/ravager.dm @@ -27,12 +27,12 @@ return ..() //It's not pouncing; do regular Bump() IE body block but not throw_impact() because ravager isn't being thrown if(!ishuman(A)) //Must also be a human; regular Bump() will default to throw_impact() which means ravager will plow through tables but get stopped by cades and walls return ..() - var/mob/living/carbon/human/H = A - H.attack_alien_harm(src, xeno_caste.melee_damage * xeno_melee_damage_modifier * 0.25, FALSE, TRUE, FALSE, TRUE, INTENT_HARM) //Location is always random, cannot crit, harm only - var/target_turf = get_step_away(src, H, rand(1, 3)) //This is where we blast our target + var/mob/living/carbon/human/human_victim = A + human_victim.attack_alien_harm(src, xeno_caste.melee_damage * xeno_melee_damage_modifier * 0.25, FALSE, TRUE, FALSE, TRUE, INTENT_HARM) //Location is always random, cannot crit, harm only + var/target_turf = get_ranged_target_turf(human_victim, get_dir(src, human_victim), rand(1, 3)) //we blast our victim behind us target_turf = get_step_rand(target_turf) //Scatter - H.throw_at(get_turf(target_turf), RAV_CHARGEDISTANCE, RAV_CHARGESPEED, H) - H.Paralyze(2 SECONDS) + human_victim.throw_at(get_turf(target_turf), RAV_CHARGEDISTANCE, RAV_CHARGESPEED, src) + human_victim.Paralyze(2 SECONDS) /mob/living/carbon/xenomorph/ravager/flamer_fire_act(burnlevel) . = ..() diff --git a/code/modules/projectiles/ammo_datums.dm b/code/modules/projectiles/ammo_datums.dm index d047425e82f4e..a889b527aabdf 100644 --- a/code/modules/projectiles/ammo_datums.dm +++ b/code/modules/projectiles/ammo_datums.dm @@ -157,8 +157,7 @@ GLOBAL_LIST_INIT(no_sticky_resin, typecacheof(list(/obj/item/clothing/mask/faceh impact_message += span_xenodanger("The blast knocks you off your feet!") else impact_message += span_highdanger("The blast knocks you off your feet!") - for(var/i in 1 to knockback) - step_away(victim, proj) + victim.knockback(proj, knockback, 5) //Check for and apply soft CC if(iscarbon(victim)) From b04c9a4b8a9b6e4bacde7a55aff1e4d22123f781 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 11 Nov 2023 13:30:32 +0000 Subject: [PATCH 32/44] Automatic changelog for PR #14394 [ci skip] --- html/changelogs/AutoChangeLog-pr-14394.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14394.yml diff --git a/html/changelogs/AutoChangeLog-pr-14394.yml b/html/changelogs/AutoChangeLog-pr-14394.yml new file mode 100644 index 0000000000000..229927b3556e3 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14394.yml @@ -0,0 +1,4 @@ +author: "Lumipharon" +delete-after: True +changes: + - rscadd: "Ammo knockback, as well as that caused by defender charge and rav abilities now use throw mechanics" \ No newline at end of file From e33008589059b53d1f07ca664bfa5dc871011708 Mon Sep 17 00:00:00 2001 From: Xander3359 <66163761+Xander3359@users.noreply.github.com> Date: Sat, 11 Nov 2023 13:12:52 -0500 Subject: [PATCH 33/44] Adjust BKTT ratio + add in empty pouch (#14423) --- code/game/objects/items/storage/reagent_pouch.dm | 13 +++++++++++-- .../objects/machinery/vending/marine_vending.dm | 1 + 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/storage/reagent_pouch.dm b/code/game/objects/items/storage/reagent_pouch.dm index 6e8054582bae3..499f13e42aeb2 100644 --- a/code/game/objects/items/storage/reagent_pouch.dm +++ b/code/game/objects/items/storage/reagent_pouch.dm @@ -179,11 +179,20 @@ dat += "\n \t Unknown: [R.volume]|[percent]%
" return span_notice("[src]'s reagent display shows the following contents: [dat.Join(" ")]") +/obj/item/storage/pouch/pressurized_reagent_pouch/empty //So you can mix to your hearts content + desc = "A very large reagent pouch. It is used to refill custom injectors, and can also store one. \ + You can Alt-Click to remove the canister in order to refill it. \ + This one is empty, allowing you to freely mix whatever you want." + chemicals_to_fill = null + /obj/item/storage/pouch/pressurized_reagent_pouch/bktt //Pre-filled with equal parts BKTT and a basic auto injector + name = "bktt reagent pouch" + desc = "A very large reagent pouch. It is used to refill custom injectors, and can also store one.\ + You can Alt-Click to remove the canister in order to refill it. \ + This one comes preloaded with BKTT." chemicals_to_fill = list( /datum/reagent/medicine/bicaridine = 300, /datum/reagent/medicine/kelotane = 300, - /datum/reagent/medicine/tramadol = 300, + /datum/reagent/medicine/tramadol = 150, //Half metabolism /datum/reagent/medicine/tricordrazine = 300, ) - diff --git a/code/game/objects/machinery/vending/marine_vending.dm b/code/game/objects/machinery/vending/marine_vending.dm index 3ed008f98d8c5..e3defc226b993 100644 --- a/code/game/objects/machinery/vending/marine_vending.dm +++ b/code/game/objects/machinery/vending/marine_vending.dm @@ -1229,6 +1229,7 @@ /obj/item/storage/pouch/explosive = -1, /obj/item/storage/pouch/medkit = -1, /obj/item/storage/pouch/medical_injectors = -1, + /obj/item/storage/pouch/pressurized_reagent_pouch/empty = -1, /obj/item/storage/pouch/pressurized_reagent_pouch/bktt = -1, /obj/item/storage/pouch/med_lolipops = -1, /obj/item/storage/pouch/berrypouch = -1, From e8ad1f53049e45bd75032083ba815816800defb5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 11 Nov 2023 18:13:17 +0000 Subject: [PATCH 34/44] Automatic changelog for PR #14423 [ci skip] --- html/changelogs/AutoChangeLog-pr-14423.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14423.yml diff --git a/html/changelogs/AutoChangeLog-pr-14423.yml b/html/changelogs/AutoChangeLog-pr-14423.yml new file mode 100644 index 0000000000000..c0fc8946fb771 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14423.yml @@ -0,0 +1,5 @@ +author: "Xander3359" +delete-after: True +changes: + - rscadd: "Added an empty reagent pouch to the clothing vendor." + - balance: "Adjust reagent pouch to 2:2:1:2 BKTT" \ No newline at end of file From ebfb3a8bef98f309735c41d489f82bc4a5491acd Mon Sep 17 00:00:00 2001 From: vvvv-vvvv <136390975+vvvv-vvvv@users.noreply.github.com> Date: Sat, 11 Nov 2023 18:15:46 +0000 Subject: [PATCH 35/44] Fix missing nuke disk candidate icon (#14424) --- code/game/objects/machinery/computer/nuke_disk_generator.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/machinery/computer/nuke_disk_generator.dm b/code/game/objects/machinery/computer/nuke_disk_generator.dm index 13beeae74e6f3..baf9c8ca85c94 100644 --- a/code/game/objects/machinery/computer/nuke_disk_generator.dm +++ b/code/game/objects/machinery/computer/nuke_disk_generator.dm @@ -226,7 +226,7 @@ GLOBAL_LIST_INIT(nuke_disk_generator_types, list(/obj/machinery/computer/nuke_di /obj/structure/nuke_disk_candidate/Initialize(mapload) . = ..() GLOB.nuke_disk_spawn_locs += src - icon_state = "tank0" + icon_state = "computer" /obj/structure/nuke_disk_candidate/Destroy() GLOB.nuke_disk_spawn_locs -= src From 8887649dc71a00f41264b3c337fcd6863aca8c4e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 11 Nov 2023 18:16:05 +0000 Subject: [PATCH 36/44] Automatic changelog for PR #14424 [ci skip] --- html/changelogs/AutoChangeLog-pr-14424.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14424.yml diff --git a/html/changelogs/AutoChangeLog-pr-14424.yml b/html/changelogs/AutoChangeLog-pr-14424.yml new file mode 100644 index 0000000000000..f438f4d6baadc --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14424.yml @@ -0,0 +1,4 @@ +author: "vvvv-vvvv" +delete-after: True +changes: + - bugfix: "Fix missing nuke disk candidate icon" \ No newline at end of file From d649d9885e172fe0e05854458be7e1c0a08c8f32 Mon Sep 17 00:00:00 2001 From: Lumipharon Date: Sun, 12 Nov 2023 10:24:05 +1300 Subject: [PATCH 37/44] asset_activation fixes (#14407) --- code/__DEFINES/campaign.dm | 5 ++++ code/__DEFINES/dcs/signals.dm | 5 ++++ .../gamemodes/campaign/campaign_assets.dm | 28 ++++++++++++------- .../gamemodes/campaign/campaign_mission.dm | 2 +- .../gamemodes/campaign/faction_stats.dm | 11 ++++++-- .../gamemodes/campaign/rewards/disablers.dm | 6 +++- 6 files changed, 42 insertions(+), 15 deletions(-) diff --git a/code/__DEFINES/campaign.dm b/code/__DEFINES/campaign.dm index a772989aa86ce..41668478b2c4b 100644 --- a/code/__DEFINES/campaign.dm +++ b/code/__DEFINES/campaign.dm @@ -18,8 +18,13 @@ #define CAMPAIGN_MAX_LOSS_BONUS 0.45 //mission defines +///Mission has not been loaded #define MISSION_STATE_NEW "mission state new" +///Mission loaded but not yet active +#define MISSION_STATE_LOADED "mission state loaded" +///Mission actively running #define MISSION_STATE_ACTIVE "mission state active" +///Mission ended #define MISSION_STATE_FINISHED "mission state finished" #define MISSION_OUTCOME_MAJOR_VICTORY "major victory" diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm index 3dcb8c962ff1f..091e8f8b0ec2b 100755 --- a/code/__DEFINES/dcs/signals.dm +++ b/code/__DEFINES/dcs/signals.dm @@ -101,6 +101,11 @@ ///Override code for NT base rescue mission #define COMSIG_GLOB_CAMPAIGN_NT_OVERRIDE_CODE "!campaign_nt_override_code" +///Campaign asset activation successful +#define COMSIG_CAMPAIGN_ASSET_ACTIVATION "campaign_asset_activation" +///Campaign asset disabler activated +#define COMSIG_CAMPAIGN_DISABLER_ACTIVATION "campaign_disabler_activation" + ////////////////////////////////////////////////////////////////// // /datum signals diff --git a/code/datums/gamemodes/campaign/campaign_assets.dm b/code/datums/gamemodes/campaign/campaign_assets.dm index 0c17933ea86bb..120ba6525fda4 100644 --- a/code/datums/gamemodes/campaign/campaign_assets.dm +++ b/code/datums/gamemodes/campaign/campaign_assets.dm @@ -65,8 +65,8 @@ immediate_effect() ///Handles the activated asset process -/datum/campaign_asset/proc/attempt_activatation() - if(activation_checks()) +/datum/campaign_asset/proc/attempt_activatation(mob/user) + if(activation_checks(user)) return FALSE activated_effect() @@ -78,26 +78,34 @@ uses -- if(uses <= 0) asset_flags |= ASSET_CONSUMED + SEND_SIGNAL(src, COMSIG_CAMPAIGN_ASSET_ACTIVATION) return TRUE ///Returns TRUE if unable to be activated -/datum/campaign_asset/proc/activation_checks() +/datum/campaign_asset/proc/activation_checks(mob/user) SHOULD_CALL_PARENT(TRUE) - if((asset_flags & ASSET_CONSUMED) || asset_flags & ASSET_DISABLED || uses <= 0) + if(!(asset_flags & ASSET_ACTIVATED_EFFECT)) + return TRUE + if((asset_flags & ASSET_CONSUMED)) + to_chat(user, span_warning("This asset is inactive.")) + return TRUE + if(uses <= 0) + to_chat(user, span_warning("No further uses of this assets available.")) + return TRUE + if(asset_flags & ASSET_DISABLED) + to_chat(user, span_warning("External interferance prevents the activation of this asset.")) return TRUE - if((asset_flags & ASSET_DISALLOW_REPEAT_USE) && (asset_flags & ASSET_ACTIVE)) - to_chat(faction.faction_leader, span_warning(already_active_message)) + to_chat(user, span_warning(already_active_message)) return TRUE - if(asset_flags & ASSET_ACTIVE_MISSION_ONLY) var/datum/game_mode/hvh/campaign/mode = SSticker.mode var/datum/campaign_mission/current_mission = mode.current_mission - if(!current_mission || (current_mission.mission_state == MISSION_STATE_FINISHED)) - to_chat(faction.faction_leader, span_warning("Unavailable until next mission confirmed.")) + if(!current_mission || (current_mission.mission_state == MISSION_STATE_NEW) || (current_mission.mission_state == MISSION_STATE_FINISHED)) + to_chat(user, span_warning("Unavailable until next mission confirmed.")) return TRUE if(blacklist_mission_flags & current_mission.mission_flags) - to_chat(faction.faction_leader, span_warning(blacklist_message)) + to_chat(user, span_warning(blacklist_message)) return TRUE return FALSE diff --git a/code/datums/gamemodes/campaign/campaign_mission.dm b/code/datums/gamemodes/campaign/campaign_mission.dm index 02bff792ceafa..7c218fef78e25 100644 --- a/code/datums/gamemodes/campaign/campaign_mission.dm +++ b/code/datums/gamemodes/campaign/campaign_mission.dm @@ -161,7 +161,7 @@ /datum/campaign_mission/proc/load_map() mission_z_level = load_new_z_level(map_file, map_name, TRUE, map_traits) set_z_lighting(mission_z_level.z_value, map_light_colours[1], map_light_levels[1], map_light_colours[2], map_light_levels[2], map_light_colours[3], map_light_levels[3], map_light_colours[4], map_light_levels[4]) - + mission_state = MISSION_STATE_LOADED SEND_GLOBAL_SIGNAL(COMSIG_GLOB_CAMPAIGN_MISSION_LOADED, mission_z_level.z_value) ///Generates the mission brief for the mission if it needs to be late loaded diff --git a/code/datums/gamemodes/campaign/faction_stats.dm b/code/datums/gamemodes/campaign/faction_stats.dm index 46544ec6094f2..6b058f9a8131c 100644 --- a/code/datums/gamemodes/campaign/faction_stats.dm +++ b/code/datums/gamemodes/campaign/faction_stats.dm @@ -181,6 +181,7 @@ GLOBAL_LIST_INIT(campaign_mission_pool, list( existing_asset.reapply() else faction_assets[new_asset] = new new_asset(src) + RegisterSignals(faction_assets[new_asset], list(COMSIG_CAMPAIGN_ASSET_ACTIVATION, COMSIG_CAMPAIGN_DISABLER_ACTIVATION), PROC_REF(force_update_static_data)) ///handles post mission wrap up for the faction /datum/faction_stats/proc/mission_end(datum/source, datum/campaign_mission/completed_mission, winning_faction) @@ -233,6 +234,11 @@ GLOBAL_LIST_INIT(campaign_mission_pool, list( if(ismarinecommandjob(user.job) || issommarinecommandjob(user.job)) return TRUE +///force updates static data when something changes externally +/datum/faction_stats/proc/force_update_static_data() + SIGNAL_HANDLER + update_static_data_for_all_viewers() + //UI stuff// /datum/faction_stats/ui_interact(mob/living/user, datum/tgui/ui) @@ -371,7 +377,7 @@ GLOBAL_LIST_INIT(campaign_mission_pool, list( if(!is_leadership_role(user)) to_chat(user, "Only leadership roles can do this.") return - if(current_mode.current_mission?.mission_state != MISSION_STATE_NEW) + if((current_mode.current_mission?.mission_state != MISSION_STATE_NEW) && (current_mode.current_mission?.mission_state != MISSION_STATE_LOADED)) to_chat(user, "Current mission already ongoing, unable to assign more personnel at this time.") return total_attrition_points += active_attrition_points @@ -422,13 +428,12 @@ GLOBAL_LIST_INIT(campaign_mission_pool, list( if(!(ismarineleaderjob(user.job) || issommarineleaderjob(user.job))) to_chat(user, "Only squad leaders and above can do this.") return - if(!choice.attempt_activatation()) + if(!choice.attempt_activatation(user)) return for(var/mob/living/carbon/human/faction_member AS in GLOB.alive_human_list_faction[faction]) faction_member.playsound_local(null, 'sound/effects/CIC_order.ogg', 30, 1) faction_member.play_screen_text("OVERWATCH
" + "[choice.name] asset activated", faction_portrait) to_chat(faction_member, "[user] has activated the [choice.name] campaign asset.") - update_static_data_for_all_viewers() return TRUE if("purchase_reward") diff --git a/code/datums/gamemodes/campaign/rewards/disablers.dm b/code/datums/gamemodes/campaign/rewards/disablers.dm index 127db6f53a0ff..9091d2f4b5c93 100644 --- a/code/datums/gamemodes/campaign/rewards/disablers.dm +++ b/code/datums/gamemodes/campaign/rewards/disablers.dm @@ -27,7 +27,10 @@ if(current_mission.mission_flags & blacklist_mission_flags) return - for(var/datum/campaign_asset/asset_type AS in faction.faction_assets) + for(var/i in faction.faction_assets) + var/datum/campaign_asset/asset_type = faction.faction_assets[i] + if(!asset_type) + continue if(asset_type.type in types_disabled) asset_type.asset_flags |= ASSET_DISABLED types_currently_disabled += asset_type @@ -37,6 +40,7 @@ if(!uses) UnregisterSignal(SSdcs, COMSIG_GLOB_CAMPAIGN_MISSION_LOADED) asset_flags &= ~ASSET_DEBUFF + SEND_SIGNAL(src, COMSIG_CAMPAIGN_DISABLER_ACTIVATION) /datum/campaign_asset/asset_disabler/tgmc_cas name = "CAS disabled" From 08ced83426f8d21ca5b1acd84768b0f7b685084f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 11 Nov 2023 21:24:25 +0000 Subject: [PATCH 38/44] Automatic changelog for PR #14407 [ci skip] --- html/changelogs/AutoChangeLog-pr-14407.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14407.yml diff --git a/html/changelogs/AutoChangeLog-pr-14407.yml b/html/changelogs/AutoChangeLog-pr-14407.yml new file mode 100644 index 0000000000000..b94bff81c1d92 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14407.yml @@ -0,0 +1,5 @@ +author: "Lumipharon" +delete-after: True +changes: + - qol: "failure to activate a campaign asset now provided more feedback to the user" + - bugfix: "fixed a few issues with activating some campaign assets" \ No newline at end of file From d06b368d2da4e040a73426f2bbf54f28c12d7b0c Mon Sep 17 00:00:00 2001 From: Dgeen <79422708+Dgeen@users.noreply.github.com> Date: Sun, 12 Nov 2023 00:28:59 +0300 Subject: [PATCH 39/44] runner (#14410) --- icons/Xeno/castes/runner.dmi | Bin 40642 -> 50381 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/Xeno/castes/runner.dmi b/icons/Xeno/castes/runner.dmi index 8eff875cea68041b0ff949239aa8010add58f5b4..ce82db834cefb5afe3010b50f216f4a210a21e4d 100644 GIT binary patch literal 50381 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 z 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 From e0f36aa039adab65de584f3df13f12ade51666b2 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 11 Nov 2023 21:29:15 +0000 Subject: [PATCH 40/44] Automatic changelog for PR #14410 [ci skip] --- html/changelogs/AutoChangeLog-pr-14410.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14410.yml diff --git a/html/changelogs/AutoChangeLog-pr-14410.yml b/html/changelogs/AutoChangeLog-pr-14410.yml new file mode 100644 index 0000000000000..70341772ae4f2 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14410.yml @@ -0,0 +1,4 @@ +author: "Dgeen" +delete-after: True +changes: + - bugfix: "Rouny runner is back" \ No newline at end of file From 48ea47ddc9250c175f873704b984e61190404313 Mon Sep 17 00:00:00 2001 From: ivanmixo Date: Sat, 11 Nov 2023 22:33:08 +0100 Subject: [PATCH 41/44] Cleans up shrike vortex code + fixes it throwing decals around (#14420) * Cleans up shrike vortex code + fixes it throwing decals around * e * Update code/modules/mob/living/carbon/xenomorph/castes/shrike/abilities_shrike.dm Co-authored-by: Matt --------- Co-authored-by: Matt --- .../castes/shrike/abilities_shrike.dm | 39 +++++++------------ 1 file changed, 15 insertions(+), 24 deletions(-) diff --git a/code/modules/mob/living/carbon/xenomorph/castes/shrike/abilities_shrike.dm b/code/modules/mob/living/carbon/xenomorph/castes/shrike/abilities_shrike.dm index cc49b15986a68..db3c485bd0bc8 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/shrike/abilities_shrike.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/shrike/abilities_shrike.dm @@ -313,7 +313,7 @@ plasma_cost = 400 cooldown_timer = 2 MINUTES keybinding_signals = list( - KEYBINDING_NORMAL = COMSIG_XENOABILITY_PLACE_ACID_WELL, + KEYBINDING_NORMAL = COMSIG_XENOABILITY_PLACE_ACID_WELL, ) /datum/action/xeno_action/place_acidwell/can_use_action(silent = FALSE, override_flags) @@ -397,18 +397,14 @@ return -///checks for any non-anchored movable atom, throwing them towards the shrike/owner using the ability. While causing shake to anything in range with effects applied to humans affected. +/** + * Checks for any non-anchored movable atom, throwing them towards the shrike/owner using the ability. + * While causing shake to anything in range with effects applied to humans affected. + */ /datum/action/xeno_action/activable/psychic_vortex/proc/vortex_pull() playsound(owner, 'sound/effects/seedling_chargeup.ogg', 60) - for(var/atom/victim AS in range(VORTEX_RANGE, owner.loc)) - if(isturf(victim)) - continue - if(!ismovableatom(victim)) - continue - var/atom/movable/movable_victim = victim - if(movable_victim.anchored) - continue - if(isxeno(movable_victim)) + for(var/atom/movable/movable_victim in range(VORTEX_RANGE, owner.loc)) + if(movable_victim.anchored || isxeno(movable_victim) || movable_victim.move_resist > MOVE_FORCE_STRONG) continue if(ishuman(movable_victim)) var/mob/living/carbon/human/H = movable_victim @@ -423,20 +419,15 @@ movable_victim.throw_at(targetturf, 4, 1, owner, FALSE, FALSE) movable_victim.throw_at(owner, 4, 1, owner, FALSE, FALSE) -///randomly throws movable atoms in the radius of the vortex abilites range, different each use. +/// Randomly throws movable atoms in the radius of the vortex abilites range, different each use. /datum/action/xeno_action/activable/psychic_vortex/proc/vortex_push() - for(var/atom/victim in range(VORTEX_RANGE, owner.loc)) - if(!ismovableatom(victim)) - continue - var/atom/movable/movable_victim = victim - if(movable_victim.anchored || isxeno(movable_victim)) + for(var/atom/movable/movable_victim in range(VORTEX_RANGE, owner.loc)) + if(movable_victim.anchored || isxeno(movable_victim) || movable_victim.move_resist == INFINITY) continue if(ishuman(movable_victim)) - var/mob/living/carbon/human/H = movable_victim - if(H.stat == DEAD) + var/mob/living/carbon/human/human_victim = movable_victim + if(human_victim.stat == DEAD) continue - if(movable_victim) - var/turf/targetturf = get_turf(owner) - targetturf = locate(targetturf.x + rand(1, 4), targetturf.y + rand(1, 4), targetturf.z) - movable_victim.throw_at(targetturf, 4, 1, owner, FALSE, FALSE) - + var/turf/targetturf = get_turf(owner) + targetturf = locate(targetturf.x + rand(1, 4), targetturf.y + rand(1, 4), targetturf.z) + movable_victim.throw_at(targetturf, 4, 1, owner, FALSE, FALSE) From 87388b91fa9a48271ecf43efc4d6c3862148eef0 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 11 Nov 2023 21:33:25 +0000 Subject: [PATCH 42/44] Automatic changelog for PR #14420 [ci skip] --- html/changelogs/AutoChangeLog-pr-14420.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-14420.yml diff --git a/html/changelogs/AutoChangeLog-pr-14420.yml b/html/changelogs/AutoChangeLog-pr-14420.yml new file mode 100644 index 0000000000000..3f59500d6a490 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-14420.yml @@ -0,0 +1,5 @@ +author: "ivanmixo" +delete-after: True +changes: + - bugfix: "Shrike vortex doesn't throw around things it shouldn't anymore (decals)" + - code_imp: "Smol shrike vortex code improvement" \ No newline at end of file From a212d789192decdcd121c4f23fe475b51773028c Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sun, 12 Nov 2023 00:53:57 +0000 Subject: [PATCH 43/44] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-14394.yml | 4 ---- html/changelogs/AutoChangeLog-pr-14406.yml | 4 ---- html/changelogs/AutoChangeLog-pr-14407.yml | 5 ----- html/changelogs/AutoChangeLog-pr-14410.yml | 4 ---- html/changelogs/AutoChangeLog-pr-14411.yml | 4 ---- html/changelogs/AutoChangeLog-pr-14420.yml | 5 ----- html/changelogs/AutoChangeLog-pr-14421.yml | 5 ----- html/changelogs/AutoChangeLog-pr-14423.yml | 5 ----- html/changelogs/AutoChangeLog-pr-14424.yml | 4 ---- html/changelogs/AutoChangeLog-pr-14426.yml | 4 ---- html/changelogs/archive/2023-11.yml | 26 ++++++++++++++++++++++ 11 files changed, 26 insertions(+), 44 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-14394.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-14406.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-14407.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-14410.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-14411.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-14420.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-14421.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-14423.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-14424.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-14426.yml diff --git a/html/changelogs/AutoChangeLog-pr-14394.yml b/html/changelogs/AutoChangeLog-pr-14394.yml deleted file mode 100644 index 229927b3556e3..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-14394.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Lumipharon" -delete-after: True -changes: - - rscadd: "Ammo knockback, as well as that caused by defender charge and rav abilities now use throw mechanics" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-14406.yml b/html/changelogs/AutoChangeLog-pr-14406.yml deleted file mode 100644 index a8e2676715562..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-14406.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Lumipharon" -delete-after: True -changes: - - qol: "Campaign missions will specify if a teleport or drop pod blocker is active in the current mission" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-14407.yml b/html/changelogs/AutoChangeLog-pr-14407.yml deleted file mode 100644 index b94bff81c1d92..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-14407.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Lumipharon" -delete-after: True -changes: - - qol: "failure to activate a campaign asset now provided more feedback to the user" - - bugfix: "fixed a few issues with activating some campaign assets" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-14410.yml b/html/changelogs/AutoChangeLog-pr-14410.yml deleted file mode 100644 index 70341772ae4f2..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-14410.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Dgeen" -delete-after: True -changes: - - bugfix: "Rouny runner is back" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-14411.yml b/html/changelogs/AutoChangeLog-pr-14411.yml deleted file mode 100644 index 4bda1577a865d..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-14411.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Bobthe28th" -delete-after: True -changes: - - bugfix: "Defiler can only inject eggs adjacent to them." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-14420.yml b/html/changelogs/AutoChangeLog-pr-14420.yml deleted file mode 100644 index 3f59500d6a490..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-14420.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "ivanmixo" -delete-after: True -changes: - - bugfix: "Shrike vortex doesn't throw around things it shouldn't anymore (decals)" - - code_imp: "Smol shrike vortex code improvement" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-14421.yml b/html/changelogs/AutoChangeLog-pr-14421.yml deleted file mode 100644 index bf0740c5b987d..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-14421.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "SiegeB0t" -delete-after: True -changes: - - qol: "req can be confident that crates to a supply beacon on tad will arrive on tad." - - bugfix: "A supply beacon on tad will work after tad moves." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-14423.yml b/html/changelogs/AutoChangeLog-pr-14423.yml deleted file mode 100644 index c0fc8946fb771..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-14423.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Xander3359" -delete-after: True -changes: - - rscadd: "Added an empty reagent pouch to the clothing vendor." - - balance: "Adjust reagent pouch to 2:2:1:2 BKTT" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-14424.yml b/html/changelogs/AutoChangeLog-pr-14424.yml deleted file mode 100644 index f438f4d6baadc..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-14424.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "vvvv-vvvv" -delete-after: True -changes: - - bugfix: "Fix missing nuke disk candidate icon" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-14426.yml b/html/changelogs/AutoChangeLog-pr-14426.yml deleted file mode 100644 index 6ca0ca8d0d155..0000000000000 --- a/html/changelogs/AutoChangeLog-pr-14426.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Barnet2" -delete-after: True -changes: - - bugfix: "Removes unopenable blast door on smallbury CIC" \ No newline at end of file diff --git a/html/changelogs/archive/2023-11.yml b/html/changelogs/archive/2023-11.yml index b1140304e1061..360178db65bd6 100644 --- a/html/changelogs/archive/2023-11.yml +++ b/html/changelogs/archive/2023-11.yml @@ -197,3 +197,29 @@ Xander3359: - balance: pills no longer input-lock you - qol: You can use a pill in-hand to eat it. +2023-11-12: + Barnet2: + - bugfix: Removes unopenable blast door on smallbury CIC + Bobthe28th: + - bugfix: Defiler can only inject eggs adjacent to them. + Dgeen: + - bugfix: Rouny runner is back + Lumipharon: + - qol: Campaign missions will specify if a teleport or drop pod blocker is active + in the current mission + - qol: failure to activate a campaign asset now provided more feedback to the user + - bugfix: fixed a few issues with activating some campaign assets + - rscadd: Ammo knockback, as well as that caused by defender charge and rav abilities + now use throw mechanics + SiegeB0t: + - qol: req can be confident that crates to a supply beacon on tad will arrive on + tad. + - bugfix: A supply beacon on tad will work after tad moves. + Xander3359: + - rscadd: Added an empty reagent pouch to the clothing vendor. + - balance: Adjust reagent pouch to 2:2:1:2 BKTT + ivanmixo: + - bugfix: Shrike vortex doesn't throw around things it shouldn't anymore (decals) + - code_imp: Smol shrike vortex code improvement + vvvv-vvvv: + - bugfix: Fix missing nuke disk candidate icon From 2b2872bef868d57dfb065bab40d0bcee16db855a Mon Sep 17 00:00:00 2001 From: Dikozda Date: Mon, 13 Nov 2023 01:13:44 +1100 Subject: [PATCH 44/44] Add default byond sound environment defines (#14427) Co-authored-by: Dikozda --- code/__DEFINES/sound.dm | 29 +++++++++++++++++++++++++++++ code/game/sound.dm | 2 +- 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/code/__DEFINES/sound.dm b/code/__DEFINES/sound.dm index 87349a9b55918..36ec86c513a11 100644 --- a/code/__DEFINES/sound.dm +++ b/code/__DEFINES/sound.dm @@ -32,3 +32,32 @@ ///Frequency stuff only works with 45kbps oggs. #define GET_RAND_FREQUENCY (rand(32000, 55000)) + +//default byond sound environments +#define SOUND_ENVIRONMENT_NONE -1 +#define SOUND_ENVIRONMENT_GENERIC 0 +#define SOUND_ENVIRONMENT_PADDED_CELL 1 +#define SOUND_ENVIRONMENT_ROOM 2 +#define SOUND_ENVIRONMENT_BATHROOM 3 +#define SOUND_ENVIRONMENT_LIVINGROOM 4 +#define SOUND_ENVIRONMENT_STONEROOM 5 +#define SOUND_ENVIRONMENT_AUDITORIUM 6 +#define SOUND_ENVIRONMENT_CONCERT_HALL 7 +#define SOUND_ENVIRONMENT_CAVE 8 +#define SOUND_ENVIRONMENT_ARENA 9 +#define SOUND_ENVIRONMENT_HANGAR 10 +#define SOUND_ENVIRONMENT_CARPETED_HALLWAY 11 +#define SOUND_ENVIRONMENT_HALLWAY 12 +#define SOUND_ENVIRONMENT_STONE_CORRIDOR 13 +#define SOUND_ENVIRONMENT_ALLEY 14 +#define SOUND_ENVIRONMENT_FOREST 15 +#define SOUND_ENVIRONMENT_CITY 16 +#define SOUND_ENVIRONMENT_MOUNTAINS 17 +#define SOUND_ENVIRONMENT_QUARRY 18 +#define SOUND_ENVIRONMENT_PLAIN 19 +#define SOUND_ENVIRONMENT_PARKING_LOT 20 +#define SOUND_ENVIRONMENT_SEWER_PIPE 21 +#define SOUND_ENVIRONMENT_UNDERWATER 22 +#define SOUND_ENVIRONMENT_DRUGGED 23 +#define SOUND_ENVIRONMENT_DIZZY 24 +#define SOUND_ENVIRONMENT_PSYCHOTIC 25 diff --git a/code/game/sound.dm b/code/game/sound.dm index 8029a9e5f2f24..5ff979ef193d6 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -106,7 +106,7 @@ A good representation is: 'byond applies a volume reduction to the sound every X S.falloff = falloff ? falloff : FALLOFF_SOUNDS * max(round(S.volume * 0.05), 1) if(!is_global) - S.environment = 2 + S.environment = SOUND_ENVIRONMENT_ROOM SEND_SOUND(src, S)