kg
z-xa+6=(}>lw3Ig@TtDwU&Ud!(cZ~6B3Z(W%cdX+YyefFpn6q;7Vrdg}cT9B+t8lcI
zGn@H)*HRVIY5dA46!xyusjPu6iS7s#X8v}ZsJQ4fZXe9h>45#-b<{3T?%4Z<+<9D>
zFuJRjR69Fy(Q#J7&QCy5yD|DJ%74sz3wM@qC2YfmCeq|=vlM6j^BUo6L&74)otABJe*#6XEw~N>
zRsfpj7*j2Z3o3YdZszBQh38STuMMLXFcMRjAIjaKDX;@n@Ll%(UkG=UxI{;AqaF1j~_XKvrLLKue
zxBlqFv7)=wQ&svpBPZr)gV%jjOG3jO!kvN?TM{NOI*KKzgwRN3Fz1`NKzZS7ZA>t0
zjwZMJ3@HErPY5xztC}!NGsRhR*ESk&c^qIP_bMf!@
zAR2a|E}dRxbma6L&3o@`MbO%?^DE(_q6^0)JJJf)B!yw|-RfK%x~_Suk77UgE}cGt
zHgDm6#oo8Q6|2cj6IrG@O^MFYo24@Yn0|xxioY+}f~5I$>rGPXym4GEK8K5^4(zAZ!8)+E1rYbYs1pBEnv%E(!LG&gIoPm^v^B1p>4U{DS#=3{mqF`{
zxUdWE0SIxm%36qhsFlmHsC65UvR@az0aA?3sDO}NPzLR>4^J|jj@mx
zY}TS5CjOzBrgAFZvUb*ZOnS^d=cfZ+HfV#EIlHzFWCv{sRO8i8qzwQQ6#Y|;p$@Zw
z2*Z3|)*F#Qics3T;`K~snvGWER#@q-l7ZQb(LV-y4Wy~a`3}-x?V-#V7u!|AAR<2U
z`jOD75tAnOndI~+s}n~(d0?{)p7A^&=I}xhQlauEZM5k7j0R2v3MdebF`I?;`&5*q
z6Xp=jCU~)6ZGF>W1yf2nZ;7V?>a5QWO*j@fl>2W82+Voq(NG`d!;NVk%8~j@Q=j!_pXLs}YpNkKlJg$@0!h
zFrGl&;Qwk9fB=azN@Ks79~$An(yF_JD5-DsBge#}$7pP=5xzuAP|iCbCYyPEf7Vdj
zSTO>qiGDPy1bC^{U*9(J^>OS3ctkwEuNbPCPGA(poMt^9-sb8|)4$OXdB5y6preIbuwimHn1)
zBo(~BZ|$#8i*I~Tl;B6MtvJ;}vw$d5(SW|{QY7^eP(=cW`t7mDT4r^zRck$SO2oz32nBRzJ+D!4cmR(@A;L!!xDx$4&aN
zAQy=K?>sQqB%xgN_i2J1!wl6<3c3zc3IfBs+Y7irA9AuhLM;rq?NTLwa%Vf!7mc8t
z!j((?$~oBV--XGZ7lHV*-bKeO@@htC++m6h?TvnYH)khPYFst-mYi=!M(?>kgS#vt
zu-WRD$#k3Tb!#=P2v{#Xjg#{L3vzO&R0$#L>i2Fb54nWjVYj%JQ%vLNC5N4$VBgD!
zrO>_bIYLjbUFD#aJW$b8#T(gZ)I^&8YcNf>-j)9p*%_rlP9Zv$S&Y`IF`BVUN0fVn
zE0}taI8l0Cwx_A=dW7W13Hun3C!D_h6U{WqH|O5yjyV#@h4SXEe86cb%+_d8%B?x1~ns@y*Oq4JP*qC9PVf`zue>3cb3=y2^zmM(02
zZ;)rOmpxZS3KB+b(6A}F@97LsKBrgS<3Ow=+^Q$6FgdsoB$>JUr~_h<1NKLXD-KvW
zssuu;;I)+o_kH!Uxg*bzX=r2aooSs^u}3_Sw!`k5
ztOyN3TH1*p6=&TRGOIM^y4T$dNfu6TpJJ9Jd@qdlZm`x0t{=NfAAr|+4>#Ocg3yNd{#WxHzghVKY`k
zIhB`IvWC+Y=t*VSDLtYWJTq7l0{iX+WMKD6JF1NrQ0lArPqYSTj(lm
zgoTg6G&9atos&l@BP3rKwaEF~67`!P6Q6``PjL>TxlxUzCSIRxz0KCGa8xM(kGSZpnsgUB2_gWap05lb9xS+`7ldkX1Nc4l74
zudZ-M{T>OabMzO@#4gx!;o0_cavxVYMd-{k=6@0*No)%X3x2NEtFk2;P?
zk;{PAfLW7wz9qhn{YgVCI9ETvjr4&hld2-AesBv=Qd8kiR&|qpK@M@H`kp(Y;}5jgy1$%Yg`{q%|-V=jkPumAG2D_
z0EVRWdv!3%q5oslKP;)$8A2nb{8fWT-@J--Fbt&@%sNl~GM#aYezBwodCtdlbwWD#
zQTJ}n%L=XMA0l3Sg1q7XZurbPNaxXuntMRq4faNUCE;Cl%ip~tg?Z6+=|Rh%U@XR?
zUL!w6xlphB`;68aG5G%f0pHRP9CT7L5_BD{uPoRh11wMW^t~zOqj}z|c;R6to&@y6
z`Rj>~FP;Hbe0p9VUsZPvHXGyHhBkIf;@4DS^K7LSPYZZ3^$U1V?p3^A*f3&ZsWO*t
zV_mma-<^QP;&1Vf+_BmfqpO7t$QcPcW;ie;8gZ3YHi|2-W{-y?>t9e<~L_O^c&D)-ocgYVPlTk9iG?hWazT)JuBv?n^W
zz0kE@gVh0B0UKw5P>YKO)u=(9m%LVTXCU*UMD)TNGwYHh;ci(=M4@mz^9kyVI4{=a
zn{u`{Rav+@KG`sJ#yVMhV$is3CTV?*UbB)vG7>6$rx!j55z3Bm%;bEn>;`*RCRs(T
z3lCNWWGA9?&cx7CRiuOyUXO<{Uhb9ExMEeJU_{Pq1|^Hv73bIW{MQb?vo1ldNZBo*
z2d)V(70X_`)nFrnYxWPo6)F*i%D=;Om3W9`$m;}`9uVT>{0oDF5bqXrrC;AY)wvZn
zOViS-J%X|~=_+7hsblvOK=Gh*hg@irLhJ_Jo1j1u?%s1~L-{J;xbb!@pF-3lq$-PG
zSLC^FQ#f`9--uN-80)Q;+%T)HRA;U+-l}p^!I)gz4k-_zp6ydQ0$)}A0~x8;sn^^<
zw6asIF115?0DvQi2}}smkpVvds^EXp4CzJRo_z+LRZ^E@d-F7kcF#;f!L7-mX!XSUZSurL=BnH?98kfIbSzmOcu2y>eI
z{ktf@PNeX3wpL?;qWaVwIU{jliPG(rp=9frgrYG@*0Hx&+~#Uw}D56
zeXs)DiJY6=l0THX*-M9N1ifa6Nfb)RRkIfrE~FxlOXa(yhCEWOU5lIQ=E$4>?_!ZcK{|Iwda
zC9mc%Q2#`ROWU?^3;%E8Eyyz%Bu)>?UnPH?K?#y2s~|vmR;|W7{?H>K@y|G+{e5A^
z`F*oT%#?Wu{ch5{%$)JVfu=UCJ943KTpxuq80s>8pu(G0!Ee6h)EH}EQ>pN0WJ(u&
z6Qj&%rEHa++rVa(KqR&KR&3v4Lfp;pWpRT$L8q*Oev)gt4@QlvbYeSNczzN>O+IXcOHk=;NcV((}4domB^;*GlC*>nL{&KJ_VR
ztElT$3(!Rcw?L|8Z4bQp(LU<&hEv++kU(k>aF%9XO3lP>km)n?Qd=!Ih{ftDdraHf
zf$!cPM~k(H0cwmQsmuPzslEfwEms^Su7o^9YO1!-5VcIqeCjyYhIUC=VKd|!RT@xO
z8~$e1p5i?L1WLbdXDKnmj_=WjUX*N^>H9#3>TqFH8QEWRwEesZu#+VTxyKo0dJW$*Q%+@G4!wd7hE+T=R2(?I&$NQSNz|l2#Lrl*iJd$+$?|x
zcQ!h-VCzRYBzWQ3my<{@t)08vC_blp44mAh`l48IPrzJ9uzT|0serT>Ff`fcBd$W{
z*wsb&tCF8IK6eGr2ilF7lsVR=*shdilDY%#3w{|r{wZPeZX)!TLRXcCT*V6t!ME>#
zq$)Yd98Cp(YdvM=`}`oN8&63KtJ7Z!<`mx={INx5Oi8cVcXH>2kPQJSc}^N4nyxlL
z&B>F|fR4F#!j6V156|y%Mxr4X{p^#4K1ei25O6QwDHoEBJroeRh-s`?lrUG?J_@f7
zpYk8q=+W6xrZRtgzEyr6ZOW}cpg7mWWY`StMeX+}?6_aSgmfIN(|yffH+uvmjj~c>
zZb~euiSH$rT3zrP$5~mININ0;qp;a$9V+7^wFhHwlcrHlzxv@W`}()YDAG4E`((2x
zajwUBa#unIYYkLhw?Ow&mEE{FtDtN@`kRBYn+&^1?{gXOnb?2g&dr`?k;IwnOBz0EWzJF?-_(<~)q&m}{dzA?EmaMFK!wPY{S
z{tQxl!DQX0G^cmYvfYrPn7f|YcF123b=p=y*S(NMj^nd6+tw9Px5-r67%F+JYyOh*
z!(^K>8Ijv<=9yjn+*XU_1A)IF?jYYlfJ*TmxFtg?H?}mTbF3mENTpM*1UfqHL(}zI
zRjG+7U6H+$x|XpUcC^|9oxKTE@s85A0PSDX;zxC9XkXEd2By1ShY}7+3NbqcAelu(
zt1{%vkoc{3@_l_OMG=&&oym&fHCh*!E#0AG8s-v1sB!I`2L}3}>S{xYV#gnA#Z|HT
z;g;9|Bk~MzB{d6wS2*jwLe{``u9CVI-$z?wHY$37=9Q5C&b6|yfAZwze7Q6=dR^o2bnFHYqn{PW@JTlUw
zE-DnT?=8N{@YJ1;4*$49!3)+gh8|V|UThxIb}6*(o3rjAQm2$8Q@7U}t{xITW^X8A+*Du3+
z+8ksf*K6uag^45OS(qTBYWDh#bFaTSqnp8c`?^qJnRO}sy79{SHBn<5S>dziX?bq%G%26O2Kvk^Xb19rpwIi-bDtK_{CwSK>mtG|xGQ+-|Mq&tVe*6?`j3_G{(
zco}?=_m2RqXlFyoX9pR;VU4nHxboOQnPoI$;%doq-Cd89ef9bsbOLyNarGGxMmGQ-OA>#pYM}4lPD*aa){1EkFz)_uS
z|CqR&t5StsdmFCb9Mi)^re{+X!Brpa5{E`3$S9G9#pZyEMb=srQwWKVIW$o6##uL!
zg|#wJ5b-f?OB>vwy%u+Oe!JoT*tF*F1K<)7C|7EzD58O~gHz-m;!X0tPKK#t14CC1
z_>tdc9h8lB(C;pAx({=)pTeos7qL;fS|_tgUaz6A3I_Lj@bc$dLf2#Kf&4(hxt^cr
z@-zh%ZgQbE*^4EhgtXm_^>1gIe$BcdZ0^qD$~~)w&Lpv>>@@TNzgs++M;s#yo}6>IO+cj
z@O_T<@Pf)=0A!0s}P*)9mtQTSVR5Rf>?km#;Oq
zB4wr`0e@>Rr7|cqzu1_QbDSSzZJu90c(2NEvd_T}^%rh(UeLaxoJ{4nBOkSe2_mL(;uu#-%80+-bAUYtNG5VI*GLsdOwZ93Fl{1
ze@WqYB2ai0ObDpSiY{TkFN#TY8V6TA<*IG+oq~^0j~eUxrt76z9B-Ih(H+Iq3(cEA
zHZ<)}-#0^NSEVz5>OjEvE4=`DKfS8cZn5429%@SYl5Cl>A0I>3L*7Ymej>$yHJ7vZ
z?Yl(nGby5X;K-v|D5`Q(1)F?Qp=}?TaAJ*;zfoBVsp2dx4&
zyz*>+N8~RgX^SG`5vbO*)M{vha0^r!N3|2tG<~h0Y*osB*-S`LIqW>mPVr^u)eExa
z^(gTJ>EXQ_()DS$SfOn&W48OJEaRw7BD%oi6>1+(9pa_~RK^eGd!<2B=~6UpI+6-g
zk@4lw()lwdHbQjBvltV{_Ecw|H3wGl96U@u{ie8JH~V8`(pHd0(RJ87qP{IEJM1X^p}Ac8-Spm;ho?g2wCYa;QwU1(5KPE?L9ona@V
z4Y*oq@MAsaBD_8|^oT*BYO3v+ic}EBli3vdyIRwWGCfP|P(qcYfO}or&&`ics(z
z$?75PC_58#ctfXmrUlp-IkZ^x53&CZorJbW{SU6X#PU&x!m8?y8={O#S`7lT6|Cz~
zk&``F!*?5#D-gL?Ca1tA#6(3|?q5;aOp>J|N;lpeEg2&pTt@lhq(7pu!Rus-+~Os8
ztqnH2paVn<(2IUGr}F1m29+1HE+El(T}-KC+d)L*9tB^fvRpFsFR|d+>?yUkO{2fb
zJsVkRE8W7T(dBSC-*MVny5(@IUT@_cncx(teA(%aaJ5fy!BlT4ndP~Y8?qGhjyG_9
z-O3H7?IMI-e*_=?4>&ZSVyp~qPEM}4QhK#gS;xW2;<$87K+MO4ZR%&IpUI35?y3#H
zH)`IGRallmuO|d9SVPiF`#+eJUk;{_bfkQz7ra89UEi}75}cLo?^N@3IPDM1*CDkr
zZ3EvS%Zr+P0feuX8){K21GKzu@suHoRWg<=S6P2HazVmQ@04F&(B)42D!W;=sa^jK
z0&1*7S!N%B@*HI5a)H2DGq!H!I{KmK9hWzZI>)VPaEx6zf6igK@9zN|vmbAr)W+&O
zU??Nnfv8;gDyfx;@AmH0o@fCPMp?xf;X~HKu%S{o2W(JQW;b+JY{jO?^<(V{%fA)h
zS*8CPa!bbEuw!h7jY?_gNdY_F8K-}1;HuPl3prm~!=u%+Px=0qATd3GUEaTglQ8CP
zgXd+#9df&?G${~d)a$)|dYkyGkRwE)-PlMAjjbmVJjBxCkhwR&mDSujj5<_7Quls(
zaunRXi%No2fixcx+!mFqtUAWq{sa5rjBb|@+)i3{ee{o7mDAV0E?z*iyE@ATcT~F;zZ6Ato)exr$zxdPr+}V{Al*Zk7x6B
f=3W2&pW)lgMHapc>34yr=rDM?`njxgN@xNAs2=Tx
delta 1411
zcmZuxeK^wz9RF=BW@*DR<+AOBJrB*Cu5-$=JzR)IN={z3%1d4*mr%xUW{Xo7b-Eiq~eddDJ*$EBM@+(cpar{@-M~&fh1Rqi*LMLJwM{Eibpy>EAXNZrCHC(^xkiES~TgSED3>4Lz?7V%jZ~*}H
zE4@8v2hvJr!djAsD42K8!DkyidJ2Cv4FwV^fq)d4iM=rA#dEw(0BXAVAc6oOMFNBD
z`8267+YSs`uj&e0x`3HAa>RIrV^&`Pj2Rne(l?Mmryz?=PU
zKcsOU3Ol(nu;zB?0Iunr;SUX~0b
zhVO8U#+B2u$V?k$O8QZ)q(@(%4xZ)=Ql|<4*
zvfNskl07$|9MAZHhQ)r5n>S&&DcBTsP23|gM57@nX0GWf_6|E-0R-UYO;bJ!>&ioW
zP_&EFxh}}zoFT0L&eV;P&okHbRKJ{iI>`p3VB~Fd?eyY@CG$`W!c&Ie@MW3ba7wic
zBdH$8{h52(eGJDyv|(Ne$^yA_ce6_Gyqrh+?51R-V7UeJ?^zTDZ!765vV3cK_6WGC
z@P&1k=V?={V5|yR6<}rH`F1hBRaz=aZg5Wv+y;Hv5Y^OXYNf@4^$q{4Q-r!y|Z-(nI(XIM<5gCT?awLtrooHBKs}Ga%v7>w=
z0gtZG3&GE8)-uAGs-?7|*-2E%cipT;(A}b4yo8u^iY$u2oK0(?o)@jG@Ops`nZb4)
z^{WPV6@1Y_@+ozrutoxUnSV?M^R3qXct-0p=|YxN%g=v0t|2-u#%IthzTTa)ur3pG
zt+J(@(keYP^f2miX;$0%VZ-88``l;ZbSV%gu(Y0()W)RaDKJZ|;0t&`2
z-ihy@JydWPeeAEL@^JTAP4t9bxe77G;dODc)2Q%UlUF&^x=Qc4>I;>SNn)nv-Nd2=
zs`KV#D^E!O(&0{UOK=D#*;mTTa~qfPeyeA*X?<`JqT8Hu2vg4up`AmKkfu23A8jqP
z0K1O{o6o?-BU~j8SVl@#*G*;WCpW<#mckfww-v@ugC)6p+oq*S;$N3k0XLHjQ^m>a|bT*su_1q(Ji2u>;57Bj{r8U3emN(oeTv@M&UlZ
zb_5BVr^uEWkVEmo5n`&4%>;MT#Sz5QBfzeFF13PC+epY9$vT`U$(ba|)!gJJy7<(J
zm--=Sb4{VCgjNb1GOgfjG|9oR)&OhHAJQ{Iwa&nFcGTQf-idT~7ENTFD
Date: Thu, 2 May 2024 17:38:22 +0200
Subject: [PATCH 055/107] Extra husk info
---
.../objects/items/devices/scanners/health_analyzer.dm | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/code/game/objects/items/devices/scanners/health_analyzer.dm b/code/game/objects/items/devices/scanners/health_analyzer.dm
index f52f97aeeb5..566e504b476 100644
--- a/code/game/objects/items/devices/scanners/health_analyzer.dm
+++ b/code/game/objects/items/devices/scanners/health_analyzer.dm
@@ -164,9 +164,13 @@
if(HAS_TRAIT(target, TRAIT_HUSK))
if(advanced)
if(HAS_TRAIT_FROM(target, TRAIT_HUSK, BURN))
- render_list += "Subject has been husked by severe burns.\n"
+ /* SKYRAT EDIT START: More unhusking information */
+ render_list += "Subject has been husked by severe burns. Use repairing burn damage and following up with \
+ application of [SYNTHFLESH_UNHUSK_AMOUNT]u synthflesh or injection of rezadone as treatment.\n"
else if (HAS_TRAIT_FROM(target, TRAIT_HUSK, CHANGELING_DRAIN))
- render_list += "Subject has been husked by dessication.\n"
+ render_list += "Subject has been husked by dessication. Use applying [SYNTHFLESH_LING_UNHUSK_AMOUNT]u \
+ of synthflesh or injection of rezadone as treatment.\n"
+ /* SKYRAT EDIT END */
else
render_list += "Subject has been husked by mysterious causes.\n"
From c8c1ab23d063d7fdf6125ebacf5ea6f74827bec6 Mon Sep 17 00:00:00 2001
From: Waterpig
Date: Thu, 2 May 2024 17:48:32 +0200
Subject: [PATCH 056/107] blep
---
code/game/objects/items/devices/scanners/health_analyzer.dm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/code/game/objects/items/devices/scanners/health_analyzer.dm b/code/game/objects/items/devices/scanners/health_analyzer.dm
index 566e504b476..a284ec87f88 100644
--- a/code/game/objects/items/devices/scanners/health_analyzer.dm
+++ b/code/game/objects/items/devices/scanners/health_analyzer.dm
@@ -165,10 +165,10 @@
if(advanced)
if(HAS_TRAIT_FROM(target, TRAIT_HUSK, BURN))
/* SKYRAT EDIT START: More unhusking information */
- render_list += "Subject has been husked by severe burns. Use repairing burn damage and following up with \
+ render_list += "Subject has been husked by severe burns. Proceed by repairing burn damage and following up with \
application of [SYNTHFLESH_UNHUSK_AMOUNT]u synthflesh or injection of rezadone as treatment.\n"
else if (HAS_TRAIT_FROM(target, TRAIT_HUSK, CHANGELING_DRAIN))
- render_list += "Subject has been husked by dessication. Use applying [SYNTHFLESH_LING_UNHUSK_AMOUNT]u \
+ render_list += "Subject has been husked by dessication. Use application of [SYNTHFLESH_LING_UNHUSK_AMOUNT]u \
of synthflesh or injection of rezadone as treatment.\n"
/* SKYRAT EDIT END */
else
From 723d42122d7a25ca609e599dab88f7529a819bc6 Mon Sep 17 00:00:00 2001
From: Echriser
Date: Thu, 2 May 2024 11:08:59 -0500
Subject: [PATCH 057/107] Conveyors switches now use left and right click
(#83001)
## About The Pull Request
Replaces current switch behavior from having to spam to get between
forward, off, and reversing states to just use left and right click. It
also removes the previous toggle behavior from the circuit trigger in
favor or the forward, backwards, and stop buttons. Follow up to
suggested changes from #82857
## Why It's Good For The Game
No more spamming left click to get to the state you want, nor worrying
about what the previous direction was and not knowing which way it's
gonna go.
## Changelog
:cl:
qol: conveyors now use left and right click controls
qol: add screentips for conveyor switches
del: removes circuit conveyor circuit default trigger behavior in favor
in favor of the three state triggers
/:cl:
---
code/modules/recycling/conveyor.dm | 53 +++++++++++++++++-------------
1 file changed, 30 insertions(+), 23 deletions(-)
diff --git a/code/modules/recycling/conveyor.dm b/code/modules/recycling/conveyor.dm
index 36d73552159..6ef15929ecc 100644
--- a/code/modules/recycling/conveyor.dm
+++ b/code/modules/recycling/conveyor.dm
@@ -350,8 +350,6 @@ GLOBAL_LIST_EMPTY(conveyors_by_id)
/// The current state of the switch.
var/position = CONVEYOR_OFF
- /// Last direction setting.
- var/last_pos = CONVEYOR_BACKWARDS
/// If the switch only operates the conveyor belts in a single direction.
var/oneway = FALSE
/// If the level points the opposite direction when it's turned on.
@@ -372,6 +370,7 @@ GLOBAL_LIST_EMPTY(conveyors_by_id)
AddComponent(/datum/component/usb_port, list(
/obj/item/circuit_component/conveyor_switch,
))
+ register_context()
/obj/machinery/conveyor_switch/Destroy()
LAZYREMOVE(GLOB.conveyors_by_id[id], src)
@@ -397,6 +396,27 @@ GLOBAL_LIST_EMPTY(conveyors_by_id)
icon_state = "[base_icon_state]-[invert_icon ? "rev" : "fwd"]"
return ..()
+/obj/machinery/conveyor_switch/add_context(atom/source, list/context, obj/item/held_item, mob/user)
+ . = ..()
+ if(!held_item)
+ context[SCREENTIP_CONTEXT_LMB] = "Toggle forwards"
+ if(!oneway)
+ context[SCREENTIP_CONTEXT_RMB] = "Toggle backwards"
+ return CONTEXTUAL_SCREENTIP_SET
+ if(held_item.tool_behaviour == TOOL_MULTITOOL)
+ context[SCREENTIP_CONTEXT_LMB] = "Set speed"
+ context[SCREENTIP_CONTEXT_RMB] = "View wires"
+ return CONTEXTUAL_SCREENTIP_SET
+ if(held_item.tool_behaviour == TOOL_SCREWDRIVER)
+ context[SCREENTIP_CONTEXT_LMB] = "Toggle oneway"
+ return CONTEXTUAL_SCREENTIP_SET
+ if(held_item.tool_behaviour == TOOL_CROWBAR)
+ context[SCREENTIP_CONTEXT_LMB] = "Detach"
+ return CONTEXTUAL_SCREENTIP_SET
+ if(held_item.tool_behaviour == TOOL_WRENCH)
+ context[SCREENTIP_CONTEXT_LMB] = "Invert"
+ return CONTEXTUAL_SCREENTIP_SET
+
/// Updates all conveyor belts that are linked to this switch, and tells them to start processing.
/obj/machinery/conveyor_switch/proc/update_linked_conveyors()
for(var/obj/machinery/conveyor/belt in GLOB.conveyors_by_id[id])
@@ -414,28 +434,29 @@ GLOBAL_LIST_EMPTY(conveyors_by_id)
CHECK_TICK
/// Updates the switch's `position` and `last_pos` variable. Useful so that the switch can properly cycle between the forwards, backwards and neutral positions.
-/obj/machinery/conveyor_switch/proc/update_position()
+/obj/machinery/conveyor_switch/proc/update_position(direction)
if(position == CONVEYOR_OFF)
if(oneway) //is it a oneway switch
position = oneway
else
- if(last_pos < CONVEYOR_OFF)
+ if(direction == CONVEYOR_FORWARD)
position = CONVEYOR_FORWARD
- last_pos = CONVEYOR_OFF
else
position = CONVEYOR_BACKWARDS
- last_pos = CONVEYOR_OFF
else
- last_pos = position
position = CONVEYOR_OFF
/// Called when a user clicks on this switch with an open hand.
-/obj/machinery/conveyor_switch/interact(mob/user)
+/obj/machinery/conveyor_switch/attack_hand(mob/living/user, list/modifiers)
add_fingerprint(user)
- update_position()
+ if(LAZYACCESS(modifiers, RIGHT_CLICK))
+ update_position(CONVEYOR_BACKWARDS)
+ else
+ update_position(CONVEYOR_FORWARD)
update_appearance()
update_linked_conveyors()
update_linked_switches()
+ return TRUE
/obj/machinery/conveyor_switch/attackby(obj/item/attacking_item, mob/user, params)
if(is_wire_tool(attacking_item))
@@ -588,7 +609,6 @@ GLOBAL_LIST_EMPTY(conveyors_by_id)
/obj/item/circuit_component/conveyor_switch
display_name = "Conveyor Switch"
desc = "Allows to control connected conveyor belts."
- circuit_flags = CIRCUIT_FLAG_INPUT_SIGNAL
/// Direction input ports.
var/datum/port/input/stop
@@ -619,12 +639,6 @@ GLOBAL_LIST_EMPTY(conveyors_by_id)
attached_switch = null
return ..()
-/obj/item/circuit_component/conveyor_switch/input_received(datum/port/input/port)
- if(!attached_switch)
- return
-
- INVOKE_ASYNC(src, PROC_REF(update_conveyors), port)
-
/obj/item/circuit_component/conveyor_switch/proc/on_switch_changed()
attached_switch.update_appearance()
attached_switch.update_linked_conveyors()
@@ -646,13 +660,6 @@ GLOBAL_LIST_EMPTY(conveyors_by_id)
attached_switch.position = CONVEYOR_BACKWARDS
INVOKE_ASYNC(src, PROC_REF(on_switch_changed))
-/obj/item/circuit_component/conveyor_switch/proc/update_conveyors(datum/port/input/port)
- if(!attached_switch)
- return
-
- attached_switch.update_position()
- INVOKE_ASYNC(src, PROC_REF(on_switch_changed))
-
#undef CONVEYOR_BACKWARDS
#undef CONVEYOR_OFF
#undef CONVEYOR_FORWARD
From 9f9ef7288d9e41b93a1f550296cd3c57eb0c453a Mon Sep 17 00:00:00 2001
From: Zenog400 <41298161+Zenog400@users.noreply.github.com>
Date: Thu, 2 May 2024 09:28:11 -0700
Subject: [PATCH 059/107] More Machine Blessing Options (#82606)
## About The Pull Request
Adds more implants to the pool that the Machine Blessing rite can draw
from, and rebalances the drop rates so that you're more likely to get
thematically-consistent implants.
## Why It's Good For The Game
Currently, the options for what the Machine Blessing rite can give you
are kinda garbage, considering that _one_ implant from the rite is the
same value as _two_ full species conversions. This adds a few more that
are actually useful.
Specific implants added:
- Combat arm (extremely low drop rate)
- Tool arm (higher drop rate)
- Reviver implant (lower drop rate)
- Anti-drop implant
- Anti-stun implant (significantly lower drop rate)
- Welding eyes
Additionally, slightly lowers the drop rate of the breathing tube
implant, because androids don't have lungs
## Changelog
:cl:
add: increased the size of the pool that Machine Blessing draws from
balance: weighted some of the implants that Machine Blessing can give
/:cl:
---------
Co-authored-by: Jacquerel
---
code/modules/religion/rites.dm | 30 +++++++++++++++++++++++++-----
1 file changed, 25 insertions(+), 5 deletions(-)
diff --git a/code/modules/religion/rites.dm b/code/modules/religion/rites.dm
index d907191c33d..fa7d31c3249 100644
--- a/code/modules/religion/rites.dm
+++ b/code/modules/religion/rites.dm
@@ -128,13 +128,33 @@
/datum/religion_rites/machine_blessing/invoke_effect(mob/living/user, atom/movable/religious_tool)
..()
var/altar_turf = get_turf(religious_tool)
- var/blessing = pick(
- /obj/item/organ/internal/cyberimp/arm/surgery,
+ var/arm = list(
+ /obj/item/organ/internal/cyberimp/arm/combat,
+ /obj/item/organ/internal/cyberimp/arm/surgery = 1000000,
+ /obj/item/organ/internal/cyberimp/arm/toolset = 1500000
+ )
+ var/eyes = list(
/obj/item/organ/internal/cyberimp/eyes/hud/diagnostic,
/obj/item/organ/internal/cyberimp/eyes/hud/medical,
- /obj/item/organ/internal/cyberimp/mouth/breathing_tube,
- /obj/item/organ/internal/cyberimp/chest/thrusters,
- /obj/item/organ/internal/eyes/robotic/glow,
+ /obj/item/organ/internal/eyes/robotic/shield = 2,
+ /obj/item/organ/internal/eyes/robotic/glow
+ )
+ var/chest = list(
+ /obj/item/organ/internal/cyberimp/chest/reviver,
+ /obj/item/organ/internal/cyberimp/chest/thrusters = 2
+ )
+ var/head = list(
+ /obj/item/organ/internal/cyberimp/brain/anti_drop = 100,
+ /obj/item/organ/internal/cyberimp/brain/anti_stun = 10
+ )
+ var/blessing = pick_weight_recursive(
+ list(
+ arm = 15,
+ eyes = 15,
+ chest = 9,
+ head = 10,
+ /obj/item/organ/internal/cyberimp/mouth/breathing_tube = 5,
+ )
)
new blessing(altar_turf)
return TRUE
From cc6a41a5927e876a14f584c40f931590a04e6aa3 Mon Sep 17 00:00:00 2001
From: VrazzleDazzle
Date: Thu, 2 May 2024 18:59:59 +0200
Subject: [PATCH 061/107] Update chem_master.dm
---
code/modules/reagents/chemistry/machinery/chem_master.dm | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/code/modules/reagents/chemistry/machinery/chem_master.dm b/code/modules/reagents/chemistry/machinery/chem_master.dm
index e7bb73d29f2..7013c9bdb96 100644
--- a/code/modules/reagents/chemistry/machinery/chem_master.dm
+++ b/code/modules/reagents/chemistry/machinery/chem_master.dm
@@ -174,6 +174,8 @@
CAT_TUBES = GLOB.reagent_containers[CAT_TUBES],
CAT_PILLS = GLOB.reagent_containers[CAT_PILLS],
CAT_PATCHES = GLOB.reagent_containers[CAT_PATCHES],
+ CAT_HYPOS = GLOB.reagent_containers[CAT_HYPOS], // SKYRAT EDIT
+ CAT_DARTS = GLOB.reagent_containers[CAT_DARTS], // SKYRAT EDIT
)
return containers
@@ -488,6 +490,10 @@
item_name_default = "[master_reagent.name] [item_name_default]"
if(!(initial(selected_container.reagent_flags) & OPENCONTAINER)) // Closed containers get both reagent name and units in the name
item_name_default = "[master_reagent.name] [item_name_default] ([volume_in_each]u)"
+ // SKYRAT EDIT ADDITION START - Autonamed hyposprays/smartdarts
+ if(ispath(selected_container, /obj/item/reagent_containers/cup/vial) || ispath(selected_container, /obj/item/reagent_containers/syringe/smartdart))
+ item_name_default = "[master_reagent.name] [item_name_default]"
+ // SKYRAT EDIT ADDITION END
var/item_name = tgui_input_text(usr,
"Container name",
"Name",
From 13a2c03764276d6db1f5a00c5dc9b2853e16547d Mon Sep 17 00:00:00 2001
From: SkyratBot <59378654+SkyratBot@users.noreply.github.com>
Date: Fri, 3 May 2024 00:21:21 +0200
Subject: [PATCH 062/107] Automatic changelog for PR #27564 [ci skip]
---
html/changelogs/AutoChangeLog-pr-27564.yml | 4 ++++
1 file changed, 4 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-27564.yml
diff --git a/html/changelogs/AutoChangeLog-pr-27564.yml b/html/changelogs/AutoChangeLog-pr-27564.yml
new file mode 100644
index 00000000000..4787b05da95
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-27564.yml
@@ -0,0 +1,4 @@
+author: "SpaceLoveSs13"
+delete-after: True
+changes:
+ - rscadd: "Fragile now has customization for damage from 1.2x to 5x modifier."
\ No newline at end of file
From e629da0fab7736c5ed5da7e3938f81d3333a2f3e Mon Sep 17 00:00:00 2001
From: SkyratBot <59378654+SkyratBot@users.noreply.github.com>
Date: Fri, 3 May 2024 00:22:32 +0200
Subject: [PATCH 063/107] Automatic changelog for PR #27566 [ci skip]
---
html/changelogs/AutoChangeLog-pr-27566.yml | 4 ++++
1 file changed, 4 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-27566.yml
diff --git a/html/changelogs/AutoChangeLog-pr-27566.yml b/html/changelogs/AutoChangeLog-pr-27566.yml
new file mode 100644
index 00000000000..8ee216f39d7
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-27566.yml
@@ -0,0 +1,4 @@
+author: "Majkl-J"
+delete-after: True
+changes:
+ - bugfix: "Synth computers no longer force open the messenger app"
\ No newline at end of file
From 0b41c89ba5ace67efd6786f263a77d3a92e6eb8f Mon Sep 17 00:00:00 2001
From: SkyratBot <59378654+SkyratBot@users.noreply.github.com>
Date: Fri, 3 May 2024 01:14:49 +0200
Subject: [PATCH 064/107] Automatic changelog for PR #27565 [ci skip]
---
html/changelogs/AutoChangeLog-pr-27565.yml | 4 ++++
1 file changed, 4 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-27565.yml
diff --git a/html/changelogs/AutoChangeLog-pr-27565.yml b/html/changelogs/AutoChangeLog-pr-27565.yml
new file mode 100644
index 00000000000..30e77d04423
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-27565.yml
@@ -0,0 +1,4 @@
+author: "SpaceLoveSs13"
+delete-after: True
+changes:
+ - bugfix: "Interlink Arrivals shuttles have tiny fans for air support!"
\ No newline at end of file
From e7c4d103f503f956f293df6c36382dbd9e195d9d Mon Sep 17 00:00:00 2001
From: SkyratBot <59378654+SkyratBot@users.noreply.github.com>
Date: Fri, 3 May 2024 01:55:26 +0200
Subject: [PATCH 065/107] Automatic changelog for PR #27567 [ci skip]
---
html/changelogs/AutoChangeLog-pr-27567.yml | 4 ++++
1 file changed, 4 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-27567.yml
diff --git a/html/changelogs/AutoChangeLog-pr-27567.yml b/html/changelogs/AutoChangeLog-pr-27567.yml
new file mode 100644
index 00000000000..c5c02ffc98a
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-27567.yml
@@ -0,0 +1,4 @@
+author: "SkyratBot"
+delete-after: True
+changes:
+ - image: "added directional sprites for radiation shutters"
\ No newline at end of file
From 46e96cd8c3ab0fb8653498b372ee29e8ca79504f Mon Sep 17 00:00:00 2001
From: SkyratBot <59378654+SkyratBot@users.noreply.github.com>
Date: Fri, 3 May 2024 01:56:37 +0200
Subject: [PATCH 066/107] Automatic changelog for PR #27568 [ci skip]
---
html/changelogs/AutoChangeLog-pr-27568.yml | 4 ++++
1 file changed, 4 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-27568.yml
diff --git a/html/changelogs/AutoChangeLog-pr-27568.yml b/html/changelogs/AutoChangeLog-pr-27568.yml
new file mode 100644
index 00000000000..9f83d3995fc
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-27568.yml
@@ -0,0 +1,4 @@
+author: "Majkl-J"
+delete-after: True
+changes:
+ - qol: "Health analyzers now include basic information on treatment of husked bodies."
\ No newline at end of file
From ecf552fa6074e1c71985636e4ea9dcc3631a55c6 Mon Sep 17 00:00:00 2001
From: SkyratBot <59378654+SkyratBot@users.noreply.github.com>
Date: Fri, 3 May 2024 01:57:28 +0200
Subject: [PATCH 067/107] Automatic changelog for PR #27569 [ci skip]
---
html/changelogs/AutoChangeLog-pr-27569.yml | 6 ++++++
1 file changed, 6 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-27569.yml
diff --git a/html/changelogs/AutoChangeLog-pr-27569.yml b/html/changelogs/AutoChangeLog-pr-27569.yml
new file mode 100644
index 00000000000..93633cf4694
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-27569.yml
@@ -0,0 +1,6 @@
+author: "SkyratBot"
+delete-after: True
+changes:
+ - qol: "conveyors now use left and right click controls"
+ - qol: "add screentips for conveyor switches"
+ - rscdel: "removes circuit conveyor circuit default trigger behavior in favor in favor of the three state triggers"
\ No newline at end of file
From b8e09ed21bb7e52168853cec90def632faec58e8 Mon Sep 17 00:00:00 2001
From: SkyratBot <59378654+SkyratBot@users.noreply.github.com>
Date: Fri, 3 May 2024 02:07:35 +0200
Subject: [PATCH 068/107] Automatic changelog for PR #27570 [ci skip]
---
html/changelogs/AutoChangeLog-pr-27570.yml | 5 +++++
1 file changed, 5 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-27570.yml
diff --git a/html/changelogs/AutoChangeLog-pr-27570.yml b/html/changelogs/AutoChangeLog-pr-27570.yml
new file mode 100644
index 00000000000..3bd96b35676
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-27570.yml
@@ -0,0 +1,5 @@
+author: "SkyratBot"
+delete-after: True
+changes:
+ - rscadd: "increased the size of the pool that Machine Blessing draws from"
+ - balance: "weighted some of the implants that Machine Blessing can give"
\ No newline at end of file
From f1ba642e68096230900ed3b93fd4e31a2a15072d Mon Sep 17 00:00:00 2001
From: Changelogs
Date: Fri, 3 May 2024 00:36:39 +0000
Subject: [PATCH 069/107] Automatic changelog compile [ci skip]
---
html/changelogs/AutoChangeLog-pr-27558.yml | 4 ---
html/changelogs/AutoChangeLog-pr-27559.yml | 5 ----
html/changelogs/AutoChangeLog-pr-27560.yml | 7 ------
html/changelogs/AutoChangeLog-pr-27562.yml | 5 ----
html/changelogs/AutoChangeLog-pr-27563.yml | 4 ---
html/changelogs/AutoChangeLog-pr-27564.yml | 4 ---
html/changelogs/AutoChangeLog-pr-27565.yml | 4 ---
html/changelogs/AutoChangeLog-pr-27566.yml | 4 ---
html/changelogs/AutoChangeLog-pr-27567.yml | 4 ---
html/changelogs/AutoChangeLog-pr-27568.yml | 4 ---
html/changelogs/AutoChangeLog-pr-27569.yml | 6 -----
html/changelogs/AutoChangeLog-pr-27570.yml | 5 ----
html/changelogs/archive/2024-05.yml | 29 ++++++++++++++++++++++
13 files changed, 29 insertions(+), 56 deletions(-)
delete mode 100644 html/changelogs/AutoChangeLog-pr-27558.yml
delete mode 100644 html/changelogs/AutoChangeLog-pr-27559.yml
delete mode 100644 html/changelogs/AutoChangeLog-pr-27560.yml
delete mode 100644 html/changelogs/AutoChangeLog-pr-27562.yml
delete mode 100644 html/changelogs/AutoChangeLog-pr-27563.yml
delete mode 100644 html/changelogs/AutoChangeLog-pr-27564.yml
delete mode 100644 html/changelogs/AutoChangeLog-pr-27565.yml
delete mode 100644 html/changelogs/AutoChangeLog-pr-27566.yml
delete mode 100644 html/changelogs/AutoChangeLog-pr-27567.yml
delete mode 100644 html/changelogs/AutoChangeLog-pr-27568.yml
delete mode 100644 html/changelogs/AutoChangeLog-pr-27569.yml
delete mode 100644 html/changelogs/AutoChangeLog-pr-27570.yml
diff --git a/html/changelogs/AutoChangeLog-pr-27558.yml b/html/changelogs/AutoChangeLog-pr-27558.yml
deleted file mode 100644
index eecba8d4baf..00000000000
--- a/html/changelogs/AutoChangeLog-pr-27558.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "nikothedude"
-delete-after: True
-changes:
- - bugfix: "Jousting no longer bypasses pacifism"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-27559.yml b/html/changelogs/AutoChangeLog-pr-27559.yml
deleted file mode 100644
index c6f0f76fc6a..00000000000
--- a/html/changelogs/AutoChangeLog-pr-27559.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "SkyratBot"
-delete-after: True
-changes:
- - bugfix: "the civilian bounty control terminal displays the payout of new bounty options again"
- - qol: "the civilian bounty control terminal displays the description of new bounty options"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-27560.yml b/html/changelogs/AutoChangeLog-pr-27560.yml
deleted file mode 100644
index b19efb8134b..00000000000
--- a/html/changelogs/AutoChangeLog-pr-27560.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-author: "Melbert"
-delete-after: True
-changes:
- - admin: "Custom Single and Custom Multi votes are now combined into one vote"
- - admin: "Admins can now end votes instantly, rather than cancelling them"
- - admin: "Admins can now reset the vote cooldown"
- - bugfix: "Vote cooldown actually applies now"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-27562.yml b/html/changelogs/AutoChangeLog-pr-27562.yml
deleted file mode 100644
index 0e020a01f71..00000000000
--- a/html/changelogs/AutoChangeLog-pr-27562.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "SkyratBot"
-delete-after: True
-changes:
- - bugfix: "fix runtime when no events were drafted to be picked from"
- - config: "make events frequency configurable"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-27563.yml b/html/changelogs/AutoChangeLog-pr-27563.yml
deleted file mode 100644
index caa7dca7488..00000000000
--- a/html/changelogs/AutoChangeLog-pr-27563.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "SkyratBot"
-delete-after: True
-changes:
- - qol: "You can now quickly stamp papers with a right click"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-27564.yml b/html/changelogs/AutoChangeLog-pr-27564.yml
deleted file mode 100644
index 4787b05da95..00000000000
--- a/html/changelogs/AutoChangeLog-pr-27564.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "SpaceLoveSs13"
-delete-after: True
-changes:
- - rscadd: "Fragile now has customization for damage from 1.2x to 5x modifier."
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-27565.yml b/html/changelogs/AutoChangeLog-pr-27565.yml
deleted file mode 100644
index 30e77d04423..00000000000
--- a/html/changelogs/AutoChangeLog-pr-27565.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "SpaceLoveSs13"
-delete-after: True
-changes:
- - bugfix: "Interlink Arrivals shuttles have tiny fans for air support!"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-27566.yml b/html/changelogs/AutoChangeLog-pr-27566.yml
deleted file mode 100644
index 8ee216f39d7..00000000000
--- a/html/changelogs/AutoChangeLog-pr-27566.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Majkl-J"
-delete-after: True
-changes:
- - bugfix: "Synth computers no longer force open the messenger app"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-27567.yml b/html/changelogs/AutoChangeLog-pr-27567.yml
deleted file mode 100644
index c5c02ffc98a..00000000000
--- a/html/changelogs/AutoChangeLog-pr-27567.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "SkyratBot"
-delete-after: True
-changes:
- - image: "added directional sprites for radiation shutters"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-27568.yml b/html/changelogs/AutoChangeLog-pr-27568.yml
deleted file mode 100644
index 9f83d3995fc..00000000000
--- a/html/changelogs/AutoChangeLog-pr-27568.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Majkl-J"
-delete-after: True
-changes:
- - qol: "Health analyzers now include basic information on treatment of husked bodies."
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-27569.yml b/html/changelogs/AutoChangeLog-pr-27569.yml
deleted file mode 100644
index 93633cf4694..00000000000
--- a/html/changelogs/AutoChangeLog-pr-27569.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-author: "SkyratBot"
-delete-after: True
-changes:
- - qol: "conveyors now use left and right click controls"
- - qol: "add screentips for conveyor switches"
- - rscdel: "removes circuit conveyor circuit default trigger behavior in favor in favor of the three state triggers"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-27570.yml b/html/changelogs/AutoChangeLog-pr-27570.yml
deleted file mode 100644
index 3bd96b35676..00000000000
--- a/html/changelogs/AutoChangeLog-pr-27570.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: "SkyratBot"
-delete-after: True
-changes:
- - rscadd: "increased the size of the pool that Machine Blessing draws from"
- - balance: "weighted some of the implants that Machine Blessing can give"
\ No newline at end of file
diff --git a/html/changelogs/archive/2024-05.yml b/html/changelogs/archive/2024-05.yml
index bec139f50a5..f34acb64002 100644
--- a/html/changelogs/archive/2024-05.yml
+++ b/html/changelogs/archive/2024-05.yml
@@ -77,3 +77,32 @@
less energy than intended.
- bugfix: Monkeys can no longer be knocked over by walking into a windoor on combat
mode while they're behind it.
+2024-05-03:
+ Majkl-J:
+ - qol: Health analyzers now include basic information on treatment of husked bodies.
+ - bugfix: Synth computers no longer force open the messenger app
+ Melbert:
+ - admin: Custom Single and Custom Multi votes are now combined into one vote
+ - admin: Admins can now end votes instantly, rather than cancelling them
+ - admin: Admins can now reset the vote cooldown
+ - bugfix: Vote cooldown actually applies now
+ SkyratBot:
+ - qol: You can now quickly stamp papers with a right click
+ - image: added directional sprites for radiation shutters
+ - bugfix: the civilian bounty control terminal displays the payout of new bounty
+ options again
+ - qol: the civilian bounty control terminal displays the description of new bounty
+ options
+ - qol: conveyors now use left and right click controls
+ - qol: add screentips for conveyor switches
+ - rscdel: removes circuit conveyor circuit default trigger behavior in favor in
+ favor of the three state triggers
+ - bugfix: fix runtime when no events were drafted to be picked from
+ - config: make events frequency configurable
+ - rscadd: increased the size of the pool that Machine Blessing draws from
+ - balance: weighted some of the implants that Machine Blessing can give
+ SpaceLoveSs13:
+ - rscadd: Fragile now has customization for damage from 1.2x to 5x modifier.
+ - bugfix: Interlink Arrivals shuttles have tiny fans for air support!
+ nikothedude:
+ - bugfix: Jousting no longer bypasses pacifism
From d790195c073f5c8ca94e418334d3a96391065a1e Mon Sep 17 00:00:00 2001
From: Ikalpo
Date: Thu, 2 May 2024 18:57:01 -0700
Subject: [PATCH 070/107] 13 year old singularity bug fixed (#83005)
## About The Pull Request
Stage 2 singularities have the wrong step size, allowing them to eat the
containment field if they happen to be right next to it.
(For instance, if they are contained in a 3x3 or 4x4 field)
2 lines of code, and that's fixed.
## Why It's Good For The Game
BEFORE
https://github.com/tgstation/tgstation/assets/23534908/821f43f6-85ca-482b-a905-614f2b1c8359
AFTER
https://github.com/tgstation/tgstation/assets/23534908/4580d23a-41f0-4485-8454-4e991aa38344
## The Source
This was introduced in a googlecode commit in 2011:
https://github.com/tgstation/tgstation/blob/337be2c3bcc7a739ffc927ccce9d6aa2b43c114c/code/modules/power/singularity/singularity.dm#L269
No, mport2004, I *don't* think this is right.
## Changelog
:cl:
fix: Stage 2 singularities should no longer escape containment
/:cl:
---
code/datums/components/singularity.dm | 2 +-
code/modules/power/singularity/singularity.dm | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/code/datums/components/singularity.dm b/code/datums/components/singularity.dm
index 56a6723f21f..14aaedff717 100644
--- a/code/datums/components/singularity.dm
+++ b/code/datums/components/singularity.dm
@@ -286,7 +286,7 @@
if (STAGE_ONE)
steps = 1
if (STAGE_TWO)
- steps = 3//Yes this is right
+ steps = 2
if (STAGE_THREE)
steps = 3
if (STAGE_FOUR)
diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm
index d47d7536094..74b7bfdbcdc 100644
--- a/code/modules/power/singularity/singularity.dm
+++ b/code/modules/power/singularity/singularity.dm
@@ -340,7 +340,7 @@
if(STAGE_ONE)
steps = 1
if(STAGE_TWO)
- steps = 3//Yes this is right
+ steps = 2
if(STAGE_THREE)
steps = 3
if(STAGE_FOUR)
From 18d8ba4d3ec6707ff6de5b8b8771b011910aedca Mon Sep 17 00:00:00 2001
From: Kyle Spier-Swenson
Date: Thu, 2 May 2024 18:56:38 -0700
Subject: [PATCH 072/107] Bump supported client api version to 515 (#83011)
---
.github/max_required_byond_client.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/max_required_byond_client.txt b/.github/max_required_byond_client.txt
index faf8058076a..bd10125cce9 100644
--- a/.github/max_required_byond_client.txt
+++ b/.github/max_required_byond_client.txt
@@ -5,4 +5,4 @@
# (Requiring clients update to connect to the game server is not something we like to spring on them with no notice,
# especially for beta builds where the pager/updater won't let them update without additional configuration.)
-514
+515
From 328326c42665f260e54fa370c60556e12e59c72d Mon Sep 17 00:00:00 2001
From: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Date: Thu, 2 May 2024 21:02:30 -0500
Subject: [PATCH 074/107] Fix warning on master (#83014)
## Changelog
:cl: Melbert
fix: New machine god blessings now actually works probably
/:cl:
---
code/modules/religion/rites.dm | 55 ++++++++++++++++++----------------
1 file changed, 29 insertions(+), 26 deletions(-)
diff --git a/code/modules/religion/rites.dm b/code/modules/religion/rites.dm
index fa7d31c3249..d7d0fa81844 100644
--- a/code/modules/religion/rites.dm
+++ b/code/modules/religion/rites.dm
@@ -128,33 +128,36 @@
/datum/religion_rites/machine_blessing/invoke_effect(mob/living/user, atom/movable/religious_tool)
..()
var/altar_turf = get_turf(religious_tool)
- var/arm = list(
- /obj/item/organ/internal/cyberimp/arm/combat,
- /obj/item/organ/internal/cyberimp/arm/surgery = 1000000,
- /obj/item/organ/internal/cyberimp/arm/toolset = 1500000
- )
- var/eyes = list(
- /obj/item/organ/internal/cyberimp/eyes/hud/diagnostic,
- /obj/item/organ/internal/cyberimp/eyes/hud/medical,
- /obj/item/organ/internal/eyes/robotic/shield = 2,
- /obj/item/organ/internal/eyes/robotic/glow
- )
- var/chest = list(
- /obj/item/organ/internal/cyberimp/chest/reviver,
- /obj/item/organ/internal/cyberimp/chest/thrusters = 2
- )
- var/head = list(
- /obj/item/organ/internal/cyberimp/brain/anti_drop = 100,
- /obj/item/organ/internal/cyberimp/brain/anti_stun = 10
- )
var/blessing = pick_weight_recursive(
- list(
- arm = 15,
- eyes = 15,
- chest = 9,
- head = 10,
- /obj/item/organ/internal/cyberimp/mouth/breathing_tube = 5,
- )
+ list(
+ // Arms
+ list(
+ /obj/item/organ/internal/cyberimp/arm/combat = 1,
+ /obj/item/organ/internal/cyberimp/arm/surgery = 1000000,
+ /obj/item/organ/internal/cyberimp/arm/toolset = 1500000,
+ ) = 15,
+ // Eyes
+ list(
+ /obj/item/organ/internal/cyberimp/eyes/hud/diagnostic = 1,
+ /obj/item/organ/internal/cyberimp/eyes/hud/medical = 1,
+ /obj/item/organ/internal/eyes/robotic/glow = 1,
+ /obj/item/organ/internal/eyes/robotic/shield = 2,
+ ) = 15,
+ // Chest
+ list(
+ /obj/item/organ/internal/cyberimp/chest/reviver = 1,
+ /obj/item/organ/internal/cyberimp/chest/thrusters = 2,
+ ) = 9,
+ // Brain / Head
+ list(
+ /obj/item/organ/internal/cyberimp/brain/anti_drop = 100,
+ /obj/item/organ/internal/cyberimp/brain/anti_stun = 10,
+ ) = 10,
+ // Misc
+ list(
+ /obj/item/organ/internal/cyberimp/mouth/breathing_tube = 1,
+ ) = 5,
+ )
)
new blessing(altar_turf)
return TRUE
From 7ae9d120f1f0b080e9139395bb1bd37ebb1ba27c Mon Sep 17 00:00:00 2001
From: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
Date: Thu, 2 May 2024 22:03:41 -0400
Subject: [PATCH 076/107] Pacifists can no longer endlessly spam rocket
launcher backblasts (#82992)
## About The Pull Request
Fixes: #82990
Backblasts from a rocket launcher are often the last thing an untrained
person thinks of when they fire a rocket launcher. I did not consider
the moral stance of pacifists who nevertheless try to shoot rocket
launchers when I implemented rocket launcher backblast, because
currently pacifists trying to shoot a loaded rocket launcher can spam
backblast as much as they want, even if they aren't able to actually
shoot.
This PR filters out pacifists before they trigger the backblast, to make
sure only actual live shots deliver the hellpayload to their allies
behind them.
## Why It's Good For The Game
A magical reverse flamethrower with no ammo limit (because at no point
is the rocket in the chamber actually expended when a pacifist fails to
fire it) is bad. A weapon as destructive as that left solely in the
hands of pacifists is even worse.
## Changelog
:cl: Ryll/Shaps
fix: Pacifists can no longer endlessly spam the backblast functionality
of loaded rocket launchers that they cannot actually fire
/:cl:
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
---
code/datums/elements/backblast.dm | 3 +++
1 file changed, 3 insertions(+)
diff --git a/code/datums/elements/backblast.dm b/code/datums/elements/backblast.dm
index 8952afbfeaa..f5e73977159 100644
--- a/code/datums/elements/backblast.dm
+++ b/code/datums/elements/backblast.dm
@@ -38,6 +38,9 @@
/// For firing an actual backblast pellet
/datum/element/backblast/proc/pew(obj/item/gun/weapon, mob/living/user, atom/target)
+ if(HAS_TRAIT(user, TRAIT_PACIFISM))
+ return
+
var/turf/origin = get_turf(weapon)
var/backblast_angle = get_angle(target, origin)
explosion(weapon, devastation_range = dev_range, heavy_impact_range = heavy_range, light_impact_range = light_range, flame_range = flame_range, adminlog = FALSE, protect_epicenter = TRUE, explosion_direction = backblast_angle, explosion_arc = blast_angle)
From 649f2f9eaa16e2bf4171e2a246c5b9cce19df619 Mon Sep 17 00:00:00 2001
From: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
Date: Fri, 3 May 2024 05:03:19 +0300
Subject: [PATCH 078/107] fixes a few problems in ai targetting (#82998)
## About The Pull Request
fixes #82964 , fixes #82866
## Why It's Good For The Game
fixes several problems with ai targetting. this pr resolves civil war
that was brewing between several mobs. also fixes a major problem where
mobs would only search for targets and not perform any other behaviors.
also fixes a small problem where mobs would constantly stop and start
while chasing targets
## Changelog
:cl:
fix: mobs in the same faction will no longer be at odds against one
another
fix: mobs can now perform behaviors alongside searching for targets
fix: mobs will no longer be starting and stopping when chasing targets
/:cl:
---
code/datums/ai/_ai_controller.dm | 8 ++++++--
code/datums/ai/basic_mobs/basic_ai_behaviors/targeting.dm | 3 ++-
.../ai/basic_mobs/basic_subtrees/capricious_retaliate.dm | 1 +
.../ai/basic_mobs/basic_subtrees/target_retaliate.dm | 5 +----
4 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/code/datums/ai/_ai_controller.dm b/code/datums/ai/_ai_controller.dm
index 309be508783..35615c6704c 100644
--- a/code/datums/ai/_ai_controller.dm
+++ b/code/datums/ai/_ai_controller.dm
@@ -172,9 +172,13 @@ multiple modular subtrees with behaviors
return FALSE
return TRUE
-/datum/ai_controller/proc/recalculate_idle()
+/datum/ai_controller/proc/recalculate_idle(datum/exited)
if(ai_status == AI_STATUS_OFF)
return
+
+ if(exited && (get_dist(pawn, (islist(exited) ? exited[1] : exited)) <= interesting_dist)) //is our target in between interesting cells?
+ return
+
if(should_idle())
set_ai_status(AI_STATUS_IDLE)
@@ -187,7 +191,7 @@ multiple modular subtrees with behaviors
/datum/ai_controller/proc/on_client_exit(datum/source, datum/exited)
SIGNAL_HANDLER
- recalculate_idle()
+ recalculate_idle(exited)
/// Sets the AI on or off based on current conditions, call to reset after you've manually disabled it somewhere
/datum/ai_controller/proc/reset_ai_status()
diff --git a/code/datums/ai/basic_mobs/basic_ai_behaviors/targeting.dm b/code/datums/ai/basic_mobs/basic_ai_behaviors/targeting.dm
index f0ee4bb9bba..4cf04039e85 100644
--- a/code/datums/ai/basic_mobs/basic_ai_behaviors/targeting.dm
+++ b/code/datums/ai/basic_mobs/basic_ai_behaviors/targeting.dm
@@ -7,6 +7,7 @@ GLOBAL_LIST_INIT(target_interested_atoms, typecacheof(list(/mob, /obj/machinery/
/datum/ai_behavior/find_potential_targets
action_cooldown = 2 SECONDS
+ behavior_flags = AI_BEHAVIOR_CAN_PLAN_DURING_EXECUTION
/// How far can we see stuff?
var/vision_range = 9
/// Blackboard key for aggro range, uses vision range if not specified
@@ -34,7 +35,7 @@ GLOBAL_LIST_INIT(target_interested_atoms, typecacheof(list(/mob, /obj/machinery/
// If we're using a field rn, just don't do anything yeah?
if(controller.blackboard[BB_FIND_TARGETS_FIELD(type)])
- return
+ return AI_BEHAVIOR_DELAY | AI_BEHAVIOR_FAILED
var/list/potential_targets = hearers(aggro_range, get_turf(controller.pawn)) - living_mob //Remove self, so we don't suicide
diff --git a/code/datums/ai/basic_mobs/basic_subtrees/capricious_retaliate.dm b/code/datums/ai/basic_mobs/basic_subtrees/capricious_retaliate.dm
index a4fc49facc0..52b19036b9a 100644
--- a/code/datums/ai/basic_mobs/basic_subtrees/capricious_retaliate.dm
+++ b/code/datums/ai/basic_mobs/basic_subtrees/capricious_retaliate.dm
@@ -21,6 +21,7 @@
return AI_BEHAVIOR_DELAY | AI_BEHAVIOR_SUCCEEDED
pawn.visible_message(span_notice("[pawn] calms down.")) // We can blackboard key this if anyone else actually wants to customise it
controller.clear_blackboard_key(BB_BASIC_MOB_RETALIATE_LIST)
+ controller.clear_blackboard_key(BB_BASIC_MOB_CURRENT_TARGET)
controller.CancelActions() // Otherwise they will try and get one last kick in
return AI_BEHAVIOR_DELAY
diff --git a/code/datums/ai/basic_mobs/basic_subtrees/target_retaliate.dm b/code/datums/ai/basic_mobs/basic_subtrees/target_retaliate.dm
index d327b1047cf..042ccb2310c 100644
--- a/code/datums/ai/basic_mobs/basic_subtrees/target_retaliate.dm
+++ b/code/datums/ai/basic_mobs/basic_subtrees/target_retaliate.dm
@@ -11,7 +11,6 @@
var/check_faction = FALSE
/datum/ai_planning_subtree/target_retaliate/SelectBehaviors(datum/ai_controller/controller, seconds_per_tick)
- . = ..()
controller.queue_behavior(/datum/ai_behavior/target_from_retaliate_list, BB_BASIC_MOB_RETALIATE_LIST, target_key, targeting_strategy_key, hiding_place_key, check_faction)
/datum/ai_planning_subtree/target_retaliate/check_faction
@@ -35,7 +34,6 @@
var/vision_range = 9
/datum/ai_behavior/target_from_retaliate_list/perform(seconds_per_tick, datum/ai_controller/controller, shitlist_key, target_key, targeting_strategy_key, hiding_location_key, check_faction)
- . = ..()
var/mob/living/living_mob = controller.pawn
var/datum/targeting_strategy/targeting_strategy = GET_TARGETING_STRATEGY(controller.blackboard[targeting_strategy_key])
if(!targeting_strategy)
@@ -58,7 +56,6 @@
enemies_list += potential_target
if(!length(enemies_list))
- controller.clear_blackboard_key(target_key)
return AI_BEHAVIOR_DELAY | AI_BEHAVIOR_FAILED
var/atom/new_target = pick_final_target(controller, enemies_list)
@@ -75,7 +72,7 @@
/datum/ai_behavior/target_from_retaliate_list/proc/pick_final_target(datum/ai_controller/controller, list/enemies_list)
return pick(enemies_list)
-/datum/ai_behavior/target_from_retaliate_list/finish_action(datum/ai_controller/controller, succeeded, check_faction)
+/datum/ai_behavior/target_from_retaliate_list/finish_action(datum/ai_controller/controller, succeeded, shitlist_key, target_key, targeting_strategy_key, hiding_location_key, check_faction)
. = ..()
if (succeeded || check_faction)
return
From 438ccc1059566f7d904e2b732787b819c1081a48 Mon Sep 17 00:00:00 2001
From: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Date: Thu, 2 May 2024 20:09:30 -0700
Subject: [PATCH 080/107] Detective buff: Fixes detective's candy dispenser
(#83004)
## About The Pull Request
Alt click was broken on detective's hat. Couldn't draw candy corn, oh
no!
This issue is somewhat rightly caused from the alt click refactor, as
its aim was to prevent double interactions from one click. In this case,
both withdrawing morsels and opening storage at the same time
---
code/datums/storage/storage.dm | 18 ++++++++++++-
code/datums/storage/subtypes/pockets.dm | 1 +
code/modules/clothing/head/jobs.dm | 35 ++++++++++++++++++++-----
3 files changed, 46 insertions(+), 8 deletions(-)
diff --git a/code/datums/storage/storage.dm b/code/datums/storage/storage.dm
index b1bacfbceab..9b661688258 100644
--- a/code/datums/storage/storage.dm
+++ b/code/datums/storage/storage.dm
@@ -113,6 +113,10 @@
/// If TRUE, shows the contents of the storage in open_storage
var/display_contents = TRUE
+ /// Switch this off if you want to handle click_alt in the parent atom
+ var/click_alt_open = TRUE
+
+
/datum/storage/New(
atom/parent,
max_slots = src.max_slots,
@@ -198,7 +202,7 @@
RegisterSignal(parent, COMSIG_ATOM_ATTACKBY, PROC_REF(on_attackby))
RegisterSignal(parent, COMSIG_ITEM_PRE_ATTACK, PROC_REF(on_preattack))
RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, PROC_REF(mass_empty))
- RegisterSignals(parent, list(COMSIG_CLICK_ALT, COMSIG_ATOM_ATTACK_GHOST, COMSIG_ATOM_ATTACK_HAND_SECONDARY), PROC_REF(open_storage_on_signal))
+ RegisterSignals(parent, list(COMSIG_ATOM_ATTACK_GHOST, COMSIG_ATOM_ATTACK_HAND_SECONDARY), PROC_REF(open_storage_on_signal))
RegisterSignal(parent, COMSIG_ATOM_ATTACKBY_SECONDARY, PROC_REF(open_storage_attackby_secondary))
RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_REF(close_distance))
RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, PROC_REF(update_actions))
@@ -208,6 +212,7 @@
RegisterSignal(parent, COMSIG_OBJ_DECONSTRUCT, PROC_REF(on_deconstruct))
RegisterSignal(parent, COMSIG_ATOM_EMP_ACT, PROC_REF(on_emp_act))
RegisterSignal(parent, COMSIG_ATOM_CONTENTS_WEIGHT_CLASS_CHANGED, PROC_REF(contents_changed_w_class))
+ RegisterSignal(parent, COMSIG_CLICK_ALT, PROC_REF(on_click_alt))
/**
* Sets where items are physically being stored in the case it shouldn't be on the parent.
@@ -919,6 +924,17 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches)
if(display_contents)
return COMPONENT_NO_AFTERATTACK
+
+/// Alt click on the storage item. Default: Open the storage.
+/datum/storage/proc/on_click_alt(datum/source, mob/user)
+ SIGNAL_HANDLER
+
+ if(!click_alt_open)
+ return
+
+ return open_storage_on_signal(source, user)
+
+
/// Opens the storage to the mob, showing them the contents to their UI.
/datum/storage/proc/open_storage(mob/to_show)
if(isobserver(to_show))
diff --git a/code/datums/storage/subtypes/pockets.dm b/code/datums/storage/subtypes/pockets.dm
index 67a8b2dda78..2b100d5d323 100644
--- a/code/datums/storage/subtypes/pockets.dm
+++ b/code/datums/storage/subtypes/pockets.dm
@@ -45,6 +45,7 @@
/datum/storage/pockets/small/fedora/detective
attack_hand_interact = TRUE // so the detectives would discover pockets in their hats
+ click_alt_open = FALSE
/datum/storage/pockets/chefhat
attack_hand_interact = TRUE
diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm
index 4f5d377ddac..e0b06a5ab6e 100644
--- a/code/modules/clothing/head/jobs.dm
+++ b/code/modules/clothing/head/jobs.dm
@@ -166,6 +166,8 @@
desc = "An opulent hat that functions as a radio to God. Or as a lightning rod, depending on who you ask."
icon_state = "bishopmitre"
+#define CANDY_CD_TIME 2 MINUTES
+
//Detective
/obj/item/clothing/head/fedora/det_hat
name = "detective's fedora"
@@ -174,11 +176,12 @@
icon_state = "detective"
inhand_icon_state = "det_hat"
interaction_flags_click = NEED_DEXTERITY|NEED_HANDS|ALLOW_RESTING
- /// Cooldown for retrieving precious candy corn on alt click
- var/candy_cooldown = 0
dog_fashion = /datum/dog_fashion/head/detective
- ///Path for the flask that spawns inside their hat roundstart
+ /// Path for the flask that spawns inside their hat roundstart
var/flask_path = /obj/item/reagent_containers/cup/glass/flask/det
+ /// Cooldown for retrieving precious candy corn with rmb
+ COOLDOWN_DECLARE(candy_cooldown)
+
/datum/armor/fedora_det_hat
melee = 25
@@ -189,28 +192,46 @@
acid = 50
wound = 5
+
/obj/item/clothing/head/fedora/det_hat/Initialize(mapload)
. = ..()
create_storage(storage_type = /datum/storage/pockets/small/fedora/detective)
+ register_context()
+
new flask_path(src)
+
/obj/item/clothing/head/fedora/det_hat/examine(mob/user)
. = ..()
. += span_notice("Alt-click to take a candy corn.")
+
+/obj/item/clothing/head/fedora/det_hat/add_context(atom/source, list/context, obj/item/held_item, mob/user)
+ . = ..()
+
+ context[SCREENTIP_CONTEXT_ALT_LMB] = "Candy Time"
+
+ return CONTEXTUAL_SCREENTIP_SET
+
+
+/// Now to solve where all these keep coming from
/obj/item/clothing/head/fedora/det_hat/click_alt(mob/user)
- if(candy_cooldown >= world.time)
+ if(!COOLDOWN_FINISHED(src, candy_cooldown))
to_chat(user, span_warning("You just took a candy corn! You should wait a couple minutes, lest you burn through your stash."))
return CLICK_ACTION_BLOCKING
- var/obj/item/food/candy_corn/CC = new /obj/item/food/candy_corn(src)
- user.put_in_hands(CC)
+ var/obj/item/food/candy_corn/sweets = new /obj/item/food/candy_corn(src)
+ user.put_in_hands(sweets)
to_chat(user, span_notice("You slip a candy corn from your hat."))
- candy_cooldown = world.time+1200
+ COOLDOWN_START(src, candy_cooldown, CANDY_CD_TIME)
+
return CLICK_ACTION_SUCCESS
+
+#undef CANDY_CD_TIME
+
/obj/item/clothing/head/fedora/det_hat/minor
flask_path = /obj/item/reagent_containers/cup/glass/flask/det/minor
From a512644e8ba68cf4661ad73ef611edc0b1d09cba Mon Sep 17 00:00:00 2001
From: mogeoko <109075486+mogeoko@users.noreply.github.com>
Date: Fri, 3 May 2024 06:05:41 +0200
Subject: [PATCH 082/107] [NO GBP] Multiz deck revert (#82996)
## About The Pull Request
I've probably did unnecessary things in my old PR and it made a little
problem for larvas. Now I revert my mistakes so they can feel great
again.
Partially reverts #81452, fixes
https://github.com/tgstation/tgstation/pull/82996
## Why It's Good For The Game
Larvas can change Z levels using multiz-deck again. Is good or at least
I hope so.
## Changelog
:cl: mogeoko
fix: Ventcrawling mobs can change Z-level using multiz-decks again.
/:cl:
---
code/modules/atmospherics/machinery/atmosmachinery.dm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/code/modules/atmospherics/machinery/atmosmachinery.dm b/code/modules/atmospherics/machinery/atmosmachinery.dm
index d152cf09e71..fa8b8332345 100644
--- a/code/modules/atmospherics/machinery/atmosmachinery.dm
+++ b/code/modules/atmospherics/machinery/atmosmachinery.dm
@@ -301,8 +301,8 @@
* * given_layer - the piping_layer we are checking
*/
/obj/machinery/atmospherics/proc/connection_check(obj/machinery/atmospherics/target, given_layer)
- //check if the target & src connect in the same direction
- if(!((initialize_directions & get_dir(src, target)) && (target.initialize_directions & get_dir(target, src))))
+ //if target is not multiz then we have to check if the target & src connect in the same direction
+ if(!istype(target, /obj/machinery/atmospherics/pipe/multiz) && !((initialize_directions & get_dir(src, target)) && (target.initialize_directions & get_dir(target, src))))
return FALSE
//both target & src can't be connected either way
From d6fab55a3513c93a9d72b974e660506f17729224 Mon Sep 17 00:00:00 2001
From: Ghom <42542238+Ghommie@users.noreply.github.com>
Date: Fri, 3 May 2024 13:23:52 +0200
Subject: [PATCH 084/107] Adds a station trait that brightens up IceBox's
surface. (#82945)
## About The Pull Request
This PR adds a positive trait that brings lights to the outdoors surface
areas of Icebox.
## Why It's Good For The Game
Building upon the features of the station traits. This is how it'd look:

## Changelog
:cl:
add: Adds an Icebox-specific station trait that brightens outdoors areas
on the surface level.
/:cl:
---
code/__DEFINES/traits/declarations.dm | 1 +
code/_globalvars/traits/_traits.dm | 1 +
code/datums/station_traits/positive_traits.dm | 9 +++++++++
code/game/area/areas/mining.dm | 5 +++++
4 files changed, 16 insertions(+)
diff --git a/code/__DEFINES/traits/declarations.dm b/code/__DEFINES/traits/declarations.dm
index f2cb9069fb6..a3218bd5db7 100644
--- a/code/__DEFINES/traits/declarations.dm
+++ b/code/__DEFINES/traits/declarations.dm
@@ -950,6 +950,7 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai
#define STATION_TRAIT_BIGGER_PODS "station_trait_bigger_pods"
#define STATION_TRAIT_BIRTHDAY "station_trait_birthday"
#define STATION_TRAIT_BOTS_GLITCHED "station_trait_bot_glitch"
+#define STATION_TRAIT_BRIGHT_DAY "station_trait_bright_day"
#define STATION_TRAIT_CARP_INFESTATION "station_trait_carp_infestation"
#define STATION_TRAIT_CYBERNETIC_REVOLUTION "station_trait_cybernetic_revolution"
#define STATION_TRAIT_EMPTY_MAINT "station_trait_empty_maint"
diff --git a/code/_globalvars/traits/_traits.dm b/code/_globalvars/traits/_traits.dm
index 9e3c2ed7ee0..ffb9d95f918 100644
--- a/code/_globalvars/traits/_traits.dm
+++ b/code/_globalvars/traits/_traits.dm
@@ -80,6 +80,7 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"STATION_TRAIT_BIGGER_PODS" = STATION_TRAIT_BIGGER_PODS,
"STATION_TRAIT_BIRTHDAY" = STATION_TRAIT_BIRTHDAY,
"STATION_TRAIT_BOTS_GLITCHED" = STATION_TRAIT_BOTS_GLITCHED,
+ "STATION_TRAIT_BRIGHT_DAY" = STATION_TRAIT_BRIGHT_DAY,
"STATION_TRAIT_CARP_INFESTATION" = STATION_TRAIT_CARP_INFESTATION,
"STATION_TRAIT_CYBERNETIC_REVOLUTION" = STATION_TRAIT_CYBERNETIC_REVOLUTION,
"STATION_TRAIT_EMPTY_MAINT" = STATION_TRAIT_EMPTY_MAINT,
diff --git a/code/datums/station_traits/positive_traits.dm b/code/datums/station_traits/positive_traits.dm
index cc2c49f1b86..22d5fb04339 100644
--- a/code/datums/station_traits/positive_traits.dm
+++ b/code/datums/station_traits/positive_traits.dm
@@ -304,6 +304,15 @@
weight_multiplier = 3
max_occurrences_modifier = 10 //lotta cows
+/datum/station_trait/bright_day
+ name = "Bright Day"
+ report_message = "The stars shine bright and the clouds are scarcer than usual. It's a bright day here on the Ice Moon's surface."
+ trait_type = STATION_TRAIT_POSITIVE
+ weight = 5
+ show_in_report = TRUE
+ trait_flags = STATION_TRAIT_PLANETARY
+ trait_to_give = STATION_TRAIT_BRIGHT_DAY
+
/datum/station_trait/shuttle_sale
name = "Shuttle Firesale"
report_message = "The Nanotrasen Emergency Dispatch team is celebrating a record number of shuttle calls in the recent quarter. Some of your emergency shuttle options have been discounted!"
diff --git a/code/game/area/areas/mining.dm b/code/game/area/areas/mining.dm
index 1582f7390cf..38855de366f 100644
--- a/code/game/area/areas/mining.dm
+++ b/code/game/area/areas/mining.dm
@@ -209,6 +209,11 @@
name = "Icemoon Wastes"
outdoors = TRUE
+/area/icemoon/surface/outdoors/Initialize(mapload)
+ if(HAS_TRAIT(SSstation, STATION_TRAIT_BRIGHT_DAY))
+ base_lighting_alpha = 145
+ return ..()
+
/area/icemoon/surface/outdoors/nospawn // this is the area you use for stuff to not spawn, but if you still want weather.
/area/icemoon/surface/outdoors/nospawn/New() // unless you roll forested trait lol
From 158cc3037b90300aeb374dc9c4f39a3841c59cb8 Mon Sep 17 00:00:00 2001
From: cnleth <113535457+cnleth@users.noreply.github.com>
Date: Fri, 3 May 2024 14:32:27 +0300
Subject: [PATCH 086/107] Fire ant colonies created by burning actually contain
fire ants (#83002)
## About The Pull Request
Fire ant colonies created by burning regular ants now give you fire ants
when scooped up
There were 2 lines of code clearing the ants' reagent when they're
burned. They're not needed because ants use `decal_reagent`
Tested and it works without these 2 lines

## Why It's Good For The Game
Fixes #82864
## Changelog
:cl:
fix: Fire ant colonies created by burning regular ants will now contain
fire ants as their reagent
/:cl:
---
code/game/objects/effects/decals/cleanable/misc.dm | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/code/game/objects/effects/decals/cleanable/misc.dm b/code/game/objects/effects/decals/cleanable/misc.dm
index f21bfc47884..0af1e402ee1 100644
--- a/code/game/objects/effects/decals/cleanable/misc.dm
+++ b/code/game/objects/effects/decals/cleanable/misc.dm
@@ -412,9 +412,7 @@
. += emissive_appearance(icon, "[icon_state]_light", src, alpha = src.alpha)
/obj/effect/decal/cleanable/ants/fire_act(exposed_temperature, exposed_volume)
- var/obj/effect/decal/cleanable/ants/fire/fire_ants = new(loc)
- fire_ants.reagents.clear_reagents()
- reagents.trans_to(fire_ants, fire_ants.reagents.maximum_volume)
+ new /obj/effect/decal/cleanable/ants/fire(loc)
qdel(src)
/obj/effect/decal/cleanable/ants/fire
From 398a347eca13e75e19ab5bbc62e7823416429b69 Mon Sep 17 00:00:00 2001
From: SkyratBot <59378654+SkyratBot@users.noreply.github.com>
Date: Fri, 3 May 2024 15:21:04 +0200
Subject: [PATCH 088/107] Automatic changelog for PR #27574 [ci skip]
---
html/changelogs/AutoChangeLog-pr-27574.yml | 4 ++++
1 file changed, 4 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-27574.yml
diff --git a/html/changelogs/AutoChangeLog-pr-27574.yml b/html/changelogs/AutoChangeLog-pr-27574.yml
new file mode 100644
index 00000000000..ebd44714a49
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-27574.yml
@@ -0,0 +1,4 @@
+author: "Melbert"
+delete-after: True
+changes:
+ - bugfix: "New machine god blessings now actually works probably"
\ No newline at end of file
From 0af6e97d3d2462cae79af84dfa0c774438a1184c Mon Sep 17 00:00:00 2001
From: SkyratBot <59378654+SkyratBot@users.noreply.github.com>
Date: Fri, 3 May 2024 15:28:53 +0200
Subject: [PATCH 089/107] Automatic changelog for PR #27572 [ci skip]
---
html/changelogs/AutoChangeLog-pr-27572.yml | 4 ++++
1 file changed, 4 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-27572.yml
diff --git a/html/changelogs/AutoChangeLog-pr-27572.yml b/html/changelogs/AutoChangeLog-pr-27572.yml
new file mode 100644
index 00000000000..809d34999d6
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-27572.yml
@@ -0,0 +1,4 @@
+author: "SkyratBot"
+delete-after: True
+changes:
+ - bugfix: "Stage 2 singularities should no longer escape containment"
\ No newline at end of file
From 1ab990027f6ab0d5f39898b49642206601ade883 Mon Sep 17 00:00:00 2001
From: SkyratBot <59378654+SkyratBot@users.noreply.github.com>
Date: Fri, 3 May 2024 15:30:08 +0200
Subject: [PATCH 090/107] Automatic changelog for PR #27575 [ci skip]
---
html/changelogs/AutoChangeLog-pr-27575.yml | 4 ++++
1 file changed, 4 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-27575.yml
diff --git a/html/changelogs/AutoChangeLog-pr-27575.yml b/html/changelogs/AutoChangeLog-pr-27575.yml
new file mode 100644
index 00000000000..eb03652dc14
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-27575.yml
@@ -0,0 +1,4 @@
+author: "Ryll/Shaps"
+delete-after: True
+changes:
+ - bugfix: "Pacifists can no longer endlessly spam the backblast functionality of loaded rocket launchers that they cannot actually fire"
\ No newline at end of file
From f94f46f8e55b3e3e8fe529ecf7985abb10b5055f Mon Sep 17 00:00:00 2001
From: SkyratBot <59378654+SkyratBot@users.noreply.github.com>
Date: Fri, 3 May 2024 15:31:47 +0200
Subject: [PATCH 091/107] Automatic changelog for PR #27576 [ci skip]
---
html/changelogs/AutoChangeLog-pr-27576.yml | 6 ++++++
1 file changed, 6 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-27576.yml
diff --git a/html/changelogs/AutoChangeLog-pr-27576.yml b/html/changelogs/AutoChangeLog-pr-27576.yml
new file mode 100644
index 00000000000..02270043e27
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-27576.yml
@@ -0,0 +1,6 @@
+author: "SkyratBot"
+delete-after: True
+changes:
+ - bugfix: "mobs in the same faction will no longer be at odds against one another"
+ - bugfix: "mobs can now perform behaviors alongside searching for targets"
+ - bugfix: "mobs will no longer be starting and stopping when chasing targets"
\ No newline at end of file
From c56c0af37b3e399cc08d68dfbe66498bb5eaca53 Mon Sep 17 00:00:00 2001
From: SkyratBot <59378654+SkyratBot@users.noreply.github.com>
Date: Fri, 3 May 2024 15:32:30 +0200
Subject: [PATCH 092/107] Automatic changelog for PR #27577 [ci skip]
---
html/changelogs/AutoChangeLog-pr-27577.yml | 4 ++++
1 file changed, 4 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-27577.yml
diff --git a/html/changelogs/AutoChangeLog-pr-27577.yml b/html/changelogs/AutoChangeLog-pr-27577.yml
new file mode 100644
index 00000000000..4c9ebb81c47
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-27577.yml
@@ -0,0 +1,4 @@
+author: "SkyratBot"
+delete-after: True
+changes:
+ - bugfix: "Candy corn is once again available to detective fedoras"
\ No newline at end of file
From 7d6b463165f66aae985c628dda002999e4e0ca04 Mon Sep 17 00:00:00 2001
From: SkyratBot <59378654+SkyratBot@users.noreply.github.com>
Date: Fri, 3 May 2024 16:12:49 +0200
Subject: [PATCH 093/107] Automatic changelog for PR #27578 [ci skip]
---
html/changelogs/AutoChangeLog-pr-27578.yml | 4 ++++
1 file changed, 4 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-27578.yml
diff --git a/html/changelogs/AutoChangeLog-pr-27578.yml b/html/changelogs/AutoChangeLog-pr-27578.yml
new file mode 100644
index 00000000000..fada9ce1d19
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-27578.yml
@@ -0,0 +1,4 @@
+author: "mogeoko"
+delete-after: True
+changes:
+ - bugfix: "Ventcrawling mobs can change Z-level using multiz-decks again."
\ No newline at end of file
From 2d15acfd902b6f1a6b211abecd70c28948971934 Mon Sep 17 00:00:00 2001
From: SkyratBot <59378654+SkyratBot@users.noreply.github.com>
Date: Fri, 3 May 2024 16:13:19 +0200
Subject: [PATCH 094/107] Automatic changelog for PR #27580 [ci skip]
---
html/changelogs/AutoChangeLog-pr-27580.yml | 4 ++++
1 file changed, 4 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-27580.yml
diff --git a/html/changelogs/AutoChangeLog-pr-27580.yml b/html/changelogs/AutoChangeLog-pr-27580.yml
new file mode 100644
index 00000000000..eb453e1cfbe
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-27580.yml
@@ -0,0 +1,4 @@
+author: "SkyratBot"
+delete-after: True
+changes:
+ - rscadd: "Adds an Icebox-specific station trait that brightens outdoors areas on the surface level."
\ No newline at end of file
From 913e088642ed5afb4e84b49ebaed9e7a6f789222 Mon Sep 17 00:00:00 2001
From: SkyratBot <59378654+SkyratBot@users.noreply.github.com>
Date: Fri, 3 May 2024 16:13:46 +0200
Subject: [PATCH 095/107] Automatic changelog for PR #27581 [ci skip]
---
html/changelogs/AutoChangeLog-pr-27581.yml | 4 ++++
1 file changed, 4 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-27581.yml
diff --git a/html/changelogs/AutoChangeLog-pr-27581.yml b/html/changelogs/AutoChangeLog-pr-27581.yml
new file mode 100644
index 00000000000..b88dd882793
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-27581.yml
@@ -0,0 +1,4 @@
+author: "SkyratBot"
+delete-after: True
+changes:
+ - bugfix: "Fire ant colonies created by burning regular ants will now contain fire ants as their reagent"
\ No newline at end of file
From 4728ec0766db8c77727598442c5ecca3cbcab4d2 Mon Sep 17 00:00:00 2001
From: Profakos
Date: Fri, 3 May 2024 22:10:10 +0200
Subject: [PATCH 096/107] Bepis techs can be found in bitrunning crates,
removed from vendors (#82872)
## About The Pull Request
This PR adds Bepis disks to the main rewards of the Bitrunning crate in
addition to the minerals and domain specific rewards. It also removes it
from the Bepis vending machine.
Once per domain, if its difficult was Medium or higher, and the
completion score was A or S, and if there are still any leftover locked
Bepis tech nodes, a Bepis disk will spawn.
Original PR text
If domain has a reward value greater than one, it has 10% chance per
reward value to drop. No disk is gained if they ran out of techs to
unlock. Most of the domains have a reward value of three, so by the law
of great numbers they probably get one disk per every three domains run,
which should be one disk every 20-30 minutes. At least, if I am correct
that domain runs take about five to ten minutes, and the server cooldown
is three minutes. If I am incorrect, I can edit the drop chance as
needed, of course.
Edit: As I have underestimated how fast Bitrunners can be, I have
decreased the chance to be 5% per reward tier.
## Why It's Good For The Game
- Bepis disks are expensive, and bitrunners need to spend almost all
their NP on gear and abilities
- Downloading secret research data, is flavourful, fitting for invading
the forgotten nooks of cyberspace.
- This will allow Bepis tech to be actually used in rounds
## Changelog
:cl:
balance: Bitrunners can now earn Bepis disks, once per medium domain or
above, if they scored at least an A.
del: Bitrunners can not buy Bepis disks from their vendors.
/:cl:
---
code/modules/bitrunning/orders/bepis.dm | 4 --
code/modules/bitrunning/server/loot.dm | 54 ++++++++++++++-----
.../virtual_domain/virtual_domain.dm | 2 +
3 files changed, 44 insertions(+), 16 deletions(-)
diff --git a/code/modules/bitrunning/orders/bepis.dm b/code/modules/bitrunning/orders/bepis.dm
index 286e9817f3c..4b7253bdaf2 100644
--- a/code/modules/bitrunning/orders/bepis.dm
+++ b/code/modules/bitrunning/orders/bepis.dm
@@ -17,7 +17,3 @@
/datum/orderable_item/bepis/sprayoncan
item_path = /obj/item/toy/sprayoncan
cost_per_order = 750
-
-/datum/orderable_item/bepis/pristine
- item_path = /obj/item/disk/design_disk/bepis/remove_tech
- cost_per_order = 1000
diff --git a/code/modules/bitrunning/server/loot.dm b/code/modules/bitrunning/server/loot.dm
index cb4902abfe3..aa7b99d6e92 100644
--- a/code/modules/bitrunning/server/loot.dm
+++ b/code/modules/bitrunning/server/loot.dm
@@ -1,3 +1,9 @@
+#define GRADE_D "D"
+#define GRADE_C "C"
+#define GRADE_B "B"
+#define GRADE_A "A"
+#define GRADE_S "S"
+
/// Handles calculating rewards based on number of players, parts, threats, etc
/obj/machinery/quantum_server/proc/calculate_rewards()
var/rewards_base = 0.8
@@ -28,8 +34,11 @@
var/bonus = calculate_rewards()
+ var/time_difference = world.time - generated_domain.start_time
+ var/grade = grade_completion(time_difference)
+
var/obj/item/paper/certificate = new()
- certificate.add_raw_text(get_completion_certificate())
+ certificate.add_raw_text(get_completion_certificate(time_difference, grade))
certificate.name = "certificate of domain completion"
certificate.update_appearance()
@@ -37,6 +46,10 @@
reward_cache.manifest = certificate
reward_cache.update_appearance()
+ if(can_generate_tech_disk(grade))
+ new /obj/item/disk/design_disk/bepis/remove_tech(reward_cache)
+ generated_domain.disk_reward_spawned = TRUE
+
chosen_forge.start_to_spawn(reward_cache)
return TRUE
@@ -50,7 +63,7 @@
return TRUE
/// Returns the markdown text containing domain completion information
-/obj/machinery/quantum_server/proc/get_completion_certificate()
+/obj/machinery/quantum_server/proc/get_completion_certificate(time_difference, grade)
var/base_points = generated_domain.reward_points
if(domain_randomized)
base_points -= 1
@@ -59,11 +72,9 @@
var/domain_threats = length(spawned_threat_refs)
- var/time_difference = world.time - generated_domain.start_time
-
var/completion_time = "### Completion Time: [DisplayTimeText(time_difference)]\n"
- var/grade = "\n---\n\n# Rating: [grade_completion(time_difference)]"
+ var/completion_grade = "\n---\n\n# Rating: [grade]"
var/text = "# Certificate of Domain Completion\n\n---\n\n"
@@ -75,7 +86,7 @@
if(bonuses <= 1)
text += completion_time
- text += grade
+ text += completion_grade
return text
text += "### Bonuses\n"
@@ -94,10 +105,24 @@
text += "- **Components:** + [servo_rating]\n"
text += completion_time
- text += grade
+ text += completion_grade
return text
+/// Checks if the players should get a bepis reward
+/obj/machinery/quantum_server/proc/can_generate_tech_disk(grade)
+ if(generated_domain.disk_reward_spawned)
+ return FALSE
+
+ if(!LAZYLEN(SSresearch.techweb_nodes_experimental))
+ return FALSE
+
+ var/static/list/passing_grades = list()
+ if(!passing_grades.len)
+ passing_grades = list(GRADE_A,GRADE_S)
+
+ return generated_domain.difficulty >= BITRUNNER_DIFFICULTY_MEDIUM && (grade in passing_grades)
+
/// Grades the player's run based on several factors
/obj/machinery/quantum_server/proc/grade_completion(completion_time)
var/score = length(spawned_threat_refs) * 5
@@ -124,13 +149,18 @@
switch(score)
if(1 to 4)
- return "D"
+ return GRADE_D
if(5 to 7)
- return "C"
+ return GRADE_C
if(8 to 10)
- return "B"
+ return GRADE_B
if(11 to 13)
- return "A"
+ return GRADE_A
else
- return "S"
+ return GRADE_S
+#undef GRADE_D
+#undef GRADE_C
+#undef GRADE_B
+#undef GRADE_A
+#undef GRADE_S
diff --git a/code/modules/bitrunning/virtual_domain/virtual_domain.dm b/code/modules/bitrunning/virtual_domain/virtual_domain.dm
index b316bb97cae..21898daad72 100644
--- a/code/modules/bitrunning/virtual_domain/virtual_domain.dm
+++ b/code/modules/bitrunning/virtual_domain/virtual_domain.dm
@@ -44,6 +44,8 @@
var/start_time
/// This map is specifically for unit tests. Shouldn't display in game
var/test_only = FALSE
+ /// Has this domain been beaten with high enough score to spawn a tech disk?
+ var/disk_reward_spawned = FALSE
/// Sends a point to any loot signals on the map
/datum/lazy_template/virtual_domain/proc/add_points(points_to_add)
From ca869e5d4f3f40114a60a3d746f1e3c5560656a5 Mon Sep 17 00:00:00 2001
From: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Date: Fri, 3 May 2024 20:15:35 +0000
Subject: [PATCH 098/107] Fixes lua breaking when registering signals on turfs
(#83018)
## About The Pull Request
Signals don't get removed on turfs when they're deleted. This fixes that
so that it is reflected in lua as well.
## Why It's Good For The Game
Lua bugfixes
## Changelog
:cl:
fix: Fixed lua scripts breaking when turfs with registered signals get
deleted.
/:cl:
---------
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
---
lua/SS13_base.lua | 8 +++++++-
lua/handler_group.lua | 2 +-
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/lua/SS13_base.lua b/lua/SS13_base.lua
index f49908f0942..ea04c8c6503 100644
--- a/lua/SS13_base.lua
+++ b/lua/SS13_base.lua
@@ -100,7 +100,8 @@ function SS13.register_signal(datum, signal, func)
callback:call_proc("RegisterSignal", datum, signal, "Invoke")
local path = { "__SS13_signal_handlers", datumWeakRef, signal, callbackWeakRef, "func" }
callback.vars.arguments = { path }
- if not __SS13_signal_handlers[datumWeakRef]._cleanup then
+ -- Turfs don't remove their signals on deletion.
+ if not __SS13_signal_handlers[datumWeakRef]._cleanup and not SS13.istype(datum, "/turf") then
local cleanupCallback = SS13.new("/datum/callback", SS13.state, "call_function_return_first")
local cleanupPath = { "__SS13_signal_handlers", datumWeakRef, "_cleanup"}
cleanupCallback.vars.arguments = { cleanupPath }
@@ -134,6 +135,11 @@ function SS13.unregister_signal(datum, signal, callback)
local callbackWeakRef = dm.global_proc("WEAKREF", handler_callback)
if not SS13.istype(datum, "/datum/weakref") then
handler_callback:call_proc("UnregisterSignal", datum, signal)
+ else
+ local actualDatum = datum:call_proc("hard_resolve")
+ if SS13.is_valid(actualDatum) then
+ handler_callback:call_proc("UnregisterSignal", actualDatum, signal)
+ end
end
SS13.stop_tracking(handler_callback)
end
diff --git a/lua/handler_group.lua b/lua/handler_group.lua
index fff63ad18e4..0246d33c744 100644
--- a/lua/handler_group.lua
+++ b/lua/handler_group.lua
@@ -14,7 +14,7 @@ function HandlerGroup:register_signal(datum, signal, func)
if not callback then
return
end
- table.insert(self.registered, { datum = datum, signal = signal, callback = callback })
+ table.insert(self.registered, { datum = dm.global_proc("WEAKREF", datum), signal = signal, callback = callback })
end
-- Clears all the signals that have been registered on this HandlerGroup
From 509d420d329a6668f268f1a42b1830c38b5733f9 Mon Sep 17 00:00:00 2001
From: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Date: Fri, 3 May 2024 17:12:26 -0700
Subject: [PATCH 100/107] Adds debug dna disk to runtimestation (#83013)
## About The Pull Request
Title || Puts it next to the dna scanner
## Why It's Good For The Game
Easier debugging genetics / dna ui
---
_maps/map_files/debug/runtimestation.dmm | 250 ++++++++++++-----------
1 file changed, 127 insertions(+), 123 deletions(-)
diff --git a/_maps/map_files/debug/runtimestation.dmm b/_maps/map_files/debug/runtimestation.dmm
index 38463d849ea..b36684a2dab 100644
--- a/_maps/map_files/debug/runtimestation.dmm
+++ b/_maps/map_files/debug/runtimestation.dmm
@@ -668,23 +668,6 @@
},
/turf/open/floor/iron/cafeteria,
/area/station/medical/medbay)
-"cK" = (
-/obj/machinery/light/directional/south,
-/obj/structure/table/glass,
-/obj/item/disk/surgery/debug,
-/obj/item/storage/box/monkeycubes{
- pixel_x = 6;
- pixel_y = 1
- },
-/obj/item/storage/box/monkeycubes{
- pixel_x = -6;
- pixel_y = 2
- },
-/obj/effect/turf_decal/tile/blue{
- dir = 8
- },
-/turf/open/floor/iron/white/corner,
-/area/station/medical/medbay)
"cL" = (
/obj/item/surgery_tray/full/advanced,
/obj/structure/table/glass,
@@ -1751,16 +1734,19 @@
/obj/effect/mapping_helpers/airalarm/unlocked,
/turf/open/floor/plating,
/area/station/engineering/atmos)
+"hv" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/item/storage/part_replacer/bluespace/tier4,
+/turf/open/floor/iron,
+/area/station/cargo/bitrunning/den)
"hD" = (
/obj/structure/closet/secure_closet/chemical/heisenberg{
locked = 0
},
/turf/open/floor/iron,
/area/station/medical/chemistry)
-"ib" = (
-/obj/effect/spawner/structure/window/reinforced,
-/turf/open/floor/plating,
-/area/station/cargo/bitrunning/den)
"ii" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -1819,13 +1805,6 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/engineering/main)
-"lE" = (
-/obj/machinery/power/apc/auto_name/directional/north,
-/obj/structure/cable,
-/obj/machinery/airalarm/directional/east,
-/obj/machinery/computer/quantum_console,
-/turf/open/floor/iron,
-/area/station/cargo/bitrunning/den)
"lH" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{
dir = 6
@@ -1849,11 +1828,6 @@
/obj/machinery/chem_mass_spec,
/turf/open/floor/iron,
/area/station/medical/chemistry)
-"mV" = (
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden,
-/turf/open/floor/iron,
-/area/station/cargo/bitrunning/den)
"nn" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 8
@@ -1871,6 +1845,12 @@
/obj/item/storage/toolbox/syndicate,
/turf/open/floor/iron,
/area/station/commons/storage/primary)
+"nI" = (
+/obj/machinery/door/airlock,
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden,
+/turf/open/floor/iron,
+/area/station/cargo/bitrunning/den)
"od" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -1899,9 +1879,6 @@
/obj/machinery/door/airlock/external/glass/ruin,
/turf/open/floor/plating,
/area/station/medical/medbay)
-"pK" = (
-/turf/open/floor/iron,
-/area/station/cargo/bitrunning/den)
"qb" = (
/obj/machinery/door/airlock,
/turf/open/floor/plating,
@@ -1932,23 +1909,34 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/hallway/primary/central)
-"rM" = (
-/obj/machinery/quantum_server,
-/turf/open/floor/iron,
-/area/station/cargo/bitrunning/den)
-"rS" = (
+"rT" = (
/turf/open/floor/circuit/green,
/area/station/cargo/bitrunning/den)
"sr" = (
/obj/machinery/door/airlock/shell,
/turf/open/floor/iron/dark,
/area/station/construction)
-"sH" = (
-/obj/structure/table,
-/obj/item/storage/box/shipping,
-/obj/item/boulder_beacon,
-/turf/open/floor/iron,
-/area/station/commons/storage/primary)
+"tz" = (
+/obj/machinery/light/directional/south,
+/obj/structure/table/glass,
+/obj/item/disk/surgery/debug,
+/obj/item/storage/box/monkeycubes{
+ pixel_x = 6;
+ pixel_y = 1
+ },
+/obj/item/storage/box/monkeycubes{
+ pixel_x = -6;
+ pixel_y = 2
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/item/disk/data/debug{
+ pixel_y = 9;
+ pixel_x = 7
+ },
+/turf/open/floor/iron/white/corner,
+/area/station/medical/medbay)
"tE" = (
/obj/machinery/door/airlock/research,
/turf/open/floor/iron/dark,
@@ -2006,6 +1994,11 @@
},
/turf/open/floor/iron/dark,
/area/station/science/explab)
+"vb" = (
+/obj/structure/cable,
+/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden,
+/turf/open/floor/iron,
+/area/station/cargo/bitrunning/den)
"vm" = (
/mob/living/circuit_drone,
/turf/open/floor/iron/dark,
@@ -2079,16 +2072,16 @@
/obj/machinery/airalarm/directional/north,
/turf/open/floor/iron,
/area/station/science)
+"Aj" = (
+/obj/structure/cable,
+/turf/open/floor/iron,
+/area/station/cargo/bitrunning/den)
"AP" = (
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{
dir = 8
},
/turf/open/floor/iron,
/area/station/science)
-"Ba" = (
-/obj/machinery/netpod,
-/turf/open/floor/iron,
-/area/station/cargo/bitrunning/den)
"BD" = (
/obj/structure/closet/secure_closet/chief_medical{
locked = 0
@@ -2109,10 +2102,6 @@
/obj/structure/closet/syndicate/resources/everything,
/turf/open/floor/iron,
/area/station/science)
-"Cz" = (
-/obj/structure/cable,
-/turf/open/floor/iron,
-/area/station/cargo/bitrunning/den)
"CQ" = (
/obj/machinery/light/directional/south,
/obj/effect/turf_decal/stripes/line{
@@ -2230,6 +2219,13 @@
/obj/effect/turf_decal/tile/blue/half/contrasted,
/turf/open/floor/iron,
/area/station/command/bridge)
+"IF" = (
+/obj/machinery/power/apc/auto_name/directional/north,
+/obj/structure/cable,
+/obj/machinery/airalarm/directional/east,
+/obj/machinery/computer/quantum_console,
+/turf/open/floor/iron,
+/area/station/cargo/bitrunning/den)
"IH" = (
/obj/structure/closet/secure_closet/engineering_welding{
locked = 0
@@ -2263,13 +2259,6 @@
/obj/effect/mapping_helpers/airalarm/unlocked,
/turf/open/floor/iron,
/area/station/hallway/primary/central)
-"Kf" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
- dir = 4
- },
-/obj/item/storage/part_replacer/bluespace/tier4,
-/turf/open/floor/iron,
-/area/station/cargo/bitrunning/den)
"Kx" = (
/obj/structure/table,
/obj/item/analyzer,
@@ -2277,15 +2266,6 @@
/obj/machinery/light/directional/south,
/turf/open/floor/plating,
/area/station/engineering/atmos)
-"Lb" = (
-/obj/structure/table/reinforced,
-/obj/machinery/light/directional/south,
-/obj/item/bitrunning_debug,
-/turf/open/floor/iron,
-/area/station/cargo/bitrunning/den)
-"Le" = (
-/turf/closed/wall/r_wall,
-/area/station/cargo/bitrunning/den)
"Ly" = (
/obj/machinery/chem_dispenser/chem_synthesizer,
/turf/open/floor/iron/dark,
@@ -2298,6 +2278,10 @@
/obj/machinery/door/airlock/research,
/turf/open/floor/iron/dark,
/area/station/science/explab)
+"LS" = (
+/obj/machinery/quantum_server,
+/turf/open/floor/iron,
+/area/station/cargo/bitrunning/den)
"LW" = (
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/iron,
@@ -2329,10 +2313,6 @@
/obj/machinery/chem_recipe_debug,
/turf/open/floor/iron,
/area/station/medical/chemistry)
-"Nj" = (
-/obj/machinery/byteforge,
-/turf/open/floor/circuit/green,
-/area/station/cargo/bitrunning/den)
"Ns" = (
/obj/machinery/door/airlock/public/glass,
/obj/structure/cable,
@@ -2404,11 +2384,9 @@
},
/turf/open/floor/engine,
/area/station/cargo/miningoffice)
-"QU" = (
-/obj/machinery/door/airlock,
-/obj/structure/cable,
-/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden,
-/turf/open/floor/iron,
+"QY" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
/area/station/cargo/bitrunning/den)
"Rb" = (
/obj/effect/spawner/structure/window/reinforced,
@@ -2420,6 +2398,10 @@
},
/turf/open/floor/plating,
/area/station/hallway/secondary/entry)
+"Rp" = (
+/obj/machinery/byteforge,
+/turf/open/floor/circuit/green,
+/area/station/cargo/bitrunning/den)
"RM" = (
/obj/structure/closet/secure_closet/hop{
locked = 0
@@ -2442,6 +2424,12 @@
},
/turf/open/floor/iron/white/corner,
/area/station/medical/medbay)
+"SC" = (
+/obj/structure/table/reinforced,
+/obj/machinery/light/directional/south,
+/obj/item/bitrunning_debug,
+/turf/open/floor/iron,
+/area/station/cargo/bitrunning/den)
"Td" = (
/obj/machinery/light/directional/east,
/obj/effect/turf_decal/stripes/line{
@@ -2456,11 +2444,18 @@
"Tt" = (
/turf/open/floor/plating,
/area/station/maintenance/aft)
+"TR" = (
+/obj/machinery/netpod,
+/turf/open/floor/iron,
+/area/station/cargo/bitrunning/den)
"TV" = (
/obj/machinery/door/airlock,
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/construction)
+"Ue" = (
+/turf/closed/wall/r_wall,
+/area/station/cargo/bitrunning/den)
"Ut" = (
/obj/structure/closet/secure_closet/medical3{
locked = 0
@@ -2468,6 +2463,16 @@
/obj/item/healthanalyzer/advanced,
/turf/open/floor/iron,
/area/station/medical/medbay)
+"Va" = (
+/obj/machinery/power/smes/full,
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/obj/structure/cable,
+/obj/machinery/airalarm/directional/north,
+/obj/effect/mapping_helpers/airalarm/unlocked,
+/turf/open/floor/iron,
+/area/station/engineering/gravity_generator)
"Vg" = (
/obj/machinery/light/directional/south,
/obj/structure/cable,
@@ -2512,16 +2517,6 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/engineering/gravity_generator)
-"Wy" = (
-/obj/machinery/power/smes/full,
-/obj/effect/turf_decal/stripes/line{
- dir = 9
- },
-/obj/structure/cable,
-/obj/machinery/airalarm/directional/north,
-/obj/effect/mapping_helpers/airalarm/unlocked,
-/turf/open/floor/iron,
-/area/station/engineering/gravity_generator)
"WK" = (
/obj/structure/money_bot,
/turf/open/floor/iron/dark,
@@ -2581,6 +2576,9 @@
/obj/effect/landmark/blobstart,
/turf/open/floor/iron,
/area/station/commons/storage/primary)
+"Yd" = (
+/turf/open/floor/iron,
+/area/station/cargo/bitrunning/den)
"Ym" = (
/obj/structure/table,
/obj/item/storage/toolbox/electrical,
@@ -2623,6 +2621,12 @@
/obj/machinery/suit_storage_unit/ce,
/turf/open/floor/iron,
/area/station/engineering/atmos)
+"ZK" = (
+/obj/structure/table,
+/obj/item/storage/box/shipping,
+/obj/item/boulder_beacon,
+/turf/open/floor/iron,
+/area/station/commons/storage/primary)
"ZP" = (
/turf/open/floor/iron/dark,
/area/station/science/explab)
@@ -3200,12 +3204,12 @@ aa
aa
aa
aa
-Le
-Le
-Le
-Le
-Le
-Le
+Ue
+Ue
+Ue
+Ue
+Ue
+Ue
aa
aa
aa
@@ -3292,12 +3296,12 @@ aa
aa
aa
aa
-Le
-rS
-Nj
-pK
-Ba
-Le
+Ue
+rT
+Rp
+Yd
+TR
+Ue
aa
aa
aa
@@ -3384,12 +3388,12 @@ aa
aa
aa
aa
-Le
-rM
-pK
-Kf
-Ba
-Le
+Ue
+LS
+Yd
+hv
+TR
+Ue
aa
aa
aa
@@ -3476,12 +3480,12 @@ aa
aa
aa
aa
-Le
-lE
-Cz
-mV
-Lb
-Le
+Ue
+IF
+Aj
+vb
+SC
+Ue
aa
aa
aa
@@ -3568,12 +3572,12 @@ em
em
em
em
-Le
-Le
-Le
-QU
-ib
-Le
+Ue
+Ue
+Ue
+nI
+QY
+Ue
Tj
Tj
Tj
@@ -7611,7 +7615,7 @@ aa
ad
af
ak
-Wy
+Va
aG
aV
bg
@@ -7820,7 +7824,7 @@ dJ
dJ
dJ
dJ
-sH
+ZK
cS
fP
fO
@@ -8267,7 +8271,7 @@ is
cy
Ut
cm
-cK
+tz
by
dB
dx
From e55f4ba97ccc9ad9c92d5a11b0aea7c7c7f2fd9c Mon Sep 17 00:00:00 2001
From: Changelogs
Date: Sat, 4 May 2024 00:34:02 +0000
Subject: [PATCH 102/107] Automatic changelog compile [ci skip]
---
html/changelogs/AutoChangeLog-pr-27572.yml | 4 ----
html/changelogs/AutoChangeLog-pr-27574.yml | 4 ----
html/changelogs/AutoChangeLog-pr-27575.yml | 4 ----
html/changelogs/AutoChangeLog-pr-27576.yml | 6 ------
html/changelogs/AutoChangeLog-pr-27577.yml | 4 ----
html/changelogs/AutoChangeLog-pr-27578.yml | 4 ----
html/changelogs/AutoChangeLog-pr-27580.yml | 4 ----
html/changelogs/AutoChangeLog-pr-27581.yml | 4 ----
html/changelogs/archive/2024-05.yml | 18 ++++++++++++++++++
9 files changed, 18 insertions(+), 34 deletions(-)
delete mode 100644 html/changelogs/AutoChangeLog-pr-27572.yml
delete mode 100644 html/changelogs/AutoChangeLog-pr-27574.yml
delete mode 100644 html/changelogs/AutoChangeLog-pr-27575.yml
delete mode 100644 html/changelogs/AutoChangeLog-pr-27576.yml
delete mode 100644 html/changelogs/AutoChangeLog-pr-27577.yml
delete mode 100644 html/changelogs/AutoChangeLog-pr-27578.yml
delete mode 100644 html/changelogs/AutoChangeLog-pr-27580.yml
delete mode 100644 html/changelogs/AutoChangeLog-pr-27581.yml
diff --git a/html/changelogs/AutoChangeLog-pr-27572.yml b/html/changelogs/AutoChangeLog-pr-27572.yml
deleted file mode 100644
index 809d34999d6..00000000000
--- a/html/changelogs/AutoChangeLog-pr-27572.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "SkyratBot"
-delete-after: True
-changes:
- - bugfix: "Stage 2 singularities should no longer escape containment"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-27574.yml b/html/changelogs/AutoChangeLog-pr-27574.yml
deleted file mode 100644
index ebd44714a49..00000000000
--- a/html/changelogs/AutoChangeLog-pr-27574.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Melbert"
-delete-after: True
-changes:
- - bugfix: "New machine god blessings now actually works probably"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-27575.yml b/html/changelogs/AutoChangeLog-pr-27575.yml
deleted file mode 100644
index eb03652dc14..00000000000
--- a/html/changelogs/AutoChangeLog-pr-27575.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "Ryll/Shaps"
-delete-after: True
-changes:
- - bugfix: "Pacifists can no longer endlessly spam the backblast functionality of loaded rocket launchers that they cannot actually fire"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-27576.yml b/html/changelogs/AutoChangeLog-pr-27576.yml
deleted file mode 100644
index 02270043e27..00000000000
--- a/html/changelogs/AutoChangeLog-pr-27576.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-author: "SkyratBot"
-delete-after: True
-changes:
- - bugfix: "mobs in the same faction will no longer be at odds against one another"
- - bugfix: "mobs can now perform behaviors alongside searching for targets"
- - bugfix: "mobs will no longer be starting and stopping when chasing targets"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-27577.yml b/html/changelogs/AutoChangeLog-pr-27577.yml
deleted file mode 100644
index 4c9ebb81c47..00000000000
--- a/html/changelogs/AutoChangeLog-pr-27577.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "SkyratBot"
-delete-after: True
-changes:
- - bugfix: "Candy corn is once again available to detective fedoras"
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-27578.yml b/html/changelogs/AutoChangeLog-pr-27578.yml
deleted file mode 100644
index fada9ce1d19..00000000000
--- a/html/changelogs/AutoChangeLog-pr-27578.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "mogeoko"
-delete-after: True
-changes:
- - bugfix: "Ventcrawling mobs can change Z-level using multiz-decks again."
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-27580.yml b/html/changelogs/AutoChangeLog-pr-27580.yml
deleted file mode 100644
index eb453e1cfbe..00000000000
--- a/html/changelogs/AutoChangeLog-pr-27580.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "SkyratBot"
-delete-after: True
-changes:
- - rscadd: "Adds an Icebox-specific station trait that brightens outdoors areas on the surface level."
\ No newline at end of file
diff --git a/html/changelogs/AutoChangeLog-pr-27581.yml b/html/changelogs/AutoChangeLog-pr-27581.yml
deleted file mode 100644
index b88dd882793..00000000000
--- a/html/changelogs/AutoChangeLog-pr-27581.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "SkyratBot"
-delete-after: True
-changes:
- - bugfix: "Fire ant colonies created by burning regular ants will now contain fire ants as their reagent"
\ No newline at end of file
diff --git a/html/changelogs/archive/2024-05.yml b/html/changelogs/archive/2024-05.yml
index f34acb64002..c974f37b27e 100644
--- a/html/changelogs/archive/2024-05.yml
+++ b/html/changelogs/archive/2024-05.yml
@@ -106,3 +106,21 @@
- bugfix: Interlink Arrivals shuttles have tiny fans for air support!
nikothedude:
- bugfix: Jousting no longer bypasses pacifism
+2024-05-04:
+ Melbert:
+ - bugfix: New machine god blessings now actually works probably
+ Ryll/Shaps:
+ - bugfix: Pacifists can no longer endlessly spam the backblast functionality of
+ loaded rocket launchers that they cannot actually fire
+ SkyratBot:
+ - bugfix: mobs in the same faction will no longer be at odds against one another
+ - bugfix: mobs can now perform behaviors alongside searching for targets
+ - bugfix: mobs will no longer be starting and stopping when chasing targets
+ - bugfix: Candy corn is once again available to detective fedoras
+ - rscadd: Adds an Icebox-specific station trait that brightens outdoors areas on
+ the surface level.
+ - bugfix: Stage 2 singularities should no longer escape containment
+ - bugfix: Fire ant colonies created by burning regular ants will now contain fire
+ ants as their reagent
+ mogeoko:
+ - bugfix: Ventcrawling mobs can change Z-level using multiz-decks again.
From 39d7db0b4c13d6e8ee25a647facce2d0a1b129bc Mon Sep 17 00:00:00 2001
From: SkyratBot <59378654+SkyratBot@users.noreply.github.com>
Date: Sat, 4 May 2024 03:11:32 +0200
Subject: [PATCH 103/107] Automatic changelog for PR #27586 [ci skip]
---
html/changelogs/AutoChangeLog-pr-27586.yml | 4 ++++
1 file changed, 4 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-27586.yml
diff --git a/html/changelogs/AutoChangeLog-pr-27586.yml b/html/changelogs/AutoChangeLog-pr-27586.yml
new file mode 100644
index 00000000000..dd43731450a
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-27586.yml
@@ -0,0 +1,4 @@
+author: "SkyratBot"
+delete-after: True
+changes:
+ - bugfix: "Fixed lua scripts breaking when turfs with registered signals get deleted."
\ No newline at end of file
From f867b8ed482c9ac0e9f2007ba67733619ac92d2d Mon Sep 17 00:00:00 2001
From: SkyratBot <59378654+SkyratBot@users.noreply.github.com>
Date: Sat, 4 May 2024 03:11:39 +0200
Subject: [PATCH 104/107] Automatic changelog for PR #27585 [ci skip]
---
html/changelogs/AutoChangeLog-pr-27585.yml | 5 +++++
1 file changed, 5 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-27585.yml
diff --git a/html/changelogs/AutoChangeLog-pr-27585.yml b/html/changelogs/AutoChangeLog-pr-27585.yml
new file mode 100644
index 00000000000..6105e70440d
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-27585.yml
@@ -0,0 +1,5 @@
+author: "SkyratBot"
+delete-after: True
+changes:
+ - balance: "Bitrunners can now earn Bepis disks, once per medium domain or above, if they scored at least an A."
+ - rscdel: "Bitrunners can not buy Bepis disks from their vendors."
\ No newline at end of file
From 0d6326496f35719cb3ac721334bba177387ec51c Mon Sep 17 00:00:00 2001
From: Useroth <37159550+Useroth@users.noreply.github.com>
Date: Sat, 4 May 2024 03:17:35 +0200
Subject: [PATCH 105/107] Removes modular electrocution damage overrides.
---
modular_skyrat/master_files/code/modules/power/powernet.dm | 6 ------
tgstation.dme | 1 -
2 files changed, 7 deletions(-)
delete mode 100644 modular_skyrat/master_files/code/modules/power/powernet.dm
diff --git a/modular_skyrat/master_files/code/modules/power/powernet.dm b/modular_skyrat/master_files/code/modules/power/powernet.dm
deleted file mode 100644
index 189a4aa0449..00000000000
--- a/modular_skyrat/master_files/code/modules/power/powernet.dm
+++ /dev/null
@@ -1,6 +0,0 @@
-/datum/powernet/get_electrocute_damage()
- if(avail >= 1000)
- var/damage = clamp(20 + round(avail/25000), 20, 195) + rand(-5,5)
- return damage * HUMAN_HEALTH_MODIFIER
- else
- return 0
diff --git a/tgstation.dme b/tgstation.dme
index 38f4813a69c..41b38456b53 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -6616,7 +6616,6 @@
#include "modular_skyrat\master_files\code\modules\paperwork\stamps.dm"
#include "modular_skyrat\master_files\code\modules\power\cable.dm"
#include "modular_skyrat\master_files\code\modules\power\circulator.dm"
-#include "modular_skyrat\master_files\code\modules\power\powernet.dm"
#include "modular_skyrat\master_files\code\modules\power\thermoelectric_generator.dm"
#include "modular_skyrat\master_files\code\modules\power\lighting\light_mapping_helpers.dm"
#include "modular_skyrat\master_files\code\modules\power\singularity\containment_field.dm"
From a4ab4d31883213500b0acb93d6bfe13bbfb18d08 Mon Sep 17 00:00:00 2001
From: Useroth <37159550+Useroth@users.noreply.github.com>
Date: Sat, 4 May 2024 04:05:13 +0200
Subject: [PATCH 106/107] Fixes transfer votes.
---
.../autotransfer/code/transfer_vote.dm | 24 +++++++------------
1 file changed, 8 insertions(+), 16 deletions(-)
diff --git a/modular_skyrat/modules/autotransfer/code/transfer_vote.dm b/modular_skyrat/modules/autotransfer/code/transfer_vote.dm
index 709c6369dc4..97703fe4805 100644
--- a/modular_skyrat/modules/autotransfer/code/transfer_vote.dm
+++ b/modular_skyrat/modules/autotransfer/code/transfer_vote.dm
@@ -7,34 +7,26 @@
CHOICE_TRANSFER,
CHOICE_CONTINUE,
)
+ default_message = "Vote to initiate a crew transfer."
-/datum/vote/transfer_vote/toggle_votable(mob/toggler)
- if(!toggler)
- CRASH("[type] wasn't passed a \"toggler\" mob to toggle_votable.")
- if(!check_rights_for(toggler.client, R_ADMIN))
- return FALSE
-
-
+/datum/vote/transfer_vote/toggle_votable()
CONFIG_SET(flag/allow_vote_transfer, !CONFIG_GET(flag/allow_vote_transfer))
- return TRUE
/datum/vote/transfer_vote/is_config_enabled()
return CONFIG_GET(flag/autotransfer) && CONFIG_GET(flag/allow_vote_transfer)
-/datum/vote/transfer_vote/can_be_initiated(mob/by_who, forced)
+/datum/vote/transfer_vote/can_be_initiated(forced)
. = ..()
- if(!.)
- return FALSE
+ if(. != VOTE_AVAILABLE)
+ return .
if(forced)
- return TRUE
+ return VOTE_AVAILABLE
if(!CONFIG_GET(flag/autotransfer) || !CONFIG_GET(flag/allow_vote_transfer))
- if(by_who)
- to_chat(by_who, span_warning("Transfer voting is disabled."))
- return FALSE
+ return "Transfer voting is disabled."
- return TRUE
+ return VOTE_AVAILABLE
/datum/vote/transfer_vote/finalize_vote(winning_option)
if(winning_option == CHOICE_CONTINUE)
From da8c4123593b71a12ada45117d13e50d11fe2d21 Mon Sep 17 00:00:00 2001
From: SkyratBot <59378654+SkyratBot@users.noreply.github.com>
Date: Sat, 4 May 2024 04:25:55 +0200
Subject: [PATCH 107/107] Automatic changelog for PR #27588 [ci skip]
---
html/changelogs/AutoChangeLog-pr-27588.yml | 5 +++++
1 file changed, 5 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-27588.yml
diff --git a/html/changelogs/AutoChangeLog-pr-27588.yml b/html/changelogs/AutoChangeLog-pr-27588.yml
new file mode 100644
index 00000000000..f79ea04becd
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-27588.yml
@@ -0,0 +1,5 @@
+author: "Useroth"
+delete-after: True
+changes:
+ - bugfix: "Fixes transfer votes"
+ - refactor: "Removes modular piece of code related to electrocution that is no longer necessary."
\ No newline at end of file