P&>_~-|5Lw1-?Iv% z*uW}2A}u>&qJ_abj1%yd^+8q>5xCu;S+MTmZ7c{5mj9>zT{;-#{GhY{T?nj`+p`a` zB9sLAcbVXZ0(UsHkNr)zT1anLsDBu4v?XK2u8iW)8j-;aapF*y-B5B4BeFOXIUL5! z&79z7RfnHWahTo>n*U!FM|ZqLHULma5QHV1gC#7=#|r7HI(3NwsG|#;!yqIHeH^i_$Oj6s*50U;F=6 zreg;e0st=|?YlzSXdx{$2pn5Cgqdtz=vyfvt-J8vVVS>c9AZ}n4QlT7_t5xf0|0=z zyON`K2x`D4Jcbs>n23*|wZ=>^|G#1|B4fY~8kT_^u!C67zOs~9wUyG8F46p)aYMvX z{&=5gXy!6R$}aUCT1tbtlb{x!L<1U)8bE<@CDkR>4!t{|`$b4=03mjo*on|CdNzte zRuy0sk;FPvm&Hu5+apTE>Xn=(nz|HMfkFTs_%P)T#&J@pasa@6W;7!#BFT0Dwj77< zK`cRSqY=+D?FJB{SxG$zk*q{E7!mBkmNSzEbeA#{hjm3k|7fKEA9Ya~do2JW0(`gw zHAs{(;1D)o*D~V3jk9ZwCCl{7$f8U!1{?-srWi{u0}Mgf;F5s>2gZb53&V*qAsAq4 z9p1~hO`2k6xiDjO4puus<^=rgC4)(F7o_6BF0RgPHswE6m~m6gv>Zs4MS0;+7zayG zvp3Fi9Ai!j0yU4B7))|vFa*rxm;;7@xAwx!n&BqLF_xsDX;OqWDX6Wm_|@&6^74}E z(u3-Y2d_5Pl5|J($rBpWL}3ifYu!xnZdUAC z2I`yj!da)_XPwqw8Jl8o<_?p)81tPVa1tMPg66p~ z r0s;{|RsnNqLQU#28S||We z>WflEM3&M63)BF2c&3KFS` ^;_IL0xF1xZO^5DXq3CPFf!5=q($Dv`> z=X7joL&t=RTf=s`=U`DS) Rq8G5Ou%%o_kW&V7$)DkotExpX2lz=8fXhvdw0@@`v35~v0 z2F5)lIqvyngt_RzuoVX47=asipuInoP%@ZFZ+Q2X=8y~+S*MRNVD!25{>9+&v&TFb zJPx<3iIN2!7<6!DPzuCY?gWjP9%JevtYt9fAco*DZ-FE8)ZwkT&Bn+WH>=B$R^#~D z-3S|mLjCQvSDOcI-xc2hz&C0-AcvCAOj{nt%LG536_~hzd#k1+5C#FSQX&M61kXn9 zJ78KOnaj+ %V1UU!LeS 8;5q0B4Ir@n^H)&rLxO2VUV^O4!iP(oeu$< zusW =r11wF)866J}{4vUd{n! zK^z)+EK5&@R{z7n$eHai6(;;2L=1-@Mag`iZ6WGl^N*GP#U=cQL! c=n`T<=sz$(QF z2%Q)GM5!9lp*7V( a@OLxUBR&Qe@@>bygmlj{H3VfV+PZ z0N&9+ScjljBRgreAH1W}0kdJSbOEh&K&t?yrl!n;_}r>DLm$6Wuz^X+KZTl_`WOQJ z5TK?${<@)_ar#Rnf8CJrY7sB{FN=waU4Wev;J*Ot7UUP?hl`5|3JSnP#YFi*B) Pt!^%Y1d4wR^sZc7Y&%ryzcKHi0v~~Rw(QLh|h0cI2Z(|^=c!k7qjqC z21DS+pEZj{iKh?D72h}e1s=HSl_FX^wP8w~gp&Oj$v9>dy3P5hKny$BPe}zl4X;Mk z2H_v)JizwK&@c?8zz6D-_&Qk|OO%+6w4YwxU*DqaKLJQSQ->F9xISHkB8);^tH)90 zX6Z}-vu3Xih>CU$*`lDd1jMVEfMy^+9NWT? w)2!0;qNo10#ATzYY)dJ+oJ&lTx@?Sn%a;cb{#H*cJlgYbHErmWU{*-) zx8v(ptTc;Vvew_QO~0R8cW0cZohzq>%5jWYx~;B_`c#eWq|Meknq<91VX))#*;qrC z%~{hPy~RDe-7n*!+Q*1hmrJkTF}Mf4e&WDgu|W71|1H+KaX(?%UQlVz!d4 sBq1B-HE(X!dNC#e{vb;TldzGpF(7whg}2s-8HFC6Qfm} zk_e}y2=O}o%t(Bq0#WkIu~ItzRY{Ovbqw(Psy5T5k0*cd>(B$KBaRMA58b!@*Qw$V z%u|78C08gov?s5Oe4I2?pyZ_p@iR5la#_DTnY9%_V(qFNPi|q7pap*Fqpzo^y=|Q3 z<);P;l+&Ypew)S{pRpYeh)^2)?FtAPd?a4n{(A5rL^p&4WWR8}RP#RL9ZE4c;>4`V zrSIlu*A{BlO3-PgU*su-P?$VR|Lrni`XVYBo$cpRQ%y3;qgM3u!%cH-(nI$SM=#$j ze5DnPUHC}}K#edlvSTJ!VNspTysat0vy62_6FsZLP*>#-QR%7Yv)AmW^cSXj11O;e zsp22Pcgjlda{>HyF76}px_t;;xiz@@y-kIH3zRo_Ku?@}QhMS~6Do`!sGR;ow<_-6 z@FP++kYiw6?waLTo%G$H-){DgNWhFEpSv#WzyUJ6wG5EMv)sW2Mhm$|kOWPHE_q z@x-J`ZO{#NiV&%mmC;wIIX%RkWW_U#ZFvV@*%UT>?fe|1Zv#TwMapzLvzm)>l)&rw zMa6MLuOpj-4K= !) zdGjbW)ZA?ADz?qbqY!(#fenD8F#5sXcl{|q1x-J>()UIDS4>{bf60KrmR=Xm(*rUl zsg-S7J^{8A>HvQhFK?ew*?A_a=bz*-ryF7n>DZJ|4+ZVsp7o-<4aW5QJ&CG^PCh9l zYmeX3Pe)6+Z^E5GUf4 zLbT6a-sqz%!XmHC8(uD(&~cPqgRPId^!t%~MdPS>f7LMPyM1QKkBC(HQ?lk_YWC3+ zu|xV4w`EJ4pl@gYh+0520|s+1n|lQ%QQM6}+*nXnY>A61I~6lt0!4L+2fTrUdS(^Z zYRi5yojf825 ws={~opOT%?Y4vORUIv}=k)HU zr#^Y| v{OW$sxyq-lat2sgDnnF~y%VXZofL_XLN6y;n*|m9J~AsIc7}(Or6m z@8Nn+_x|Y4P59Pb4;Jc-B}Eo-zf~w3BW~Cs>b{Dv577MU5wE86>p{JR=C*z22JEM7 zA#Eqsoj#{LA^M#MGqFSdTafonom+vwb;ZoJw0{mxwbRfPT|4`+I>^g)@JhgEw#LUL zqZr}jJVbhHUGc&YRCuGRMlp6_eM >0ZAnjNDou)dMWxM34mx}PgXbu0GH@7g@ z+(!#_@0WS3C5lDz<>|r%9~@=Wwb;6`+_X}BJ6?Plzi?A9d7w*s)<|Msrv93ohuhT) zKLQf2P6nC$a#w2)p84|fln-ys=TNJ}+s(CfyMRi!7q+v%U4$z&I8^78s?p8o1g1Da zyCe>pH#H)~DCO`?y=Oz)e^Txl?EE@?&m|9EU|YgvXkC$|tWZ3s0$XSGF@%a>OILpq zGH+JLa;<6{&Ir5i#LzbQjnDK+D&%WDBsF<-9__xgHcvTMSMR_2KK%L3@j#T*Hqa}d znlg*}ycB49oqeC+W38m!0?(+jIJKXhVp)vyyMC+pWVS`S)OEWSo-pSJZ;A)6JU!{? zcRf_xSAjDl3#emUC>0Y~L;qL`W@e czgOyb=${!>gVWr|JA53S-m7Qv z1X~=uf5cR*#>J=5{-!D@GwfmQ-f+eb{EzN?1Z%?5x2B4z7UFnKfoHw3(A%EUB+`K+ zdV}!x=gVM{-*+3UgTOyQbMqDx8d5mLJVM(X9IE4ch5xL}X3W(?v$y5lN gOi(e1lUR@Sx=gG3K z#KG6OxCP}iS)=fVT~nbmmvLD~0tz_H6WmwKFB_L8cZu0Z&QsS1;P;E_nrUeE+%%>A z_5v am<3DiX_tY!lL)$-+egahG=do_bEdLxwYO1q+& _^JR2UvY` z-1IZsJmWRZwNt|7wm!LE;9yr ZSKQR^Y$p5SerBsX7%}f2x3n{BqW&yzk zIAyGsfylG#I@d3LwmSDKb*1@F&@*TMFtdFPTH)Ia!7VYbceM|MZv`FA-8+5V`usgR zg>g#*i{15IjE&)Mr90H#A9d^H1Ad*cZ^(M{>4_|#ZAW0E)@7#M1qXgK^5D%9Lvjv< z$^ 9X(<_*Ds&8Vds7@Ll$o7Gsx5=B7x?xY~V_M*r zGdkndOWXb930?^}TE2ELu^}JSXubd4NWH3>5*VdZ!{!(g(S7tl69sqI3*m<4aN;ji z&69N2>5!^1$s<9{TX(y&pF$f9&m@-a{>eS`xNBN#&cPq!r)Kp_ZpiP(!>_Eb`&i?D z|FAmWjJV;(q$)Ju>mzAhi?{7}w58klRd)AtP?1G30b*TrC-WLUz0N5NZsd4Z^WlIF z nU@4w^H1Uq(@}mU5;%!)o%3=qq*ZF3EZGOaeeRg&!An7=8Gj^-a?!JfA>)P zic}bd>M0<#z|TfwT~m)xych|6dk_3qV!XiGef!pSvvT-bcOH(z)yWD{p|tT*Knvxw zl8rmoq`W!S@ 5WE!+NgOv$ zZb}C(7HXXebI{nZFHUFwv$eCbt@7~c0@u{e+sQEk>{e0TwE3YkE4{Rm^>zj=z;r$3 zT4(LKshw8p;1offVOJ`iOQE!uwvY1I&Oxp|>CZf{VqMimZ%=;1%pIB!@s-T!SO=zh zc3n( vO;=Oi1L$Uvu+P4Bvt_c*PHr3Z1+}v(4P6Xt z4KKdG$~FpIc`g3M?R=b`S2^2u$(98z8aiSL1QV`JDe0T-eaJ?C@UcD-Q#rY7LlKw8 z(_u?bE2Q|d-R{<>D9+vWMz<|7VciVvg>gF-Gr`LAJ#~)`gZ>XWCvo%V3bQjTg4Suh z%ccGOGr|m}Sye0VO;@v;t*omZZjVXV$g8*I`PN#Ob4fT3MFxKNtQ zTmK_?!TZx^ud3+f@0+&p5>i6EoEG>hwHqI+cE#tGOAFlI2wE1-shRvSpHsf# TxA1H0l#^cFWH-hFFu`EP8#7As)VqzJG&l{t}zff zJ-mbQml6{v13F0AL`C}pmAN9vE0GR2C&MmR$FtlKGHY7Ta^nA1EN^e+{_W4a+*;SU zYNbPxxrRHN`wil^lUKxl=(ZVqdVRuUbNP-4zZ(tB;)Z87pU)?cUU~6bs*4f)gwFzo z^dyjMp%k1zYYhKR(+8<9$vapEPLa*K>N}aZYjRhtp8XhuSClg`m>M|RbQ_qsItl8> z^y9y)S9$pI_%$* S}XaN3NUYEKS*%ZU!dzUEhtgL84dEedIXp|^V zVulp-VfW;VwvS{Rn6f`} KewN2 zDM)R6oSce=Su|z1rlnQ3Uet(l=?r7tae6;eI;PR|XpgG6g`jeF?(@kl4ng*^O?dN7 z#VaJkh5eY@)6IwT=g}YB&9|)i?^9D!g2zDMMU#%VCul26k{LACL{@krQ3(*{)OY4J z$^&AvRZJ{P^Bat$HKoB#WY*k=k-Rv$4?Ve-BFXxk25F_P HE(N2W}Cy((bsd?s4(O#F)d=Y~MUKZ#JzmHcw>d zv`tr7H)x$X+w6@DuHQxK_eVaRA!O@WKmp|ayf>7f6+NxFqWJW07-jJfo_^>GO@f3{ z0Fumu>PEpW^DU(rJXdN;4hqjy{NCZYaN+xR9$6MeIcbBjTV 7a5R4#uW;L})paJk{3*IY)_Dmq -C17RlV8rId8IF^) z${9)NR>@5~a<-SAUwdO+jlj=Z2o!W53Hxcw9F}V}&e?8g#cWHRx*Dn+DqmFpS*|Nz z T6>bSq1>shQ-#q)+k!`4Z@$lzgyR403fC8eV7med46>App-W$ zlv)Eyq0|~F=ib^P%RF0hMs0TmFk=jogb%SXDX;f8BmmUT1NCL4oTJnlLI?mZO5T2p zhS)_Btg80QnO$;l0|o$6N*gU^qha5roLd6#J{O)tkcDz8wWd*ZB SsQfusX_iVXb0XSC2&^a2l z*oDO4Y?>cl(6t`VPzpuS-NuSSc@^A#p5&l)n##%p>6fwIxqp1}zNeh~XOWiBH-e?s zSml|kw7cCs0ARD(V7uMA--=0;&F42p2mvW2s!B84GK3HY0G^-sEJ?T*Nn2D(t+8I; zq9_!klnkVW#87IDs?zM+m+wcyEwFL}>NK$}$9|`m(3P8PKEH9!1|+O8qkXd3YiO@) z$RS2BBoUr>F8UJmBubsBD(&(yfDuAC*)>Io_CQZ2qz3{3Z1gTg-^s^KGITm=L&~{p zDQy!-Orqhe_!beQ=#=QdQOyJwaYFF5UIn}_!NHTvIYaSV6B+_G{cSjMOa#Y{iQw2V e5ga={Ji&jp^Kss!mj4O>00005nL literal 0 HcmV?d00001 diff --git a/Resources/Textures/_White/Objects/Weapons/Guns/Snipers/hristov-icons.rsi/bolt-open.png b/Resources/Textures/_White/Objects/Weapons/Guns/Snipers/hristov-icons.rsi/bolt-open.png new file mode 100644 index 0000000000000000000000000000000000000000..540739166c3009398f81a5037d10a59dfa6b87df GIT binary patch literal 701 zcmV;u0z& OPISt_H5dR$DUG+7@rL=9aBc{^`&@VoK^BHnLF9VXl5oEzoU?>;Pd4=C zIl#Vtp4*}j769NdKV7Ao_BWv`MEk&maaSk;KpgXf2#Ek7O)G*;1z<=4%CbvH`HZ`} zd+&Qo-q~Dz?YTPpN?%|9gb+U(@0Riz3FmN~wO0yJL4@7IBMKsHx3_G$Tmg8gj-hg{ z*Nj2hE MGYHQ+7JUhNA?hkqmSpoWfEGg7u&axZ+XKBYae5#Cz M>^4tH0mqv5U(U5a}Zo`+XS zL6`IiO*$9ptT3509yP9X1(uME;p}ka28OS}SX!~)eyiO@SZg_FeEQ!G92*ycr;ZE3 zQ^$qisiOxl9#2?l-PXnqM z`gteBzKz6aQiCpimNC0c+VI8bQN(y68NM_Xum^6 z>>vfpa(8fgha6l%0AyL_)Dlh&_b!pr5%}=A@I3@YJ)H_;LRCG9@LeLMNTiHx>uMeY z;_K(3FADVn0NeL7bgF586ZWNO8@M#ymx=&`f!xZF9zdF|2{sjgE(It}M=13puzlw4 z?ta(3^LO=c&j8cuwY|Cd9i1Qh`Ai}up;#-e=@rJXe0ZcVhQ;DmjK>pTQyuHhg{n0L zqzT@p`r%=?*5Vnh$@BefEYEdR!QJQ99du5IX%!*pmrcEM`S2KhPo#{`3R*&21q)-C zq$6Kx7mHf}X0sXd`P~0jQ;Ldy|H>+*$g+&GG{UtErIZDDdRmIXKt@WsqEZ;cbb3vm zYqBg81TCZqg)x++5#PRi-w@sbmu|4WCa&eU?_m)3-A&Q&UwLP1B%HAb`((A(hP|#L zM-#z1iTZi(MO%VViiXaVrSbQ%2CJ0vX;&4Yum^6XNg^eaUq8unjZ^PXw4Ho 7!BfYD;Hl$6@YHek1pffz3xBZ9({;iC0000 J=4#8o8zy zyPe*(oIhYT(@o6@b5V)d&yBTj8Sk~*v@~3Q-Yda-+GzJJ k;*<93J`u-6|(dwJZ=C8iwdiXWI5jg=QX7S%)ln;~JV$rm+4Cq7# MPgg&ebxsLQ00@y 3BgF~;zk`A+6y$7#WFS} M2W} x%!L?6-RGOu~<;(I$_I@s~uRD^sGxI zfWT1RkrvlT64sx4-v9po9u-317ae#mv pl()ywGgUd%l-kV+YhJ`fYr?^Chio- zZw6?~{*@vvK;5jePWLqL!J|J1dvmgm|1(NgyHFXV1n6{6*^fW{fQR7-$an3d_3k|2 z`P&BZc7>8;4uhTUDQliJF}NLI;!blNJm7`Qn@^ut?|Wm43L)r?DQg=f^Zhf;fVx>_ z55o}#w*y>X-34ym8`DD01Z{(8GfL4m2 XW9_uU*kfM>^IRqz3GdSl8e zgrII#v9u?X2x$dib+d}=tGmc)zZsWR&>K_MpM%-9y;}D?3{Kpsc71i1IRvK?pny;p z3Lk8Y*ViWQ6#jieQc?*}#^8Z<$m6r?+h`OP1~csw(nbN{;AOpX82 n+9Mdt;#FO7|<1W=uuS4|fCQVGCw^V>?6+JQs@ z e@#Gt4z?^x(2^82 z6ijICfM~yx*a>EN=3XF~YX^h^bh@Yhgox0PM0Zt4r+dm$*!K*f0L`-|J`Shs&B=M} z;A9e%S>YM#kHaal)(!{-7~Bq?<>oi3n^kt)unJu!{`7oE?SPi_>2x9|$TP8k=VW+Q z=*5w_8vMg>R7jn`62`N_*H?GirhVKA&M3uVL1S%_t`GrG%HSvNG&DUA1ZoF_HYE}u zY)bw7{shglCXO3ck%JG-P{-8{h!6@8mYWB>Oz|JT|D#3y7xH3r@PgU_VSmD%U|ep# zq=zB_!Ht?JsvU?$I0M3R^V>wi+JQ)fGk`mi%SRVR&BTn-M76y|k)n1Wltib&-k367 zC%NVRWs#{JNE8JsgkZ6tTG)@Hwt)&EXd5JxeXstpc%mgRqw6|-mAQFU$kYxf`@zIZ z<<&2Nod9JUP&PXO$~K^E{s&K!D&~odPyqk{002ovPDHLkV1h;E9Uh-0D3!_uWD_B~ zEiJx~&%dzN3CMsezfs6L-`UqXmjRLa#YlQeW!&lU+I%jzh{>zqof#kK`QGRF@E>d$ z1p@k(>p3B70YukzCWe)B)5NJ{V>4t7w6^q=YRlNNEI=|Bkp33n$}5W8+=>Ij07*|t z*(hMQrSGcp@F}B|4{$UjZFc=MH=}}I8NK8IxBjyjABc2?$bI;MVYI8nK1N9SfR7nt nZvhVk#4SMFcpxBd0piC0%3gytU`TbD00000NkvXXu0mjfk>9}T literal 0 HcmV?d00001 diff --git a/Resources/Textures/_White/Objects/Weapons/Guns/Snipers/hristov-inhands.rsi/inhand-left.png b/Resources/Textures/_White/Objects/Weapons/Guns/Snipers/hristov-inhands.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..2c31a2f02455bed83d99c36dffa1ccf5ecef8409 GIT binary patch literal 1665 zcmV-{27dX8P) FrGMJ3{D(r`J^b=o|(M&&6}C` zo*zsIfo~b#6)ix~cq5=_0gA>O0YwW?G~Ng(T7aVQMnKU56pc3miWZ<~%$ jbUV ziSa$lvSC@aeD1m)0APEwitWv6B9NhH)XxOpzf6tS;o{b=v`)3N8>ZV1=)(CJ)b zd$S4vqT)EPEL%hoXWN@q+zon?1XHl0qCv~D5k-9Lp6?$40NU*<06@K7N2hZw+o;O- z!;k?GL(ZX+kOjFDU|BZGwha=jY}-t4lO|-WSZcfN%_`!tfTZ#OAmX-6Z)-wE?gVHv zgu6kHr733!p(=)$Q~*Q<;%lZ_Qx;3eeG?pVEB87y t)u6c7L&qBVT@_=!lE zh^3W1eE9eY578Qc5t***3E*k1mu;I3IcK!L06-LR@(a)pLj*x!EbA;z0YQq>MmXdg z?|%3Z%j-J~0D8BV2}dQ0II25M0Kk7=Z^ge4f1_;MvOfTZ*xc!4iI)L_Adm#8)@8a8 z&SVLYNvfv0yuQPFx0h4<_HHk+yuQOU B<&%3IKrbAJI-ONqD@!5j4xX zn@ZQ)n^ipC-w4%mhMY_12zXiwK@gzRxt7k9sq3pFcLKb|0lM9h*+vm(6~|%yFof4Q zz}EXO;_?0lz=$OJ0KnG!FQ_<<@EQlwe~6;dG1u*m`p0HJ=2#J4LPG8Ybh{yHHHWDJ zRUC(PyCHo45MJXzs51(T$f(sE;roY@JT;)H)kgh;Adt%IZZv`V=)u(_%pw?Ku@V3v z*Rj_)U_tPgh<$wF`$tllcKb>w?Z;-ANYUd06-0>ZdYOEI+)n}5_2jyz q$r7YcO{L(iENKw$5XJnp;-*ZqUn=uTz&qt93HAlqmXhT@Q>g znMlo=eJW%Ln1IOAJvvpvA?K)Q&$1>(XKn#Q&T%*Bp}NzQA@4Liw`r0k-3@w)J)zzH z^+k!1xxN_b-Ci1zpyJ} BI} zO+tBccJvVT6)E)0L;-WM0N+1K%!sZ$ZFH*guItHNJ`1u2Pjewabz@tt6ZFF{5j4?z zzl!6G<@D8dCZM3p6f-A4Ro=2}bi1QanRe`Yy)KpPbgt#>1wkMQF@^6R%HJz8A(9H3 zRW;mIq0V%i8^|<%t>)nD> <<}sSh
p+NfY_qasY@p4k#m-|?%CJ`Iar zAD|;qFEE8jSvB(9fD2h4kTT|2y}&eAm+A&g#-7zNn5g7Xgf|jOA4?f0C-I)JF!cez zc%Bf3^#VGgh#RNR7OFl#$FzEZypY=_s1`Aq)(1opmjMyg2z>qLH=}xiNtTpWem4yZ zRUe?kq+Z~)$c+G1DAW1?H5ZWfw@JN#j;yKk+z6nul`QoE^sOdMOzQ>mLas}oABHST zeSkWXYSP4{ULY@-bMpg~xZSuu;Ns$32107^qt*)`#dpZl0t&AW(EHE3USJ{W0|*o| z%(GtLo39Ue`^e7^_Z? A#De0XBt2eFj+S8!Q)pT<$+7K zJ6oGH&_aN=BF*|l@yxcXwv7jmUjcyB_dk$Y0S_L(!rKoY@jZSD0O|#YfBXpm3$g!! zD>+7IL#E9-Z3zH?>voil_#QvS+YcX!galZvwt_g0&|2>T0RH>uME?8z>lC|_6~S}? zs)S|PXt&z{F71?lVojPT13r!-Jo@EVJbbp!0AP5s56iL<$5C x%ISyxoK}dJ+g@S%J5kfEk z(s4KwLcp?Y(v1xUq4d0M2yrYOhbv>b3;;oJpw39g;f$<4ff&7UZLSGgl@pJUnH-|i zFl0g;%OE%a0O@%<47fZ6q;~EzvaIAtwA*d9j{u jzFqq4j+@%So<#QJ?W3tqCX0_Ui`t?UGJYx(S z8?Q5;JI>`cDns&@FMpxieKQrvm=~65&)>%KCdD0xV=!2ZEw$9|AKtnkL `7Yqt@ut1Ku=_CSZOyuK2Azc&@y zYSde3)LU@f4j5x9@M#Kx<)JbH$f)h^?&ikr(qU~<9JmUF>Ce*s{w!1;7B4C^wHcia z)ki )vp!Vo#p)m@t z08=hLos+NCR^T`sj>ADdM!$cU_)TBly7Io?Q|-zqe;S66QY!z#_j~yJ>j*-KOj%0T z2T(4atTg4~ualEcTYA^+Bm^oOkC-HJuU#JiDdo)1+ViGdd)_qtp7_48@fx+-3Tm|# zbh~fR?Y=>+wvsg_Ha1>QjZx;K_r0zxg$g7n&1^cS8}*h-oD|K;16MJ-S^bLCDCE6Q zm(L_iAp)o(V{|q&MuznpT#=kSkhJz$StnDCLYBv9dPk9VMU7x0@t7f~`aUZsuOrLg zWz{Iq^DL#xdWdts2NcQ47eHo>LLSl{BK@ZSO`{M2CI==DvvTrTC{v@Lk4f%vk@0iu z1AY`mbMkqZRiiL(lq!=WU)zMqo-CA;2as@bgb;;m6!a4TK%$>1{jEc9XRHtS5tPZv z=i$0F3d56qrJxC|^{$biQUv7LfigLH6Ux*m=%<0+FOO`UphSH@u2dyZCMTapnHq)3 z>SF1By7IKW(xeYh_Hl83lz8Xd2%wxh6)BU@p0^Fh;c`}$iRbO0v$ZKbZySR_m{p^I z(=cS|e(4ffy yUxv##zl%W z2gXGpjl25;@|UP{V@QHA9E21p3@NU0mt5?~1fs%4;8sGXB#5<%Y{I0F-stV@?1yyH z%?0fb4zwRL^WJaYyqS6Lolr_)oAH)w0bHXZz_kFbQ4!!;0N1Dpa4mpqR0Oydz%?oY zTnpeD6#=dVaE+}e;2i*H)LUr!K88_*J9qa10R8?80KoB2Kbvh-)As=Y!zjWejs@Kh zf`Hx;^c(;tag3Uj`uB7irvxDxSikz&yse^s^FVzN+HD^}a2){f=;5K(b2J_-2q@~X z-S+Y9w>SD;>(ejr^xLmUNF7ihg)K0H4mL$H- *lQ^1N9)vW7_<>t`mh0MPIE3uRn|q|yWcz`NexX!^bYPBDCyFnKhg zEkFQCQ{?xN{?Z%*0BTYynl^k| p2DHF;)dU&WEuB{EQaDG7$ T0CNI3 z)8ze0X(SyM?@Tm(U$xu5UMWa9^01A1i#&Is_cq@l<;iQ8?8Ag&dRQ%rETC-X`n{Tz ziDiz%^Q5XtnQ0k~dJDkJ3cB5{zUI(vOH6?r^Dop(@UZyp+n)gd9zXuUDl}iuZ6HC( zvxi|vKWn#VX3DLlCZ)C(R}f}iKnQ_Lm)_UcSzoefUY5oGmH>`Ct5^rj)urtF9Is!$ zge?hFxC~mhr00%Jj=S}Tp^5<40=Py+fNKF |_nZD)5!2QvZS=;+B>&K@Q UMYr2sTYqH^PK|oYx^+JN z^QHCujS{d7!mxv0?-;=1SiTCDwVVs%1WEbx#zrlG9NB0*K%?F&efGBnWU_Ep%PEWp za4d5yHI>aHfIn;0Tj=cW004sEdcucrLbE_5nA70-^Ixp-fQ=HsmqB2$6q;o4CC{du znM7FyLWuJv;4CORRcu6NSx*)L7iJaU$g&*IlPN3U(_)qQ;)S$;vtq3=!SjNv= z0N3H{b-_9Xu6&fvwHVGOQ6w=M4}|AQ6$Al#y<-6&br32#+|XWu7i#qTFUl5ZP^LPO z3Ch|5a$QnWKq-YV>|k&2mcB>%Lc-hceUd1W@Vr^#(>5Swf$!YiU+F+YTie6$f7kbH z1sc3xo-CyVY}VK*0)!B_apPvLQ2+e(N2*A|bUbHSvu*hI)vtIn{SZL9K%-3hJPW0L z0N-X_y>?k#`QQ{y-`7P9K@eax9tZ#k!;WgyTPh4Yihi#wA;Z;cms4Y7k$vU`82m36 zORWM22M3B58Ugm20bS%|WRLguZmoK*Pbgx`N;iFfQAU%IwYJp}SP2+Lks?8P5yR2Z zlg!GHnv`hNTU6R2kgV!bwmp53qDAAfHoBl<632 i-6}92Ehs1#pdu0M`PzMn!;Y0bJuh Xwt&|Qk&&2t00000NkvXXu0mjf#r}HV literal 0 HcmV?d00001 diff --git a/Resources/Textures/_White/Objects/Weapons/Guns/Snipers/hristov-inhands.rsi/wielded-inhand-right.png b/Resources/Textures/_White/Objects/Weapons/Guns/Snipers/hristov-inhands.rsi/wielded-inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..b642cc9d8ac6a2131ffc2af5043d7b845bcceaaf GIT binary patch literal 1950 zcmV;P2VwY$P) #sT&EP**($=0#T5xe2|6W!u(m@7!KM&rHC&Mr^>rISe1Hm( zOU~@unc3Ol2&ELx8K2o!z&0uZY%5?J6#=#tu#JiU+X~o5MSyJuY@;H;wgR?M5nx*Z z+c )>tKz#h?k3!`>eR>a)SF0`Gkt8ccg%Ei7@T -v&JRuB6I;xk6 zFX`Bf-egq(Fc=In<1;aU*k^(?YpIfgS%-ek+$PJc6t{wH<9Ep|(y^soN0^b<+=}?h zaxe=x2(}Zay$RqjE#TP53%q5 adHa?!_i6K@B4w4(e3tje*WHrV7J>tx7*8<%Ydct7EQqS12h|L{o~*SUthlg zu&QhUON*l#WgfN`L^uvTm+w;jp@~v$@lZ<=LgW@i?v;SDC`*)CDQ-5}y0Gebk1_?& zA_DGx7bpY14Fbq)k7i)xma hRvXfbDYjv9OZ`(4>7oP^mu( z^Rqht_HJ%j+u-{FI-N@$yz)|F-wzZuY3wVTFWwpfN+~Va^E`AqmuqP$rIz|rb3v2D zu4$=>yp;IZve#Tdh$V?hA`yn8jcF+lis9>5)Fg2<+=uK!7oaUC&&&){OYh$SUw@&m z?~|4S(B}qIZp(EMh9fbXPXzTVA-#Tx?2X%ClE}5*A j3fyvu{W_45y`yuYAGE`ev2WrLt@o#D!w?IyfYVmQ3P#f7Wyo6Qk>$Q3z_ zTp8Kh i(dW&y&4Pu1VaQ3viezDRGp3G1i?S>8En7MBao<=F8*}Ir7N@bhAbo z*+r=}u!Vqgz}Xi?D*|jQU>g+ywiU3AiU8XR*v5a~vR6s+*73;z0000 `GY*88pWW~k(Di`ZOw$nInADM! zA0NMW^KX5!eOxoZJ~?wv-Dko;;65U|2K9!IJz(hzbllV}vu2d|4MkswYOZFKXnjVs z8DD7!UIpAcES^*ZY3wk8^)5JuPKm>w!+C>Ofv!Lef81u+{64%<0F>I;DZUq*o|7eM z+qS*qew;{Mz6;E`X?KdeeZ6L&SY9obSD%}&n9EBwqm;~DtX`dxC5eVfpPFQm`(Pmc zYp- yp%cv^QrW#Sreg6k3ccufty+8apm;%I~dUB+Cb?U;6 zR96D!w?E+`@ls$nmthz{275l%o!bv6(?Jb1O&iz7;mY5z)J9(rfAwDvpPR1$`?LTu zs`~1mz71gVd>`8W7aGcU{PUfs(sC@K&BT*R-7;C8&%FmIwQ=XReo!p`Abwer*53V2 zM4Mr>09b;;o0jWF)^*_+;14C-L(nfWSPiGU<>S{X0OCny7}C=amcBsz;FccWfT)CT z1=zi87zjY_Pl38+n#)U_QGdrDCpx2Hb9u?{t-zlG@ub3YxCBO8j`?*`{`dBPsOCaj ztzn1~+G+)G(S59Dr@D-!l2EfyvxWRZXEglcT+Q!zJ@NbZ5}~aYi_AIIW&XZC6lj0C kZhgA$OEO;w_VcO#0xET~eYSkqJpcdz07*qoM6N<$f}-@HK>z>% literal 0 HcmV?d00001 From f1cc2595d5274320826ecf2632797436c2ddfd36 Mon Sep 17 00:00:00 2001 From: WWDP Changelogs Date: Sat, 21 Sep 2024 10:22:44 +0000 Subject: [PATCH 04/14] Automatic Changelog Update (#58) --- Resources/Changelog/Changelog.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 32c3268e1c..2cae478928 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -6424,3 +6424,16 @@ Entries: id: 6352 time: '2024-09-21T10:20:10.0000000+00:00' url: https://github.com/WWhiteDreamProject/wwdpublic/pull/56 +- author: Spatison + changes: + - type: Add + message: Added a new sprite of Hristov / Добавлен новый спрайт Христова + - type: Tweak + message: Hristov has been improved / Христов был улучшен + - type: Tweak + message: >- + Some weapons now require manually cycling / В некоторых видах оружия + теперь необходимо вручную досылать патрон + id: 6353 + time: '2024-09-21T10:21:44.0000000+00:00' + url: https://github.com/WWhiteDreamProject/wwdpublic/pull/58 From 9b8123b562461fead27d9f04df4e476d80d19ca3 Mon Sep 17 00:00:00 2001 From: Spatison <137375981+Spatison@users.noreply.github.com> Date: Mon, 23 Sep 2024 05:54:46 +0300 Subject: [PATCH 05/14] =?UTF-8?q?[Fix]=20Emotion=20/=20=D0=AD=D0=BC=D0=BE?= =?UTF-8?q?=D1=86=D0=B8=D0=B8=20(#66)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix --- Resources/Locale/ru-RU/_white/emotes/speech-emotes.ftl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/Locale/ru-RU/_white/emotes/speech-emotes.ftl b/Resources/Locale/ru-RU/_white/emotes/speech-emotes.ftl index 2db82e910c..08189604cb 100644 --- a/Resources/Locale/ru-RU/_white/emotes/speech-emotes.ftl +++ b/Resources/Locale/ru-RU/_white/emotes/speech-emotes.ftl @@ -64,7 +64,7 @@ emote-chat-messages-snap-7 = щёлкнуло пальцами #Salute emote-chat-button-text-salute = Салютовать -emote-chat-messages-salute-1 = салютутет +emote-chat-messages-salute-1 = салютует #Deathgasp emote-chat-messages-deathgasp-1 = отключается и бессильно падает, {POSS-ADJ($entity)} глаза становятся пустыми и безжизненными... From 43f1564734d5fd09ff29fc9eed2f546fddd1e254 Mon Sep 17 00:00:00 2001 From: Spatison <137375981+Spatison@users.noreply.github.com> Date: Mon, 23 Sep 2024 05:57:16 +0300 Subject: [PATCH 06/14] =?UTF-8?q?[Port]=20Ru=20Keycodes=20/=20=D0=A0=D1=83?= =?UTF-8?q?=D1=81=D1=81=D0=BA=D0=B8=D0=B5=20=D0=9A=D0=BB=D1=8E=D1=87=D0=B8?= =?UTF-8?q?=20=D0=A0=D0=B0=D0=B4=D0=B8=D0=BE=D0=BA=D0=B0=D0=BD=D0=B0=D0=BB?= =?UTF-8?q?=D0=BE=D0=B2=20(#67)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit add: Ru keycodes --- .../Silicons/Laws/Ui/LawDisplay.xaml.cs | 3 +- Content.Shared/Chat/SharedChatSystem.cs | 17 +++++-- .../EntitySystems/EncryptionKeySystem.cs | 2 +- Content.Shared/Radio/RadioChannelPrototype.cs | 4 +- .../Prototypes/DeltaV/radio_channels.yml | 8 +++- Resources/Prototypes/radio_channels.yml | 47 ++++++++++++++----- 6 files changed, 59 insertions(+), 22 deletions(-) diff --git a/Content.Client/Silicons/Laws/Ui/LawDisplay.xaml.cs b/Content.Client/Silicons/Laws/Ui/LawDisplay.xaml.cs index 4135490416..ba7477530a 100644 --- a/Content.Client/Silicons/Laws/Ui/LawDisplay.xaml.cs +++ b/Content.Client/Silicons/Laws/Ui/LawDisplay.xaml.cs @@ -1,3 +1,4 @@ +using System.Linq; using Content.Client.Chat.Managers; using Content.Client.Message; using Content.Shared.Chat; @@ -75,7 +76,7 @@ public LawDisplay(EntityUid uid, SiliconLaw law, HashSet ? radioChannels) case SharedChatSystem.CommonChannel: _chatManager.SendMessage($"{SharedChatSystem.RadioCommonPrefix} {lawIdentifier}: {lawDescription}", ChatSelectChannel.Radio); break; default: - _chatManager.SendMessage($"{SharedChatSystem.RadioChannelPrefix}{radioChannelProto.KeyCode} {lawIdentifier}: {lawDescription}", ChatSelectChannel.Radio); break; + _chatManager.SendMessage($"{SharedChatSystem.RadioChannelPrefix}{radioChannelProto.KeyCodes.First()} {lawIdentifier}: {lawDescription}", ChatSelectChannel.Radio); break; } }; diff --git a/Content.Shared/Chat/SharedChatSystem.cs b/Content.Shared/Chat/SharedChatSystem.cs index c48d70405f..fe48200110 100644 --- a/Content.Shared/Chat/SharedChatSystem.cs +++ b/Content.Shared/Chat/SharedChatSystem.cs @@ -1,4 +1,4 @@ -using System.Collections.Frozen; +using System.Linq; using Content.Shared.Popups; using Content.Shared.Radio; using Content.Shared.Speech; @@ -39,7 +39,7 @@ public abstract class SharedChatSystem : EntitySystem /// /// Cache of the keycodes for faster lookup. /// - private FrozenDictionary_keyCodes = default!; + private readonly Dictionary _keyCodes = new(); // WD EDIT public override void Initialize() { @@ -57,8 +57,17 @@ protected virtual void OnPrototypeReload(PrototypesReloadedEventArgs obj) private void CacheRadios() { - _keyCodes = _prototypeManager.EnumeratePrototypes () - .ToFrozenDictionary(x => x.KeyCode); + // WD EDIT START + _keyCodes.Clear(); + + foreach (var proto in _prototypeManager.EnumeratePrototypes ()) + { + foreach (var keycode in proto.KeyCodes.Where(keycode => !_keyCodes.ContainsKey(keycode))) + { + _keyCodes.Add(keycode, proto); + } + } + // WD EDIT END } /// diff --git a/Content.Shared/Radio/EntitySystems/EncryptionKeySystem.cs b/Content.Shared/Radio/EntitySystems/EncryptionKeySystem.cs index 712debbafa..cb475a8300 100644 --- a/Content.Shared/Radio/EntitySystems/EncryptionKeySystem.cs +++ b/Content.Shared/Radio/EntitySystems/EncryptionKeySystem.cs @@ -224,7 +224,7 @@ public void AddChannelsExamine(HashSet [ViewVariables(VVAccess.ReadWrite), DataField("magnitude"), AutoNetworkedField] - public float Magnitude; + public float Magnitude = 4f; // WD EDIT ///channels, string? defaultChannel, var key = id == SharedChatSystem.CommonChannel ? SharedChatSystem.RadioCommonPrefix.ToString() - : $"{SharedChatSystem.RadioChannelPrefix}{proto.KeyCode}"; + : $":{string.Join(", :", proto.KeyCodes.ToArray())}"; // WD EDIT examineEvent.PushMarkup(Loc.GetString(channelFTLPattern, ("color", proto.Color), diff --git a/Content.Shared/Radio/RadioChannelPrototype.cs b/Content.Shared/Radio/RadioChannelPrototype.cs index cc65f88537..dc8c678b23 100644 --- a/Content.Shared/Radio/RadioChannelPrototype.cs +++ b/Content.Shared/Radio/RadioChannelPrototype.cs @@ -17,8 +17,8 @@ public sealed partial class RadioChannelPrototype : IPrototype /// /// Single-character prefix to determine what channel a message should be sent to. /// - [DataField("keycode")] - public char KeyCode { get; private set; } = '\0'; + [DataField("keycodes")] + public ListKeyCodes { get; private set; } = new() {'\0'}; // WD EDIT [DataField("frequency")] public int Frequency { get; private set; } = 0; diff --git a/Resources/Prototypes/DeltaV/radio_channels.yml b/Resources/Prototypes/DeltaV/radio_channels.yml index 53490d90fa..1df8fd2fc1 100644 --- a/Resources/Prototypes/DeltaV/radio_channels.yml +++ b/Resources/Prototypes/DeltaV/radio_channels.yml @@ -1,14 +1,18 @@ - type: radioChannel id: Justice name: chat-radio-justice - keycode: "j" + keycodes: # WD EDIT + - 'j' + - 'ю' frequency: 1420 color: "#701442" - type: radioChannel id: Prison name: chat-radio-prison - keycode: 'p' + keycodes: # WD EDIT + - 'p' + - 'з' frequency: 1601 color: "#FFA500" diff --git a/Resources/Prototypes/radio_channels.yml b/Resources/Prototypes/radio_channels.yml index 48cc0872a1..6265c6fbfa 100644 --- a/Resources/Prototypes/radio_channels.yml +++ b/Resources/Prototypes/radio_channels.yml @@ -1,14 +1,17 @@ - type: radioChannel id: Common name: chat-radio-common - keycode: ";" + keycodes: # WD EDIT + - ";" frequency: 1459 color: "#32cd32" - type: radioChannel id: CentCom name: chat-radio-centcom - keycode: 'y' + keycodes: # WD EDIT + - 'y' + - 'ц' frequency: 1337 color: "#2681a5" longRange: true @@ -16,56 +19,72 @@ - type: radioChannel id: Command name: chat-radio-command - keycode: 'c' + keycodes: # WD EDIT + - 'c' + - 'к' frequency: 1353 color: "#fcdf03" - type: radioChannel id: Engineering name: chat-radio-engineering - keycode: 'e' + keycodes: # WD EDIT + - 'e' + - 'и' frequency: 1357 color: "#f37746" - type: radioChannel id: Medical name: chat-radio-medical - keycode: 'm' + keycodes: # WD EDIT + - 'm' + - 'м' frequency: 1355 color: "#57b8f0" - type: radioChannel id: Science name: chat-radio-science - keycode: 'n' + keycodes: # WD EDIT + - 'n' + - 'н' frequency: 1351 color: "#c68cfa" - type: radioChannel id: Security name: chat-radio-security - keycode: 's' + keycodes: # WD EDIT + - 's' + - 'о' frequency: 1359 color: "#dd3535" - type: radioChannel id: Service name: chat-radio-service - keycode: 'v' + keycodes: # WD EDIT + - 'v' + - 'в' frequency: 1349 color: "#6ca729" - type: radioChannel id: Supply name: chat-radio-supply - keycode: 'u' + keycodes: + - 'u' # WD EDIT + - 'с' frequency: 1347 color: "#b88646" - type: radioChannel id: Syndicate name: chat-radio-syndicate - keycode: 't' + keycodes: # WD EDIT + - 't' + - 'т' frequency: 1213 color: "#8f4a4b" longRange: true @@ -81,7 +100,9 @@ - type: radioChannel id: Binary name: chat-radio-binary - keycode: 'b' + keycodes: # WD EDIT + - 'b' + - 'б' frequency: 1001 color: "#2ed2fd" # long range since otherwise it'd defeat the point of a handheld radio independent of telecomms @@ -90,7 +111,9 @@ - type: radioChannel id: Freelance name: chat-radio-freelance - keycode: 'f' + keycodes: # WD EDIT + - 'f' + - 'ф' frequency: 1984 color: "#f6ce64" # long range since otherwise it'd defeat the point of a handheld radio independent of telecomms From 12e49c491d6abb98f604f7227a925cbdccb6eaea Mon Sep 17 00:00:00 2001 From: Spatison <137375981+Spatison@users.noreply.github.com> Date: Mon, 23 Sep 2024 05:57:40 +0300 Subject: [PATCH 07/14] =?UTF-8?q?[Fix]=20Lobby=20/=20=D0=9B=D0=BE=D0=B1?= =?UTF-8?q?=D0=B1=D0=B8=20(#64)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix: lobby --- Content.Client/Lobby/UI/LobbyGui.xaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Content.Client/Lobby/UI/LobbyGui.xaml b/Content.Client/Lobby/UI/LobbyGui.xaml index a97b2bf8f8..648e127764 100644 --- a/Content.Client/Lobby/UI/LobbyGui.xaml +++ b/Content.Client/Lobby/UI/LobbyGui.xaml @@ -15,7 +15,7 @@ Stretch="KeepAspectCovered" /> - + From fc24b56e8e431664326d6ccc30e60df9277b0ef3 Mon Sep 17 00:00:00 2001 From: WWDP Changelogs Date: Mon, 23 Sep 2024 02:57:42 +0000 Subject: [PATCH 08/14] Automatic Changelog Update (#67) --- Resources/Changelog/Changelog.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 2cae478928..4673151c62 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -6437,3 +6437,10 @@ Entries: id: 6353 time: '2024-09-21T10:21:44.0000000+00:00' url: https://github.com/WWhiteDreamProject/wwdpublic/pull/58 +- author: Spatison + changes: + - type: Add + message: Added ru keycodes / Добавлены русские ключи радиоканалов + id: 6354 + time: '2024-09-23T02:57:16.0000000+00:00' + url: https://github.com/WWhiteDreamProject/wwdpublic/pull/67 From 855e5fb90099cc9cc560b7e6afcd64d546f467b0 Mon Sep 17 00:00:00 2001 From: WWDP Changelogs Date: Mon, 23 Sep 2024 02:59:13 +0000 Subject: [PATCH 09/14] Automatic Changelog Update (#64) --- Resources/Changelog/Changelog.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 4673151c62..5e975a6b3f 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -6444,3 +6444,12 @@ Entries: id: 6354 time: '2024-09-23T02:57:16.0000000+00:00' url: https://github.com/WWhiteDreamProject/wwdpublic/pull/67 +- author: Spatison + changes: + - type: Fix + message: >- + The size of the Lobby cannot be changed now / Размер лобби теперь нельзя + изменить + id: 6355 + time: '2024-09-23T02:57:40.0000000+00:00' + url: https://github.com/WWhiteDreamProject/wwdpublic/pull/64 From 30fb185635b59bdfa640037f308175dc88e00ad9 Mon Sep 17 00:00:00 2001 From: Spatison <137375981+Spatison@users.noreply.github.com> Date: Mon, 23 Sep 2024 06:18:33 +0300 Subject: [PATCH 10/14] =?UTF-8?q?[Fix]=20Screen=20/=20=D0=AD=D0=BA=D1=80?= =?UTF-8?q?=D0=B0=D0=BD=20(#61)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix: screen --- Resources/Textures/Effects/text.rsi/meta.json | 98 +++++++++++++++++- .../Textures/Effects/text.rsi/\320\260.png" | Bin 0 -> 102 bytes .../Textures/Effects/text.rsi/\320\261.png" | Bin 0 -> 107 bytes .../Textures/Effects/text.rsi/\320\262.png" | Bin 0 -> 102 bytes .../Textures/Effects/text.rsi/\320\263.png" | Bin 0 -> 104 bytes .../Textures/Effects/text.rsi/\320\264.png" | Bin 0 -> 106 bytes .../Textures/Effects/text.rsi/\320\265.png" | Bin 0 -> 108 bytes .../Textures/Effects/text.rsi/\320\266.png" | Bin 0 -> 105 bytes .../Textures/Effects/text.rsi/\320\267.png" | Bin 0 -> 92 bytes .../Textures/Effects/text.rsi/\320\270.png" | Bin 0 -> 109 bytes .../Textures/Effects/text.rsi/\320\271.png" | Bin 0 -> 118 bytes .../Textures/Effects/text.rsi/\320\272.png" | Bin 0 -> 105 bytes .../Textures/Effects/text.rsi/\320\273.png" | Bin 0 -> 105 bytes .../Textures/Effects/text.rsi/\320\274.png" | Bin 0 -> 108 bytes .../Textures/Effects/text.rsi/\320\275.png" | Bin 0 -> 103 bytes .../Textures/Effects/text.rsi/\320\276.png" | Bin 0 -> 104 bytes .../Textures/Effects/text.rsi/\320\277.png" | Bin 0 -> 102 bytes .../Textures/Effects/text.rsi/\321\200.png" | Bin 0 -> 107 bytes .../Textures/Effects/text.rsi/\321\201.png" | Bin 0 -> 106 bytes .../Textures/Effects/text.rsi/\321\202.png" | Bin 0 -> 104 bytes .../Textures/Effects/text.rsi/\321\203.png" | Bin 0 -> 105 bytes .../Textures/Effects/text.rsi/\321\204.png" | Bin 0 -> 109 bytes .../Textures/Effects/text.rsi/\321\205.png" | Bin 0 -> 107 bytes .../Textures/Effects/text.rsi/\321\206.png" | Bin 0 -> 104 bytes .../Textures/Effects/text.rsi/\321\207.png" | Bin 0 -> 101 bytes .../Textures/Effects/text.rsi/\321\210.png" | Bin 0 -> 99 bytes .../Textures/Effects/text.rsi/\321\211.png" | Bin 0 -> 106 bytes .../Textures/Effects/text.rsi/\321\212.png" | Bin 0 -> 99 bytes .../Textures/Effects/text.rsi/\321\213.png" | Bin 0 -> 110 bytes .../Textures/Effects/text.rsi/\321\214.png" | Bin 0 -> 106 bytes .../Textures/Effects/text.rsi/\321\215.png" | Bin 0 -> 105 bytes .../Textures/Effects/text.rsi/\321\216.png" | Bin 0 -> 105 bytes .../Textures/Effects/text.rsi/\321\217.png" | Bin 0 -> 109 bytes 33 files changed, 97 insertions(+), 1 deletion(-) create mode 100644 "Resources/Textures/Effects/text.rsi/\320\260.png" create mode 100644 "Resources/Textures/Effects/text.rsi/\320\261.png" create mode 100644 "Resources/Textures/Effects/text.rsi/\320\262.png" create mode 100644 "Resources/Textures/Effects/text.rsi/\320\263.png" create mode 100644 "Resources/Textures/Effects/text.rsi/\320\264.png" create mode 100644 "Resources/Textures/Effects/text.rsi/\320\265.png" create mode 100644 "Resources/Textures/Effects/text.rsi/\320\266.png" create mode 100644 "Resources/Textures/Effects/text.rsi/\320\267.png" create mode 100644 "Resources/Textures/Effects/text.rsi/\320\270.png" create mode 100644 "Resources/Textures/Effects/text.rsi/\320\271.png" create mode 100644 "Resources/Textures/Effects/text.rsi/\320\272.png" create mode 100644 "Resources/Textures/Effects/text.rsi/\320\273.png" create mode 100644 "Resources/Textures/Effects/text.rsi/\320\274.png" create mode 100644 "Resources/Textures/Effects/text.rsi/\320\275.png" create mode 100644 "Resources/Textures/Effects/text.rsi/\320\276.png" create mode 100644 "Resources/Textures/Effects/text.rsi/\320\277.png" create mode 100644 "Resources/Textures/Effects/text.rsi/\321\200.png" create mode 100644 "Resources/Textures/Effects/text.rsi/\321\201.png" create mode 100644 "Resources/Textures/Effects/text.rsi/\321\202.png" create mode 100644 "Resources/Textures/Effects/text.rsi/\321\203.png" create mode 100644 "Resources/Textures/Effects/text.rsi/\321\204.png" create mode 100644 "Resources/Textures/Effects/text.rsi/\321\205.png" create mode 100644 "Resources/Textures/Effects/text.rsi/\321\206.png" create mode 100644 "Resources/Textures/Effects/text.rsi/\321\207.png" create mode 100644 "Resources/Textures/Effects/text.rsi/\321\210.png" create mode 100644 "Resources/Textures/Effects/text.rsi/\321\211.png" create mode 100644 "Resources/Textures/Effects/text.rsi/\321\212.png" create mode 100644 "Resources/Textures/Effects/text.rsi/\321\213.png" create mode 100644 "Resources/Textures/Effects/text.rsi/\321\214.png" create mode 100644 "Resources/Textures/Effects/text.rsi/\321\215.png" create mode 100644 "Resources/Textures/Effects/text.rsi/\321\216.png" create mode 100644 "Resources/Textures/Effects/text.rsi/\321\217.png" diff --git a/Resources/Textures/Effects/text.rsi/meta.json b/Resources/Textures/Effects/text.rsi/meta.json index 961d7cc6f1..e587fedd31 100644 --- a/Resources/Textures/Effects/text.rsi/meta.json +++ b/Resources/Textures/Effects/text.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC0-1.0", - "copyright": "Created by rolfero (github) for Space Station 14", + "copyright": "Created by rolfero (github) for Space Station 14. Edit by Mitchell#2905", "size": { "x": 4, "y": 6 @@ -115,6 +115,102 @@ { "name": "z" }, + { + "name": "а" + }, + { + "name": "б" + }, + { + "name": "в" + }, + { + "name": "г" + }, + { + "name": "д" + }, + { + "name": "е" + }, + { + "name": "ж" + }, + { + "name": "з" + }, + { + "name": "и" + }, + { + "name": "й" + }, + { + "name": "к" + }, + { + "name": "л" + }, + { + "name": "м" + }, + { + "name": "н" + }, + { + "name": "о" + }, + { + "name": "п" + }, + { + "name": "р" + }, + { + "name": "с" + }, + { + "name": "т" + }, + { + "name": "у" + }, + { + "name": "ф" + }, + { + "name": "х" + }, + { + "name": "ц" + }, + { + "name": "ч" + }, + { + "name": "ш" + }, + { + "name": "щ" + }, + { + "name": "ь" + }, + { + "name": "ъ" + }, + { + "name": "ы" + }, + { + "name": "э" + }, + { + "name": "ю" + }, + { + "name": "я" + }, { "name": "exclamation" }, diff --git "a/Resources/Textures/Effects/text.rsi/\320\260.png" "b/Resources/Textures/Effects/text.rsi/\320\260.png" new file mode 100644 index 0000000000000000000000000000000000000000..2dceb553c89e8696b1fe90b3612e95579b2ffbd6 GIT binary patch literal 102 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c0!3HFsSlX8YDaPU;cPEB*=VV?2ISQUGjv*W~ xlM{g82R|#10iV&?mNSjq21Z6ki#Q&zG6eYvf8QW6e c)I$ztaD0e F0sv^dAU*&9 literal 0 HcmV?d00001 diff --git "a/Resources/Textures/Effects/text.rsi/\320\262.png" "b/Resources/Textures/Effects/text.rsi/\320\262.png" new file mode 100644 index 0000000000000000000000000000000000000000..d5309ed4be8754b9adbb3e4855328c2409863346 GIT binary patch literal 102 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c0!3HFsSlX8YDaPU;cPEB*=VV?2ISQUGjv*W~ vlmGnx|G%D1BOwI{9K?Qrcy2}^3z!*>yGVaA5}VxzRLkJ$>gTe~DWM4f^vE75 literal 0 HcmV?d00001 diff --git "a/Resources/Textures/Effects/text.rsi/\320\263.png" "b/Resources/Textures/Effects/text.rsi/\320\263.png" new file mode 100644 index 0000000000000000000000000000000000000000..ccdbcd3288356bbb05c595b75c1d5c1297c41848 GIT binary patch literal 104 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c0!3HFsSlX8YDaPU;cPEB*=VV?2IZB=`jv*W~ xlmGnx|G%D1BOwI{9K;epAjyHbh1Gz8;l?5kmhE3x9R;dp@O1TaS?83{1OVa69Gn0E literal 0 HcmV?d00001 diff --git "a/Resources/Textures/Effects/text.rsi/\320\264.png" "b/Resources/Textures/Effects/text.rsi/\320\264.png" new file mode 100644 index 0000000000000000000000000000000000000000..5b4a2a8ddc2a9ae2f638484f5366a3b37f39dca1 GIT binary patch literal 106 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c0!3HFsSlX8YDaPU;cPEB*=VV?2IVzqmjv*W~ zQ@c0vGB9v7U-(~t?C8-`*8;j+r^>AI4R}85?PLaKpC<9QcF8@9fa)1MUHx3vIVCg! E08(EcqW}N^ literal 0 HcmV?d00001 diff --git "a/Resources/Textures/Effects/text.rsi/\320\265.png" "b/Resources/Textures/Effects/text.rsi/\320\265.png" new file mode 100644 index 0000000000000000000000000000000000000000..f3d49dbe85ab00885fd724c24d10ac48b1d3a593 GIT binary patch literal 108 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c0!3HFsSlX8YDaPU;cPEB*=VV?2IclCRjv*W~ zQ+qb@G8phQEByceMo%_qx}c(uklv~sMuP*|yFXN$u=B(V|J gZ literal 0 HcmV?d00001 diff --git "a/Resources/Textures/Effects/text.rsi/\320\266.png" "b/Resources/Textures/Effects/text.rsi/\320\266.png" new file mode 100644 index 0000000000000000000000000000000000000000..8ee30ba3b73d7a356016ded424cbf1c296e0c21b GIT binary patch literal 105 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c0!3HFsSlX8YDaPU;cPEB*=VV?2Im(_cjv*W~ ylYjjG|G%CM2qez7oN44%V1C2Y0|YOG3K$qnw(&4FPf-QwW$<+Mb6Mw<&;$Vgk{ogX literal 0 HcmV?d00001 diff --git "a/Resources/Textures/Effects/text.rsi/\320\267.png" "b/Resources/Textures/Effects/text.rsi/\320\267.png" new file mode 100644 index 0000000000000000000000000000000000000000..de6ecdc9e749861f4be557ba2977e2daaa18e51a GIT binary patch literal 92 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c0!3HFsSlX8YDaPU;cPEB*=VV?2IbxnJjv*W~ plYj8D^1NVh71+-;C+z?O!xlE_r^>qpl7K20JYD@<);T3K0RT&?6|VpQ literal 0 HcmV?d00001 diff --git "a/Resources/Textures/Effects/text.rsi/\320\270.png" "b/Resources/Textures/Effects/text.rsi/\320\270.png" new file mode 100644 index 0000000000000000000000000000000000000000..da0a8d956080ef2383e523dfa67daf1a5d261699 GIT binary patch literal 109 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c0!3HFsSlX8YDaPU;cPEB*=VV?2IqIG+jv*W~ zb59=RWl-Q@-ni`d`y9If#g_V=B3IaA`}f`FoS-6n?nhKJmjL6f2ImN%76wmOKbLh* G2~7ZWUmmys literal 0 HcmV?d00001 diff --git "a/Resources/Textures/Effects/text.rsi/\320\271.png" "b/Resources/Textures/Effects/text.rsi/\320\271.png" new file mode 100644 index 0000000000000000000000000000000000000000..987dfbaa5ef07a017327295aaa2850a9aa0695ae GIT binary patch literal 118 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c0!3HFsSlX8YDaPU;cPEB*=VV?2IR>6Cjv*W~ zb5Cp(Wl-Q@x~TkH|A o-)r7TRD3d&{~MceBCRA@9Os^4^6_DmG0oWax8&t;ucLK6Vv CG#vZ@ literal 0 HcmV?d00001 diff --git "a/Resources/Textures/Effects/text.rsi/\320\273.png" "b/Resources/Textures/Effects/text.rsi/\320\273.png" new file mode 100644 index 0000000000000000000000000000000000000000..067f4404191497830cf06a27a41fc0f9eff22f03 GIT binary patch literal 105 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c0!3HFsSlX8YDaPU;cPEB*=VV?2Im(_cjv*W~ zlT#X+{sTd}!}C8t%3hdR>VSa5#qK0N9tMW)4B=0f{^!2~l{0v{`njxgN@xNAeLNso literal 0 HcmV?d00001 diff --git "a/Resources/Textures/Effects/text.rsi/\320\274.png" "b/Resources/Textures/Effects/text.rsi/\320\274.png" new file mode 100644 index 0000000000000000000000000000000000000000..b71533fb3e6ca1e6325f28cc598e86e2361602f0 GIT binary patch literal 108 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c0!3HFsSlX8YDaPU;cPEB*=VV?2IclCRjv*W~ zlYjjG|G%CM2qez7oN44%U{(Wh+<;(?mH`8U$uAy8!J8j<0(CHWy85}Sb4q9e015>g AU;qFB literal 0 HcmV?d00001 diff --git "a/Resources/Textures/Effects/text.rsi/\320\275.png" "b/Resources/Textures/Effects/text.rsi/\320\275.png" new file mode 100644 index 0000000000000000000000000000000000000000..8b03bde5353bca4dfe6128696931a18bf0484f75 GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c0!3HFsSlX8YDaPU;cPEB*=VV?2If|Yxjv*W~ xlYjjG|G%D115By0nH=a?!?ccPy%-MzgVS8$PZMlen}LcMJYD@<);T3K0RSE@9smFU literal 0 HcmV?d00001 diff --git "a/Resources/Textures/Effects/text.rsi/\320\276.png" "b/Resources/Textures/Effects/text.rsi/\320\276.png" new file mode 100644 index 0000000000000000000000000000000000000000..3992709627d63b6463701abe36da872ab2e06ad4 GIT binary patch literal 104 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c0!3HFsSlX8YDaPU;cPEB*=VV?2IZB=`jv*W~ zlmGnx|G%D1BOwI{nhX<~e0VY#b~9|Ulwe@^AI!n^`1JNbplSwBS3j3^P6 eJYD@<);T3K0RRfF B9V`F< literal 0 HcmV?d00001 diff --git "a/Resources/Textures/Effects/text.rsi/\321\204.png" "b/Resources/Textures/Effects/text.rsi/\321\204.png" new file mode 100644 index 0000000000000000000000000000000000000000..2e5c70c20aebd5bc48b0d4d04a678dc13a214944 GIT binary patch literal 109 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c0!3HFsSlX8YDaPU;cPEB*=VV?2IqIG+jv*W~ zOS>Jp7!(9rw*3EpQ%}%)!uE+5wfI(L_i5c{X9&Lc bP0l+XkK DEEXNq literal 0 HcmV?d00001 diff --git "a/Resources/Textures/Effects/text.rsi/\321\206.png" "b/Resources/Textures/Effects/text.rsi/\321\206.png" new file mode 100644 index 0000000000000000000000000000000000000000..886ae9e4db30ed7d962bf0e603f502f63303abda GIT binary patch literal 104 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c0!3HFsSlX8YDaPU;cPEB*=VV?2IZB=`jv*W~ ylYjjG|G%CM2qexPX<*~vHaPSpi4`dJpP!-WB>xX4jeqJu)eN4lelF{r5}E)MnI4z` literal 0 HcmV?d00001 diff --git "a/Resources/Textures/Effects/text.rsi/\321\207.png" "b/Resources/Textures/Effects/text.rsi/\321\207.png" new file mode 100644 index 0000000000000000000000000000000000000000..72d6b22d87fd9fbce1aba23a28a68116484c95f4 GIT binary patch literal 101 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c0!3HFsSlX8YDaPU;cPEB*=VV?2Ir5$^jv*W~ xlYjjG|G%CM2qexPX<(Z%AvKV}PgjD0VPXsacb_M_p8%CIc)I$ztaD0e0sxDp8{_~0 literal 0 HcmV?d00001 diff --git "a/Resources/Textures/Effects/text.rsi/\321\210.png" "b/Resources/Textures/Effects/text.rsi/\321\210.png" new file mode 100644 index 0000000000000000000000000000000000000000..509de5c811a8cbf7d4cc4e6b25d7b41db6c60854 GIT binary patch literal 99 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c0!3HFsSlX8YDaPU;cPEB*=VV?2IkKKEjv*W~ vlYjjG|G%CM2qexPX<(Z%A+>Pz0d9s5wcLLveY=_qRLJ1z>gTe~DWM4fgNGeD literal 0 HcmV?d00001 diff --git "a/Resources/Textures/Effects/text.rsi/\321\211.png" "b/Resources/Textures/Effects/text.rsi/\321\211.png" new file mode 100644 index 0000000000000000000000000000000000000000..022ad24f0e7919eba11e8b74b7f1f7c6ff18d756 GIT binary patch literal 106 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c0!3HFsSlX8YDaPU;cPEB*=VV?2IVzqmjv*W~ zbGsJuGB9v7T=-vq?8&nbF2(@X4E63gUu~1FHD@uFKN9{TlAe7HsGh;o)z4*}Q$iB} D9YP*i literal 0 HcmV?d00001 diff --git "a/Resources/Textures/Effects/text.rsi/\321\212.png" "b/Resources/Textures/Effects/text.rsi/\321\212.png" new file mode 100644 index 0000000000000000000000000000000000000000..bd39b18c0a0cc68aab2002c6f34de7e98d81f1eb GIT binary patch literal 99 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c0!3HFsSlX8YDaPU;cPEB*=VV?2IkKKEjv*W~ vlYj8D@|<9ZY!HlX;M6;O;zUO%D^Sa_QsJ*} =!})sA0i^`0T;!yMti^M55Y0`)L>y85}S Ib4q9e0JSh7kN^Mx literal 0 HcmV?d00001 diff --git "a/Resources/Textures/Effects/text.rsi/\321\214.png" "b/Resources/Textures/Effects/text.rsi/\321\214.png" new file mode 100644 index 0000000000000000000000000000000000000000..9492ceefd066f8048687183b4e2e5fbca4cdf331 GIT binary patch literal 106 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c0!3HFsSlX8YDaPU;cPEB*=VV?2IVzqmjv*W~ zlYjjG|G%D1<-m~!wiyyY5D;?EqTt~FfQEIVd<+*E#NVn(
-~?Dk=ghXYh3Ob6Mw<&;$Sq CWE}PY literal 0 HcmV?d00001 diff --git "a/Resources/Textures/Effects/text.rsi/\321\216.png" "b/Resources/Textures/Effects/text.rsi/\321\216.png" new file mode 100644 index 0000000000000000000000000000000000000000..1b7181e63253698b951990b08efd59b58e0669cb GIT binary patch literal 105 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c0!3HFsSlX8YDaPU;cPEB*=VV?2Im(_cjv*W~ zlYjjG|G%CM2qeyakmpLsQDZY{P(09($Y#aBP~a~8vZmBj45*yJ)78&qol`;+0MyMJ A0RR91 literal 0 HcmV?d00001 diff --git "a/Resources/Textures/Effects/text.rsi/\321\217.png" "b/Resources/Textures/Effects/text.rsi/\321\217.png" new file mode 100644 index 0000000000000000000000000000000000000000..f27472213da486c46d5f3fe7c7a92c23ea356717 GIT binary patch literal 109 zcmeAS@N?(olHy`uVBq!ia0vp^EI`c0!3HFsSlX8YDaPU;cPEB*=VV?2IqIG+jv*W~ zL%TNeGB9u);`;x;r(5kt=LId#2$hrO?@S!R^Sp1blVeWm7GSCHZ{-7OVeoYIb6Mw< G&;$TqR2{Ye literal 0 HcmV?d00001 From 55c0d4b97e8b19b2b30514a94b694ee013ee5747 Mon Sep 17 00:00:00 2001 From: WWDP Changelogs Date: Mon, 23 Sep 2024 03:18:59 +0000 Subject: [PATCH 11/14] Automatic Changelog Update (#61) --- Resources/Changelog/Changelog.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 5e975a6b3f..9ee78dbc05 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -6453,3 +6453,12 @@ Entries: id: 6355 time: '2024-09-23T02:57:40.0000000+00:00' url: https://github.com/WWhiteDreamProject/wwdpublic/pull/64 +- author: Spatison + changes: + - type: Fix + message: >- + The screen now perceives the Russian alphabet / Экран теперь + воспринимает русский алфавит + id: 6356 + time: '2024-09-23T03:18:33.0000000+00:00' + url: https://github.com/WWhiteDreamProject/wwdpublic/pull/61 From a7990bc06aa91602a28d074d326b0f8c5d2f3019 Mon Sep 17 00:00:00 2001 From: Spatison <137375981+Spatison@users.noreply.github.com> Date: Thu, 26 Sep 2024 04:56:42 +0300 Subject: [PATCH 12/14] =?UTF-8?q?[Port]=20Small=20Energy=20Crossbow=20/=20?= =?UTF-8?q?=D0=9C=D0=B0=D0=BB=D0=B5=D0=BD=D1=8C=D0=BA=D0=B8=D0=B9=20=D0=AD?= =?UTF-8?q?=D0=BD=D0=B5=D1=80=D0=B3=D0=B5=D1=82=D0=B8=D1=87=D0=B5=D1=81?= =?UTF-8?q?=D0=BA=D0=B8=D0=B9=20=D0=90=D1=80=D0=B1=D0=B0=D0=BB=D0=B5=D1=82?= =?UTF-8?q?=20(#60)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * add: ebow * RU Loc * Update BlurOnCollideComponent.cs * test --- .../Components/BlurryVisionComponent.cs | 4 +- .../Collision/Blur/BlurOnCollideComponent.cs | 8 ++++ .../Collision/Blur/BlurOnCollideSystem.cs | 37 ++++++++++++++++++ .../Knockdown/KnockdownOnCollideComponent.cs | 10 +++++ .../Knockdown/KnockdownOnCollideSystem.cs | 33 ++++++++++++++++ .../en-US/_white/store/uplink-catalog.ftl | 5 ++- .../objects/weapons/guns/battery/ebow.ftl | 2 + .../ru-RU/_white/store/uplink-catalog.ftl | 5 ++- .../_White/Catalog/uplink_catalog.yml | 17 ++++++++ .../Weapons/Guns/Battery/mini_ebow.yml | 36 +++++++++++++++++ .../Weapons/Guns/Projectiles/bolts..yml | 31 +++++++++++++++ Resources/Prototypes/status_effects.yml | 7 +++- .../Guns/Battery/mini-ebow.rsi/bolt.png | Bin 0 -> 4819 bytes .../Guns/Battery/mini-ebow.rsi/empty.png | Bin 0 -> 548 bytes .../Guns/Battery/mini-ebow.rsi/icon.png | Bin 0 -> 616 bytes .../Battery/mini-ebow.rsi/inhand-left.png | Bin 0 -> 352 bytes .../Battery/mini-ebow.rsi/inhand-right.png | Bin 0 -> 356 bytes .../Guns/Battery/mini-ebow.rsi/meta.json | 28 +++++++++++++ .../Guns/Projectiles/ebolt.rsi/bullet.png | Bin 0 -> 182 bytes .../Guns/Projectiles/ebolt.rsi/meta.json | 14 +++++++ 20 files changed, 232 insertions(+), 5 deletions(-) create mode 100644 Content.Shared/_White/Collision/Blur/BlurOnCollideComponent.cs create mode 100644 Content.Shared/_White/Collision/Blur/BlurOnCollideSystem.cs create mode 100644 Content.Shared/_White/Collision/Knockdown/KnockdownOnCollideComponent.cs create mode 100644 Content.Shared/_White/Collision/Knockdown/KnockdownOnCollideSystem.cs create mode 100644 Resources/Locale/ru-RU/_white/prototypes/entities/objects/weapons/guns/battery/ebow.ftl create mode 100644 Resources/Prototypes/_White/Entities/Objects/Weapons/Guns/Battery/mini_ebow.yml create mode 100644 Resources/Prototypes/_White/Entities/Objects/Weapons/Guns/Projectiles/bolts..yml create mode 100644 Resources/Textures/_White/Objects/Weapons/Guns/Battery/mini-ebow.rsi/bolt.png create mode 100644 Resources/Textures/_White/Objects/Weapons/Guns/Battery/mini-ebow.rsi/empty.png create mode 100644 Resources/Textures/_White/Objects/Weapons/Guns/Battery/mini-ebow.rsi/icon.png create mode 100644 Resources/Textures/_White/Objects/Weapons/Guns/Battery/mini-ebow.rsi/inhand-left.png create mode 100644 Resources/Textures/_White/Objects/Weapons/Guns/Battery/mini-ebow.rsi/inhand-right.png create mode 100644 Resources/Textures/_White/Objects/Weapons/Guns/Battery/mini-ebow.rsi/meta.json create mode 100644 Resources/Textures/_White/Objects/Weapons/Guns/Projectiles/ebolt.rsi/bullet.png create mode 100644 Resources/Textures/_White/Objects/Weapons/Guns/Projectiles/ebolt.rsi/meta.json diff --git a/Content.Shared/Eye/Blinding/Components/BlurryVisionComponent.cs b/Content.Shared/Eye/Blinding/Components/BlurryVisionComponent.cs index faff4b9e52..bebc9ac697 100644 --- a/Content.Shared/Eye/Blinding/Components/BlurryVisionComponent.cs +++ b/Content.Shared/Eye/Blinding/Components/BlurryVisionComponent.cs @@ -15,13 +15,13 @@ public sealed partial class BlurryVisionComponent : Component /// Amount of "blurring". Also modifies examine ranges. /// /// Exponent that controls the magnitude of the effect. /// [ViewVariables(VVAccess.ReadWrite), DataField("correctionPower"), AutoNetworkedField] - public float CorrectionPower; + public float CorrectionPower = 2f; // WD EDIT public const float MaxMagnitude = 6; public const float DefaultCorrectionPower = 2f; diff --git a/Content.Shared/_White/Collision/Blur/BlurOnCollideComponent.cs b/Content.Shared/_White/Collision/Blur/BlurOnCollideComponent.cs new file mode 100644 index 0000000000..95685e3051 --- /dev/null +++ b/Content.Shared/_White/Collision/Blur/BlurOnCollideComponent.cs @@ -0,0 +1,8 @@ +namespace Content.Shared._White.Collision.Blur; + +[RegisterComponent] +public sealed partial class BlurOnCollideComponent : Component +{ + [DataField] + public float BlurTime = 10f; +} diff --git a/Content.Shared/_White/Collision/Blur/BlurOnCollideSystem.cs b/Content.Shared/_White/Collision/Blur/BlurOnCollideSystem.cs new file mode 100644 index 0000000000..257dc5bd74 --- /dev/null +++ b/Content.Shared/_White/Collision/Blur/BlurOnCollideSystem.cs @@ -0,0 +1,37 @@ +using Content.Shared.Eye.Blinding.Components; +using Content.Shared.Projectiles; +using Content.Shared.StatusEffect; +using Content.Shared.Throwing; + +namespace Content.Shared._White.Collision.Blur; + +public sealed class BlurOnCollideSystem : EntitySystem +{ + [Dependency] private readonly StatusEffectsSystem _statusEffects = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnProjectileHit); + SubscribeLocalEvent (OnEntityHit); + } + + private void OnEntityHit(Entity ent, ref ThrowDoHitEvent args) + { + ApplyEffects(args.Target, ent.Comp); + } + + private void OnProjectileHit(Entity ent, ref ProjectileHitEvent args) + { + ApplyEffects(args.Target, ent.Comp); + } + + private void ApplyEffects(EntityUid target, BlurOnCollideComponent component) + { + _statusEffects.TryAddStatusEffect (target, + "BlurryVision", + TimeSpan.FromSeconds(component.BlurTime), + true); + } +} diff --git a/Content.Shared/_White/Collision/Knockdown/KnockdownOnCollideComponent.cs b/Content.Shared/_White/Collision/Knockdown/KnockdownOnCollideComponent.cs new file mode 100644 index 0000000000..20ed5f8dce --- /dev/null +++ b/Content.Shared/_White/Collision/Knockdown/KnockdownOnCollideComponent.cs @@ -0,0 +1,10 @@ +using Content.Shared._White.Standing; + +namespace Content.Shared._White.Collision.Knockdown; + +[RegisterComponent] +public sealed partial class KnockdownOnCollideComponent : Component +{ + [DataField] + public DropHeldItemsBehavior Behavior = DropHeldItemsBehavior.NoDrop; +} diff --git a/Content.Shared/_White/Collision/Knockdown/KnockdownOnCollideSystem.cs b/Content.Shared/_White/Collision/Knockdown/KnockdownOnCollideSystem.cs new file mode 100644 index 0000000000..dafce97c2e --- /dev/null +++ b/Content.Shared/_White/Collision/Knockdown/KnockdownOnCollideSystem.cs @@ -0,0 +1,33 @@ +using Content.Shared._White.Standing; +using Content.Shared.Projectiles; +using Content.Shared.Throwing; + +namespace Content.Shared._White.Collision.Knockdown; + +public sealed class KnockdownOnCollideSystem : EntitySystem +{ + [Dependency] private readonly SharedLayingDownSystem _layingDown = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent (OnProjectileHit); + SubscribeLocalEvent (OnEntityHit); + } + + private void OnEntityHit(Entity ent, ref ThrowDoHitEvent args) + { + ApplyEffects(args.Target, ent.Comp); + } + + private void OnProjectileHit(Entity ent, ref ProjectileHitEvent args) + { + ApplyEffects(args.Target, ent.Comp); + } + + private void ApplyEffects(EntityUid target, KnockdownOnCollideComponent component) + { + _layingDown.TryLieDown(target, null, null, component.Behavior); + } +} diff --git a/Resources/Locale/en-US/_white/store/uplink-catalog.ftl b/Resources/Locale/en-US/_white/store/uplink-catalog.ftl index 44ce8ca0fa..b4edcee7dd 100644 --- a/Resources/Locale/en-US/_white/store/uplink-catalog.ftl +++ b/Resources/Locale/en-US/_white/store/uplink-catalog.ftl @@ -2,4 +2,7 @@ uplink-emp-flashlight-desc = A rechargeable device disguised as a flashlight designed to disrupt electronic systems. Useful for disrupting communications, security's energy weapons, and APCs when you're in a tight spot. uplink-betrayal-knife-name = Betrayal dagger -uplink-betrayal-knife-desc = The betrayal dagger allows the user to teleport a short distance, and also causes significant damage when stabbed in the back. \ No newline at end of file +uplink-betrayal-knife-desc = The betrayal dagger allows the user to teleport a short distance, and also causes significant damage when stabbed in the back. + +uplink-ebow-name = Small energy crossbow +uplink-ebow-desc = A fairly quiet weapon that automatically reloads and stuns. It goes well with other types of weapons. \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_white/prototypes/entities/objects/weapons/guns/battery/ebow.ftl b/Resources/Locale/ru-RU/_white/prototypes/entities/objects/weapons/guns/battery/ebow.ftl new file mode 100644 index 0000000000..a8c7d268f7 --- /dev/null +++ b/Resources/Locale/ru-RU/_white/prototypes/entities/objects/weapons/guns/battery/ebow.ftl @@ -0,0 +1,2 @@ +ent-EnergyCrossbowMini = Mаленький энергетический арбалет + .desc = Стреляет энергетическими болтами, которые отравляют и оглушают цель. \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_white/store/uplink-catalog.ftl b/Resources/Locale/ru-RU/_white/store/uplink-catalog.ftl index 5953a18549..025ac86b8e 100644 --- a/Resources/Locale/ru-RU/_white/store/uplink-catalog.ftl +++ b/Resources/Locale/ru-RU/_white/store/uplink-catalog.ftl @@ -2,4 +2,7 @@ uplink-emp-flashlight-desc = Замаскированное под фонарик устройство. При ударе выпускает ЭМИ, поражающий электрические устройства. uplink-betrayal-knife-name = Предательский кинжал -uplink-betrayal-knife-desc = Предательский кинжал позволяет пользователю телепортироваться на короткое расстояние, а также наносит значительные повреждения при ударе в спину. \ No newline at end of file +uplink-betrayal-knife-desc = Предательский кинжал позволяет пользователю телепортироваться на короткое расстояние, а также наносит значительные повреждения при ударе в спину. + +uplink-ebow-name = Маленький энергетический арбалет +uplink-ebow-desc = Довольно тихое оружие, которое автоматически перезаряжается и оглушает. Хорошо сочетается с другими видами оружия. \ No newline at end of file diff --git a/Resources/Prototypes/_White/Catalog/uplink_catalog.yml b/Resources/Prototypes/_White/Catalog/uplink_catalog.yml index 4c1e4b0a60..43f9330c03 100644 --- a/Resources/Prototypes/_White/Catalog/uplink_catalog.yml +++ b/Resources/Prototypes/_White/Catalog/uplink_catalog.yml @@ -24,3 +24,20 @@ tags: - NukeOpsUplink saleLimit: 1 + +- type: listing + id: UplinkMiniEbow + name: uplink-ebow-name + description: uplink-ebow-desc + icon: { sprite: /Textures/_White/Objects/Weapons/Guns/Battery/mini-ebow.rsi, state: icon } + productEntity: EnergyCrossbowMini + cost: + Telecrystal: 10 + categories: + - UplinkWeapons + conditions: + - !type:StoreWhitelistCondition + blacklist: + tags: + - NukeOpsUplink + saleLimit: 1 \ No newline at end of file diff --git a/Resources/Prototypes/_White/Entities/Objects/Weapons/Guns/Battery/mini_ebow.yml b/Resources/Prototypes/_White/Entities/Objects/Weapons/Guns/Battery/mini_ebow.yml new file mode 100644 index 0000000000..e6309f652b --- /dev/null +++ b/Resources/Prototypes/_White/Entities/Objects/Weapons/Guns/Battery/mini_ebow.yml @@ -0,0 +1,36 @@ +- type: entity + name: small energy crossbow + description: Shoots energy bolts that poison and stun the target. + parent: BaseItem + id: EnergyCrossbowMini + components: + - type: Sprite + sprite: _White/Objects/Weapons/Guns/Battery/mini-ebow.rsi + state: icon + - type: Item + size: Small + sprite: _White/Objects/Weapons/Guns/Battery/mini-ebow.rsi + - type: Clothing + slots: + - Belt + - type: Gun + resetOnHandSelected: false + fireRate: 0.4 + soundGunshot: + path: /Audio/Weapons/click.ogg + - type: RechargeBasicEntityAmmo + rechargeCooldown: 1.5 + rechargeSound: + path: /Audio/Weapons/Guns/MagIn/revolver_magin.ogg + - type: BasicEntityAmmoProvider + proto: BoltEnergyCrossbow + capacity: 1 + count: 1 + - type: AmmoCounter + - type: GenericVisualizer + visuals: + enum.AmmoVisuals.HasAmmo: + base: + True: { state: icon } + False: { state: empty } + - type: Appearance diff --git a/Resources/Prototypes/_White/Entities/Objects/Weapons/Guns/Projectiles/bolts..yml b/Resources/Prototypes/_White/Entities/Objects/Weapons/Guns/Projectiles/bolts..yml new file mode 100644 index 0000000000..4bf6ad8722 --- /dev/null +++ b/Resources/Prototypes/_White/Entities/Objects/Weapons/Guns/Projectiles/bolts..yml @@ -0,0 +1,31 @@ +- type: entity + name: energy crossbow bolt + parent: BaseBullet + id: BoltEnergyCrossbow + noSpawn: true + components: + - type: Sprite + sprite: _White/Objects/Weapons/Guns/Projectiles/ebolt.rsi + state: bullet + - type: Ammo + muzzleFlash: null + - type: Projectile + impactEffect: null + damage: + types: + Poison: 15 + - type: Reflective + reflective: + - Energy + - type: Fixtures + fixtures: + projectile: + shape: + !type:PhysShapeAabb + bounds: "-0.1,-0.2,0.1,0.2" + hard: false + mask: + - Opaque + - type: KnockdownOnCollide + behavior: AlwaysDrop + - type: BlurOnCollide \ No newline at end of file diff --git a/Resources/Prototypes/status_effects.yml b/Resources/Prototypes/status_effects.yml index 37da86f6a8..0c29d79d5c 100644 --- a/Resources/Prototypes/status_effects.yml +++ b/Resources/Prototypes/status_effects.yml @@ -60,8 +60,13 @@ - type: statusEffect id: StaminaModifier -# WD EDIT +# WD EDIT START - type: statusEffect id: RecentlyBlocked alwaysAllowed: true alert: RecentlyBlocked + +- type: statusEffect + id: BlurryVision + alwaysAllowed: true +# WD EDIT END diff --git a/Resources/Textures/_White/Objects/Weapons/Guns/Battery/mini-ebow.rsi/bolt.png b/Resources/Textures/_White/Objects/Weapons/Guns/Battery/mini-ebow.rsi/bolt.png new file mode 100644 index 0000000000000000000000000000000000000000..70451918e4ff871d1c89cc764d505d1302965103 GIT binary patch literal 4819 zcmeHKX;c&05^g{RcR&~s8EhjeTPNu(kVGO|05cfb6&w^holb~kBWWPuHiLTHK~xkR z7&j0Y6czO;qBst2C{F>`QE>r5+yKwviQ+QvCZOVZ^T%`E{3GXdy8BkuS5;rtt>mr= zofR~4nEfyaf<_8w2*SY~He41%z_%_ftqX$86lsysWH^=rYqV;qTtUEOs)m3Gy<7@G z`a3VT&D+}SJYwa8m;l WyT3j% zt4GH!F0k9Zy(q8YXSddzik(dtQnT}~S*29bs!nviuXAkwe*F|*mnVCQ65j96Z#R{N zg bDZBFGV^(+EwMMV%J1Hqd_8gNhksdncN{EF zOSqBHc}>UCA8>26YMtn0uFbj(#dw;#6t`U&XC}WDH6qpKwENHg^WQ#QN<_1^mAq=% zY3|x>e@Zp_>Jdtu|KpmPr}L{6qYDm{C~hsw<@Q81UwD1KD3bH*$ {#Io`}0vV5AA&oog(d2D_6YSlI2i&0(0xy^Sy0J*pwkj#GU-*k4o 9uXl;pX9932LBq7n(@_I{)EoEHB{vttCPpb9BA&6bE z^Hn>i=i8vz6(zRkH~s__Pjq#z$7%xy1@R!;oGaE9=}?JwRhC15^=;09l2>E)@V8{w zJJe-Vk8p~#rquctL$lYf{eagWTD5j Qk+qwl=bfv #}zPO3M(yYkZZXw`gw<(O%EG~EAK3MTZd8vD9@e)5A$ouwHmmow{v z+Ww+O29*-SM$KC6voFNEImW7X$=0gfyylaa^gBXaf3OI7Sy0_N)6B$`T`PUl4%^S$ z9@0^lmu;2LDBb1O&6T(W(=6Xn#=M+T&N7`of8Y5UhSUAp^w@bjCJI}NZ}!-o>RPdI zf=-Z!-svpd{pN7_{2ir^8k>$wJGM^PW$-_#t9xbVva>I^@6COicYD1z%UKFRCd=ji z{-HvD|4;i4?6$lmS^OE*J`U&NBGyrCS0!5}UJT85U%i&R?rO8kuh@2O61}2p_;!|) z3pFD>;mn!LbH6QLcerd+Svvg2q^a$3K^tZAN1Dr#)vq2NpU~0HZ@+KiclZ*kRAyR7 z-mNXzB&MEreO*NvWMbt6U#w-cI=PH|@G2=2itA|dy8PF@9k>q?J;Gx3*~7JTWz)!} zT+!W!Cqo 9IK6am>b6YC3k9u^}0gp>=QZJq7C}(oV^Qq zEyKB)QCEJ Sd-R8SPgN9OUu7~;BdNdt*RuFx$ZfU~>?-xCj zwJwi;`zZ@IVaIQr=ly2F`}UizvqWjaM^2V$iFuh}J5$ESvmKtiyPY_9s!!**;| ?RnG_Hr-=qeU}$xLQfYBx*51 z)hjh%OhS;Cw_bzc2?Pm?37K5Qr*u@FroeIupE8FnqKh>CM7(@PnwE%2n-z(tCE#2M z#e4cNFFg+cC z9SF2zHCMH%Vk$egT$l*`%DK#R|XLyyaj|IR7O^<14D3wlADrx;K zbYws>0Ofl>tfu zpgg1~lf%Ts2 r0qs*wvph_M-g{CtgN{eq#XG z^{#>O0;U!1^SJ8c%s}Hm`01;~Kj;BK4> <{ zztJ`9%Ylbbfqy|M;5f5k%ZAC|C^SSI93(IvilDdtmCL}>P|b`O9R!U!Yq(6Z-A0WE zi{_+I6ky&u*mMjRrP;4kf+eO<;2RlT{jzSNEd*N%&Qw~m{H(_cC;9o9Sz6St|DgVN pAoRQJEyMBf{)hvGMe9r;mB&oSL8h;^>@YJp6b8%^l=&@4|1T?GCd&W- literal 0 HcmV?d00001 diff --git a/Resources/Textures/_White/Objects/Weapons/Guns/Battery/mini-ebow.rsi/empty.png b/Resources/Textures/_White/Objects/Weapons/Guns/Battery/mini-ebow.rsi/empty.png new file mode 100644 index 0000000000000000000000000000000000000000..799e188ec829ff1cc8c42a40c84db10b1d4140c9 GIT binary patch literal 548 zcmV+<0^9wGP) pD>RJ;3LgAJG<6nt)zoZs6YM2(*_ma?_uJW-%{Bb9MF0^%V1QgM z=VY^4=yto(#Q{(}lgU7-RKm~^fe7Ua>h(I5%Vi;mKmcpmhTcOD)E8A4B9sc4jsZ84 zA_NiI6ig-)z R#}W9IQO_dJwLMjN~HqR=@gR5Bv~=8)oQ*K^aV(zQqb#k4)#6=gI%B)_L6 zTknfSbh!{*0Mj&~-|s`a-9DZm@7&jBlli)?!&|FGe5@4DJOOA^6$%BgZ5vjr6(kY~ zn9t`ho6R7dPD5w#&hoA8$??k2J~kCW@$Glc2iP~mFvyAk)JFg}FgC6vNe6p=-#!UI zQ51;9V)(;hd*sA>S3v&@_y#l@4G8=Y;Rmt&qtS@QWZgg2oqWqiR79K$Kn+iiwp=bf zbMP4!5%&dHEEcSbarWJIWnF`+tHR>G0P%R7RRG8FSW^WN=K|0%bj5#iHsX$`I2XW6 m)NMh;eE}|E5kLeG0sI19#PxaD%#;-X0000 u!vbcyT66;f~0 zEMBQpSQ)z5@_xV<6J0RCIcLxnARdpS+ipLLJv}}G?*R3aic~s{e!p+`{fsZRm2>my zxG$q4z<4}{s;X$UTKk D^&r9Atdi*h^u~qe(|5g(w7T z?$p@7!$Na^OlP;T>gE*^OZvNw*J>D=iykq15)@YOwU}`>55ocm>4qBu5Bh-?*Lu1* zhIkxLPLN<-+~C$QvGXR2$3_Wb!=!Kpfs_MGK?f2<6dGb(H|=8XC<^yGkk~F6%-Ero zWPD)Zfdh?_9!AC%4}u;rEsd06v)bc!P(vc{zzxP@hvM8AigjZcuNgJ1WI1>&%*{Z3 ug|fwsQyghxYUL88K}Qk 03aYBPE1U9cXy16iYh57&d(3@00001bW%=J06^y0W&i*HZF*E#bVOxyV{&P5 zbZKvH004NLQ&w YE63;>`28-Uml z;Ew zF3g1HHjpvgO;}XjMAoZU7GpHBuKvNyp+=Ue<3p6JGeuGS+0fR?N@^0} z)S;{dBN3Y?o2n(@rk>3hjUy)*D~B3KqU?xLe0u{o(+F}%Q49|N0000 VS)*8>L*aJDiC9$+Z{$e{I+ zVb5zHhJL2cf9x6j7(M>nn+sINSQ6wH%;50sMjDXg>FMGaqA@W!VS!?Ti+F-kEH~Q$ zgJ#KC2UkYl14kHq58MROBEGD%S4quk*e$(^p?w$IEQcz#Sqs {an^LB{Ts5VjwtH literal 0 HcmV?d00001 diff --git a/Resources/Textures/_White/Objects/Weapons/Guns/Projectiles/ebolt.rsi/meta.json b/Resources/Textures/_White/Objects/Weapons/Guns/Projectiles/ebolt.rsi/meta.json new file mode 100644 index 0000000000..8436af22e0 --- /dev/null +++ b/Resources/Textures/_White/Objects/Weapons/Guns/Projectiles/ebolt.rsi/meta.json @@ -0,0 +1,14 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "See copyright for above folder (Weapons/Guns/Projectiles)", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "bullet" + } + ] +} From cb13004fbc936a3344368accbad6fba683b848ae Mon Sep 17 00:00:00 2001 From: WWDP Changelogs Date: Thu, 26 Sep 2024 01:57:06 +0000 Subject: [PATCH 13/14] Automatic Changelog Update (#60) --- Resources/Changelog/Changelog.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 9ee78dbc05..cf1a36c9cc 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -6462,3 +6462,10 @@ Entries: id: 6356 time: '2024-09-23T03:18:33.0000000+00:00' url: https://github.com/WWhiteDreamProject/wwdpublic/pull/61 +- author: Spatison + changes: + - type: Add + message: Added small energy crossbow / Добавлен маленький энерго арбалет + id: 6357 + time: '2024-09-26T01:56:42.0000000+00:00' + url: https://github.com/WWhiteDreamProject/wwdpublic/pull/60 From f3dd435299318190ffba2c52c729ba8faba22002 Mon Sep 17 00:00:00 2001 From: Spatison <137375981+Spatison@users.noreply.github.com> Date: Thu, 26 Sep 2024 04:57:31 +0300 Subject: [PATCH 14/14] =?UTF-8?q?[Tweak]=20Melee=20/=20=D0=91=D0=BB=D0=B8?= =?UTF-8?q?=D0=B6=D0=BD=D0=B5=D0=B5=20=D0=9E=D1=80=D1=83=D0=B6=D0=B8=D0=B5?= =?UTF-8?q?=20(#62)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * tweak: _White melee * fix --- .../Melee}/BackStab/BackStabComponent.cs | 2 +- .../_White/Melee}/BackStab/BackStabSystem.cs | 12 ++--- .../_White/Melee/Crit/CritComponent.cs | 13 +++++ .../_White/Melee/Crit/CritSystem.cs | 50 +++++++++++++++++++ .../Locale/en-US/_white/backstab/backstab.ftl | 1 - .../Locale/en-US/_white/melee/backstab.ftl | 1 + Resources/Locale/en-US/_white/melee/crit.ftl | 1 + .../Locale/ru-RU/_white/backstab/backstab.ftl | 1 - .../Locale/ru-RU/_white/melee/backstab.ftl | 1 + Resources/Locale/ru-RU/_white/melee/crit.ftl | 1 + 10 files changed, 72 insertions(+), 11 deletions(-) rename {Content.Shared/_White => Content.Server/_White/Melee}/BackStab/BackStabComponent.cs (85%) rename {Content.Shared/_White => Content.Server/_White/Melee}/BackStab/BackStabSystem.cs (82%) create mode 100644 Content.Server/_White/Melee/Crit/CritComponent.cs create mode 100644 Content.Server/_White/Melee/Crit/CritSystem.cs delete mode 100644 Resources/Locale/en-US/_white/backstab/backstab.ftl create mode 100644 Resources/Locale/en-US/_white/melee/backstab.ftl create mode 100644 Resources/Locale/en-US/_white/melee/crit.ftl delete mode 100644 Resources/Locale/ru-RU/_white/backstab/backstab.ftl create mode 100644 Resources/Locale/ru-RU/_white/melee/backstab.ftl create mode 100644 Resources/Locale/ru-RU/_white/melee/crit.ftl diff --git a/Content.Shared/_White/BackStab/BackStabComponent.cs b/Content.Server/_White/Melee/BackStab/BackStabComponent.cs similarity index 85% rename from Content.Shared/_White/BackStab/BackStabComponent.cs rename to Content.Server/_White/Melee/BackStab/BackStabComponent.cs index 8d45386df0..f6ddf07ad5 100644 --- a/Content.Shared/_White/BackStab/BackStabComponent.cs +++ b/Content.Server/_White/Melee/BackStab/BackStabComponent.cs @@ -1,4 +1,4 @@ -namespace Content.Shared._White.BackStab; +namespace Content.Server._White.Melee.BackStab; [RegisterComponent] public sealed partial class BackStabComponent : Component diff --git a/Content.Shared/_White/BackStab/BackStabSystem.cs b/Content.Server/_White/Melee/BackStab/BackStabSystem.cs similarity index 82% rename from Content.Shared/_White/BackStab/BackStabSystem.cs rename to Content.Server/_White/Melee/BackStab/BackStabSystem.cs index f4663fa7de..bc929cd787 100644 --- a/Content.Shared/_White/BackStab/BackStabSystem.cs +++ b/Content.Server/_White/Melee/BackStab/BackStabSystem.cs @@ -1,19 +1,18 @@ +using Content.Server.Popups; using Content.Shared.Damage; using Content.Shared.Damage.Prototypes; using Content.Shared.Mobs.Components; using Content.Shared.Popups; using Content.Shared.Weapons.Melee.Events; -using Robust.Shared.Network; using Robust.Shared.Prototypes; -namespace Content.Shared._White.BackStab; +namespace Content.Server._White.Melee.BackStab; public sealed class BackStabSystem : EntitySystem { [Dependency] private readonly IPrototypeManager _prototypeManager = default!; - [Dependency] private readonly INetManager _net = default!; [Dependency] private readonly SharedTransformSystem _transform = default!; - [Dependency] private readonly SharedPopupSystem _popup = default!; + [Dependency] private readonly PopupSystem _popup = default!; public override void Initialize() { @@ -49,10 +48,7 @@ private void HandleHit(Entity ent, ref MeleeHitEvent args) args.BonusDamage = new DamageSpecifier(_prototypeManager.Index ("Slash"), damage - args.BaseDamage.GetTotal()); - if (!_net.IsServer) - return; - - var message = Loc.GetString("backstab-damage-betrayal-dagger", ("damage", damage)); + var message = Loc.GetString("melee-backstab-damage", ("damage", damage)); _popup.PopupEntity(message, args.User, args.User, PopupType.MediumCaution); } } diff --git a/Content.Server/_White/Melee/Crit/CritComponent.cs b/Content.Server/_White/Melee/Crit/CritComponent.cs new file mode 100644 index 0000000000..6ec3be02ca --- /dev/null +++ b/Content.Server/_White/Melee/Crit/CritComponent.cs @@ -0,0 +1,13 @@ +namespace Content.Server._White.Melee.Crit; + +[RegisterComponent] +public sealed partial class CritComponent : Component +{ + [DataField] + public float CritChance = 0.2f; + + [DataField] + public float CritMultiplier = 2f; + + public float? RealChance; +} diff --git a/Content.Server/_White/Melee/Crit/CritSystem.cs b/Content.Server/_White/Melee/Crit/CritSystem.cs new file mode 100644 index 0000000000..3ed0440d0f --- /dev/null +++ b/Content.Server/_White/Melee/Crit/CritSystem.cs @@ -0,0 +1,50 @@ +using Content.Server.Popups; +using Content.Shared._White.Blocking; +using Content.Shared.Damage; +using Content.Shared.Damage.Prototypes; +using Content.Shared.Popups; +using Content.Shared.Weapons.Melee.Events; +using Robust.Shared.Prototypes; +using Robust.Shared.Random; + +namespace Content.Server._White.Melee.Crit; + +public sealed class CritSystem : EntitySystem +{ + [Dependency] private readonly IRobustRandom _random = default!; + [Dependency] private readonly IPrototypeManager _prototypeManager = default!; + [Dependency] private readonly PopupSystem _popup = default!; + + public override void Initialize() + { + SubscribeLocalEvent (HandleHit, before: new [] {typeof(MeleeBlockSystem)}); + } + + private void HandleHit(EntityUid uid, CritComponent component, MeleeHitEvent args) + { + if (args.HitEntities.Count == 0 || !IsCriticalHit(component)) + return; + + var damage = args.BaseDamage.GetTotal() * component.CritMultiplier; + + args.BonusDamage = new DamageSpecifier(_prototypeManager.Index ("Slash"), + damage - args.BaseDamage.GetTotal()); + + var message = Loc.GetString("melee-crit-damage", ("damage", damage)); + _popup.PopupEntity(message, args.User, args.User, PopupType.MediumCaution); + } + + private bool IsCriticalHit(CritComponent component) + { + component.RealChance ??= component.CritChance; + + var isCritical = _random.NextFloat() <= component.RealChance; + + if (isCritical) + component.RealChance = component.CritChance; + else + component.RealChance += component.CritChance; + + return isCritical; + } +} diff --git a/Resources/Locale/en-US/_white/backstab/backstab.ftl b/Resources/Locale/en-US/_white/backstab/backstab.ftl deleted file mode 100644 index cead93b330..0000000000 --- a/Resources/Locale/en-US/_white/backstab/backstab.ftl +++ /dev/null @@ -1 +0,0 @@ -backstab-damage-betrayal-dagger = A stab in the back: {$damage}! \ No newline at end of file diff --git a/Resources/Locale/en-US/_white/melee/backstab.ftl b/Resources/Locale/en-US/_white/melee/backstab.ftl new file mode 100644 index 0000000000..c65a78e707 --- /dev/null +++ b/Resources/Locale/en-US/_white/melee/backstab.ftl @@ -0,0 +1 @@ +melee-backstab-damage = A stab in the back: {$damage}! \ No newline at end of file diff --git a/Resources/Locale/en-US/_white/melee/crit.ftl b/Resources/Locale/en-US/_white/melee/crit.ftl new file mode 100644 index 0000000000..05eeea28f0 --- /dev/null +++ b/Resources/Locale/en-US/_white/melee/crit.ftl @@ -0,0 +1 @@ +melee-crit-damage = Critical hit: {$damage}! \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_white/backstab/backstab.ftl b/Resources/Locale/ru-RU/_white/backstab/backstab.ftl deleted file mode 100644 index eb69776cb3..0000000000 --- a/Resources/Locale/ru-RU/_white/backstab/backstab.ftl +++ /dev/null @@ -1 +0,0 @@ -backstab-damage-betrayal-dagger = Удар в спину: {$damage}! \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_white/melee/backstab.ftl b/Resources/Locale/ru-RU/_white/melee/backstab.ftl new file mode 100644 index 0000000000..24f9d4aa55 --- /dev/null +++ b/Resources/Locale/ru-RU/_white/melee/backstab.ftl @@ -0,0 +1 @@ +melee-backstab-damage = Удар в спину: {$damage}! \ No newline at end of file diff --git a/Resources/Locale/ru-RU/_white/melee/crit.ftl b/Resources/Locale/ru-RU/_white/melee/crit.ftl new file mode 100644 index 0000000000..c2feb43adb --- /dev/null +++ b/Resources/Locale/ru-RU/_white/melee/crit.ftl @@ -0,0 +1 @@ +melee-crit-damage = Критическое попадание: {$damage}! \ No newline at end of file