From 99acd26834ff3c69c8a8a75fcd4e5647ffa5ce24 Mon Sep 17 00:00:00 2001 From: EstKemran <157578255+EstKemran@users.noreply.github.com> Date: Thu, 9 Jan 2025 03:49:59 +0300 Subject: [PATCH 01/15] fix-rukozhoposti (#2468) --- .../Hardsuits/engineering-white.rsi/icon.png | Bin 251 -> 441 bytes .../Head/Hardsuits/engineering.rsi/icon.png | Bin 254 -> 437 bytes .../SS220/Effects/atmospherics.rsi/meta.json | 10 +++++----- .../gasfilter.rsi/gasFilterFOn.png | Bin 7246 -> 7515 bytes .../Atmospherics/gasmixer.rsi/gasMixerOn.png | Bin 8025 -> 8407 bytes 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Resources/Textures/SS220/Clothing/Head/Hardsuits/engineering-white.rsi/icon.png b/Resources/Textures/SS220/Clothing/Head/Hardsuits/engineering-white.rsi/icon.png index 2a28acfe5da934f3ec8ad978400a4ad47172791d..e0103f0e8d2f91c75783476ad2e454ee98d51832 100644 GIT binary patch delta 426 zcmV;b0agC{0l5Q^8Gi-<0047(dh`GQ00DDSM?wIu&K&6g00DDJL_t(oh3%F-NW(xF zhM$yff(Sybh+?p)xJamiitV6_f9N7QbW*x>adD`VgM*+bf(kChsig?6O2Oh#9ULr0 zTwELk2kjE*B8Yenm!JVle^5*%&vJLX?;YRwa$Euq4i0~eQh$j#adavGE<=+59J~ny zAmUa8z;NOOfYAIz+2^_{Dd0D7mt!(J@AS0*@X}KUfbYp80Q}xOUv<-8P7<||Krx!z z+U4XmU-cRGPN26#69C<*Spd}SM*v*@cL4S>IsjTwu2r>F>idJ1{WtfyqIbcb2?Y8^ z1i`o(WuBpDO?bT^9g{!A$@* zc4cQ#j3m5rXw+1xFI)i-UXqC{>RlxZuxA1$=Iu>RuL=04h}!b2MMcS UB(0VeD*ylh07*qoM6N<$g3U_0F8}}l delta 234 zcmdnV{F`xtWIZzj1B1(wu46!ou{g-xiDBJ2nU_G0dVo)e>wyCYwl1G^`q(BLef8_t z4!?W*6eu&TsW@}m=gixmGe3VWNeN#zv9k7pod8gRwgs-|G!*>f44=lxouvf(h25f)8DZSmwH&fF-#DO&%iJW&B#a{~ii{Np;=((rmfHs&6;h c=bz>Lew^j)Tvo5EKwB9+UHx3vIVCg!0Caw9TL1t6 diff --git a/Resources/Textures/SS220/Clothing/Head/Hardsuits/engineering.rsi/icon.png b/Resources/Textures/SS220/Clothing/Head/Hardsuits/engineering.rsi/icon.png index 33bf097fd4288e5713bbb0fbe293d5db0baa06c8..be0b070d9a88926b699aa646d1f2bbb87773d5d4 100644 GIT binary patch delta 422 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 delta 5135 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 XW_ diff --git a/Resources/Textures/SS220/Structures/Piping/Atmospherics/gasmixer.rsi/gasMixerOn.png b/Resources/Textures/SS220/Structures/Piping/Atmospherics/gasmixer.rsi/gasMixerOn.png index 7a21029fb400ecd94ae1b8d03652b3421673a046..9213e9146571b1f12fcdedfff13ce3fda410fb37 100644 GIT binary patch delta 6111 zcma)=XHb(}xA#Nu1`v=Ug7glN8WoVH(gYzC5eP^VklrQaq6prCh;)%EO?sCmgwRE# z2qGdS^xjJfC7j&z%)IZJGv~v(K3seD%-U`C+H3v(Yf5cWqb8J$oL0X+jO-2h9Ytw5 zh_svv45EDd)~(yOR3zo(Z_CLE@CSQ%-!}Aebaf8Vw)b~Z6}TmL>wlUiYfuUb%0X@^ zJ3A;yJ1gFjmxekkI7q9=J3*zLlpqjiIjEDIyn|!%YswlC@8@3rUVhKLyl?AjX&L)^ zIlI0f&8p$(^~{OiLE)Or&iYfKg=t@@8_=*=zlxtxs&JrzQI*0 z_4+0112WpXI2LOVh+{8#hL#7|m_8{pvE9-1U>(zknZ>5)rIxM#YHNUwB|l`;T^}rk zrj(Tal4yT8c|Tp5Hg!zTqEz%|k!~{cIcwAtbd`sRo^G;O3v=E)1y9@8BkT-cy?oAW z_Efgb-tFk@>R0=NyNJG#^VJNOoa{Xui;13qVs%QwOB#W&hFJQ%0d`4%*tz-cX_o9( zhzB$1^_6qfB7-1t=1`v=9ie`@p0IiUashm4c>4~E2@CKJ-*tzUO|!;rX9%_LWbq|^ z*9mQIl=bm=n(oSHcTqb#WVlI z*bdW;kZrmkQ8&WU;6eK)ALrpk2x*9H=rv}u~Fj0g=B~K?V(?e?pJNT0X?W zoMj*r+uD|>0%F9?GlrY=9k}O@@MIXc-Z`4wd;XE39-5V0x@!OLQj_2QF&*eij#{UC z0_GiuMa?U*<{+QIe2&!0b1jPF9eu$i$SJmnOHCoX@EBEUe;#$=S%3pGwzw=l7?L&T zMB0)02LwC=#K}#~z1qd*Aq$#efPfZ zMR;6SOX_p;TG>xj$mE-eDWYXGvy&*&vGhWY{PyrH0P}6H5i6(V)HVO@D|*n7)1yNx zG4g7C{t_`&^pr`3&OW_V@rGX$C~91BK2^={=zR}!3`Cj`F%>B9+dyiCHal$t<{^nB|@LSDw|PB zVt}jSCalU*H>M!50yi^_GoBmmACBzJZ$}DcI97PlbWYE53_|f4j&JK3lKh5c)sCWM zs8(RUJYr_iu4enEwGIZdt`3CZ`eUySrlbC^Eg>6g&G*hP}($saXGmUJ!I`Ac(h`SM%Fj(gJio-F0B3brB8^DOPJ_#?zb*XXRa7(4i2s zqPn_o+$I7!uM@v3&U$upTpFeceCuVm1-3YoEk;y3@L%StyBh&}vWMc1lNJM|HEW+S zV)%)9oR?EK!xB~_ouiD79;=86UA6c-Rl}|J2dv4z1aSA5h!&gpG(+#Th|VxQwE7B zI6rJWUlsez(f9+3VaEn2|1z4<4N*6yO{B!D_C&iFX^hbyjp(&3iQ|;Mhn}~Z3<%t+!m0E5ql~@u39{L z=We8cFoVo6FNQZy6o$QCOOrjP+w5lcSBrED8hTC7J4$LV2#~a_!7(Kd_*t||V_9=% z+2jM4#eWb?9m%7Y#0)b`Uj{~a(PFDA` zA#uNEEy+zj4s_`Pl?&&3^0m0hQ6ef`jO>N=Bx$J+xsc~W+&zZnj(KY()<)i1@eUD- zxDcN4!K-K#>Y`8~xzRN{#hF6^*^alJn@2PIbT4jx!M&H0iaEV9nk3IXT#) z`qI5UWXgc+mE+wtuvWVm)9U1{t2{A$mY@-}rl_l*MOuD-X6gE&4c&LioqilhBXMwX zMUxrx^pa`CE99TVPqwc-5D|FA%{++zLvG;ZK?RUB^iZn)(d+f4?A*jv(J5+ z>bJ`R|21$55?Xw{q)!H=lIf!?rLzjQI<;~m2L$aWt@wdo zVx~%1oXAh=%J_J9V5$QtS02x?wGCIdb31e_nY@24fxihxLXiW)AiJOWI(3y{uFcuB zpGpUkv!H$=$8Fyhd*cL=*@SQvzg2^QJp=2dr??awzqiVB9K+T^sHum^n0pv%LZv^>%=C@CU~2^xpCVE^h>i` zntY?7HBlrUKcl)hU;(fM#*;ysl05wZK0y4ii20$J2EDyHk)9Y>gLD2}1!!aZlY}W+XlMJ9EXyidY55+#FwT$aQL323%?BkOaN<<)HZfp;Ng+$NHWXya zLW-dA)h8V^=*d$|eS2o?ECnocgjt2UWZ4LOYD<51;FJ+`5IE7vx91Wq(WI_1U3v{T zikcpUQI)r|OBZ`%D5m+*RIq9UD8eIJf1Lw!Hj$b2=UZ5{(K?;}K6 z;y7M|cy<=Xm|R@eTnnjBf%Z@NNb7rWE?eQC(9chD~xZ z$hZ~ym-81@awF%3(dBYPKm7;;fxa!iw(fcCv?Z!O7bS1nkdw1`x}_ckE5H2niTko0 zwq5T#KT5mwV60;E&-`vVMsT)%q3L3elBfDoL0r{~Lh|-e3>aJQYly2L%z51A=Hw*5 zX^EM2ogM*%sd5I~2%qTrzX7{Hv~|&%@AYYe{5MrBK&YwQS}oz72a{ShEH5P4mKS3? zE{W+&*Z|oMXnzf1aXiTH^-hom( zJP0VIh#t#8|GP@wpG(;z$SsaQ&3~Rv*|X>x0(B%1$Z0)EmcmSpd=wtER4Glgekt9R z^hy;!&-jwR^r=W|H` z(DZAZ~IK8lUR zzq1&d==}2R6f2*#%fLGi1G9@pnqB2* zFGQ2?%WJ3QzNzbWSS&77beB_ict0ksRJBziF4nmfYi2lja@n-ZNQ(U4j)1yFb^Ggs zPe^K-7`ed1c>efy+L`T&4oT!l74m3L_<{3tF;qbn@7a+!Faf-T6hokbLK-BrCapfw!xuX z0D9n(4mPF%PAl+Cu=@S~*SX1lP=E+8Uc0(NVLg{z$}R(RIH!V{3tJA?XinURy1-*u z%M>Z51s4RYmN+p^QJJD6i8}{8UotaZ5`Vb%S~1SH3Q@iJlgNHV_I)-Ec8gD;D;GZW zY$%MmARi&*@Lm53;ez4l!!u)h_&&QM6R{q@vlD7+m5}yE^!0uf+OH|3yKC z-%M+(`#wMwY*8}vAL7k1DkA@S*w#ncp;wWvJ~#F5>fMD8ioD6I3wtv?bN#4CGF5hO zPS+@!5%fd(#Pc@ge2sIx9X`ZNWE1=^#d3V^RC5>1J@Vg}5;uMMnrSjDvhnSs8QLaG z|5?E>2!Vu6_&|W(%Y&BzTFV^kivxg4kVrjD=W*kQ%{UN9-8OHKElHA>2PlHfJ^cZXtn}$-=;c2aU>h&h0u=A@C1jcA8{-XCbaN*Bg zIl0J!d5b7aM=F!-+wqU=yR3)EIQFy3P0cTx%>a|={<}hzTp)Uz>9y`8! z4L~1hD(kwYeYN$nA?RR&f=C+y9{1J-2TyY9&I)|W48La-i%{!S6-yrf2N7#&i2~J@ zkz;C?8N}|MQ9bwR#Wl}DK4{QW75Xn;w`S)EXEv!gqu0IKcyXFQl4L5url*-$8sXdH)ZoRan+QbPk@AVGnrbrG7y-6bMxq0=%m%Zg z`15uNlt{$q&(gy*%=6R_+4-6Zb?n||?|r)m;+YH}#U)_Xh0&^>+Q(FYWtmm4q)_j{ z$zgx!#bp$Q)>|-PjY1)I&kPD6+YjlKme=eV%`$4|EapSw&`?h}agjTS*k=?WAHkRN z(Q)bY3T(ViRJrg+Q2Ro%1kXxBkPL%gD%iN<<>^rrY=$@&W%+Jz=Z&WorgOm5)Co#@ z!JZWmZN9uuM0|o6A9`iPUJV_uczAKhb-vt6BRLsE!mo>7duAu!0dB7Qs6Q(@>I^f=J?P{!72tgShmn{8=&JeE$;} zNpB?{SWZRf^Yr2F#@cv(TGfvrF+6f>GOq1%_6Zl8H?P<`t-eIYKaVU^Los3C7fU2n zZyqZ7I-#&-FTxJE`cM!*_n=l1`rdgEm&sTn+EJEqPe;>4zGX48uXwhf>`%j)iiP#) zq5DP>j_L1U^HVhfv_5tG>g;%ZG;Vyv+h~LX?qXc95+>8Z;(M1oP~#}DEe{}D59 z>C0t;(~p`JJ-hQe3f>4huaec&Ta0l;ny-D=%_cm_ZobJv`}PAVX8wN`JLiooop+zF zD9qc+tl1`ixWc#?vts+Q;+)IW)7n_^ay0zw?4mrRq-M}2T~d!_nGG=w*&cu~sRQ0O z&{N+?93c!<(A0zZ^_6YU+;C=v*j~=_Qa54x4zn+gvorEfj@c&Rml^2rNGrVjc)}GM ze)iF4jSj)*4?mjm^332SxJTs>HM#8B$~DSioRTaB?kDuDF;rvNrKepesh2w&$TJ%z zcp3dQhpr}GW#p-RVd0Y`t>q>R3Cts?=6M}eByJcp28#$tQMSDDHY^zCXPM8u;0pac zIy^xephLSj-NzPfZEZgfF7OYtCm7t*G8mvy*memHX8y#3Wn7UWmxy^yQ~UR6i24O1 zN%KE8q|?mrHA~O^rB5M2Ka7?j7ci%dHekdAo{v>Q?j)m;m3!L8U(V40`TA6AyeJZT z)x2s$CiD)eqU8!tPZUxdAl-e)=5M1qgp0a+nv}yr;eFqYFSPos*m;_Rc8JI2B*)rH zE~e83@Jo>_RxoMRoq2z^)gi^D?zW^wl}mT)7ki)1^VF@4=7qR*QW1iOl~laBv1I+U zYXuHKeo!!mc+rPa}mmMdrE{Eil7pTK)3wg#H zNyQKqh|fo!t7|1BZu1)ecBitl)Sv?-Lk?iZ>6Mu!(u~A&^kpcX*4u>9{#=hZ$a z!7pKim^VR(gf-y<8DByKNoggFv;$muKt2lwOdnH0Kp6ZnQUolIFIp?w07Arm%FAX=H+W9T2kom2h%Rhf6nyViFG29o6u!80rV5Woh4-#{sinmCCew>~ILz2s*$P~{y$l>Q0VksPAsbh~G&C{t80Hr$Vm7i`Hcu6sR8?dzP*iqGQ z`EeP1Yn%F3WGmcR7YjkcbP-6R@+F@qT5XI(Vx{{%32?7{3?+yz3)0S^w-CW>CK)E! z0RIX9!faA*k%((>!ooE?7$urXYN7L&HNU zrr=y*)=1DThU>;g6*#$G*5*QvpwYJt(--M>MPF4lp8A+Ap7Ixe8$&AWkKCi<*0igs z^}=eT4bppb8k6{$*a)K3%sm2!CtvF3(R1&txBr-x6u;H#xLuP5)DS~R7h5LLY}|Ga znN-Y3i8KwR>$gIBzRvf8|5TmdH?tbia3S+JPJydcCRuG3D2xUuSYRdbH<4S@A*EDz z`&i#DK$P$0+7@ZeI~X)In6)`$$ZOp@^_eOtkK^~}$&u*lBx7rkvW;MDw201-_Wtj2 z_|X|T`tAg~Kp7Qa`&H9I-En%F1_?N4*gHyB*?TXCzu=u`@h30t+uNfxX&1$)MkaP0 z@yG14s>Q`VDI)w0-(yF(r;k#+&Rx^m(8WD>ZF}wuox45LqD;v?gVHS#P z%%qiwwjc+r(u&9g&8HBjpJ6W@LtU^oP>SG>y|KGLnl5&lz4uu895jpxoqvs8wF_C` z4jjZab|PCygG#OJc)j!1^cuB>zY=C`H(b>`<%^}VJ^IG$;o4KB#HM?0=PWEi42C7= zcQuJ?@LTkRVY}~pMv`~xUFm%48K34&_i#Xm7?`yhHG<+jyTO{Q)3ckiDQo+2GBIdY zv5aGBgql`-TKnYH8Mm&u)B^7-x)S4-obS%0nM&y^(W3C%r&WS-NXJQ3V)}49 zFXP#tyXy#}pxZyR<8o?FBt-O|r&h7Yld`-Pg=D{0$7v7QJC7a;t_`@lvU$Io_!SKC z2lkLU+C$|HfLY4JKTuUex%#t^p0NlTkhZ{G%K)WHI>qSuG7IZGw{H}fRAux&MP#CA z-F-O1F(^xa`gIq(cZ0xEM{(2p`0Eqz65YoF4eZXN>_i`=6ug{iIH8_$GjWzPDXVOC zO1I!rlHx0VE?ac|kzMyRmz`g%{!!G>I^gR)#Y(t3^`Q)CE7vN^KEV9MaveBGaQ z-0NnH9iw5^b)j81OOFUB4?j6=Ql+$6X`nM~=)2I#nsm#md!9^-aWmPXbT9T4)jxyp z^>`nVl$Uuxg$8q8J`*TlQ;UX4w4}@3msEY^;k7$+uCe+g{ETiSzF#hb+kw9Zm^m*; z$*beA|L}55!E@Lhp2s_`!Id1pxNmJ?E}ZUu(9KB0%;W9`HqcKbhJn9`x?HI5Kc>TY z=D?x9S7pfkPmj)XtrN+PTt7$9cASd+n@%H)66SVBDU=+(xM7bZc8cnVC$QG!?J?-m ztMJ3xM;*WPC6tGy@BX7boD4i>pk1R@WONq^9q1xMoihjFrECjA7cY@waMa+*%1EnI zOXBO_X1u(zop65BxFwwZ4W;a+J@sU(aqEBHWZakSD}>_fE1-dAP#9*;$+@<2C(Q@q zHy_Oe=UpaW(FQ*t74ISWP9|L?iX}N((~RdIvVTa^x)WEvU3w*74{VfOrmg)H6IYKPvjI6NBGqZ8@Hys#?ZQ_$P#`nvS#`t8J+`mc{(UI%9sz=e z9TcYgMh`x|m|mCuM}j*iQd|JIK>bQl<}o1^dUwq5VH@ylF25MTf!wVqFR}g65@Cul zly@UoJ))xz3M3H0%wjN1n|tRWc&;Lw)a{+@!{xU}1q>U-HpP5Ht^&yQW8g}_S{?^6 z67%#n;h_%2hNFo8ctI&z?Vw>OZ1 zfKV7lfb!8lSH+!nT#`O0v?~f7^Lb&H=4>0DqBkb{NA7wOc$=}kaMB{nA;-o>&*+uTk4B6`Td7wt7K1n>Jno&zuB zTC%S$mFPS3bA@%?2Ha5H*-mhCnSnp zXkJvynY#0|nWT=X3vd^X)$H;;$~$G93ncG{pNzvDA}7a<=6qKi<6N*YoE=znfo*0I z@q2YvXuN|-FPS5(nQJqPwsjW(1pW|OX>5{mnD>2_LzHJHxi&Zs!ac?(+u9f?+RyfM z`vb*=4t2s&DyfRgir!nTyhJ}XN@U^k9QM&- zs<~s$t#hq^c%i@A^;G)NqYooTlc5Q+b5Uk1@GIM!aS5n!ld1WLJa%B6NUL`9vf*5t zQ!sIufaF3l2t>$X1M7&0?1jxA(Ez zd=FvAkrJ8m9)8FRbT&T`JiU5rW!!nFa@v1VeW@%wTlzo4FaiEsN( zF=r3|T(tdU+L=~LBhsCib$La~BFiYW$;qV@BlJsoD*jh`)hdnu9&+GU@bo$p?%?Is zRgRvZX@SMKf3cyDzJ6d4k?(#k8at$lVhT&W<(xiA2;2{xu=F}f(C8Z{q|wk2{l2)O z7LYYeYj43k4?G`ern$-9F3QR~_kc*jf{SvHx}z35`PE%2?WAhy`Sq9X{La+rn-BBJrQjIvcAM@NgFU;S1*zFTsfnIl!ijB zgI2E0bo$Wm{Wt3Y>EEl~-Fq$8mk2qSEMMnli=uQ~^uXgHmR1)?P~){ZX#?s)svFlJ z(gt#JZP^}g_jmuW=B@`co~y4CCx+WD9R=iJ1Dmv__f=5D6h>re5oy!_WKq5}Rk|fc zTp(}*0itB3()k`@g=dS`E-RcU4=H%Jee7p8O#Rw z5(1c6XbB3ChY0$*egj2pIh~NpEDqET7^>{;|S-^a#_q7T=}WuvUWA!@fqFHMfX!t+ta(%do~+1w64*F=Jm8z-ln#NKb- zFh4plWr(}&nEZ*l(%iH8;y{1ab}&T*D4ju8lD{g`uXjXz+%%?Xj@2SHMFI8El-5b+ z5|UAHR~awEiKy_kB7-$VHwlansKBaU81+A5X)2}*_Bgvx?>!D)IR<$Nw^t3!CVaHaPJUnqJZunyZUDKx}^`+laS!z~X znKOUI{<3(bVxXVzeMqSc9Ie;k`>7O*sm6;J2km-Ot;c!}Gabd&hhuzRZ;x&3KjEC% zN9Ig5oK|C3cK@3_dE?~jify#OvnAi;qhzPj(F?j}W`%al)#ob(H`q$k#xz!GY1E!C zjz~r(JF4}Pg}?V#Ia+VPM^P(k-D+%6)(umD0yzKCGO|{cv|T3FupiOnG%pR1TkG&aay>m$n)2++)Xd9Ge#!4z*j*dt2TEUm~3k zH%g`A8#I;WK*3pzVTh1(eg490VT?a>5MbM|+eEdkQ`6ih`2RrsNc@^7{ASdjrdnQP0q9o z&|-0i{A`1;Uc?@RsxFAi+zZ?DAyF}Sbo73!`*h~hOXhi`oJ^%dnNTJoM0KI+q>(JJ z`ozpqiaLqRUkM4|tb(fCtcB+D@n3ofxx(B_Tzj@kcOZ6^sldgM@1J3A4-Tc5NT}iM zFq_2@3JIuu0=>R}tEF7au+NT3|86M2lLNt#FwG!2$!A9pATS{-C~3)k&h8se8@wUM zdtFI9mqe?$%7idMXRo05CA+Y(aEM|a*4^ZAed4;sB-Ci!)uvv^JFOI5S*65jUtwL0R2twIp?nR2mj5u+fz{?SM%0vjIT08YE*iXG1I#GCTET0Tr)ic9~?L_C8+gLo605s z2lf5=7+bT~iv!7MSvGyWz@pEJYRZPvb^k5SRIZzbz&`D>{$M66*1%nJiNFaWL9b>F&AC{D0w-qp8DKVu}~LqNY&tN z5Kh(Y{v!=By?4Jvtzb%SHhYm(iaOlDBAVudph-bbwu$09kd;YsjhzCPiMnn3>~=nH zR?5IIuw|+6O&V&kUvleLFXPu|D@~W}jZKG`c^&3G1{zX5Vn*G%K~y#~6;5r?>HVflAw}xXFHtuQ=Gw zq{f3@n!v1q7_QJ+v<+@3@N7tD)Zagn!{b5}Fr+=LH{!b-z~nt)(IBl#MX_@I2ZGko zF0>z5A%BJ=htmI~Lq2}~Fk0pdNZ{bFAj-LQ8J+1N6R*1c+$Mr5+cM3SVj^caa9}g`} z9Z|oJ-OOw62@YkqdMR+q;T6t484xNI#ylJ`o~2?-`(;@brm|+V()x`!%@9kzC(jOj zYwSAikbg_OmJIs|J9(XTLQlgq|DJHpO&$3UG|lmgL$U$8_U@ZM!c|!vrhSUPC89q$ zZ_C>as$eo7v@byM*TlYlNi$Vc;p=^6eo63g0j!ejlPbcJgW`XFxLT9%ElDizP&Mc4 zb(f{=d|_?vUt^~wmvJ+H>_lQ7{WJzlu+)6GO_2*-w0yL1*83XgOx1-K=TWBc;}}lY z`vG2etANm=L>T+HL;ok&?HO5hL*faUYu9_FEWfMGE_wKo=tMA>-VbNKv4hW*L(VJA zo^z&oXvOm*?7La~@QdZ+pZc0M5ev&xm+qv0<#bnT_qZ-|KT4?5eC9bRLfs|)A{W+sydGxE^RE z*)E41eqSSgSItlDj9Q!pDWwJa=Y4xA7!v9tkGQj45^Zo9mwyV0H z6AyEUA_ERLPG9)_>Lo+VOTAijr}plq*~5Pch{3c5ipQTWl+GlCEuBL)CV4M%s50nz z3RcfJAoMal*<4*!tOp#ur(-*ZV4^LFX>Q~W!r)m_6pI8|sx;vL?e^u|VLug*;cKCa jaM}7VL{9(u>lqU;uQfTQ*Z#2sL^w3nbX7~0Z9@JB(?O Date: Thu, 9 Jan 2025 00:51:04 +0000 Subject: [PATCH 02/15] Automatic changelog update --- Resources/Changelog/Changelog220.yml | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/Resources/Changelog/Changelog220.yml b/Resources/Changelog/Changelog220.yml index ce76c90e7ca5dd..23b558f3dc35f7 100644 --- a/Resources/Changelog/Changelog220.yml +++ b/Resources/Changelog/Changelog220.yml @@ -1,15 +1,4 @@ Entries: -- author: AlwyAnri - changes: - - message: "\u041F\u0443\u0431\u043B\u0438\u0447\u043D\u043E\u0435 \"\u041C\u0438\ - \u0440\u043D\u043E\u0433\u043E \u0440\u0435\u0448\u0435\u043D\u0438\u044F \u043D\ - \u0435 \u0431\u0443\u0434\u0435\u0442\" \u0441\u043D\u043E\u0432\u0430 \u0432\ - \u044B\u0434\u0430\u0451\u0442 \u0422\u041A \u043E\u043F\u0435\u0440\u0430\u0442\ - \u0438\u0432\u043D\u0438\u043A\u0430\u043C!" - type: Fix - id: 264 - time: '2024-07-11T19:04:39.0000000+00:00' - url: https://github.com/SerbiaStrong-220/space-station-14/pull/1328 - author: gogenych changes: - message: "\u0421\u0440\u0435\u0434\u043D\u0435\u0435 \u0432\u0440\u0435\u043C\u044F\ @@ -6156,3 +6145,12 @@ id: 766 time: '2025-01-08T14:04:34.0000000+00:00' url: https://github.com/SerbiaStrong-220/space-station-14/pull/2460 +- author: Kemran + changes: + - message: "\u0418\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0430 \u0430\u0446\ + \u0438\u043A\u043B\u0438\u0447\u043D\u043E\u0441\u0442\u044C \u0430\u043D\u0438\ + \u043C\u0430\u0446\u0438\u0438 \u0433\u0430\u0437\u043E\u0432" + type: Fix + id: 767 + time: '2025-01-09T00:49:59.0000000+00:00' + url: https://github.com/SerbiaStrong-220/space-station-14/pull/2468 From 502f97738b250ab5282c8829cf5d14a055979d7f Mon Sep 17 00:00:00 2001 From: Andrey Ushakov <10843461+Werzet@users.noreply.github.com> Date: Sat, 11 Jan 2025 14:34:34 +1000 Subject: [PATCH 03/15] Add Id in ban message (#2472) --- Content.Server/Database/ServerBanDef.cs | 1 + Resources/Locale/en-US/connection-messages.ftl | 1 + Resources/Locale/ru-RU/connection-messages.ftl | 3 ++- 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Content.Server/Database/ServerBanDef.cs b/Content.Server/Database/ServerBanDef.cs index 4f97ba54710159..63cbc197339b4f 100644 --- a/Content.Server/Database/ServerBanDef.cs +++ b/Content.Server/Database/ServerBanDef.cs @@ -87,6 +87,7 @@ public string FormatBanMessage(IConfigurationManager cfg, ILocalizationManager l return $""" {loc.GetString("ban-banned-1")} + {loc.GetString("ban-banned-8", ("banId", Id.HasValue ? Id.Value : "-"))} {loc.GetString("ban-banned-4", ("admin", BanningAdminName ?? "Console"))} {loc.GetString("ban-banned-6", ("round", StatedRound != 0 ? StatedRound : loc.GetString("ban-banned-7")))} {loc.GetString("ban-banned-2", ("reason", Reason))} diff --git a/Resources/Locale/en-US/connection-messages.ftl b/Resources/Locale/en-US/connection-messages.ftl index 1ba2634944334d..3cea352c650cec 100644 --- a/Resources/Locale/en-US/connection-messages.ftl +++ b/Resources/Locale/en-US/connection-messages.ftl @@ -22,6 +22,7 @@ ban-banned-1 = You, or another user of this computer or connection, are banned f ban-banned-2 = The ban reason is: "{$reason}" ban-banned-3 = If you don't agree with the sanction, you can apeal it in our Discord: https://discord.gg/ss220 ban-banned-4 = Attempts to circumvent this ban such as creating a new account will be logged. +ban-banned-8 = Ban number: { $banId } soft-player-cap-full = The server is full! panic-bunker-account-denied = This server is in panic bunker mode, often enabled as a precaution against raids. New connections by accounts not meeting certain requirements are temporarily not accepted. Try again later diff --git a/Resources/Locale/ru-RU/connection-messages.ftl b/Resources/Locale/ru-RU/connection-messages.ftl index cf9e6e4178fd71..e955f6534b4b51 100644 --- a/Resources/Locale/ru-RU/connection-messages.ftl +++ b/Resources/Locale/ru-RU/connection-messages.ftl @@ -24,7 +24,7 @@ cmd-whitelistremove-not-found = Не удалось найти игрока '{ $ cmd-whitelistremove-arg-player = [player] cmd-kicknonwhitelisted-desc = Кикнуть всег игроков не в белом списке с сервера. cmd-kicknonwhitelisted-help = Использование: kicknonwhitelisted -ban-banned-permanent = Этот бан можно только обжаловать. Для этого посетите { $link }. +ban-banned-permanent = Вы забанены навсегда. ban-banned-permanent-appeal = Этот бан можно только обжаловать. Для этого посетите { $link }. ban-expires = Вы получили бан на { $duration } минут, и он истечёт { $time } по UTC (для московского времени добавьте 3 часа). ban-banned-1 = Вам, или другому пользователю этого компьютера или соединения, запрещено здесь играть. @@ -34,6 +34,7 @@ ban-banned-4 = Наказание выдано администратором: " ban-banned-5 = Попытки обойти этот бан, например, путём создания нового аккаунта, будут фиксироваться. ban-banned-6 = Номер раунда: { $round } ban-banned-7 = не указано +ban-banned-8 = Номер бана: { $banId } soft-player-cap-full = Сервер заполнен! panic-bunker-account-denied = Этот сервер находится в режиме "Бункер", часто используемом в качестве меры предосторожности против рейдов. Новые подключения от аккаунтов, не соответствующих определённым требованиям, временно не принимаются. Повторите попытку позже From d00f9a054b2a8fbc71aae6fb3f2c566cfbe623d0 Mon Sep 17 00:00:00 2001 From: Anri Date: Sat, 11 Jan 2025 15:52:36 +0300 Subject: [PATCH 04/15] Audio hater's PR (#2473) --- Content.Server/Telephone/TelephoneSystem.cs | 16 +++++++++++++++- .../Movement/Systems/MovementSoundSystem.cs | 14 ++++++++++++++ .../Movement/Systems/SharedMoverController.cs | 6 +++++- .../SS220/CCVars/CCVars220.Performance.cs | 12 ++++++++++++ Content.Shared/SS220/CCVars/CCVars220.cs | 2 +- Content.Shared/Sound/SharedEmitSoundSystem.cs | 12 +++++++++++- 6 files changed, 58 insertions(+), 4 deletions(-) create mode 100644 Content.Shared/SS220/CCVars/CCVars220.Performance.cs diff --git a/Content.Server/Telephone/TelephoneSystem.cs b/Content.Server/Telephone/TelephoneSystem.cs index b4874191074c89..c1d51f413d78d6 100644 --- a/Content.Server/Telephone/TelephoneSystem.cs +++ b/Content.Server/Telephone/TelephoneSystem.cs @@ -22,6 +22,8 @@ using Content.Shared.Silicons.StationAi; using Content.Shared.Silicons.Borgs.Components; using Content.Shared.SS220.TTS; +using Content.Shared.SS220.CCVars; +using Robust.Shared.Configuration; namespace Content.Server.Telephone; @@ -38,6 +40,11 @@ public sealed class TelephoneSystem : SharedTelephoneSystem [Dependency] private readonly IAdminLogManager _adminLogger = default!; [Dependency] private readonly IReplayRecordingManager _replay = default!; + // SS220 performance-test-begin + [Dependency] private readonly IConfigurationManager _configManager = default!; + private bool _lessSound; + // SS220 performance-test-end + // Has set used to prevent telephone feedback loops private HashSet<(EntityUid, string, Entity)> _recentChatMessages = new(); @@ -50,6 +57,8 @@ public override void Initialize() SubscribeLocalEvent(OnAttemptListen); SubscribeLocalEvent(OnListen); SubscribeLocalEvent(OnTelephoneMessageReceived); + + Subs.CVar(_configManager, CCVars220.LessSoundSources, value => _lessSound = value, true); // SS220 performance-test } #region: Events @@ -151,6 +160,11 @@ public override void Update(float frameTime) if (_timing.CurTime > telephone.StateStartTime + TimeSpan.FromSeconds(telephone.RingingTimeout)) EndTelephoneCalls(entity); + // SS220 performance-test + if (_lessSound) + break; + // SS220 performace-test + else if (telephone.RingTone != null && _timing.CurTime > telephone.NextRingToneTime) { @@ -160,7 +174,7 @@ public override void Update(float frameTime) break; - // Try to hang up if their has been no recent in-call activity + // Try to hang up if their has been no recent in-call activity case TelephoneState.InCall: if (_timing.CurTime > telephone.StateStartTime + TimeSpan.FromSeconds(telephone.IdlingTimeout)) EndTelephoneCalls(entity); diff --git a/Content.Shared/Movement/Systems/MovementSoundSystem.cs b/Content.Shared/Movement/Systems/MovementSoundSystem.cs index 9a1146779fac27..a37b37f3cf3570 100644 --- a/Content.Shared/Movement/Systems/MovementSoundSystem.cs +++ b/Content.Shared/Movement/Systems/MovementSoundSystem.cs @@ -1,6 +1,8 @@ using Content.Shared.Movement.Components; using Content.Shared.Movement.Events; +using Content.Shared.SS220.CCVars; using Robust.Shared.Audio.Systems; +using Robust.Shared.Configuration; using Robust.Shared.Timing; using Robust.Shared.Utility; @@ -14,10 +16,17 @@ public sealed class MovementSoundSystem : EntitySystem [Dependency] private readonly IGameTiming _timing = default!; [Dependency] private readonly SharedAudioSystem _audio = default!; + // SS220 performance-test-begin + [Dependency] private readonly IConfigurationManager _configManager = default!; + private bool _lessSound; + // SS220 performance-test-end + public override void Initialize() { base.Initialize(); SubscribeLocalEvent(OnMoveInput); + + Subs.CVar(_configManager, CCVars220.LessSoundSources, value => _lessSound = value, true); // SS220 performance-test } private void OnMoveInput(Entity ent, ref MoveInputEvent args) @@ -31,6 +40,11 @@ private void OnMoveInput(Entity ent, ref MoveInputEvent if (oldMoving == moving) return; + // SS220 performance-test + if (_lessSound) + return; + // SS220 performace-test + if (moving) { DebugTools.Assert(ent.Comp.SoundEntity == null); diff --git a/Content.Shared/Movement/Systems/SharedMoverController.cs b/Content.Shared/Movement/Systems/SharedMoverController.cs index 472d56b1d692d7..ca8c4cd47d3e6a 100644 --- a/Content.Shared/Movement/Systems/SharedMoverController.cs +++ b/Content.Shared/Movement/Systems/SharedMoverController.cs @@ -9,6 +9,7 @@ using Content.Shared.Mobs.Systems; using Content.Shared.Movement.Components; using Content.Shared.Movement.Events; +using Content.Shared.SS220.CCVars; using Content.Shared.Tag; using Robust.Shared.Audio; using Robust.Shared.Audio.Systems; @@ -66,6 +67,7 @@ public abstract partial class SharedMoverController : VirtualController private float _stopSpeed; private bool _relativeMovement; + private bool _lessSound; // SS220 Performance-test /// /// Cache the mob movement calculation to re-use elsewhere. @@ -93,6 +95,7 @@ public override void Initialize() InitializeRelay(); Subs.CVar(_configManager, CCVars.RelativeMovement, value => _relativeMovement = value, true); Subs.CVar(_configManager, CCVars.StopSpeed, value => _stopSpeed = value, true); + Subs.CVar(_configManager, CCVars220.LessSoundSources, value => _lessSound = value, true); // SS220 performance-test UpdatesBefore.Add(typeof(TileFrictionController)); } @@ -401,7 +404,8 @@ private bool TryGetSound( { sound = null; - if (!CanSound() || !_tags.HasTag(uid, "FootstepSound")) + // if (!CanSound() || !_tags.HasTag(uid, "FootstepSound") // SS220 performance test + if (!CanSound() || !_tags.HasTag(uid, "FootstepSound") || _lessSound) // SS220 performance test return false; var coordinates = xform.Coordinates; diff --git a/Content.Shared/SS220/CCVars/CCVars220.Performance.cs b/Content.Shared/SS220/CCVars/CCVars220.Performance.cs new file mode 100644 index 00000000000000..402dd88df16cc0 --- /dev/null +++ b/Content.Shared/SS220/CCVars/CCVars220.Performance.cs @@ -0,0 +1,12 @@ +using Robust.Shared.Configuration; + +namespace Content.Shared.SS220.CCVars; + +public sealed partial class CCVars220 +{ + /// + /// Cvar which turns off most of player generatish sounds like steps, telephones and etc. Do not affect TTS. + /// + public static readonly CVarDef LessSoundSources = + CVarDef.Create("audio.less_sound_sources", false, CVar.SERVER | CVar.REPLICATED, "serve to turn off most of player generatish sounds like steps, telephones and etc. Do not affect TTS."); +} diff --git a/Content.Shared/SS220/CCVars/CCVars220.cs b/Content.Shared/SS220/CCVars/CCVars220.cs index c03fed7258523c..a1b14a1101610c 100644 --- a/Content.Shared/SS220/CCVars/CCVars220.cs +++ b/Content.Shared/SS220/CCVars/CCVars220.cs @@ -3,7 +3,7 @@ namespace Content.Shared.SS220.CCVars; [CVarDefs] -public sealed class CCVars220 +public sealed partial class CCVars220 { /// /// Whether is bloom lighting eanbled or not diff --git a/Content.Shared/Sound/SharedEmitSoundSystem.cs b/Content.Shared/Sound/SharedEmitSoundSystem.cs index f92b30250e0806..940734e53503f0 100644 --- a/Content.Shared/Sound/SharedEmitSoundSystem.cs +++ b/Content.Shared/Sound/SharedEmitSoundSystem.cs @@ -7,12 +7,14 @@ using Content.Shared.Mobs; using Content.Shared.Popups; using Content.Shared.Sound.Components; +using Content.Shared.SS220.CCVars; using Content.Shared.Throwing; using Content.Shared.UserInterface; using Content.Shared.Whitelist; using JetBrains.Annotations; using Robust.Shared.Audio; using Robust.Shared.Audio.Systems; +using Robust.Shared.Configuration; using Robust.Shared.Map; using Robust.Shared.Map.Components; using Robust.Shared.Network; @@ -39,6 +41,11 @@ public abstract class SharedEmitSoundSystem : EntitySystem [Dependency] private readonly SharedMapSystem _map = default!; [Dependency] private readonly EntityWhitelistSystem _whitelistSystem = default!; + // SS220 performance-test-begin + [Dependency] private readonly IConfigurationManager _configManager = default!; + private bool _lessSound; + // SS220 performance-test-end + public override void Initialize() { base.Initialize(); @@ -55,6 +62,8 @@ public override void Initialize() SubscribeLocalEvent(OnEmitSoundOnCollide); SubscribeLocalEvent(OnMobState); + + Subs.CVar(_configManager, CCVars220.LessSoundSources, value => _lessSound = value, true); // SS220 performance-test } private void HandleEmitSoundOnUIOpen(EntityUid uid, EmitSoundOnUIOpenComponent component, AfterActivatableUIOpenEvent args) @@ -143,7 +152,8 @@ private void OnEmitSoundOnInteractUsing(Entity Date: Mon, 13 Jan 2025 12:34:09 +0300 Subject: [PATCH 05/15] Cult markings fix (#2471) --- .../SS220/CultYogg/Cultists/CultYoggSystem.cs | 50 ++++++++++--------- .../Humanoid/Markings/MarkingManager.cs | 24 +++++++-- .../Humanoid/Markings/MarkingPrototype.cs | 8 +++ .../Entities/Objects/CultYogg/cultstages.yml | 2 + 4 files changed, 57 insertions(+), 27 deletions(-) diff --git a/Content.Server/SS220/CultYogg/Cultists/CultYoggSystem.cs b/Content.Server/SS220/CultYogg/Cultists/CultYoggSystem.cs index 4683568942892d..45051197938627 100644 --- a/Content.Server/SS220/CultYogg/Cultists/CultYoggSystem.cs +++ b/Content.Server/SS220/CultYogg/Cultists/CultYoggSystem.cs @@ -43,6 +43,8 @@ public sealed class CultYoggSystem : SharedCultYoggSystem [Dependency] private readonly ThirstSystem _thirstSystem = default!; [Dependency] private readonly VomitSystem _vomitSystem = default!; + private const string CultDefaultMarking = "CultStage-Halo"; + public override void Initialize() { base.Initialize(); @@ -78,41 +80,41 @@ private void UpdateStage(Entity entity, ref ChangeCultYoggSta huAp.EyeColor = Color.Green; break; case 2: - if (!_prototype.HasIndex("CultStage-Halo")) - { - Log.Error("CultStage-Halo marking doesn't exist"); - return; - } - - if (!huAp.MarkingSet.Markings.ContainsKey(MarkingCategories.Special)) + if (_prototype.HasIndex(CultDefaultMarking)) { - huAp.MarkingSet.Markings.Add(MarkingCategories.Special, new List([new Marking("CultStage-Halo", colorCount: 1)])); + if (!huAp.MarkingSet.Markings.ContainsKey(MarkingCategories.Special)) + { + huAp.MarkingSet.Markings.Add(MarkingCategories.Special, new List([new Marking(CultDefaultMarking, colorCount: 1)])); + } + else + { + _humanoidAppearance.SetMarkingId(entity.Owner, + MarkingCategories.Special, + 0, + CultDefaultMarking, + huAp); + } } else { - _humanoidAppearance.SetMarkingId(entity.Owner, - MarkingCategories.Special, - 0, - "CultStage-Halo", - huAp); + Log.Error($"{CultDefaultMarking} marking doesn't exist"); } - Dirty(entity.Owner, huAp); - var newMarkingId = $"CultStage-{huAp.Species}"; - if (!_prototype.HasIndex(newMarkingId)) + if (_prototype.HasIndex(newMarkingId)) { - Log.Error($"{newMarkingId} marking doesn't exist"); - return; + if (huAp.MarkingSet.Markings.TryGetValue(MarkingCategories.Tail, out var value)) + { + entity.Comp.PreviousTail = value.FirstOrDefault(); + value.Clear(); + huAp.MarkingSet.Markings[MarkingCategories.Special].Add(new Marking(newMarkingId, colorCount: 1)); + } } - - if (huAp.MarkingSet.Markings.TryGetValue(MarkingCategories.Tail, out var value)) + else { - entity.Comp.PreviousTail = value.FirstOrDefault(); - value.Clear(); - huAp.MarkingSet.Markings[MarkingCategories.Special].Add(new Marking(newMarkingId, colorCount: 1)); - Dirty(entity.Owner, huAp); + // We have species-marking only for the Nians, so this log only leads to unnecessary errors. + //Log.Error($"{newMarkingId} marking doesn't exist"); } break; case 3: diff --git a/Content.Shared/Humanoid/Markings/MarkingManager.cs b/Content.Shared/Humanoid/Markings/MarkingManager.cs index 7bf0be998b6968..ac035de2e72ae1 100644 --- a/Content.Shared/Humanoid/Markings/MarkingManager.cs +++ b/Content.Shared/Humanoid/Markings/MarkingManager.cs @@ -59,7 +59,8 @@ public FrozenDictionary MarkingsByCategory(MarkingCate /// /// public IReadOnlyDictionary MarkingsByCategoryAndSpecies(MarkingCategories category, - string species) + string species, + bool showHidden = false) // SS220 cult markings fix { var speciesProto = _prototypeManager.Index(species); var onlyWhitelisted = _prototypeManager.Index(speciesProto.MarkingPoints).OnlyWhitelisted; @@ -67,6 +68,11 @@ public IReadOnlyDictionary MarkingsByCategoryAndSpecie foreach (var (key, marking) in MarkingsByCategory(category)) { + // SS220 cult markings fix begin + if (!showHidden && marking.Hidden) + continue; + // SS220 cult markings fix end + if (onlyWhitelisted && marking.SpeciesRestrictions == null) { continue; @@ -93,12 +99,18 @@ public IReadOnlyDictionary MarkingsByCategoryAndSpecie /// /// public IReadOnlyDictionary MarkingsByCategoryAndSex(MarkingCategories category, - Sex sex) + Sex sex, + bool showHidden = false) // SS220 cult markings fix { var res = new Dictionary(); foreach (var (key, marking) in MarkingsByCategory(category)) { + // SS220 cult markings fix begin + if (!showHidden && marking.Hidden) + continue; + // SS220 cult markings fix end + if (marking.SexRestriction != null && marking.SexRestriction != sex) { continue; @@ -122,7 +134,8 @@ public IReadOnlyDictionary MarkingsByCategoryAndSex(Ma /// /// public IReadOnlyDictionary MarkingsByCategoryAndSpeciesAndSex(MarkingCategories category, - string species, Sex sex) + string species, Sex sex, + bool showHidden = false) // SS220 cult markings fix { var speciesProto = _prototypeManager.Index(species); var onlyWhitelisted = _prototypeManager.Index(speciesProto.MarkingPoints).OnlyWhitelisted; @@ -130,6 +143,11 @@ public IReadOnlyDictionary MarkingsByCategoryAndSpecie foreach (var (key, marking) in MarkingsByCategory(category)) { + // SS220 cult markings fix begin + if (!showHidden && marking.Hidden) + continue; + // SS220 cult markings fix end + if (onlyWhitelisted && marking.SpeciesRestrictions == null) { continue; diff --git a/Content.Shared/Humanoid/Markings/MarkingPrototype.cs b/Content.Shared/Humanoid/Markings/MarkingPrototype.cs index 28bfd71c0da49d..35ac859b88afb4 100644 --- a/Content.Shared/Humanoid/Markings/MarkingPrototype.cs +++ b/Content.Shared/Humanoid/Markings/MarkingPrototype.cs @@ -34,6 +34,14 @@ public sealed partial class MarkingPrototype : IPrototype [DataField("forcedColoring")] public bool ForcedColoring { get; private set; } = false; + // SS220 cult markings fix begin + /// + /// Is the marking hidden from the marking picker + /// + [DataField] + public bool Hidden = false; + // SS220 cult markings fix end + [DataField("coloring")] public MarkingColors Coloring { get; private set; } = new(); diff --git a/Resources/Prototypes/SS220/Entities/Objects/CultYogg/cultstages.yml b/Resources/Prototypes/SS220/Entities/Objects/CultYogg/cultstages.yml index 324f3f3ba76e78..6e307d6b94e1e2 100644 --- a/Resources/Prototypes/SS220/Entities/Objects/CultYogg/cultstages.yml +++ b/Resources/Prototypes/SS220/Entities/Objects/CultYogg/cultstages.yml @@ -4,6 +4,7 @@ id: CultStage-Halo bodyPart: Special markingCategory: Special + hidden: true sprites: - sprite: SS220/Objects/CultYogg/cultstages.rsi state: halo @@ -12,6 +13,7 @@ id: CultStage-Moth bodyPart: Special markingCategory: Special + hidden: true sprites: - sprite: SS220/Objects/CultYogg/cultstages.rsi state: moth From 0a26d2e0f68288c20510eb287c2068522a7ad7d7 Mon Sep 17 00:00:00 2001 From: Maxon Date: Mon, 13 Jan 2025 09:35:14 +0000 Subject: [PATCH 06/15] Automatic changelog update --- Resources/Changelog/Changelog220.yml | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/Resources/Changelog/Changelog220.yml b/Resources/Changelog/Changelog220.yml index 23b558f3dc35f7..2167afc47befc1 100644 --- a/Resources/Changelog/Changelog220.yml +++ b/Resources/Changelog/Changelog220.yml @@ -1,14 +1,4 @@ Entries: -- author: gogenych - changes: - - message: "\u0421\u0440\u0435\u0434\u043D\u0435\u0435 \u0432\u0440\u0435\u043C\u044F\ - \ \u0441\u043F\u0430\u0432\u043D\u0430 \u043C\u0435\u0442\u0435\u043E\u0440\u0438\ - \u0442\u043E\u0432 \u043F\u043E\u0434\u043D\u044F\u0442\u043E \u0441 15 \u043C\ - \u0438\u043D\u0443\u0442 \u0434\u043E 20 \u043C\u0438\u043D\u0443\u0442" - type: Fix - id: 265 - time: '2024-07-11T19:06:10.0000000+00:00' - url: https://github.com/SerbiaStrong-220/space-station-14/pull/1344 - author: gogenych changes: - message: "\u041A\u041F\u041A \u043A\u043B\u043E\u0443\u043D\u0430 \u0431\u043E\ @@ -6154,3 +6144,14 @@ id: 767 time: '2025-01-09T00:49:59.0000000+00:00' url: https://github.com/SerbiaStrong-220/space-station-14/pull/2468 +- author: Kirus59 + changes: + - message: "\u0418\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D \u0431\u0430\u0433\ + \ \u0441 \u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435\u043C\ + \ \u0447\u0435\u0440\u0442 \u0432\u043D\u0435\u0448\u043D\u043E\u0441\u0442\u0438\ + \ \u043A\u0443\u043B\u044C\u0442\u0430 \u0432 \u043F\u0435\u0440\u0441\u043E\ + \u043D\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438" + type: Fix + id: 768 + time: '2025-01-13T09:34:10.0000000+00:00' + url: https://github.com/SerbiaStrong-220/space-station-14/pull/2471 From 82df98c0af492b8da4436e49c4d681ca37453074 Mon Sep 17 00:00:00 2001 From: Kirus59 <145689588+Kirus59@users.noreply.github.com> Date: Mon, 13 Jan 2025 13:11:07 +0300 Subject: [PATCH 07/15] PonderingOrb speak fix (#2479) --- Resources/Prototypes/Entities/Objects/Fun/toys.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Resources/Prototypes/Entities/Objects/Fun/toys.yml b/Resources/Prototypes/Entities/Objects/Fun/toys.yml index a35ca173f39032..d4f5946a945903 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/toys.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/toys.yml @@ -1349,6 +1349,16 @@ delay: 10 - type: Speech speechSounds: Pai + - type: TriggerOnActivate + - type: TriggerOnSignal + - type: DeviceNetwork + deviceNetId: Wireless + receiveFrequencyId: BasicDevice + - type: WirelessNetworkConnection + range: 200 + - type: DeviceLinkSink + ports: + - Trigger # ss220 PonderingOrb speak on use end - type: entity From 6bff2abdab77401ccaef3c5499366a3a31bf169f Mon Sep 17 00:00:00 2001 From: Maxon Date: Mon, 13 Jan 2025 10:12:15 +0000 Subject: [PATCH 08/15] Automatic changelog update --- Resources/Changelog/Changelog220.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/Resources/Changelog/Changelog220.yml b/Resources/Changelog/Changelog220.yml index 2167afc47befc1..79fbfb52640f84 100644 --- a/Resources/Changelog/Changelog220.yml +++ b/Resources/Changelog/Changelog220.yml @@ -1,14 +1,4 @@ Entries: -- author: gogenych - changes: - - message: "\u041A\u041F\u041A \u043A\u043B\u043E\u0443\u043D\u0430 \u0431\u043E\ - \u043B\u044C\u0448\u0435 \u043D\u0435 \u043A\u0430\u0442\u0430\u043F\u0443\u043B\ - \u044C\u0442\u0438\u0440\u0443\u0435\u0442 \u043D\u0430 \u043F\u043E\u043B \u044D\ - \u043A\u0440\u0430\u043D\u0430" - type: Fix - id: 267 - time: '2024-07-11T19:12:40.0000000+00:00' - url: https://github.com/SerbiaStrong-220/space-station-14/pull/1342 - author: gogenych changes: - message: "\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D \u043A\u0440\u0430\u0444\ @@ -6155,3 +6145,13 @@ id: 768 time: '2025-01-13T09:34:10.0000000+00:00' url: https://github.com/SerbiaStrong-220/space-station-14/pull/2471 +- author: Kirus59 + changes: + - message: "\u0428\u0430\u0440 \u0440\u0430\u0437\u043C\u044B\u0448\u043B\u0435\u043D\ + \u0438\u0439 \u0441\u043D\u043E\u0432\u0430 \u043C\u043E\u0436\u0435\u0442 \u043E\ + \u0442\u0432\u0435\u0447\u0430\u0442\u044C \u043D\u0430 \u0432\u0430\u0448\u0438\ + \ \u0432\u043E\u043F\u0440\u043E\u0441\u044B!" + type: Fix + id: 769 + time: '2025-01-13T10:11:11.0000000+00:00' + url: https://github.com/SerbiaStrong-220/space-station-14/pull/2479 From eff8ec4e6474526a014bf3ca7cb3810bce85b36b Mon Sep 17 00:00:00 2001 From: SkaldetSkaeg Date: Tue, 14 Jan 2025 11:58:03 +0700 Subject: [PATCH 09/15] Cult_hotfix_4 (#2476) --- .../Bed/Cryostorage/CryostorageSystem.cs | 5 + .../Bed/Cryostorage/BeingCryoDeletedEvent.cs | 7 + .../SS220/CultYogg/Cultists/CultYoggSystem.cs | 2 +- .../CultYogg/MiGo/MiGoReplacementSystem.cs | 120 ------------------ .../SacraficialReplacementEvent.cs | 4 +- .../SacraficialReplacementSystem.cs | 46 ++++--- .../Rules/Components/CultYoggRuleComponent.cs | 2 - .../GameTicking/Rules/CultYoggRuleSystem.cs | 36 ++---- .../Systems/CultYoggSummonConditionSystem.cs | 13 +- .../SS220/Telepathy/TelepathySystem.cs | 8 +- .../Corruption/CultYoggCorruptedPrototype.cs | 6 + .../SharedCultYoggCorruptedSystem.cs | 11 +- .../CultYogg/Cultists/SharedCultYoggSystem.cs | 6 +- .../CultYoggSacrificialComponent.cs | 17 +++ .../CultYoggSacrificialMindComponent.cs | 15 --- .../ru-RU/ss220/cultYogg/cult_yogg_popups.ftl | 1 + .../cult_yogg_replacement_announces.ftl | 12 +- .../Entities/Objects/CultYogg/corruption.yml | 1 + .../Entities/Objects/CultYogg/cultstages.yml | 60 ++++++++- .../CultYogg/cultstages.rsi/antenna_moth.png | Bin 0 -> 522 bytes .../CultYogg/cultstages.rsi/back_arachnid.png | Bin 0 -> 1517 bytes .../CultYogg/cultstages.rsi/back_human.png | Bin 0 -> 1758 bytes .../Objects/CultYogg/cultstages.rsi/meta.json | 34 ++++- .../Objects/CultYogg/cultstages.rsi/moth.png | Bin 1441 -> 0 bytes .../cultstages.rsi/shrooms_arachnid.png | Bin 0 -> 772 bytes .../CultYogg/cultstages.rsi/shrooms_diona.png | Bin 0 -> 2147 bytes .../CultYogg/cultstages.rsi/shrooms_human.png | Bin 0 -> 764 bytes .../CultYogg/cultstages.rsi/shrooms_moth.png | Bin 0 -> 541 bytes .../CultYogg/cultstages.rsi/shrooms_vox.png | Bin 0 -> 1688 bytes .../CultYogg/cultstages.rsi/wings_moth.png | Bin 0 -> 2376 bytes 30 files changed, 202 insertions(+), 204 deletions(-) create mode 100644 Content.Server/SS220/Bed/Cryostorage/BeingCryoDeletedEvent.cs delete mode 100644 Content.Server/SS220/CultYogg/MiGo/MiGoReplacementSystem.cs delete mode 100644 Content.Shared/SS220/CultYogg/Sacraficials/CultYoggSacrificialMindComponent.cs create mode 100644 Resources/Textures/SS220/Objects/CultYogg/cultstages.rsi/antenna_moth.png create mode 100644 Resources/Textures/SS220/Objects/CultYogg/cultstages.rsi/back_arachnid.png create mode 100644 Resources/Textures/SS220/Objects/CultYogg/cultstages.rsi/back_human.png delete mode 100644 Resources/Textures/SS220/Objects/CultYogg/cultstages.rsi/moth.png create mode 100644 Resources/Textures/SS220/Objects/CultYogg/cultstages.rsi/shrooms_arachnid.png create mode 100644 Resources/Textures/SS220/Objects/CultYogg/cultstages.rsi/shrooms_diona.png create mode 100644 Resources/Textures/SS220/Objects/CultYogg/cultstages.rsi/shrooms_human.png create mode 100644 Resources/Textures/SS220/Objects/CultYogg/cultstages.rsi/shrooms_moth.png create mode 100644 Resources/Textures/SS220/Objects/CultYogg/cultstages.rsi/shrooms_vox.png create mode 100644 Resources/Textures/SS220/Objects/CultYogg/cultstages.rsi/wings_moth.png diff --git a/Content.Server/Bed/Cryostorage/CryostorageSystem.cs b/Content.Server/Bed/Cryostorage/CryostorageSystem.cs index 646f4694ffa54d..2edc4541f8f34d 100644 --- a/Content.Server/Bed/Cryostorage/CryostorageSystem.cs +++ b/Content.Server/Bed/Cryostorage/CryostorageSystem.cs @@ -31,6 +31,7 @@ using Robust.Shared.Utility; using Content.Shared.Roles; // SS220 Cryostorage ghost role fix using Robust.Shared.Prototypes; // SS220 Cryostorage ghost role fix +using Content.Server.SS220.Bed.Cryostorage; //SS220 Cult_hotfix_4 namespace Content.Server.Bed.Cryostorage; @@ -222,6 +223,10 @@ public void HandleEnterCryostorage(Entity ent, Ne } comp.AllowReEnteringBody = false; + //SS220 start Cult_hotfix_4 + var ev = new BeingCryoDeletedEvent(); + RaiseLocalEvent(ent, ref ev); + //SS220 end Cult_hotfix_4 _transform.SetParent(ent, PausedMap.Value); cryostorageComponent.StoredPlayers.Add(ent); Dirty(ent, comp); diff --git a/Content.Server/SS220/Bed/Cryostorage/BeingCryoDeletedEvent.cs b/Content.Server/SS220/Bed/Cryostorage/BeingCryoDeletedEvent.cs new file mode 100644 index 00000000000000..37dbd11ecc0464 --- /dev/null +++ b/Content.Server/SS220/Bed/Cryostorage/BeingCryoDeletedEvent.cs @@ -0,0 +1,7 @@ +namespace Content.Server.SS220.Bed.Cryostorage; + +/// +/// Raised before body will deleted by a cryostorages +/// +[ByRefEvent] +public readonly record struct BeingCryoDeletedEvent(); diff --git a/Content.Server/SS220/CultYogg/Cultists/CultYoggSystem.cs b/Content.Server/SS220/CultYogg/Cultists/CultYoggSystem.cs index 45051197938627..571da95579f0e7 100644 --- a/Content.Server/SS220/CultYogg/Cultists/CultYoggSystem.cs +++ b/Content.Server/SS220/CultYogg/Cultists/CultYoggSystem.cs @@ -104,7 +104,7 @@ private void UpdateStage(Entity entity, ref ChangeCultYoggSta if (_prototype.HasIndex(newMarkingId)) { - if (huAp.MarkingSet.Markings.TryGetValue(MarkingCategories.Tail, out var value)) + if (huAp.MarkingSet.Markings.TryGetValue(MarkingCategories.Special, out var value)) { entity.Comp.PreviousTail = value.FirstOrDefault(); value.Clear(); diff --git a/Content.Server/SS220/CultYogg/MiGo/MiGoReplacementSystem.cs b/Content.Server/SS220/CultYogg/MiGo/MiGoReplacementSystem.cs deleted file mode 100644 index 5ea55844a4c4ff..00000000000000 --- a/Content.Server/SS220/CultYogg/MiGo/MiGoReplacementSystem.cs +++ /dev/null @@ -1,120 +0,0 @@ -// © SS220, An EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt -using Content.Shared.Mind; -using Content.Shared.Mind.Components; -using Content.Shared.Mobs; -using Content.Shared.Mobs.Systems; -using Content.Shared.SS220.CultYogg.MiGo; -using Content.Server.SS220.GameTicking.Rules; -using Robust.Shared.Player; -using Robust.Shared.Timing; - -namespace Content.Server.SS220.CultYogg.MiGo; - -public sealed partial class MiGoReplacementSystem : SharedMiGoSystem -{ - [Dependency] private readonly MobStateSystem _mobState = default!; - [Dependency] private readonly SharedMindSystem _mind = default!; - [Dependency] private readonly IGameTiming _timing = default!; - - public override void Initialize() //ToDo check for stupidity - { - SubscribeLocalEvent(OnMobState); - SubscribeLocalEvent(OnPlayerAttached); - SubscribeLocalEvent(OnPlayerDetached); - } - private void OnPlayerAttached(Entity ent, ref PlayerAttachedEvent args) - { - CheckTimerConditions(ent, ent.Comp); - } - private void OnPlayerDetached(Entity ent, ref PlayerDetachedEvent args) - { - CheckTimerConditions(ent, ent.Comp); - } - - /// - /// On death removes active comps and gives genetic damage to prevent cloning, reduce this to allow cloning. - /// - private void OnMobState(Entity ent, ref MobStateChangedEvent args) - { - CheckTimerConditions(ent, ent.Comp); - } - - public override void Update(float frameTime) - { - base.Update(frameTime); - - var query = EntityQueryEnumerator(); - while (query.MoveNext(out var uid, out var migoComp)) - { - //if timer is on then count it - if (!migoComp.ShouldBeCounted) - continue; - - if (migoComp.ReplacementEventTime == null) - continue; - - if (_timing.CurTime < migoComp.ReplacementEventTime) - continue; - - var meta = MetaData(uid); - - var ev = new CultYoggAnouncementEvent(uid, Loc.GetString("cult-yogg-migo-can-replace", ("name", meta.EntityName))); - RaiseLocalEvent(uid, ref ev, true); - migoComp.ShouldBeCounted = false; - } - } - - //Timer tweaking - private void StartTimer(MiGoComponent comp) - { - if (comp.ReplacementEventTime != null) - return; - - comp.ReplacementEventTime = _timing.CurTime + comp.BeforeReplacementCooldown; - comp.ShouldBeCounted = true; - } - - //Delete replacement marker from a MiGo - private void RemoveReplacement(EntityUid uid, MiGoComponent сomp) - { - сomp.ReplacementEventTime = null; - - var meta = MetaData(uid); - - var ev = new CultYoggAnouncementEvent(uid, Loc.GetString("cult-yogg-migo-cancel-replace", ("name", meta.EntityName))); - RaiseLocalEvent(uid, ref ev, true); - } - - private void CheckTimerConditions(EntityUid uid, MiGoComponent comp) - { - if (_mobState.IsDead(uid)) //if you are dead = timer - { - StartTimer(comp); - return; - } - /* - if (!TryComp(uid, out var mindComp) || mindComp == null) - return; - - if (mindComp.Mind == null) // if you ghosted = timer - { - StartTimer(comp); - return; - } - */ - - if (!_mind.TryGetMind(uid, out var mind, out var userMidComp) || (userMidComp == null)) - { - StartTimer(comp); - return; - } - - if (userMidComp.Session == null) // if you left = timer - { - StartTimer(comp); - return; - } - - RemoveReplacement(uid, comp); - } -} diff --git a/Content.Server/SS220/CultYogg/Sacraficials/SacraficialReplacementEvent.cs b/Content.Server/SS220/CultYogg/Sacraficials/SacraficialReplacementEvent.cs index 3cb0b1576a96a5..069dd1b4442c14 100644 --- a/Content.Server/SS220/CultYogg/Sacraficials/SacraficialReplacementEvent.cs +++ b/Content.Server/SS220/CultYogg/Sacraficials/SacraficialReplacementEvent.cs @@ -7,11 +7,9 @@ namespace Content.Server.SS220.CultYogg.Sacraficials; public sealed class SacraficialReplacementEvent : EntityEventArgs { public readonly EntityUid Entity; - public readonly NetUserId Player; - public SacraficialReplacementEvent(EntityUid entity, NetUserId player) + public SacraficialReplacementEvent(EntityUid entity) { Entity = entity; - Player = player; } } diff --git a/Content.Server/SS220/CultYogg/Sacraficials/SacraficialReplacementSystem.cs b/Content.Server/SS220/CultYogg/Sacraficials/SacraficialReplacementSystem.cs index ccb967302187b3..0b5935e2f434da 100644 --- a/Content.Server/SS220/CultYogg/Sacraficials/SacraficialReplacementSystem.cs +++ b/Content.Server/SS220/CultYogg/Sacraficials/SacraficialReplacementSystem.cs @@ -6,6 +6,7 @@ using Robust.Shared.Network; using Robust.Shared.Player; using Robust.Shared.Timing; +using Content.Server.SS220.Bed.Cryostorage; namespace Content.Server.SS220.CultYogg.Sacraficials; @@ -13,9 +14,10 @@ public sealed partial class SacraficialReplacementSystem : EntitySystem { [Dependency] private readonly IGameTiming _timing = default!; + //dictionary of sacraficials uids and time when they left body by gibbing/ghosting/leaving anything - private Dictionary<(EntityUid, NetUserId), TimeSpan> _replaceSacrSchedule = new(); - private Dictionary<(EntityUid, NetUserId), TimeSpan> _announceSchedule = new(); + private Dictionary _replaceSacrSchedule = []; + private Dictionary _announceSchedule = []; //Count down the moment when sacraficial will be raplaced private TimeSpan _beforeReplacementCooldown = TimeSpan.FromSeconds(900); @@ -31,6 +33,7 @@ public override void Initialize() SubscribeLocalEvent(OnRemove); SubscribeLocalEvent(OnPlayerAttached); SubscribeLocalEvent(OnPlayerDetached); + SubscribeLocalEvent(OnCryoDeleted); } private void OnInit(Entity ent, ref ComponentInit args) { @@ -40,6 +43,9 @@ private void OnInit(Entity ent, ref ComponentInit { RaiseLocalEvent(uid, ref ev); } + + var ev2 = new CultYoggAnouncementEvent(ent, Loc.GetString("cult-yogg-sacraficial-was-picked", ("name", MetaData(ent).EntityName))); + RaiseLocalEvent(ent, ref ev, true); } private void OnRemove(Entity ent, ref ComponentRemove args) { @@ -52,19 +58,28 @@ private void OnRemove(Entity ent, ref ComponentRem } private void OnPlayerAttached(Entity ent, ref PlayerAttachedEvent args) { - _replaceSacrSchedule.Remove((ent, args.Player.UserId)); - _announceSchedule.Remove((ent, args.Player.UserId)); + _replaceSacrSchedule.Remove(ent); - var meta = MetaData(ent); + if(_announceSchedule.ContainsKey(ent))//if the announcement was not sent + { + _announceSchedule.Remove(ent); + return; + } - var ev = new CultYoggAnouncementEvent(ent, Loc.GetString("cult-yogg-sacraficial-cant-be-replaced", ("name", meta.EntityName))); + var ev = new CultYoggAnouncementEvent(ent, Loc.GetString("cult-yogg-sacraficial-cant-be-replaced", ("name", MetaData(ent).EntityName))); RaiseLocalEvent(ent, ref ev, true); } private void OnPlayerDetached(Entity ent, ref PlayerDetachedEvent args) { - _replaceSacrSchedule.Add((ent, args.Player.UserId), _timing.CurTime); - _announceSchedule.Add((ent, args.Player.UserId), _timing.CurTime); + _replaceSacrSchedule.Add(ent, _timing.CurTime + ent.Comp.ReplacementCooldown); + _announceSchedule.Add(ent, _timing.CurTime + ent.Comp.AnnounceReplacementCooldown); + } + + private void OnCryoDeleted(Entity ent, ref BeingCryoDeletedEvent args) + { + var ev = new SacraficialReplacementEvent(ent); + RaiseLocalEvent(ent, ref ev, true); } private void ReplacamantStatusAnnounce(EntityUid uid) @@ -72,9 +87,8 @@ private void ReplacamantStatusAnnounce(EntityUid uid) if (!TryComp(uid, out var comp)) return; - var meta = MetaData(uid); - - var ev = new CultYoggAnouncementEvent(uid, Loc.GetString("cult-yogg-sacraficial-may-be-replaced", ("name", meta.EntityName))); + var time = (comp.ReplacementCooldown.TotalSeconds - comp.AnnounceReplacementCooldown.TotalSeconds).ToString(); + var ev = new CultYoggAnouncementEvent(uid, Loc.GetString("cult-yogg-sacraficial-will-be-replaced", ("name", MetaData(uid).EntityName), ("time", time))); RaiseLocalEvent(uid, ref ev, true); } @@ -83,21 +97,21 @@ public override void Update(float frameTime) base.Update(frameTime); foreach (var pair in _replaceSacrSchedule) { - if (_timing.CurTime < pair.Value + _beforeReplacementCooldown) + if (_timing.CurTime < pair.Value) continue; - var ev = new SacraficialReplacementEvent(pair.Key.Item1, pair.Key.Item2); - RaiseLocalEvent(pair.Key.Item1, ref ev, true); + var ev = new SacraficialReplacementEvent(pair.Key); + RaiseLocalEvent(pair.Key, ref ev, true); _replaceSacrSchedule.Remove(pair.Key); } foreach (var pair in _announceSchedule)//it is stupid, but idk how to make it 1 time event without second System :( { - if (_timing.CurTime < pair.Value + _announceReplacementCooldown) + if (_timing.CurTime < pair.Value) continue; - ReplacamantStatusAnnounce(pair.Key.Item1); + ReplacamantStatusAnnounce(pair.Key); _announceSchedule.Remove(pair.Key); } diff --git a/Content.Server/SS220/GameTicking/Rules/Components/CultYoggRuleComponent.cs b/Content.Server/SS220/GameTicking/Rules/Components/CultYoggRuleComponent.cs index f5747b00b50b90..7860abcc239956 100644 --- a/Content.Server/SS220/GameTicking/Rules/Components/CultYoggRuleComponent.cs +++ b/Content.Server/SS220/GameTicking/Rules/Components/CultYoggRuleComponent.cs @@ -41,8 +41,6 @@ public sealed partial class CultYoggRuleComponent : Component /// /// Storage for a sacraficials /// - public readonly List SacraficialsList = []; - public readonly int[] TierOfSacraficials = [1, 2, 3];//trying to save tier in target, so they might be replaced with the same lvl target /// diff --git a/Content.Server/SS220/GameTicking/Rules/CultYoggRuleSystem.cs b/Content.Server/SS220/GameTicking/Rules/CultYoggRuleSystem.cs index 2d2975af411b2b..986ba4cb9b237d 100644 --- a/Content.Server/SS220/GameTicking/Rules/CultYoggRuleSystem.cs +++ b/Content.Server/SS220/GameTicking/Rules/CultYoggRuleSystem.cs @@ -193,9 +193,6 @@ private void SetSacraficials(CultYoggRuleComponent component) if (!_job.MindTryGetJob(mind, out var prototype)) continue; - if (HasComp(mind))//shouldn't be already a target - continue; - if (_sacraficialTiers[tier].Contains(prototype.ID)) allSuitable.Add(mind); } @@ -223,17 +220,11 @@ private void SetSacraficeTarget(CultYoggRuleComponent component, EntityUid? uid, if (mind.Session.AttachedEntity is null) return; - var meta = MetaData(uid.Value); - //_adminLogger.Add(LogType.EventRan, LogImpact.High, $"CultYogg person {meta.EntityName} where picked for a tier: {tier}"); - EnsureComp(uid.Value); //ToDo figure out do i need this? - var sacrComp = EnsureComp(mind.Session.AttachedEntity.Value); sacrComp.Tier = tier; - - component.SacraficialsList.Add(uid.Value); } private List GetAliveNoneCultHumans()//maybe add here sacraficials and cultists filter @@ -252,6 +243,9 @@ private List GetAliveNoneCultHumans()//maybe add here sacraficials an if (HasComp(uid)) continue; + if (HasComp(uid)) + continue; + // the player has to be alive if (_mobState.IsAlive(uid, mobState)) allHumans.Add(mc.Mind.Value); @@ -299,19 +293,8 @@ private void SacraficialReplacement(ref SacraficialReplacementEvent args) RemComp(args.Entity); - if (!_mind.TryGetMind(args.Player, out var mindUid, out var mind)) - return; - - if (mindUid == null) - return; - - var meta = MetaData(args.Entity); - var ev = new CultYoggAnouncementEvent(args.Entity, Loc.GetString("cult-yogg-migo-can-replace", ("name", meta.EntityName))); + var ev = new CultYoggAnouncementEvent(args.Entity, Loc.GetString("cult-yogg-sacraficial-was-replaced", ("name", MetaData(args.Entity).EntityName))); RaiseLocalEvent(args.Entity, ref ev, true); - - cultRuleComp.SacraficialsList.Remove(mindUid.Value); - - RemComp(mindUid.Value); } private void SetNewSacraficial(CultYoggRuleComponent comp, int tier) { @@ -442,15 +425,14 @@ public void DeMakeCultist(EntityUid uid, CultYoggRuleComponent component) private void SendCultAnounce(ref CultYoggAnouncementEvent args) { //ToDo refactor without spam - /* - GetCultGameRule(out var comp); - if (comp == null) + var ruleComp = GetCultGameRule(); + + if (ruleComp == null) return; - var ev = new TelepathyAnnouncementSendEvent(args.Message, comp.TelepathyChannel); - RaiseLocalEvent(ref ev); - */ + var ev = new TelepathyAnnouncementSendEvent(args.Message, ruleComp.TelepathyChannel); + RaiseLocalEvent(args.Entity, ev, true); } #endregion diff --git a/Content.Server/SS220/Objectives/Systems/CultYoggSummonConditionSystem.cs b/Content.Server/SS220/Objectives/Systems/CultYoggSummonConditionSystem.cs index ee77864cb3fcc0..d6bf76316d4e0b 100644 --- a/Content.Server/SS220/Objectives/Systems/CultYoggSummonConditionSystem.cs +++ b/Content.Server/SS220/Objectives/Systems/CultYoggSummonConditionSystem.cs @@ -19,6 +19,7 @@ public sealed class CultYoggSummonConditionSystem : EntitySystem [Dependency] private readonly CultYoggRuleSystem _cultRule = default!; [Dependency] private readonly MetaDataSystem _metaData = default!; [Dependency] private readonly SharedJobSystem _job = default!; + [Dependency] private readonly SharedMindSystem _minds = default!; public override void Initialize() { @@ -74,18 +75,20 @@ private void SacraficialsUpdate(Entity ent) var title = new StringBuilder(); title.AppendLine(Loc.GetString("objective-cult-yogg-sacrafice-start")); - var query = EntityQueryEnumerator(); + var query = EntityQueryEnumerator(); while (query.MoveNext(out var uid, out var _)) { var targetName = "Unknown"; - if (TryComp(uid, out var mind) && mind.CharacterName != null) + var jobTitle = "Unknown"; + if (_minds.TryGetMind(uid, out var mindId, out var mind) && mind.CharacterName != null) { targetName = mind.CharacterName; - } - var jobName = _job.MindTryGetJobName(uid); + if (_job.MindTryGetJobName(mindId, out var jobName)) + jobTitle = jobName; + } - title.AppendLine(Loc.GetString("objective-condition-cult-yogg-sacrafice-person", ("targetName", targetName), ("job", jobName))); + title.AppendLine(Loc.GetString("objective-condition-cult-yogg-sacrafice-person", ("targetName", targetName), ("job", jobTitle))); } _metaData.SetEntityName(ent, title.ToString()); diff --git a/Content.Server/SS220/Telepathy/TelepathySystem.cs b/Content.Server/SS220/Telepathy/TelepathySystem.cs index 7c29a49978a50a..8d03334d562428 100644 --- a/Content.Server/SS220/Telepathy/TelepathySystem.cs +++ b/Content.Server/SS220/Telepathy/TelepathySystem.cs @@ -32,7 +32,7 @@ public override void Initialize() SubscribeLocalEvent(OnRoundStart); SubscribeLocalEvent(OnTelepathySend); - SubscribeLocalEvent(OnTelepathyAnnouncementSend); + SubscribeLocalEvent(OnTelepathyAnnouncementSend); } private void OnRoundStart(RoundStartedEvent args) @@ -43,7 +43,7 @@ private void OnRoundStart(RoundStartedEvent args) } } - private void OnTelepathyAnnouncementSend(Entity ent, ref TelepathyAnnouncementSendEvent args) + private void OnTelepathyAnnouncementSend(TelepathyAnnouncementSendEvent args) { SendMessageToEveryoneWithRightChannel(args.TelepathyChannel, args.Message, null); } @@ -151,7 +151,9 @@ private string GetWrappedTelepathyMessage(string messageString, EntityUid? sende { return Loc.GetString( "chat-manager-send-telepathy-announce", - ("announce", FormattedMessage.EscapeText(messageString)) + ("announce", FormattedMessage.EscapeText(messageString)), + ("channel", $"\\[{Loc.GetString(telepathyChannelParameters.Name)}\\]"), + ("color", telepathyChannelParameters.Color) ); } diff --git a/Content.Shared/SS220/CultYogg/Corruption/CultYoggCorruptedPrototype.cs b/Content.Shared/SS220/CultYogg/Corruption/CultYoggCorruptedPrototype.cs index 04c00858676d5c..44626052f7765d 100644 --- a/Content.Shared/SS220/CultYogg/Corruption/CultYoggCorruptedPrototype.cs +++ b/Content.Shared/SS220/CultYogg/Corruption/CultYoggCorruptedPrototype.cs @@ -43,6 +43,12 @@ public sealed partial class CultYoggCorruptedPrototype : IPrototype [DataField("emptyStorage", required: false)] public bool EmptyStorage { get; private set; } + /// + /// At what stage is this corruption result available + /// + [DataField("avaliableOnStage", required: false)] + public int AvaliableOnStage = 0; + } [DataDefinition] diff --git a/Content.Shared/SS220/CultYogg/Corruption/SharedCultYoggCorruptedSystem.cs b/Content.Shared/SS220/CultYogg/Corruption/SharedCultYoggCorruptedSystem.cs index 78ded45a18c31e..692aa1e894bcf0 100644 --- a/Content.Shared/SS220/CultYogg/Corruption/SharedCultYoggCorruptedSystem.cs +++ b/Content.Shared/SS220/CultYogg/Corruption/SharedCultYoggCorruptedSystem.cs @@ -14,6 +14,8 @@ using Robust.Shared.Random; using Robust.Shared.Serialization; using System.Diagnostics.CodeAnalysis; +using Robust.Shared.GameObjects; +using Content.Shared.Popups; namespace Content.Shared.SS220.CultYogg.Corruption; @@ -33,6 +35,7 @@ public sealed class SharedCultYoggCorruptedSystem : EntitySystem [Dependency] private readonly SharedTransformSystem _transformSystem = default!; [Dependency] private readonly IRobustRandom _random = default!; [Dependency] private readonly SharedSoftDeleteSystem _softDeleteSystem = default!; + [Dependency] private readonly SharedPopupSystem _popup = default!; private readonly TimeSpan _corruptionDuration = TimeSpan.FromSeconds(1.8); private readonly Dictionary, CultYoggCorruptedPrototype> _recipesBySourcePrototypeId = []; @@ -138,10 +141,16 @@ public bool IsCorrupted(EntityUid entity) /// Flag indicating that the target entity is in hand /// Optional callback to fire when finished /// if corruption process has been started, otherwise - public bool TryCorruptContinuously(EntityUid user, EntityUid entity, bool isInHand, Action? callback = null) + public bool TryCorruptContinuously(EntityUid user, CultYoggComponent comp, EntityUid entity, bool isInHand, Action? callback = null) { if (!TryGetCorruptionRecipe(entity, out var recipe)) { + _popup.PopupClient(Loc.GetString("cult-yogg-corrupt-no-proto"), entity, user); + return false; + } + if (comp.CurrentStage < recipe.AvaliableOnStage) + { + _popup.PopupClient(Loc.GetString("cult-yogg-corrupt-too-low-tier"), entity, user); return false; } var e = new CultYoggCorruptDoAfterEvent(recipe, isInHand, callback); diff --git a/Content.Shared/SS220/CultYogg/Cultists/SharedCultYoggSystem.cs b/Content.Shared/SS220/CultYogg/Cultists/SharedCultYoggSystem.cs index 2f3ebbf1fdbd71..97b706f429730b 100644 --- a/Content.Shared/SS220/CultYogg/Cultists/SharedCultYoggSystem.cs +++ b/Content.Shared/SS220/CultYogg/Cultists/SharedCultYoggSystem.cs @@ -89,9 +89,8 @@ private void CorruptItemAction(Entity uid, ref CultYoggCorrup return; } - if (!_cultYoggCorruptedSystem.TryCorruptContinuously(uid, args.Target, false)) + if (!_cultYoggCorruptedSystem.TryCorruptContinuously(uid, uid.Comp, args.Target, false)) { - _popup.PopupClient(Loc.GetString("cult-yogg-corrupt-no-proto"), args.Target, uid); return; } args.Handled = true; @@ -120,9 +119,8 @@ private void CorruptItemInHandAction(Entity uid, ref CultYogg return; } - if (!_cultYoggCorruptedSystem.TryCorruptContinuously(uid, handItem.Value, true)) + if (!_cultYoggCorruptedSystem.TryCorruptContinuously(uid, uid.Comp, handItem.Value, true)) { - _popup.PopupClient(Loc.GetString("cult-yogg-corrupt-no-proto"), handItem.Value, uid); return; } args.Handled = true; diff --git a/Content.Shared/SS220/CultYogg/Sacraficials/CultYoggSacrificialComponent.cs b/Content.Shared/SS220/CultYogg/Sacraficials/CultYoggSacrificialComponent.cs index 7c668fe7218269..defd53f59ea257 100644 --- a/Content.Shared/SS220/CultYogg/Sacraficials/CultYoggSacrificialComponent.cs +++ b/Content.Shared/SS220/CultYogg/Sacraficials/CultYoggSacrificialComponent.cs @@ -21,6 +21,23 @@ public sealed partial class CultYoggSacrificialComponent : Component [DataField] public ProtoId StatusIcon { get; set; } = "CultYoggSacraficialTargetIcon"; + /// + /// Tier number required for replacement if it needed + /// + [DataField] public int Tier = 0;//initilize as max possible tier + + /// + /// Time required for announcement + /// + [DataField] + public TimeSpan AnnounceReplacementCooldown = TimeSpan.FromSeconds(60); + /// + /// Time required for replacement + /// + [DataField] + public TimeSpan ReplacementCooldown = TimeSpan.FromSeconds(300); + + public bool WasSacraficed = false; } diff --git a/Content.Shared/SS220/CultYogg/Sacraficials/CultYoggSacrificialMindComponent.cs b/Content.Shared/SS220/CultYogg/Sacraficials/CultYoggSacrificialMindComponent.cs deleted file mode 100644 index 18988d6ae61a61..00000000000000 --- a/Content.Shared/SS220/CultYogg/Sacraficials/CultYoggSacrificialMindComponent.cs +++ /dev/null @@ -1,15 +0,0 @@ -// © SS220, An EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt - -using Content.Shared.StatusIcon; -using Robust.Shared.GameStates; -using Robust.Shared.Prototypes; - -namespace Content.Shared.SS220.CultYogg.Sacraficials; - -/// -/// Used to markup cult's sacrificials minds -/// -[RegisterComponent, NetworkedComponent] -public sealed partial class CultYoggSacrificialMindComponent : Component -{ -} diff --git a/Resources/Locale/ru-RU/ss220/cultYogg/cult_yogg_popups.ftl b/Resources/Locale/ru-RU/ss220/cultYogg/cult_yogg_popups.ftl index 7c59c9d2743c1d..cadcd4fc4c8794 100644 --- a/Resources/Locale/ru-RU/ss220/cultYogg/cult_yogg_popups.ftl +++ b/Resources/Locale/ru-RU/ss220/cultYogg/cult_yogg_popups.ftl @@ -1,5 +1,6 @@ cult-yogg-corrupt-no-proto = Предмет не имеет истинной формы cult-yogg-corrupt-already-corrupted = Предмет уже обрел истинную форму +cult-yogg-corrupt-too-low-tier = Искажения будет доступно при большем числе принесенных жертв cult-yogg-no-mind = Оболочка не имеет разума cult-yogg-enslave-verb = [italic]Поработить[/italic] diff --git a/Resources/Locale/ru-RU/ss220/cultYogg/cult_yogg_replacement_announces.ftl b/Resources/Locale/ru-RU/ss220/cultYogg/cult_yogg_replacement_announces.ftl index 8760b5467c99de..2c9b8a6f983be2 100644 --- a/Resources/Locale/ru-RU/ss220/cultYogg/cult_yogg_replacement_announces.ftl +++ b/Resources/Locale/ru-RU/ss220/cultYogg/cult_yogg_replacement_announces.ftl @@ -1,5 +1,7 @@ -cult-yogg-migo-can-replace = Ми-Го {$name}" утерян, верните его или замените -cult-yogg-migo-cancel-replace = Ми-Го "{$name}" вернулся к служению -cult-yogg-sacraficial-replaced = Жертва "{$name}" была заменена -cult-yogg-sacraficial-may-be-replaced = Жертва "{$name}" потеряла душу, в скором времени она будет заменена -cult-yogg-sacraficial-cant-be-replaced = Жертва "{$name}" смогла вернуться к сознанию, и снова подходит как жертва +cult-yogg-migo-can-replace = Ми-Го {$name} утерян, верните его или замените +cult-yogg-migo-cancel-replace = Ми-Го {$name} вернулся к служению +cult-yogg-sacraficial-replaced = Жертва {$name} была заменена +cult-yogg-sacraficial-will-be-replaced = Жертва {$name} потеряла душу, через {$time} секунд она будет заменена +cult-yogg-sacraficial-cant-be-replaced = Жертва {$name} смогла вернуться к сознанию, и снова подходит как жертва +cult-yogg-sacraficial-was-replaced = Жертва {$name} больше не доступна для жертвоприношения и была заменена +cult-yogg-sacraficial-was-picked = Жертвой был выбран {$name} diff --git a/Resources/Prototypes/SS220/Entities/Objects/CultYogg/corruption.yml b/Resources/Prototypes/SS220/Entities/Objects/CultYogg/corruption.yml index 99e2b4acc573a7..ef11a5a673f7e4 100644 --- a/Resources/Prototypes/SS220/Entities/Objects/CultYogg/corruption.yml +++ b/Resources/Prototypes/SS220/Entities/Objects/CultYogg/corruption.yml @@ -271,6 +271,7 @@ parentPrototypeId: ClothingOuterHardsuitBase result: ClothingOuterHardsuitCultYogg corruptionReverseEffect: ExorcismUncorruptEffect + avaliableOnStage: 2 # Hardsuit end # Backpack beginning diff --git a/Resources/Prototypes/SS220/Entities/Objects/CultYogg/cultstages.yml b/Resources/Prototypes/SS220/Entities/Objects/CultYogg/cultstages.yml index 6e307d6b94e1e2..54629cb0403911 100644 --- a/Resources/Prototypes/SS220/Entities/Objects/CultYogg/cultstages.yml +++ b/Resources/Prototypes/SS220/Entities/Objects/CultYogg/cultstages.yml @@ -16,4 +16,62 @@ hidden: true sprites: - sprite: SS220/Objects/CultYogg/cultstages.rsi - state: moth + state: antenna_moth + - sprite: SS220/Objects/CultYogg/cultstages.rsi + state: wings_moth + - sprite: SS220/Objects/CultYogg/cultstages.rsi + state: shrooms_moth + +- type: marking + id: CultStage-Arachnid + bodyPart: Special + markingCategory: Special + sprites: + - sprite: SS220/Objects/CultYogg/cultstages.rsi + state: back_arachnid + - sprite: SS220/Objects/CultYogg/cultstages.rsi + state: shrooms_arachnid + +- type: marking + id: CultStage-Human + bodyPart: Special + markingCategory: Special + sprites: + - sprite: SS220/Objects/CultYogg/cultstages.rsi + state: back_human + - sprite: SS220/Objects/CultYogg/cultstages.rsi + state: shrooms_human + +- type: marking + id: CultStage-Diona + bodyPart: Special + markingCategory: Special + sprites: + - sprite: SS220/Objects/CultYogg/cultstages.rsi + state: shrooms_diona + +- type: marking + id: CultStage-Vox + bodyPart: Special + markingCategory: Special + sprites: + - sprite: SS220/Objects/CultYogg/cultstages.rsi + state: shrooms_vox + +- type: marking + id: CultStage-SlimePerson + bodyPart: Special + markingCategory: Special + sprites: + - sprite: SS220/Objects/CultYogg/cultstages.rsi + state: shrooms_diona + +- type: marking + id: CultStage-Reptilian + bodyPart: Special + markingCategory: Special + sprites: + - sprite: SS220/Objects/CultYogg/cultstages.rsi + state: back_human + - sprite: SS220/Objects/CultYogg/cultstages.rsi + state: shrooms_human diff --git a/Resources/Textures/SS220/Objects/CultYogg/cultstages.rsi/antenna_moth.png b/Resources/Textures/SS220/Objects/CultYogg/cultstages.rsi/antenna_moth.png new file mode 100644 index 0000000000000000000000000000000000000000..26d54567cfa2b816d85f4a56f9f2c35c6e75d62e GIT binary patch literal 522 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 AY5)KL literal 0 HcmV?d00001 diff --git a/Resources/Textures/SS220/Objects/CultYogg/cultstages.rsi/meta.json b/Resources/Textures/SS220/Objects/CultYogg/cultstages.rsi/meta.json index a38e9ee08b6e6d..bda023b8cbd670 100644 --- a/Resources/Textures/SS220/Objects/CultYogg/cultstages.rsi/meta.json +++ b/Resources/Textures/SS220/Objects/CultYogg/cultstages.rsi/meta.json @@ -12,7 +12,39 @@ "directions": 4 }, { - "name": "moth", + "name": "antenna_moth", + "directions": 4 + }, + { + "name": "wings_moth", + "directions": 4 + }, + { + "name": "shrooms_moth", + "directions": 4 + }, + { + "name": "back_arachnid", + "directions": 4 + }, + { + "name": "shrooms_arachnid", + "directions": 4 + }, + { + "name": "back_human", + "directions": 4 + }, + { + "name": "shrooms_human", + "directions": 4 + }, + { + "name": "shrooms_diona", + "directions": 4 + }, + { + "name": "shrooms_vox", "directions": 4 } ] diff --git a/Resources/Textures/SS220/Objects/CultYogg/cultstages.rsi/moth.png b/Resources/Textures/SS220/Objects/CultYogg/cultstages.rsi/moth.png deleted file mode 100644 index 2c76ed90b699e7143f1122123a678f937845cc44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1441 zcma)+do&XY9LGn)>}V(q$?K9Vk8m+IjA#_Q2zkuww33p?^&EK&wJVP$vFVIL2q9y+ z<EbI7Dg%lnqD(v=qNPe~{xA@YxELiR%hwqB5S--m^u77Mz`Q<4 zHI=?FaNs@UonVo`rT;*v#YKoxg@PCg;i6Q+V?zDVVADv$TY+D+%mVtUN=SBg=*>em zw6@lsxJ0fBT%A!#n%vv!XQJ-(tTrVubBW}|AtcW}?k@KNS0xeTkkR`&cW;;sd2zUM z%E#MZxd=ujW4&f-AelXHqDkM0Oi3$wk6LW8LBdx3y>Ra6T;THWMve!_F~4SJu8=Nd z=^`K%E(w?9`)4<-%22;nsepjYVziADll~k<_O6Is|)CZ(uHGAuQS&vSsUVdcP3#%AqWoyAsX{DJ$60 z0n-?S_43|>;bCX_*|&P;J)w&))fuC3lG0{X;wstqikMLFNC1nAr!lHc;2UiP4U*lR z98O3Sm<4Bn@ysP)_gCcRJkIL-$GWPtlnjfo?}D8^&u3@8F>v}Kcb^otFwyLH?cBeH z;Q}Xl{C2)cmIkrWeBJgKIyFLesUui0s^9lwO*O?@(<){o^GAFBbRu(p-89uTjRVWM zGs|;}@-QV(gQ)l=x26Lcj-rMNh+*gze<*!Jo9rhv3kpr94o=aZ2+-Q|(R%rQ(ovF0srrNn}9J(qY z-rh&f;oti6rj2>(MOhXoE(NW z3d=D)Ajm|12~=?Xp069kMOY_q{RSp}xaMrbp96=-c1ji7wXEf!nQ~v8PASE?J_#j! zOF+2YhZ59Fq5I=imx@nIGxDSXEzFRCZeWG8TU@?wvDs47%@eBe!^BydmbRyjj9C(F z)H1M+*XrGa+SdG~C?A~?Ydi*3pc?5c;$!O{SJKyTy22Lh3;KH>!D`hYRH!!RqjLN? z576 rc=x1|xQsyz1s(|&a^2J6hLaNjcGN*f`FSH(@_xd>4r5zq6Oj539!R&I diff --git a/Resources/Textures/SS220/Objects/CultYogg/cultstages.rsi/shrooms_arachnid.png b/Resources/Textures/SS220/Objects/CultYogg/cultstages.rsi/shrooms_arachnid.png new file mode 100644 index 0000000000000000000000000000000000000000..78d908b530e6924d1d15e45c04a6984652ba55d3 GIT binary patch literal 772 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 az$><8@%KryrZ)hiox#)9&t;ucLK6TVxZjij literal 0 HcmV?d00001 diff --git a/Resources/Textures/SS220/Objects/CultYogg/cultstages.rsi/shrooms_vox.png b/Resources/Textures/SS220/Objects/CultYogg/cultstages.rsi/shrooms_vox.png new file mode 100644 index 0000000000000000000000000000000000000000..e2ce0fac6e09d48b2a34c112630d9701c1530f75 GIT binary patch literal 1688 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 uDWz^jtL?95K6H}26?(N~wmi^89{3l>0`j=Vicb� Date: Tue, 14 Jan 2025 04:59:08 +0000 Subject: [PATCH 10/15] Automatic changelog update --- Resources/Changelog/Changelog220.yml | 58 ++++++++++++++-------------- 1 file changed, 30 insertions(+), 28 deletions(-) diff --git a/Resources/Changelog/Changelog220.yml b/Resources/Changelog/Changelog220.yml index 79fbfb52640f84..799781d14c2b80 100644 --- a/Resources/Changelog/Changelog220.yml +++ b/Resources/Changelog/Changelog220.yml @@ -1,32 +1,4 @@ Entries: -- author: gogenych - changes: - - message: "\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D \u043A\u0440\u0430\u0444\ - \u0442 \u0441\u0430\u043C\u043E\u0434\u0435\u043B\u044C\u043D\u043E\u0433\u043E\ - \ \u043F\u0438\u0441\u0442\u043E\u043B\u0435\u0442\u0430 \u0438 \u0441\u0430\ - \u043C\u043E\u0434\u0435\u043B\u044C\u043D\u043E\u0433\u043E \u043B\u0430\u0437\ - \u0435\u0440\u043D\u043E\u0433\u043E \u043F\u0438\u0441\u0442\u043E\u043B\u0435\ - \u0442\u0430." - type: Add - - message: "\u0422\u0435\u043F\u0435\u0440\u044C \u0438\u0437 \u0441\u0430\u043C\ - \u043E\u0434\u0435\u043B\u044C\u043D\u043E\u0433\u043E \u043F\u0438\u0441\u0442\ - \u043E\u043B\u0435\u0442\u0430 \u043D\u0435\u043B\u044C\u0437\u044F \u0441\u0434\ - \u0435\u043B\u0430\u0442\u044C \u043E\u0431\u0440\u0435\u0437." - type: Remove - - message: "\u041E\u0431\u043B\u0435\u0433\u0447\u0435\u043D \u043A\u0440\u0430\u0444\ - \u0442 \u0441\u0430\u043C\u043E\u0434\u0435\u043B\u044C\u043D\u043E\u0433\u043E\ - \ \u0440\u0443\u0436\u044C\u044F \u0438 \u0441\u0430\u043C\u043E\u0434\u0435\ - \u043B\u044C\u043D\u043E\u0433\u043E \u043F\u0430\u0442\u0440\u043E\u043D\u0430\ - . \u0423\u0432\u0435\u043B\u0438\u0447\u0435\u043D\u043E \u0432\u0440\u0435\u043C\ - \u044F \u043A\u0440\u0430\u0444\u0442\u0430 \u043E\u0431\u043E\u0438\u0445.\ - \ \u0423\u0432\u0435\u043B\u0438\u0447\u0435\u043D \u0443\u0440\u043E\u043D\ - \ \u0441\u0430\u043C\u043E\u0434\u0435\u043B\u044C\u043D\u043E\u0433\u043E \u0440\ - \u0443\u0436\u0435\u0439\u043D\u043E\u0433\u043E \u043F\u0430\u0442\u0440\u043E\ - \u043D\u0430." - type: Tweak - id: 268 - time: '2024-07-12T20:29:42.0000000+00:00' - url: https://github.com/SerbiaStrong-220/space-station-14/pull/1347 - author: gogenych changes: - message: "\u0422\u0435\u043F\u0435\u0440\u044C \u044F\u0449\u0438\u043A\u0438\ @@ -6155,3 +6127,33 @@ id: 769 time: '2025-01-13T10:11:11.0000000+00:00' url: https://github.com/SerbiaStrong-220/space-station-14/pull/2479 +- author: SkaldetSkaeg + changes: + - message: "\u0426\u0435\u043B\u044C \u043A\u0443\u043B\u044C\u0442\u0430 \u0442\ + \u0435\u043F\u0435\u0440\u044C \u0437\u0430\u043C\u0435\u043D\u044F\u0435\u0442\ + \u0441\u044F \u043F\u0440\u0438 \u0443\u0445\u043E\u0434\u0435 \u0432 \u043A\ + \u0440\u0438\u043E" + type: Fix + - message: "\u0417\u0430\u043C\u0435\u043D\u0430 \u0436\u0435\u0440\u0442\u0432\u044B\ + \ \u043F\u0440\u0438 \u0441\u043C\u0435\u0440\u0442\u0438/\u0433\u0438\u0431\ + \u0435 \u0442\u0435\u043F\u0435\u0440\u044C \u043F\u0440\u043E\u0438\u0441\u0445\ + \u043E\u0434\u0438\u0442 \u0447\u0435\u0440\u0435\u0437 5 \u043C\u0438\u043D\ + \u0443\u0442" + type: Tweak + - message: "\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u044B \u043E\u043F\u043E\ + \u0432\u0435\u0449\u0435\u043D\u0438\u044F \u043F\u0440\u0438 \u0441\u043C\u0435\ + \u043D\u0435 \u0436\u0435\u0440\u0442\u0432\u044B" + type: Add + - message: "\u0425\u0430\u0440\u0434\u0441\u044A\u044E\u0442 \u043A\u0443\u043B\u044C\ + \u0442\u0430 \u0442\u0435\u043F\u0435\u0440\u044C \u0434\u043E\u0441\u0442\u0443\ + \u043F\u0435\u043D \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u043E\u0441\u043B\ + \u0435 \u043F\u0440\u0438\u043D\u0435\u0441\u0435\u043D\u0438\u044F 2\u0445\ + \ \u0436\u0435\u0440\u0442\u0432" + type: Tweak + - message: "\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u044B \u0432\u0438\u0437\ + \u0443\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F 2\u0439 \u0441\u0442\u0430\ + \u0434\u0438\u0439 \u0434\u043B\u044F \u0440\u0430\u0441" + type: Add + id: 770 + time: '2025-01-14T04:58:04.0000000+00:00' + url: https://github.com/SerbiaStrong-220/space-station-14/pull/2476 From 98e8a6f4e2aea4d03af93671070daf780ed37781 Mon Sep 17 00:00:00 2001 From: Tris0r <163807362+Tris0r@users.noreply.github.com> Date: Tue, 14 Jan 2025 19:04:24 +0500 Subject: [PATCH 11/15] =?UTF-8?q?=D0=BC=D1=8F=D1=83=20=D0=BC=D1=83=D1=80?= =?UTF-8?q?=D1=80=20(#2482)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Entities/Clothing/Uniforms/jumpskirts.yml | 8 ++--- .../Entities/Clothing/Uniforms/jumpsuits.yml | 8 ++--- .../equipped-INNERCLOTHING-monkey.png | Bin 0 -> 780 bytes .../detective.rsi/equipped-INNERCLOTHING.png | Bin 0 -> 1008 bytes .../Uniforms/Jumpskirt/detective.rsi/icon.png | Bin 0 -> 492 bytes .../Jumpskirt/detective.rsi/inhand-left.png | Bin 0 -> 515 bytes .../Jumpskirt/detective.rsi/inhand-right.png | Bin 0 -> 528 bytes .../Jumpskirt/detective.rsi/meta.json | 30 ++++++++++++++++++ .../equipped-INNERCLOTHING-monkey.png | Bin 0 -> 803 bytes .../equipped-INNERCLOTHING.png | Bin 0 -> 1003 bytes .../Jumpskirt/detective_grey.rsi/icon.png | Bin 0 -> 488 bytes .../detective_grey.rsi/inhand-left.png | Bin 0 -> 512 bytes .../detective_grey.rsi/inhand-right.png | Bin 0 -> 525 bytes .../Jumpskirt/detective_grey.rsi/meta.json | 30 ++++++++++++++++++ .../equipped-INNERCLOTHING-monkey.png | Bin 0 -> 802 bytes .../detective.rsi/equipped-INNERCLOTHING.png | Bin 0 -> 1156 bytes .../Uniforms/Jumpsuit/detective.rsi/icon.png | Bin 0 -> 434 bytes .../Jumpsuit/detective.rsi/inhand-left.png | Bin 0 -> 515 bytes .../Jumpsuit/detective.rsi/inhand-right.png | Bin 0 -> 528 bytes .../Uniforms/Jumpsuit/detective.rsi/meta.json | 30 ++++++++++++++++++ .../equipped-INNERCLOTHING-monkey.png | Bin 0 -> 792 bytes .../equipped-INNERCLOTHING.png | Bin 0 -> 1167 bytes .../Jumpsuit/detective_grey.rsi/icon.png | Bin 0 -> 426 bytes .../detective_grey.rsi/inhand-left.png | Bin 0 -> 512 bytes .../detective_grey.rsi/inhand-right.png | Bin 0 -> 525 bytes .../Jumpsuit/detective_grey.rsi/meta.json | 30 ++++++++++++++++++ 26 files changed, 128 insertions(+), 8 deletions(-) create mode 100644 Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/detective.rsi/equipped-INNERCLOTHING-monkey.png create mode 100644 Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/detective.rsi/equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/detective.rsi/icon.png create mode 100644 Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/detective.rsi/inhand-left.png create mode 100644 Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/detective.rsi/inhand-right.png create mode 100644 Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/detective.rsi/meta.json create mode 100644 Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/detective_grey.rsi/equipped-INNERCLOTHING-monkey.png create mode 100644 Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/detective_grey.rsi/equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/detective_grey.rsi/icon.png create mode 100644 Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/detective_grey.rsi/inhand-left.png create mode 100644 Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/detective_grey.rsi/inhand-right.png create mode 100644 Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/detective_grey.rsi/meta.json create mode 100644 Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/detective.rsi/equipped-INNERCLOTHING-monkey.png create mode 100644 Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/detective.rsi/equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/detective.rsi/icon.png create mode 100644 Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/detective.rsi/inhand-left.png create mode 100644 Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/detective.rsi/inhand-right.png create mode 100644 Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/detective.rsi/meta.json create mode 100644 Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/detective_grey.rsi/equipped-INNERCLOTHING-monkey.png create mode 100644 Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/detective_grey.rsi/equipped-INNERCLOTHING.png create mode 100644 Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/detective_grey.rsi/icon.png create mode 100644 Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/detective_grey.rsi/inhand-left.png create mode 100644 Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/detective_grey.rsi/inhand-right.png create mode 100644 Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/detective_grey.rsi/meta.json diff --git a/Resources/Prototypes/Entities/Clothing/Uniforms/jumpskirts.yml b/Resources/Prototypes/Entities/Clothing/Uniforms/jumpskirts.yml index 927bbe38e9b03a..41966ce8e1b05f 100644 --- a/Resources/Prototypes/Entities/Clothing/Uniforms/jumpskirts.yml +++ b/Resources/Prototypes/Entities/Clothing/Uniforms/jumpskirts.yml @@ -137,9 +137,9 @@ description: Someone who wears this means business. components: - type: Sprite - sprite: Clothing/Uniforms/Jumpskirt/detective.rsi + sprite: SS220/Clothing/Uniforms/Jumpskirt/detective.rsi #ss220 resprite - type: Clothing - sprite: Clothing/Uniforms/Jumpskirt/detective.rsi + sprite: SS220/Clothing/Uniforms/Jumpskirt/detective.rsi #ss220 resprite - type: entity parent: ClothingUniformSkirtBase @@ -148,9 +148,9 @@ description: A hard-boiled private investigator's grey suit, complete with tie clip. components: - type: Sprite - sprite: Clothing/Uniforms/Jumpskirt/detective_grey.rsi + sprite: SS220/Clothing/Uniforms/Jumpskirt/detective_grey.rsi #ss220 resprite - type: Clothing - sprite: Clothing/Uniforms/Jumpskirt/detective_grey.rsi + sprite: SS220/Clothing/Uniforms/Jumpskirt/detective_grey.rsi #ss220 resprite - type: entity parent: ClothingUniformSkirtBase diff --git a/Resources/Prototypes/Entities/Clothing/Uniforms/jumpsuits.yml b/Resources/Prototypes/Entities/Clothing/Uniforms/jumpsuits.yml index 45c1c08cda4e55..14247b4ace9200 100644 --- a/Resources/Prototypes/Entities/Clothing/Uniforms/jumpsuits.yml +++ b/Resources/Prototypes/Entities/Clothing/Uniforms/jumpsuits.yml @@ -286,9 +286,9 @@ description: Someone who wears this means business. components: - type: Sprite - sprite: Clothing/Uniforms/Jumpsuit/detective.rsi + sprite: SS220/Clothing/Uniforms/Jumpsuit/detective.rsi #ss220 resprite - type: Clothing - sprite: Clothing/Uniforms/Jumpsuit/detective.rsi + sprite: SS220/Clothing/Uniforms/Jumpsuit/detective.rsi #ss220 resprite - type: entity parent: ClothingUniformBase @@ -297,9 +297,9 @@ description: A hard-boiled private investigator's grey suit, complete with tie clip. components: - type: Sprite - sprite: Clothing/Uniforms/Jumpsuit/detective_grey.rsi + sprite: SS220/Clothing/Uniforms/Jumpsuit/detective_grey.rsi #ss220 resprite - type: Clothing - sprite: Clothing/Uniforms/Jumpsuit/detective_grey.rsi + sprite: SS220/Clothing/Uniforms/Jumpsuit/detective_grey.rsi #ss220 resprite - type: entity parent: ClothingUniformBase diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/detective.rsi/equipped-INNERCLOTHING-monkey.png b/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/detective.rsi/equipped-INNERCLOTHING-monkey.png new file mode 100644 index 0000000000000000000000000000000000000000..115734a29b601ceb4ecdb687298d612ebd5202ca GIT binary patch literal 780 zcmV+n1M~ceP)Px%#z{m$RCt{2nm>ygK^VrL4HgNx6iS-ItRjjKQh8Wx84D59SPF?B;Tpl};I6Pf zxG!-Aw!FqRA=MTOTZO=#BJoeQIZkpRY#@P25oV&RhMje1J#z04WZZFQpV`-$SK0Rg z2!bF8f*|fGn(Tm1yUR*O8E=}e#MqwMXO3m#^z20XdSUe)%NBk7IE=p304`oEq+y<4 z;PmW7>$JP9*=pc&Fbh42F#3MN>IXi#XZ9HY6botOb2^5j2`&e-m16))t0OAb>2tQx ze-QLU$Ffnc8bXBkaV`fl)T_o)UzGUu^Eq9-w$Tq1fS%cBN5_X4jwWy{8^h5A`J9fD zQ5MnX{YS@#;@gUfb^42JqaSz$tV7ke9Vdw(CpnglVj(S-A8$)Wd1>$QHtN7^(&ucW zFP*FkPad*o$w!#ZJ^0(fw;#%X2BX#wJb*EV*Xb8<6E4d4h0j#vsxhJbHg$jMC z0PH1e+W7hd<3j%S>ef@5161fs1;G3H70#E{eI6Go^rezuD1nHQpenZdBlJIT?*l*( z1VIo4K@bE%5ClO4q0{cNp4n%ec2{W~Adb06Ke6nYedhNBIF=2+YeXg7k;2Uqi*u2k zgVbYj;BTFtm&o%uT{uSK!m(^LTMgk2;ByHx2dRgm+ztZ(=J|!F({rytTyS3k@aN|F zjW=5j$ZmyDPlXo^3jBS&YDkNRq0{cNdezuC4_TzQz+!EFu`XXMq+?kHeow->dC3qu zX}!!O*)BW+oBRRq$MaCSQiD|0=!0qlKqZ^nsJ;JdUwb?IsLme%?A9Yt$)^6P?Iv8c z{s3UN9)X?v1AyIn1g>s9t&&Y`)ZR1fpe literal 0 HcmV?d00001 diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/detective.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/detective.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..8773d5a5fa29f9d510542b965b487ddb3a93cb4d GIT binary patch literal 1008 zcmVPx&s!2paRCt{2nonyQK^Vp#Z7FRfl!RPrnk8whrSwoFwn$Hbl0$p(m_u{xClEYK z>sjy<^rnYBdNG7hdJ9|Bh^K&2gluvPn?oqcZF)%GVcqDuGwzhw%nxMtug|mZ&g>5R zzJNxf(P%Up%^f8ob5cH6WTkQ;GHzWpRkP08R+F!%GHHC?`Xr@)Uq*OqI|~4;R4zpF zxgw+WX^aHb2Y|NKL@JZ!+uK%??-SJzd~l=HVQZ_)=nrgkd#6YymTt7P|Lyvl(1Sqw zM1NrOW$$(o{b-Pbs%D+77;!E(?&1Mp#fbB}5f)XmK6LTqgMQxaBKi{}<-PMCH#2-+ ze_#(8*x9o}?+JeTUS#wqJ_EYFQ{K{phfH*Pr#t{VdluXeCOU6g{Pf+(>iZ6XMyta} zjQ%{CSmOIfExS!NTAite!Z`i@z`pU5)%OhmMbWI(;C{`Ks9CA;WujCrM9fNU=zLkm z>H8t7?;C)&)kJ?_^H+}h)#JCG%B0aB*h5`XhDrKfWb}m|Qu$nwr7~&W-ONgj<^+6< zs+^O3XcE&*mTD=?4w~iN7)y0AOqj0KJQ=pnn?}Rr-OZ!W+gsGZtgmKRUzifj#n= z-2)r@M`th=W7sg}L!An%)DP4HPR=g@0PkNc;+3(0??1XYKKqT6^Gn`-`H;lnvBTHH zM5TV90Q?FxMYsoy zs>`7vL3w$VxHHm3DwFmto$*7e2LPihM*hXC$g4rGLGq!r2Y6HCB5 literal 0 HcmV?d00001 diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/detective.rsi/icon.png b/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/detective.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..cee8d98bc5635a91b0b61ff121327bf57a5823b1 GIT binary patch literal 492 zcmVPx$rb$FWR9J=Wlrc-gP!xr~ii1)dTDqx$QWYEv9g3464!SsY(9K^^aCUGO`~_}i z$mo(H#Z@u{GYU1O(6n1gha&Cv9Q1`2t-LD=3ONvNPPn{txbNIRiWDhQ{70PCFVt6D zf<;NQ?YJuNd}=300P6DUJabmRP@0#k6^?6%8OfQ(&9>vJgZ(P)PDCs0v$e7Mp_Yp4 zG@72sglGZ)rQ$jOt*}qv`2dOdufcX)700pCRX_8%?YPF7SdbVAJfB9>o8cObrZ>ZX z)Ii|*v^x>-Hg1h_wUWH+@9j<`GGdg0%d7JYkc?HE2|Rzs5P)-YtNV>0S{d7M)wG~a z|1_7bp*RDrus_46#lMpQ@fuExl&h7*(09Z^cm*3POKL5*Om8@5UJXYR(V4~*(Bf7h z3oy3=N@Bv;fEM4j@&I!yKscJ19%~lDT`Q-oLY9Z;0e6qlr#*L%5f9G;tU{JuD`)&C zG@3wfI0j&6v%t2M=lZ@yckn`QI8N&6-WE^YIN?8P;QdY&yp38LdFsYV1rl*d21JR4 iuQx%u0Vz`a3A_RmTm4H;H{YEA0000(8`}+9QJR!SR zDdSCwZj;L0Wmdwy_y1khIkSFZbYV={_bodZJ76F~dS;2^?s@B<_vX(ww|-W&@19xy zdM!U+{aJHf|J?QHirK7^3Fg*vI-izRo}S~u%IIJ=ebz0@rC0of|Ni~yvunZTomcb< ze+L$3MQJXLJ%4@O^X#Ql&Mo1tKX&b|>B~K#Wp<2btC;8J$@}f>I+7~G@ZrlJ4hD~y zV-KgSeo^u}`MQtQylkDK3whD>b`3R_Cen@e|RmPs|l&_$o?P;q!)@Xl<&JO6e7?K-6IfpUYbaEA*kzw^hsonRdrvfj!!~<` zOZ*llC;v4}^p8~i&FprMsUfERzzJc74fYN}`xxI%THC%iYo#DCRvA29{an^LB{Ts5 DnBV8( literal 0 HcmV?d00001 diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/detective.rsi/inhand-right.png b/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/detective.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..35beb619cfbb6204fe884b05d28a90c14ea6d22f GIT binary patch literal 528 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%zPkFjHhE&XX zduwCXp#TxK2lp>646@Sb(-OITaN~uAC9kAQ-du7o5H#YnN)fB!lr`FAQLg30GwG^U z(>339&J)Xa&rQnqeR9m@gzo?C9(_{(s`EVBWEwhPfZ@Q3S)cOHmc_gb_h(w1<#oHT ze3R^y?a5!6{L`%0y@}ZCVtVkj^p?!upXR->-YAgt*?n==si?g|x-TbQeKmEh?Eks( zk;h+oDzOzibP}uI>p`Weuwn?pw2ongrvS;6ShWE#TdJp)!?|r;P z=bo_Y`<3w@7tWZ-U?8OrLT~sBipzI@{d+oR>I^lPldq%q?6R25P*6YjaL!IQ!}5JU zYigsJ7>>!ucV;?F+0)p6utu%7$dH?1hVFHSh9bl68a3JCKNT{w%nQW#u6t(u(%1cd z_quMZ=cB+daAJ$$Q6BMxZ?JihOPkXW91*d{I6kt8?d(B#-L_4Fp3#G MUHx3vIVCg!0C1`5`~Uy| literal 0 HcmV?d00001 diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/detective.rsi/meta.json b/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/detective.rsi/meta.json new file mode 100644 index 00000000000000..7c0deeba35269a --- /dev/null +++ b/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/detective.rsi/meta.json @@ -0,0 +1,30 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/5ea6d8b4422027d0c22cb415d1f05a08bf39aaa0, monkey made by brainfood1183 (github) for ss14, resprited by dinazewwr (Discord) for SS220", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-INNERCLOTHING", + "directions": 4 + }, + { + "name": "equipped-INNERCLOTHING-monkey", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/detective_grey.rsi/equipped-INNERCLOTHING-monkey.png b/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/detective_grey.rsi/equipped-INNERCLOTHING-monkey.png new file mode 100644 index 0000000000000000000000000000000000000000..adebf33979f6dffc39e3f741c961b7ef76cc1ccd GIT binary patch literal 803 zcmV+;1Kj+HP)Px%-AP12RCt{2nlW$MKp2K!R|)9=nQ;&;76^t;NDNkY2D&gJwfuxENKBEEfjLtC zM5yF33qJvQu;i(#iV~3&0o|$sQgMrP9pGH!K;<*GiJI?`(Bb3G@8{$Ef&9GyK@bE% z5X3V@5}nX&v{+Fs;Y016J-4lOn5i4Myt)uRpI?1bH|#!s>_=Z{0vFHcQqZn%aCvnh zH5)Bft5?yx9r_N!kG>nf`kn{3wGIP-d@hBolEz(sfZpx!(J_Fv-4PU<^f|lezwkQH z)D2Y1sx89%IKA5;DrI%8FG$?_StV`1cG35=0BxJ7TF1&$L5#AO+?+01Syt1)gQDVQ}8 z(HGGa$^qTjf}P0n#?MY<85yMzX!46f-}4Rt0Lz*$S9>}IfJd!m%|-Qv2t!|J0g{JB z>HG9Ev#dELD?w*F9zBGb1H#Z3T7aLwf8c)fCGd z8H;EPLXX9PzjbZo_htNg8LGH z<;C+0uhpv%y%l^t6?PgF`1?v(6&CkHv(aLevbr@6QG{;+XKmhDm(S-?k?aDuCt*`u zBKS^PuQPeJ50Ah$f55|i&zG*yBu9;&9VZfq$K%Ty{i>Zzr?~GgYj;7H#CT~gqZGDk zzx{O}eH?xY&mREn*CUWo3jfsZ#unlF1AzT{1orL^0QTz<7>^#Lj8fRDojfc)?NT&B h5ClOG1VKC<{s13nP2?gjMD73p002ovPDHLkV1mnsa8&>R literal 0 HcmV?d00001 diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/detective_grey.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/detective_grey.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..89cb65b4e602a44872c275b1468802aed56b2b7c GIT binary patch literal 1003 zcmVPx&rAb6VRCt{2nm=#aKp4g!Xw_6Lq)Q_Oq7Y~zI&`Q|XvG)E&@PM_nlFLGj9O+S zz61;&S&|_`x5^bD#8fE?aut*iiHLzPgy}la_hcL}zQb3A=6(`7|K)jne$PJneF2R| zqtR$Inny}N=A?YC$V%lxVBWfFs>U&EnGL?4%B1n-@UxWuQyJmIqbvZhQn?Vw=ZcKh zmoeg19{^fr1F1}!Z*Q3mzE4!&^TG9Io9!mH(XqNXJHJG7Z|h!5`#|UfpAIs7U&rcB z88|sLeUAh;eJ3*d3!edJ=a;;t2M?JzJHO-|aB^zG{$Qf>mc>oqj;y}x5U4lXjKt{A zlY3iy|Ey)Z$$GQB)KHkG-?6&)ezN+m9YDQkRBEul=1A12)c7({Di;Dqr8afGEc5i; z5Y>0>fR@=n$LjJ|j{Vi+ww}tQ(XqNyAt}QmeJ3*dLJz5YuEvid?3ApmgBz$na?z1uSSUbZhnsJAvFF}Ak$9OLmF=C#+o3uO_YLf_Lw$S%Gf z4#Tb8jKqAM1gX~dJOoH26bb>r+;%9UE`Tb1PZ6*aPqOuJ82y_*u6n(h$6WP#=->3Q z9u8wCp7b>eRO)+*fbsYaLjW7EHxLSiVEwi*yuF=l|Jx?w35-S~zV0U~^*wdKb?+ju z8HuqWCZR?~MxzmL0dR4@AA~CPg^jvBiB-M<9*Vw3qtR$I8jVJy(P$nm`CO6tod8{i zs&UNnxuTRG;m_j0dm&4hbN-KheuiLCbn^MY9bh9$Yu`^3^F`>5yqSCw_ksl-@l2P5cNRWp=|a5 z9jl9276U>Bo1A}TI}QxlkUfYX~-gd<>9T@DQi z%FC<7o{=U}nY3%^j2luB0L-o!`4_Jurv|+S$%oPiaHhsd&{>|Ml35qKOqyP5BILww zL^bw{^@EkF4^ZJ@W$FV|d03hH0977VqCP;Shn1)gQ0ZYM>H}1ISh@OuhvGq_(P;h) Z{s3GQZL$k|X+8h|002ovPDHLkV1ncA-4_4= literal 0 HcmV?d00001 diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/detective_grey.rsi/icon.png b/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/detective_grey.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a22e5a04b6ef29863b3b8100e2c686c27a43fa9 GIT binary patch literal 488 zcmVP)Px$qDe$SR9J=Wl|M_vP!z>~6+wrjlZ6(se^9y?I`j)T=;G+0UqW#1;4Jh@m?5J} zI`j)<2xKoUk(L^v(xGOs({rdVv}j9iX+a?e!pV7Dat`<1OCUvx6e<2A?(ZJdIxWGz zq}Z|@<+~o&w^sn_vDM7n-#sX;YmGWL*OwW|Hxn0Iwxcf28}x%A-QI}m+3^oPt(?&A zxS|lE4gj21P5|ikM)#<9B`D4~C*3iDuxj)yx2KTXh)U^_Btw*iX;8J`qGKW7&>cG}P0- zsHJNto`G&}w4@i!H<48-P=K@?3atltFb e2Bb*wC-4PH*!u`dN@%bE00003YhU?fmXAD#cAeO^Xoial z<6)6oN3w#}b{>2GceP~2ez&qC&kc-MAGK@ffPu1!XGONY{#kYL$GXbT$?KlKj{W>? z)vGICH=W!$Z~bb&+SQ)ym7gCURLY;d{Zwa&0K=0{FK5mT_G+E=;{Ew_W7oN-mmfaz z*8S?r?4?u6Y~y#&TR%0(YPRM-$=fB@mwdj)S<4jFtF~*e-5f98l_^XNAHMwIVDL~C zF3>V9sjl53b$0QSwZc`5UQeBlth|zTOe}W#sn!#QpRNi1-ZQM!!THCozU6znI&285-%+;Loe(rZIy7J+Ev9r+=1{WA$VF+8Q`2U*B^~s4}O*UxpzT9yy zY+LiEvN!k6O}1R8Ze6Ay>dW!z-K{OPmHyx6MsRHWw>UKOMAljv{g)F%v!C|L{+}Bk zdHkKHVoOPkztuYRR)I^aOtxiZ?&Ny(?Cvh6w!e&OmnGkni7!oJWccvq4+n#WDEEfj zu|CU;d44x1uk(()vnQH2W7{jq-FNS9{;{RJuqvQfO>w$$48&Mm>mAu^e=t?SZ8{4 zy`G&oLqq@f?N>|`{O--|cRYOJkcltDflJ>R8J1-pGT6j<-2d3Z%JO$f7eWu8SZBQ} zs+Q5?`aAZL)84SaahX!L>nx9o*Y=r=q1Dfs54|ump1^T8jcrlDE~b*%k{wPf8G-UH z3v2i<ofoW literal 0 HcmV?d00001 diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/detective_grey.rsi/meta.json b/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/detective_grey.rsi/meta.json new file mode 100644 index 00000000000000..d9385d61d9c2fb --- /dev/null +++ b/Resources/Textures/SS220/Clothing/Uniforms/Jumpskirt/detective_grey.rsi/meta.json @@ -0,0 +1,30 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/5ea6d8b4422027d0c22cb415d1f05a08bf39aaa0, monkey made by brainfood1183 (github) for ss14, resprited by dinazewwr (Discord) for SS220", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-INNERCLOTHING", + "directions": 4 + }, + { + "name": "equipped-INNERCLOTHING-monkey", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/detective.rsi/equipped-INNERCLOTHING-monkey.png b/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/detective.rsi/equipped-INNERCLOTHING-monkey.png new file mode 100644 index 0000000000000000000000000000000000000000..7893425b1fd6c0a564b933ebecfe1ba1f70d558d GIT binary patch literal 802 zcmV+-1Ks?IP)Px%+(|@1RCt{2nz3slK@`S6k1Gk~ z6Wvaawc5vc9?g}5P|**fsvr8|zByn3P}XxO6$=+FBJ>ovx|PH1?Zatc7Ab&@nj0evN4`aQ7RU2WYom! z^YQbGGx4^fVw=97UGzimfNjL}w)e^RFc&$Njk2B-+mE+LMs4Hl@iyv(`Ana)i@tQS z(o+X4pFYHFu|lvNy}if&GZ?jgs2$)ZpFV_^O#;A&cJ%fx`#5Q$)|bu!S~iJ_mVuT{ z!u6IL{kS=;=9ypjW;jdu`=`~sbn=y2fV!4u6)l7N;S`TA9%hRb9$!4%52vVT8Pv6O zq}e}+>n%~yG5~6Tf#3KDya^D=VpeMkw zYy@2+al#!b+$`abMK%WMx&W`!^AdTfSP+hpec@O(TJ2-u4dAh;#2{4};&vDSFmLZf zot}FI_67GP0PD%~iMQIvkUa`Y{s6y0fq!o{3~6x{x}6?tHjGc>kVX0k_-ph2x_nvB z?PV7PJqg?5l0i9X)wMMH7aoDn`~eT{LP=M82LS8IYuThIjRWhVDGo?&?bqlHz^dig_D*)JwO@|-| gf*=TjAc+5;zxCnPaxwM$B>(^b07*qoM6N<$f=5hzi2wiq literal 0 HcmV?d00001 diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/detective.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/detective.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..593d6f765ae90f3627729a04581b09e41add9512 GIT binary patch literal 1156 zcmV-~1bh35P)Px(K1oDDRCt{2nmunCK@f&tNEDeME5f3QjZgU?j;s_BGKo;CG%k{c(nazokf^PM z+LHf-T~NBQ3l~Xc5dpHOEZHC=z#W3ZvT(O4$gGw%9L(MwB+5P#x{u}VotvHATbKbX z7K_DVu~`07LM9jGa|N-tzZ;r#95jc;V{u-p$m3KdjW0W&jr1Ry2=9E&0)W`t-wow+ z1wqGN44G9Q0M1Jlq%vuF{=8I?ZCw4Czg(`?#LMUFXf)fntY2dzxpr?$?eDhU`tAhM zCmPMR+}F=@^ux1!>9BY#o;j;hY|_I6z%yr6_J&^^7LP|Bp6sBHex9R0)l+)Uf7;H- zwnno(V!+91$@fTb)7LT4pE?Iz*01H3CLS{4vVJWcaB^CLIx*38UUAb`G1Ye+0_AE= zkQm*3Be^Eq$L*^|ma8>SLt&DBquIXqG1Yf<0C}-^a0K-=N20}pBe_rP?eB()2S+2< zn=(n?4X(bc1I|koG@5Ps%28iEZpW!i8jWUqBqU9krmth7&zhw2xq?V#(lXqN2S>Cf zkYhB+1(B|=Vye$t2mye;0;4eV+S?}jvz(s>%Ud6vnCSEeNW>zTwEfxY2NnTA=(8fg ziAUkYqiA(+k%&d$#G|t9!>jmkr`6}&l0~OKz=v0HY&t9V+Adl>oLzO<_hb(N5^r^H zuM%iIK+!iqmbWPJCV4NOTSwvlcUz$b^ zP_wW>*9EzuYMW+;jn@HxOEt*2dI1ie7D6Pvh$<1kG>sjg8Zgf{fTsD^{4Z(wSNRPf W4+Eugebq|<0000Px$Y)M2xR9J=Wl(9;~P!xv0ii4#%6uQ|KN=pZwDjo6yBDy$s(3cRL9h?PU!VDQ* zQlu}CA(%-EA*ImTt)xRK?RFi?4T)08DLRPxAl&JRTzd!ulm`fP0LO_6FU+kp5xN(ISH-l_MC+NQ3Iai zG8m45b-6VyqaE$_`@wK5GLmWr?jLS*KvY(3#&g_+Apq;~NuN)J=*pOut>Ovw^vAXI z8j5GY4<-p6Prl6zh_7KhNy}(QhPFu#!WK04_f)x<=Y6(h(;CcIqL`uzl#6*zkJmq( z{wM^XS}H{Eo?pfU^OYo|yaoMH$Y{EVzP2%2s?l^owN#LX0)#DqbsO|Pn6Gl5^;Rx2 cGBW-(A4Uqy=2)Eug8%>k07*qoM6N<$f^g%%tpET3 literal 0 HcmV?d00001 diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/detective.rsi/inhand-left.png b/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/detective.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..0a6a06c1ef78325c04f3b3378a1f24b0183a3744 GIT binary patch literal 515 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%z_j(8`}+9QJR!SR zDdSCwZj;L0Wmdwy_y1khIkSFZbYV={_bodZJ76F~dS;2^?s@B<_vX(ww|-W&@19xy zdM!U+{aJHf|J?QHirK7^3Fg*vI-izRo}S~u%IIJ=ebz0@rC0of|Ni~yvunZTomcb< ze+L$3MQJXLJ%4@O^X#Ql&Mo1tKX&b|>B~K#Wp<2btC;8J$@}f>I+7~G@ZrlJ4hD~y zV-KgSeo^u}`MQtQylkDK3whD>b`3R_Cen@e|RmPs|l&_$o?P;q!)@Xl<&JO6e7?K-6IfpUYbaEA*kzw^hsonRdrvfj!!~<` zOZ*llC;v4}^p8~i&FprMsUfERzzJc74fYN}`xxI%THC%iYo#DCRvA29{an^LB{Ts5 DnBV8( literal 0 HcmV?d00001 diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/detective.rsi/inhand-right.png b/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/detective.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..35beb619cfbb6204fe884b05d28a90c14ea6d22f GIT binary patch literal 528 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%zPkFjHhE&XX zduwCXp#TxK2lp>646@Sb(-OITaN~uAC9kAQ-du7o5H#YnN)fB!lr`FAQLg30GwG^U z(>339&J)Xa&rQnqeR9m@gzo?C9(_{(s`EVBWEwhPfZ@Q3S)cOHmc_gb_h(w1<#oHT ze3R^y?a5!6{L`%0y@}ZCVtVkj^p?!upXR->-YAgt*?n==si?g|x-TbQeKmEh?Eks( zk;h+oDzOzibP}uI>p`Weuwn?pw2ongrvS;6ShWE#TdJp)!?|r;P z=bo_Y`<3w@7tWZ-U?8OrLT~sBipzI@{d+oR>I^lPldq%q?6R25P*6YjaL!IQ!}5JU zYigsJ7>>!ucV;?F+0)p6utu%7$dH?1hVFHSh9bl68a3JCKNT{w%nQW#u6t(u(%1cd z_quMZ=cB+daAJ$$Q6BMxZ?JihOPkXW91*d{I6kt8?d(B#-L_4Fp3#G MUHx3vIVCg!0C1`5`~Uy| literal 0 HcmV?d00001 diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/detective.rsi/meta.json b/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/detective.rsi/meta.json new file mode 100644 index 00000000000000..d9f084faa10163 --- /dev/null +++ b/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/detective.rsi/meta.json @@ -0,0 +1,30 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/5ea6d8b4422027d0c22cb415d1f05a08bf39aaa0, monkey made by SonicHDC (github) for ss14, resprited by dinazewwr (Discord) for SS220", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-INNERCLOTHING", + "directions": 4 + }, + { + "name": "equipped-INNERCLOTHING-monkey", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/detective_grey.rsi/equipped-INNERCLOTHING-monkey.png b/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/detective_grey.rsi/equipped-INNERCLOTHING-monkey.png new file mode 100644 index 0000000000000000000000000000000000000000..2da9fa7b959cbe509faf2a09202d8b0b358b06b3 GIT binary patch literal 792 zcmV+z1LypSP)Px%(n&-?RCt{2nlW$UFc^kkPAAd9bOs?P2$YSXYKQy*25#xdaQuWWNKBR5fw@xu zL>V%6VZW&vQe|L6MYLD7sRR>YAd_$4Y=x9cu?aby`aKddwvxP`9s5J#djWzV2!bGp zFG@!BhF-VNkIhs3Z2yq=4y++}Z3ovkSIW=R)pu=2j)}gGzS0ds+^82}-QMB)<|@`h!_)$A79aGnj2$D64kF&OY*aeeyjx;SVMksd5+2S1+ML2GJQdj4Zhx=;Y$G4 zlNS?jcg~=C6tw&SVS|GB-fEi4;yU!Yeco!CpT?nz@(~Ev=EHS)qh3s97eqY?+u~9| zJ82zN4E`@X0-yNJs%L1i=abQnBd}1VIo4K@bG-|MLg4 Ww$)W)nhm1>0000+Kn literal 0 HcmV?d00001 diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/detective_grey.rsi/equipped-INNERCLOTHING.png b/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/detective_grey.rsi/equipped-INNERCLOTHING.png new file mode 100644 index 0000000000000000000000000000000000000000..9a6fca417b8e50446463aa0bbe61305e46deb125 GIT binary patch literal 1167 zcmV;A1aSL_P)Px(Nl8RORCt{2nmunKR}_X{NEEDO#%b1)KV;&~T27H7LQ7Ws0T)R_=_30lkf^PM z+LHf-T~NBQ3m54kR)8$3NR|;Y&qA(OpbyGO!>T(SO=gbF@_CAsYGXwLUIrrR| zYu*Dm91e%W;c$GWWF%jzR%+_#_%JhTJ84eq=jy7_(%Xen5x*V$D$@T_B7E?^3;^or z_%Ktg)D&$;31m@y0Jv(jP$(7k{;NhyALHsT{NZN1qu#vUMz`0;_01jjcDG)<((#|) z{uFx>NT2BT`ue@SpQE2$h>rVu5aoLEy62kOtB>Hpj0oONo`ju`x6vXw-old~TWdr7oiM|(=FntrL ze&`fvwmXW%=;V95Tl)C4_hyjIb|=zQn5EzC^R?Xvx)CZnWY~FS3fiXSB)0By}o|rn2(;Y?Lw)DZm&O4k`m_W+eq|TH>ql+rV6E^ zF1Py08LbKQ98GdTWb2zq^;ruc0I*kJRAx~}TcW?n{&}#n_1(^%3W70mxfRTM{rJyy zVik~tKC1#&eIM|BJPn7)?W z0TO>24)wlO--qXU7>!2k0664wD*&D^*48(Vb6998JdGe2<7qfV5R9d#5M%0698yFH z@H|h?w_I*zYDp%A=XqH5{Rw@lKnbh_P^Rrtr|l>su`D7@0rNF&;?if|1nnCTknYIG zt&nAr*uOksfprY|2qsk{~S)9JpD$Wge4vZ*up?IHjvFKl*{|bW);5r+Q;|XKm7hz&SW}=-Dr)cDgc=q0cDHbJe8@Q^8yWx`>Q&%Q z1y%w~PmZi8vqL1Vo`5i@CxIF!C>Dxsnr|2eD*kb_Go9 z%b_VjzI>9HjxHR!VpyeFuh|WjYpBKL61R-Bhd=5t#J~x+f$Nc+Qmk(=|u}6 z8#9okF)ua_SgW`7jl2r;=F|9jI_?-m6+kw$-6N1Dwzk9?2L#R1Gy>$wQ(wU2r^nRH ziS>=VqDBeRn3Yr@+Z=tkzs-;ZWj0Hs>C8Ob-)6`Uq!^^rPvj2UPx$WJyFpR9J=WlQB!fKp2LfijWSrbEC9SDjjqxbjTlY(8aNX{t3a^!CCN6m?5J} zI`j|R5XhuMXen4~ojNof>~s$GLV{HC6&=Jp5boaNxcAL>-$6k^LBU_-`s!AHrzPx4 zHoKm$Llw}wJO|KE&k@H*?L>E+E*HJClH|rzZ}h@q}nNrG0qtWo$L;^an~5 zLR0~OR-o8RVn-4rQ~~{g%4kD>pfdVL1B5DI zG@bzKavM5MH<_FD(Rd;XlB);q?r%y!QdSctR6!;XfcNld_UA(MWL(eJX+zWfX)S$* z;vR^G(~M4=Z_@+fXP7qWINc=BHs&C_f|}jXmQ`l8dS}!4HhU4BDXM^FmD#s#0G7)o z3!qx5u=lz4I-5z3lLttQ<2d=-n%&TgIHp>uh|NKG1+cybGdBU!daD!#1qJ__4@0}j UQpG-Mvj6}907*qoM6N<$f?k}zZ2$lO literal 0 HcmV?d00001 diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/detective_grey.rsi/inhand-left.png b/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/detective_grey.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..70b28f22a3b37a91aab1315c70f2cbba8e04db9c GIT binary patch literal 512 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%zcX_%vhE&XX zd&@S9$x(*&LpsNrqqDS}f@Zk1d}$Qf>3YhU?fmXAD#cAeO^Xoial z<6)6oN3w#}b{>2GceP~2ez&qC&kc-MAGK@ffPu1!XGONY{#kYL$GXbT$?KlKj{W>? z)vGICH=W!$Z~bb&+SQ)ym7gCURLY;d{Zwa&0K=0{FK5mT_G+E=;{Ew_W7oN-mmfaz z*8S?r?4?u6Y~y#&TR%0(YPRM-$=fB@mwdj)S<4jFtF~*e-5f98l_^XNAHMwIVDL~C zF3>V9sjl53b$0QSwZc`5UQeBlth|zTOe}W#sn!#QpRNi1-ZQM!!THCozU6znI&285-%+;Loe(rZIy7J+Ev9r+=1{WA$VF+8Q`2U*B^~s4}O*UxpzT9yy zY+LiEvN!k6O}1R8Ze6Ay>dW!z-K{OPmHyx6MsRHWw>UKOMAljv{g)F%v!C|L{+}Bk zdHkKHVoOPkztuYRR)I^aOtxiZ?&Ny(?Cvh6w!e&OmnGkni7!oJWccvq4+n#WDEEfj zu|CU;d44x1uk(()vnQH2W7{jq-FNS9{;{RJuqvQfO>w$$48&Mm>mAu^e=t?SZ8{4 zy`G&oLqq@f?N>|`{O--|cRYOJkcltDflJ>R8J1-pGT6j<-2d3Z%JO$f7eWu8SZBQ} zs+Q5?`aAZL)84SaahX!L>nx9o*Y=r=q1Dfs54|ump1^T8jcrlDE~b*%k{wPf8G-UH z3v2i<ofoW literal 0 HcmV?d00001 diff --git a/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/detective_grey.rsi/meta.json b/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/detective_grey.rsi/meta.json new file mode 100644 index 00000000000000..245ee74742ce87 --- /dev/null +++ b/Resources/Textures/SS220/Clothing/Uniforms/Jumpsuit/detective_grey.rsi/meta.json @@ -0,0 +1,30 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at commit https://github.com/tgstation/tgstation/commit/5ea6d8b4422027d0c22cb415d1f05a08bf39aaa0, monkey made by SonicHDC (github) for ss14, resprited by dinazewwr (Discord) for SS220", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-INNERCLOTHING", + "directions": 4 + }, + { + "name": "equipped-INNERCLOTHING-monkey", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} From f9cc15a3b2ffa811afb3c5ea282694763c8dcbae Mon Sep 17 00:00:00 2001 From: Leonid <137652177+canvaswalker@users.noreply.github.com> Date: Wed, 15 Jan 2025 07:32:49 +0300 Subject: [PATCH 12/15] CultYogg Pod DoAfter Tweak (#2484) --- .../CultYogg/Pod/CultYoggPodComponent.cs | 4 +++ .../CultYogg/Pod/SharedCultYoggPodSystem.cs | 35 +++++++++++++++++-- 2 files changed, 36 insertions(+), 3 deletions(-) diff --git a/Content.Shared/SS220/CultYogg/Pod/CultYoggPodComponent.cs b/Content.Shared/SS220/CultYogg/Pod/CultYoggPodComponent.cs index fb9eb6dfa2b15e..3acdee32208c1c 100644 --- a/Content.Shared/SS220/CultYogg/Pod/CultYoggPodComponent.cs +++ b/Content.Shared/SS220/CultYogg/Pod/CultYoggPodComponent.cs @@ -3,6 +3,7 @@ using Robust.Shared.Containers; using Robust.Shared.Serialization; using Content.Shared.Damage; +using Content.Shared.DoAfter; using Content.Shared.Whitelist; using Robust.Shared.GameStates; using Content.Shared.SS220.CultYogg.MiGo; @@ -18,6 +19,9 @@ public sealed partial class CultYoggPodComponent : Component [DataField] public TimeSpan HealingFreq = TimeSpan.FromSeconds(1); + [DataField] + public TimeSpan InsertDelay = TimeSpan.FromSeconds(6); + /// /// Whitelist of entities that are cultists /// diff --git a/Content.Shared/SS220/CultYogg/Pod/SharedCultYoggPodSystem.cs b/Content.Shared/SS220/CultYogg/Pod/SharedCultYoggPodSystem.cs index eebabe52e3e605..2bf5b7e7fbb05e 100644 --- a/Content.Shared/SS220/CultYogg/Pod/SharedCultYoggPodSystem.cs +++ b/Content.Shared/SS220/CultYogg/Pod/SharedCultYoggPodSystem.cs @@ -1,12 +1,14 @@ // © SS220, An EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt using Content.Shared.Damage; +using Content.Shared.DoAfter; using Content.Shared.DragDrop; using Content.Shared.Mobs.Components; using Content.Shared.Popups; using Content.Shared.Verbs; using Content.Shared.Whitelist; using Robust.Shared.Containers; +using Robust.Shared.Serialization; namespace Content.Shared.SS220.CultYogg.Pod; @@ -15,6 +17,7 @@ public abstract class SharedCultYoggPodSystem : EntitySystem [Dependency] private readonly SharedPopupSystem _popup = default!; [Dependency] private readonly SharedContainerSystem _container = default!; [Dependency] private readonly EntityWhitelistSystem _entityWhitelist = default!; + [Dependency] private readonly SharedDoAfterSystem _doAfter = default!; public override void Initialize() { @@ -23,6 +26,13 @@ public override void Initialize() SubscribeLocalEvent(OnCompInit); SubscribeLocalEvent(OnPodCanDrop); SubscribeLocalEvent>(AddInsertVerb); + SubscribeLocalEvent(OnPodInsert); + } + + private void OnPodInsert(Entity ent, ref AfterPodInserted args) + { + var xform = Transform(args.User); + _container.Insert((args.User, xform), ent.Comp.MobContainer); } private void OnPodCanDrop(Entity ent, ref CanDropTargetEvent args) @@ -86,11 +96,24 @@ public bool TryInsert(EntityUid entToEnsert, Entity podEnt return false; } - var xform = Transform(entToEnsert); + var insertDoAfter = new DoAfterArgs( + EntityManager, + entToEnsert, + podEnt.Comp.InsertDelay, + new AfterPodInserted(), + podEnt) + { + Broadcast = false, + BreakOnDamage = true, + BreakOnMove = true, + NeedHand = false, - _container.Insert((entToEnsert, xform), podEnt.Comp.MobContainer); + BlockDuplicate = true, + CancelDuplicate = true, + DuplicateCondition = DuplicateConditions.SameEvent + }; - return true; + return _doAfter.TryStartDoAfter(insertDoAfter); } public bool TryEject(EntityUid entToEject, Entity podEnt) @@ -103,3 +126,9 @@ public bool TryEject(EntityUid entToEject, Entity podEnt) return true; } } + +[Serializable, NetSerializable] +public sealed partial class AfterPodInserted : DoAfterEvent +{ + public override DoAfterEvent Clone() => this; +} From e797b4522c620ecb5ea20f8325525f88ac4e797d Mon Sep 17 00:00:00 2001 From: Maxon Date: Wed, 15 Jan 2025 04:33:54 +0000 Subject: [PATCH 13/15] Automatic changelog update --- Resources/Changelog/Changelog220.yml | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/Resources/Changelog/Changelog220.yml b/Resources/Changelog/Changelog220.yml index 799781d14c2b80..6959c9e7e9b3b8 100644 --- a/Resources/Changelog/Changelog220.yml +++ b/Resources/Changelog/Changelog220.yml @@ -1,17 +1,4 @@ Entries: -- author: gogenych - changes: - - message: "\u0422\u0435\u043F\u0435\u0440\u044C \u044F\u0449\u0438\u043A\u0438\ - \ \u0441\u043D\u043E\u0432\u0430 \u043C\u043E\u0436\u043D\u043E \u043A\u0440\ - \u0435\u043F\u0438\u0442\u044C \u043A \u043A\u0432\u0430\u0434\u0440\u043E\u0446\ - \u0438\u043A\u043B\u0443, \u0430\u043D\u0430\u043B\u043E\u0433\u0438\u0447\u043D\ - \u043E \u0442\u043E\u043C\u0443 \u043A\u0430\u043A \u043A\u0440\u0435\u043F\u0438\ - \u0442\u0441\u044F \u043A\u0430\u0442\u0430\u043B\u043A\u0430 \u043F\u0430\u0440\ - \u0430\u043C\u0435\u0434\u0438\u043A\u0430." - type: Fix - id: 269 - time: '2024-07-13T19:41:26.0000000+00:00' - url: https://github.com/SerbiaStrong-220/space-station-14/pull/1352 - author: Kemran changes: - message: "\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u044B \u043D\u043E\u0432\ @@ -6157,3 +6144,12 @@ id: 770 time: '2025-01-14T04:58:04.0000000+00:00' url: https://github.com/SerbiaStrong-220/space-station-14/pull/2476 +- author: canvaswalker + changes: + - message: "\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u0430 \u0434\u0435\u043B\ + \u0435\u0439 \u043D\u0430 \u0445\u0440\u0430\u043D\u0438\u043B\u0438\u0449\u0435\ + \ \u043A\u0443\u043B\u044C\u0442\u0430 \u0419\u043E\u0433\u0433!" + type: Tweak + id: 771 + time: '2025-01-15T04:32:49.0000000+00:00' + url: https://github.com/SerbiaStrong-220/space-station-14/pull/2484 From 83d8c9174fea3d3afeaeb5c6538c3d6bbfb3ac1c Mon Sep 17 00:00:00 2001 From: Tris0r <163807362+Tris0r@users.noreply.github.com> Date: Wed, 15 Jan 2025 15:30:54 +0500 Subject: [PATCH 14/15] =?UTF-8?q?=D0=94=D0=BE=D0=BF=D0=BE=D0=BB=D0=BD?= =?UTF-8?q?=D0=B8=D1=82=D0=B5=D0=BB=D1=8C=D0=BD=D1=8B=D0=B5=20=D0=B0=D0=BA?= =?UTF-8?q?=D1=81=D0=B5=D1=81=D1=81=D1=83=D0=B0=D1=80=D1=8B=20=D0=BA=20?= =?UTF-8?q?=D0=BA=D0=BE=D0=BC=D0=B1=D0=B8=D0=BD=D0=B5=D0=B7=D0=BE=D0=BD?= =?UTF-8?q?=D1=83=20"=D0=9A=D0=BE=D1=80=D0=BF=D0=BE=D1=80=D0=B0=D1=82?= =?UTF-8?q?=D0=B8=D0=B2=D0=BD=D0=B0=D1=8F=20=D0=BE=D0=B4=D0=B5=D0=B6=D0=B4?= =?UTF-8?q?=D0=B0=20=D0=B3=D0=BB=D0=B0=D0=B2.=D0=B2=D1=80=D0=B0=D1=87?= =?UTF-8?q?=D0=B0"=20(#2483)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * зэиксцэ * Бубжидубжизус * выфвфв --- .../ru-RU/ss220/clothing/Eyes/glasses.ftl | 4 +++ .../ru-RU/ss220/clothing/Shoes/boots.ftl | 3 ++ .../loadout-groups/chef-medical-officer.ftl | 1 + .../Catalog/Fills/Lockers/dressers.yml | 4 +-- .../Prototypes/Loadouts/loadout_groups.yml | 1 + .../Prototypes/Loadouts/role_loadouts.yml | 2 +- .../SS220/Entities/Clothing/Eyes/glasses.yml | 12 +++++++ .../SS220/Entities/Clothing/Shoes/boots.yml | 12 +++++++ .../Jobs/Medical/chief_medical_officer.yml | 18 ++++++++++ .../SS220/Loadouts/loadout_groups.yml | 9 +++++ .../equipped-EYES-hamster.png | Bin 0 -> 287 bytes .../equipped-EYES-vox.png | Bin 0 -> 2853 bytes .../equipped-EYES.png | Bin 0 -> 2849 bytes .../Eyes/cmocorporate_glasses.rsi/icon.png | Bin 0 -> 302 bytes .../cmocorporate_glasses.rsi/inhand-left.png | Bin 0 -> 629 bytes .../cmocorporate_glasses.rsi/inhand-right.png | Bin 0 -> 635 bytes .../Eyes/cmocorporate_glasses.rsi/meta.json | 34 ++++++++++++++++++ .../cmocorporateboots.rsi/equipped-FEET.png | Bin 0 -> 2993 bytes .../Boots/cmocorporateboots.rsi/icon.png | Bin 0 -> 351 bytes .../cmocorporateboots.rsi/inhand-left.png | Bin 0 -> 397 bytes .../cmocorporateboots.rsi/inhand-right.png | Bin 0 -> 393 bytes .../Boots/cmocorporateboots.rsi/meta.json | 26 ++++++++++++++ 22 files changed, 123 insertions(+), 3 deletions(-) create mode 100644 Resources/Textures/SS220/Clothing/Eyes/cmocorporate_glasses.rsi/equipped-EYES-hamster.png create mode 100644 Resources/Textures/SS220/Clothing/Eyes/cmocorporate_glasses.rsi/equipped-EYES-vox.png create mode 100644 Resources/Textures/SS220/Clothing/Eyes/cmocorporate_glasses.rsi/equipped-EYES.png create mode 100644 Resources/Textures/SS220/Clothing/Eyes/cmocorporate_glasses.rsi/icon.png create mode 100644 Resources/Textures/SS220/Clothing/Eyes/cmocorporate_glasses.rsi/inhand-left.png create mode 100644 Resources/Textures/SS220/Clothing/Eyes/cmocorporate_glasses.rsi/inhand-right.png create mode 100644 Resources/Textures/SS220/Clothing/Eyes/cmocorporate_glasses.rsi/meta.json create mode 100644 Resources/Textures/SS220/Clothing/Shoes/Boots/cmocorporateboots.rsi/equipped-FEET.png create mode 100644 Resources/Textures/SS220/Clothing/Shoes/Boots/cmocorporateboots.rsi/icon.png create mode 100644 Resources/Textures/SS220/Clothing/Shoes/Boots/cmocorporateboots.rsi/inhand-left.png create mode 100644 Resources/Textures/SS220/Clothing/Shoes/Boots/cmocorporateboots.rsi/inhand-right.png create mode 100644 Resources/Textures/SS220/Clothing/Shoes/Boots/cmocorporateboots.rsi/meta.json diff --git a/Resources/Locale/ru-RU/ss220/clothing/Eyes/glasses.ftl b/Resources/Locale/ru-RU/ss220/clothing/Eyes/glasses.ftl index e2918befeb414e..405ce32cc095f4 100644 --- a/Resources/Locale/ru-RU/ss220/clothing/Eyes/glasses.ftl +++ b/Resources/Locale/ru-RU/ss220/clothing/Eyes/glasses.ftl @@ -18,3 +18,7 @@ ent-ClothingEyesBlueShieldTacticGlasses = тактические очки "Си ent-ClothingEyesGlassesBallistic = баллистические очки .desc = Эти очки не защитят ваши глаза от осколков, но дополнят ваш тактический образ. Имеют функции стандартных очков СБ. + +ent-ClothingEyesCMOCorporate = корпоративные очки главного врача + .desc = Мечта одного главврача с -3 на обоих глаза, позже, ставшее повсеместным явлением. Удобно и стильно. + .suffix = За время в игре diff --git a/Resources/Locale/ru-RU/ss220/clothing/Shoes/boots.ftl b/Resources/Locale/ru-RU/ss220/clothing/Shoes/boots.ftl index 6a52891b2b7952..65d1a598a7a449 100644 --- a/Resources/Locale/ru-RU/ss220/clothing/Shoes/boots.ftl +++ b/Resources/Locale/ru-RU/ss220/clothing/Shoes/boots.ftl @@ -1,3 +1,6 @@ ent-ClothingShoesBootsMagDQ = магнитные ботинки Эскадрона Смерти .suffix = Эскадрон Смерти, dq .desc = Самые современные магнитные ботинки в незабываемых цветах. +ent-ClothingShoesCMOCorporate = корпоративные туфли главного врача + .desc = Прошли кровь и пот, буквально. Тем не менее выглядят как новые. + .suffix = За время в игре diff --git a/Resources/Locale/ru-RU/ss220/loadout-groups/chef-medical-officer.ftl b/Resources/Locale/ru-RU/ss220/loadout-groups/chef-medical-officer.ftl index 3fb2e0487c3694..0795521fdaab88 100644 --- a/Resources/Locale/ru-RU/ss220/loadout-groups/chef-medical-officer.ftl +++ b/Resources/Locale/ru-RU/ss220/loadout-groups/chef-medical-officer.ftl @@ -1 +1,2 @@ loadout-group-chef-medical-neck = Главный врач, шея +loadout-group-chief-medical-officer-eyes = Главный врач, очки diff --git a/Resources/Prototypes/Catalog/Fills/Lockers/dressers.yml b/Resources/Prototypes/Catalog/Fills/Lockers/dressers.yml index b89095b904e267..543ce653820351 100644 --- a/Resources/Prototypes/Catalog/Fills/Lockers/dressers.yml +++ b/Resources/Prototypes/Catalog/Fills/Lockers/dressers.yml @@ -53,8 +53,8 @@ - id: ClothingHeadMirror - id: ClothingEyesGlasses - id: ClothingOuterWinterCMO - - id: ClothingUniformJumpsuitCMOCorporate #SS220-CMOCorporate - - id: ClothingUniformJumpskirtCMOCorporate #SS220-CMOCorporate +# - id: ClothingUniformJumpsuitCMOCorporate #SS220-CMOCorporate remove only in loadout +# - id: ClothingUniformJumpskirtCMOCorporate #SS220-CMOCorporate remove only in loadout - id: ClothingOuterCoatCMOFormalDress #SS220-FormalDress # - id: ClothingCloakCmo #SS220-cloak-dress-tweak diff --git a/Resources/Prototypes/Loadouts/loadout_groups.yml b/Resources/Prototypes/Loadouts/loadout_groups.yml index 4e1966dff077a2..23a60845f92c4b 100644 --- a/Resources/Prototypes/Loadouts/loadout_groups.yml +++ b/Resources/Prototypes/Loadouts/loadout_groups.yml @@ -1410,6 +1410,7 @@ loadouts: - BrownShoes - MedicalWinterBoots + - CMOCorpShoes #ss220 new cmo - type: loadoutGroup id: MedicalDoctorHead diff --git a/Resources/Prototypes/Loadouts/role_loadouts.yml b/Resources/Prototypes/Loadouts/role_loadouts.yml index 5d157826123355..663d528696b755 100644 --- a/Resources/Prototypes/Loadouts/role_loadouts.yml +++ b/Resources/Prototypes/Loadouts/role_loadouts.yml @@ -460,7 +460,7 @@ groups: - GroupTankHarness - ChiefMedicalOfficerHead - - MedicalGlasses #SS220-TwoOne-Floppa-Iteration + - ChiefMedicalOfficerGlasses #SS220-TwoOne-Floppa-Iteration / ss220 cmo new - MedicalMask - ChiefMedicalOfficerJumpsuit - MedicalGloves diff --git a/Resources/Prototypes/SS220/Entities/Clothing/Eyes/glasses.yml b/Resources/Prototypes/SS220/Entities/Clothing/Eyes/glasses.yml index 965d362d575916..7f455439920ef8 100644 --- a/Resources/Prototypes/SS220/Entities/Clothing/Eyes/glasses.yml +++ b/Resources/Prototypes/SS220/Entities/Clothing/Eyes/glasses.yml @@ -88,3 +88,15 @@ sprite: SS220/Clothing/Eyes/blueshield_tactic_glasses.rsi - type: Clothing sprite: SS220/Clothing/Eyes/blueshield_tactic_glasses.rsi + +- type: entity + parent: [ClothingEyesBase, ShowMedicalIcons] + id: ClothingEyesCMOCorporate + name: corporate glasses of chief medical officer + description: The dream of one head doctor with -3 in both eyes, later became a ubiquitous phenomenon. Comfortable and stylish. + suffix: For playtime + components: + - type: Sprite + sprite: SS220/Clothing/Eyes/cmocorporate_glasses.rsi + - type: Clothing + sprite: SS220/Clothing/Eyes/cmocorporate_glasses.rsi diff --git a/Resources/Prototypes/SS220/Entities/Clothing/Shoes/boots.yml b/Resources/Prototypes/SS220/Entities/Clothing/Shoes/boots.yml index 8986b3cc3b4afc..1cd76648521ef9 100644 --- a/Resources/Prototypes/SS220/Entities/Clothing/Shoes/boots.yml +++ b/Resources/Prototypes/SS220/Entities/Clothing/Shoes/boots.yml @@ -124,3 +124,15 @@ type: GasTankBoundUserInterface - type: Jetpack moleUsage: 0.00085 + +- type: entity + parent: ClothingShoesBase + id: ClothingShoesCMOCorporate + name: corporate shoes of the chief medical officer + description: There was sweat and blood, literally. Nevertheless, they look like new. + suffix: For playtime + components: + - type: Sprite + sprite: SS220/Clothing/Shoes/Boots/cmocorporateboots.rsi + - type: Clothing + sprite: SS220/Clothing/Shoes/Boots/cmocorporateboots.rsi diff --git a/Resources/Prototypes/SS220/Loadouts/Jobs/Medical/chief_medical_officer.yml b/Resources/Prototypes/SS220/Loadouts/Jobs/Medical/chief_medical_officer.yml index 8217f2ffd70db9..e7072bc97403ed 100644 --- a/Resources/Prototypes/SS220/Loadouts/Jobs/Medical/chief_medical_officer.yml +++ b/Resources/Prototypes/SS220/Loadouts/Jobs/Medical/chief_medical_officer.yml @@ -23,3 +23,21 @@ proto: CMOCorporate equipment: jumpsuit: ClothingUniformJumpskirtCMOCorporate + +# Glasses +- type: loadout + id: CMOCorpGlasses + effects: + - !type:GroupLoadoutEffect + proto: CMOCorporate + equipment: + eyes: ClothingEyesCMOCorporate + +# Shoes +- type: loadout + id: CMOCorpShoes + effects: + - !type:GroupLoadoutEffect + proto: CMOCorporate + equipment: + eyes: ClothingShoesCMOCorporate diff --git a/Resources/Prototypes/SS220/Loadouts/loadout_groups.yml b/Resources/Prototypes/SS220/Loadouts/loadout_groups.yml index 93d941dbdd1a2b..8609d6d9761915 100644 --- a/Resources/Prototypes/SS220/Loadouts/loadout_groups.yml +++ b/Resources/Prototypes/SS220/Loadouts/loadout_groups.yml @@ -477,6 +477,15 @@ - ParamedicBaseBelt - ParamedInterdyneBelt # Парамедик (конец) + + # Главный врач (Начало) +- type: loadoutGroup + id: ChiefMedicalOfficerGlasses + name: loadout-group-chief-medical-officer-eyes + loadouts: + - Glasses + - CyberMedVisor + - CMOCorpGlasses #! Медицинский отдел (Конец) #! Инженерный отдел (Начало) diff --git a/Resources/Textures/SS220/Clothing/Eyes/cmocorporate_glasses.rsi/equipped-EYES-hamster.png b/Resources/Textures/SS220/Clothing/Eyes/cmocorporate_glasses.rsi/equipped-EYES-hamster.png new file mode 100644 index 0000000000000000000000000000000000000000..6e47fdd5f72e6f3cabf2f6d85b3c28f5935f7ba7 GIT binary patch literal 287 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/SS220/Clothing/Eyes/cmocorporate_glasses.rsi/inhand-left.png b/Resources/Textures/SS220/Clothing/Eyes/cmocorporate_glasses.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..0872209ea91a71f736efa23eb42d872c4af71e90 GIT binary patch literal 629 zcmV-*0*d{KP)EX>4Tx04R}tkv&MmKpe$iQ;Q;%B6d)5$WWc^q9Tr^ibb$c+6t{Ym|Xe=O&XFE z7e~Rh;NZt%)xpJCR|i)?5c~jfb#YR3krMxx6k5c1aNLh~_a1le0HIlBs@W3*RLwHd ziMW`{uZq2|2w(&u2pE)@sV6gwS$K}Gd-(Wz7v)*r=l&c6O2K4+Pb7{p-LQx^h-Wt~ zo%23%n3W}k_?&pspbHW|a$R=$jdRIifoFz|YK2d-P^xs+Wq|iTXS-qQE`9~00022Nkl0)+jEP)EX>4Tx04R}tkv&MmKpe$iQ;Q;%B6d)5$WWc^q9Tr^ibb$c+6t{Ym|Xe=O&XFE z7e~Rh;NZt%)xpJCR|i)?5c~jfb#YR3krMxx6k5c1aNLh~_a1le0HIlBs@W3*RLwHd ziMW`{uZq2|2w(&u2pE)@sV6gwS$K}Gd-(Wz7v)*r=l&c6O2K4+Pb7{p-LQx^h-Wt~ zo%23%n3W}k_?&pspbHW|a$R=$jdRIifoFz|YK2d-P^xs+Wq|iTXS-qQE`9~00028Nkl}#^d|xU000000N|P2SncOcf1Tq< zKW~~F>y`25I#`-i_o3IR)FMlyZinkBKd5d8DY8V?snmTLOOyIP+J33(M(>UOi`-bP zx=}?Q^StEL#sU!QTmS$7000000002KB!u3;5obTZCB)vq+r-ctIF0{x004l<+yU1# VTpPe3)HeVC002ovPDHLkV1kXFBa8q5 literal 0 HcmV?d00001 diff --git a/Resources/Textures/SS220/Clothing/Eyes/cmocorporate_glasses.rsi/meta.json b/Resources/Textures/SS220/Clothing/Eyes/cmocorporate_glasses.rsi/meta.json new file mode 100644 index 00000000000000..fc2a135029a234 --- /dev/null +++ b/Resources/Textures/SS220/Clothing/Eyes/cmocorporate_glasses.rsi/meta.json @@ -0,0 +1,34 @@ +{ + "version": 1, + "license": "EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt", + "copyright": "Sprited by cream_bag (Discord) for SS220", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-EYES", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "equipped-EYES-vox", + "directions": 4 + }, + { + "name": "equipped-EYES-hamster", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/SS220/Clothing/Shoes/Boots/cmocorporateboots.rsi/equipped-FEET.png b/Resources/Textures/SS220/Clothing/Shoes/Boots/cmocorporateboots.rsi/equipped-FEET.png new file mode 100644 index 0000000000000000000000000000000000000000..ac43cbb5f0d23000133e863b9090f5a4ee11b0d7 GIT binary patch literal 2993 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/SS220/Clothing/Shoes/Boots/cmocorporateboots.rsi/icon.png b/Resources/Textures/SS220/Clothing/Shoes/Boots/cmocorporateboots.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..bc68ab2e2aae51a8897f8f1adcde128f61000984 GIT binary patch literal 351 zcmV-l0igbgP)Px$8A(JzR9J=WlCes|P!vEQdZM<>?+gyRtaaiU1` zveDHUAmV5?;b6GG_3ZJrV7^>eb3F`T>JI>zFW0RBdtLHyJYwn(2oGHVUer6c_fN!$ zs-#U}B9{=)>67MVqo*|hAXCNGyvjDjiJ~b?#3GgT0M&}V9Uw2(Lz=<_`8%G|@A`Db xPKWR-axUruiB0peS3mh}`!^U227}>G@Cj)Thr2(vam@e#002ovPDHLkV1mMto45b~ literal 0 HcmV?d00001 diff --git a/Resources/Textures/SS220/Clothing/Shoes/Boots/cmocorporateboots.rsi/inhand-left.png b/Resources/Textures/SS220/Clothing/Shoes/Boots/cmocorporateboots.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..16a2897dfa818fd9e044c42e9e6d08f599909ddd GIT binary patch literal 397 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D%z-923#Ln`LH zy|vNnu!GF;kMUa*x>7P;T$`cE6*;$SvcggJkE$}Y%<~;ybaTv=iDfpkkdgH^63HyJ z6b~-hSHJq``}9*^9>4Q{H|@74&}l^;-&(*bJb+=bcR>?PQVeX#r-Yb0dES|loX{M6D zE?u2AQCf|8#kALczpKR}7nPXYlj#hol=)d=5;jqF(vr%}zpC9GepyZ5+&X>9@7w9C zBeqs9UH#Q0dPZKH(H@p)pvvycja@ny4?p(4(Dd2jlX-Z0^zA)cS{Xflef-_dcR-09 z;%XpyzP?8kdWt!II6t?`4ipNLC8qWKN)CGPiIjOr}Z#Y}>GGfv~kKM8C zojWq}gmkw5`0p#}_h1gQy0;xC&}<+$P;XSEyT?;`_qy^)ONw@v*S!zeWUyh<6qjUO z-?w+}ugrdU_v%ir;FCG`R8Rie(xStYBh)+9@7$E-8>cNRtNVUr>53Si+{9J)c;$i; zwWfBjEM1!)>mbHvHuLP%`udkV&4delF{r5}E)i1gn?; literal 0 HcmV?d00001 diff --git a/Resources/Textures/SS220/Clothing/Shoes/Boots/cmocorporateboots.rsi/meta.json b/Resources/Textures/SS220/Clothing/Shoes/Boots/cmocorporateboots.rsi/meta.json new file mode 100644 index 00000000000000..9d3687cd09f1c3 --- /dev/null +++ b/Resources/Textures/SS220/Clothing/Shoes/Boots/cmocorporateboots.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt", + "copyright": "Made by cream_bag (Discord) for SS220", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "icon" + }, + { + "name": "equipped-FEET", + "directions": 4 + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} From 7d2a47c921559ae6709bed6bdea541a7c7fb892a Mon Sep 17 00:00:00 2001 From: Maxon Date: Wed, 15 Jan 2025 10:32:00 +0000 Subject: [PATCH 15/15] Automatic changelog update --- Resources/Changelog/Changelog220.yml | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/Resources/Changelog/Changelog220.yml b/Resources/Changelog/Changelog220.yml index 6959c9e7e9b3b8..8bf404dd7f9e83 100644 --- a/Resources/Changelog/Changelog220.yml +++ b/Resources/Changelog/Changelog220.yml @@ -1,16 +1,4 @@ Entries: -- author: Kemran - changes: - - message: "\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u044B \u043D\u043E\u0432\ - \u044B\u0435 \u0443\u043D\u0438\u0444\u043E\u0440\u043C\u044B \u0434\u043B\u044F\ - \ \u0431\u0440\u0438\u0433\u043C\u0435\u0434\u0438\u043A\u0430." - type: Add - - message: "\u041E\u0431\u043D\u043E\u0432\u043B\u0435\u043D \u043B\u043E\u0434\u0430\ - \u0443\u0442 \u0431\u0440\u0438\u0433\u043C\u0435\u0434\u0438\u043A\u0430." - type: Tweak - id: 270 - time: '2024-07-13T19:40:48.0000000+00:00' - url: https://github.com/SerbiaStrong-220/space-station-14/pull/1345 - author: gogenych changes: - message: "\u0424\u043E\u0440\u043C\u0430 \u043F\u0440\u0438\u0431\u044B\u0442\u0438\ @@ -6153,3 +6141,14 @@ id: 771 time: '2025-01-15T04:32:49.0000000+00:00' url: https://github.com/SerbiaStrong-220/space-station-14/pull/2484 +- author: Cortez, cream_bag + changes: + - message: "\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u044B \u043D\u043E\u0432\ + \u044B\u0435 \u0430\u043A\u0441\u0435\u0441\u0441\u0443\u0430\u0440\u044B \u043A\ + \ \u043A\u043E\u0440\u043F\u043E\u0440\u0430\u0442\u0438\u0432\u043D\u043E\u0439\ + \ \u043E\u0434\u0435\u0436\u0434\u0435 \u0433\u043B\u0430\u0432\u043D\u043E\u0433\ + \u043E \u0432\u0440\u0430\u0447\u0430" + type: Add + id: 772 + time: '2025-01-15T10:30:55.0000000+00:00' + url: https://github.com/SerbiaStrong-220/space-station-14/pull/2483