From 311118ae5890aace2707654241513c1d9ae3cf13 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 9 Jul 2022 00:33:15 -0400 Subject: [PATCH] Hastily implemented final endgame turret --- .../sprites/blocks/turrets/divine/divine.png | Bin 3236 -> 0 bytes .../turrets/malign/malign-back-heat.png | Bin 0 -> 2814 bytes .../blocks/turrets/malign/malign-back-l.png | Bin 0 -> 962 bytes .../blocks/turrets/malign/malign-back-r.png | Bin 0 -> 943 bytes .../blocks/turrets/malign/malign-end.png | Bin 0 -> 1133 bytes .../turrets/malign/malign-front-heat.png | Bin 0 -> 2472 bytes .../blocks/turrets/malign/malign-front-l.png | Bin 0 -> 997 bytes .../blocks/turrets/malign/malign-front-r.png | Bin 0 -> 966 bytes .../blocks/turrets/malign/malign-main.png | Bin 0 -> 2107 bytes .../blocks/turrets/malign/malign-mid-heat.png | Bin 0 -> 1203 bytes .../blocks/turrets/malign/malign-mid.png | Bin 0 -> 1525 bytes .../turrets/malign/malign-mouth-heat.png | Bin 0 -> 2336 bytes .../blocks/turrets/malign/malign-mouth.png | Bin 0 -> 1927 bytes .../blocks/turrets/malign/malign-preview.png | Bin 0 -> 3517 bytes .../turrets/malign/malign-spine-heat.png | Bin 0 -> 2595 bytes .../blocks/turrets/malign/malign-spine-l.png | Bin 0 -> 631 bytes .../blocks/turrets/malign/malign-spine-r.png | Bin 0 -> 631 bytes .../smite-back-l.png} | Bin .../smite-back-r.png} | Bin .../smite-blade-bar-heat.png} | Bin .../smite-blade-bar-l.png} | Bin .../smite-blade-bar-r.png} | Bin .../smite-blade-heat.png} | Bin .../smite-blade-l.png} | Bin .../smite-blade-r.png} | Bin .../smite-front-l.png} | Bin .../smite-front-r.png} | Bin .../smite-mid-heat.png} | Bin .../ravage-mid.png => smite/smite-mid.png} | Bin .../smite-preview.png} | Bin .../smite-spine-heat.png} | Bin .../smite-spine-l.png} | Bin .../smite-spine-r.png} | Bin core/assets/bundles/bundle.properties | 3 +- core/assets/icons/icons.properties | 3 +- core/assets/logicids.dat | Bin 4581 -> 4580 bytes core/src/mindustry/content/Blocks.java | 339 ++++++++++++++++-- core/src/mindustry/content/Fx.java | 2 +- .../entities/bullet/FlakBulletType.java | 6 +- .../entities/pattern/ShootSummon.java | 26 ++ .../world/blocks/defense/turrets/Turret.java | 4 +- 41 files changed, 349 insertions(+), 34 deletions(-) delete mode 100644 core/assets-raw/sprites/blocks/turrets/divine/divine.png create mode 100644 core/assets-raw/sprites/blocks/turrets/malign/malign-back-heat.png create mode 100644 core/assets-raw/sprites/blocks/turrets/malign/malign-back-l.png create mode 100644 core/assets-raw/sprites/blocks/turrets/malign/malign-back-r.png create mode 100644 core/assets-raw/sprites/blocks/turrets/malign/malign-end.png create mode 100644 core/assets-raw/sprites/blocks/turrets/malign/malign-front-heat.png create mode 100644 core/assets-raw/sprites/blocks/turrets/malign/malign-front-l.png create mode 100644 core/assets-raw/sprites/blocks/turrets/malign/malign-front-r.png create mode 100644 core/assets-raw/sprites/blocks/turrets/malign/malign-main.png create mode 100644 core/assets-raw/sprites/blocks/turrets/malign/malign-mid-heat.png create mode 100644 core/assets-raw/sprites/blocks/turrets/malign/malign-mid.png create mode 100644 core/assets-raw/sprites/blocks/turrets/malign/malign-mouth-heat.png create mode 100644 core/assets-raw/sprites/blocks/turrets/malign/malign-mouth.png create mode 100644 core/assets-raw/sprites/blocks/turrets/malign/malign-preview.png create mode 100644 core/assets-raw/sprites/blocks/turrets/malign/malign-spine-heat.png create mode 100644 core/assets-raw/sprites/blocks/turrets/malign/malign-spine-l.png create mode 100644 core/assets-raw/sprites/blocks/turrets/malign/malign-spine-r.png rename core/assets-raw/sprites/blocks/turrets/{ravage/ravage-back-l.png => smite/smite-back-l.png} (100%) rename core/assets-raw/sprites/blocks/turrets/{ravage/ravage-back-r.png => smite/smite-back-r.png} (100%) rename core/assets-raw/sprites/blocks/turrets/{ravage/ravage-blade-bar-heat.png => smite/smite-blade-bar-heat.png} (100%) rename core/assets-raw/sprites/blocks/turrets/{ravage/ravage-blade-bar-l.png => smite/smite-blade-bar-l.png} (100%) rename core/assets-raw/sprites/blocks/turrets/{ravage/ravage-blade-bar-r.png => smite/smite-blade-bar-r.png} (100%) rename core/assets-raw/sprites/blocks/turrets/{ravage/ravage-blade-heat.png => smite/smite-blade-heat.png} (100%) rename core/assets-raw/sprites/blocks/turrets/{ravage/ravage-blade-l.png => smite/smite-blade-l.png} (100%) rename core/assets-raw/sprites/blocks/turrets/{ravage/ravage-blade-r.png => smite/smite-blade-r.png} (100%) rename core/assets-raw/sprites/blocks/turrets/{ravage/ravage-front-l.png => smite/smite-front-l.png} (100%) rename core/assets-raw/sprites/blocks/turrets/{ravage/ravage-front-r.png => smite/smite-front-r.png} (100%) rename core/assets-raw/sprites/blocks/turrets/{ravage/ravage-mid-heat.png => smite/smite-mid-heat.png} (100%) rename core/assets-raw/sprites/blocks/turrets/{ravage/ravage-mid.png => smite/smite-mid.png} (100%) rename core/assets-raw/sprites/blocks/turrets/{ravage/ravage-preview.png => smite/smite-preview.png} (100%) rename core/assets-raw/sprites/blocks/turrets/{ravage/ravage-spine-heat.png => smite/smite-spine-heat.png} (100%) rename core/assets-raw/sprites/blocks/turrets/{ravage/ravage-spine-l.png => smite/smite-spine-l.png} (100%) rename core/assets-raw/sprites/blocks/turrets/{ravage/ravage-spine-r.png => smite/smite-spine-r.png} (100%) create mode 100644 core/src/mindustry/entities/pattern/ShootSummon.java diff --git a/core/assets-raw/sprites/blocks/turrets/divine/divine.png b/core/assets-raw/sprites/blocks/turrets/divine/divine.png deleted file mode 100644 index dda307286057fe1acc4b8102d4adbcab9914e151..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3236 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 X+6}8Uf1PGvU|{fc^>bP0l+XkK+z|oK diff --git a/core/assets-raw/sprites/blocks/turrets/malign/malign-back-heat.png b/core/assets-raw/sprites/blocks/turrets/malign/malign-back-heat.png new file mode 100644 index 0000000000000000000000000000000000000000..8ecca1720dbd42e44da1a809816024df9c3794fb GIT binary patch literal 2814 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 RKGlQ7Jzf1=);T3K0RZhRrn&$C literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/turrets/malign/malign-back-r.png b/core/assets-raw/sprites/blocks/turrets/malign/malign-back-r.png new file mode 100644 index 0000000000000000000000000000000000000000..431edae31bcb69712c930ff2dd37c3816467243f GIT binary patch literal 943 zcmeAS@N?(olHy`uVBq!ia0y~yU|0ac9Bd2>4Bh9`br~2K7>k44ofy`glX=O&z?|vn z;uumf=j~m^$uh1I4G-UI)VZ!!Xp>CU6BtSQ3g+SC~*%erF5ijb5iM;n}#CN`YS z@8E8Fb^G+wO}DKtU;cac&gT_tcdebf?$-CJ^0cZnWd_o~w&yut7*>2g`*ZPk)APH( zKMkMWU;npq`Y&5QTZ?bYj)bT58N5AkW43VoMAJi4nv>SM*6gqO9qZyU=k9-{yT9k= zIlS50v;Krw;;Mriw!750F5|e&)3R6fvGyjHA2(kxepo2?(beV8kCgDObC)jtq5q(M z@1yEJubw`Ae6jj?+5r`}BjSP||DCUIKi9(Kv%s~+blvgro}Pe)=H9;b5~2$k*iQ+? z8!9<5s$JLKx2U{@>CT4W$J$kH8V7o3NyT5(c4ExCaOX#toFG?0a@5gq9odBp=1WRz zj!s(smc?W0QY8_EtJ69H8n#EA-TC-+l)J`(=q#@q*V7#K`Cpypyj#B8zt8?Vnp2S&%m6ZI|Twx5@u^Y`0f`OW;rXa1geD;VD*IYIhM zm%dX&O!2BR0IU6z7e1`Ex_*RS3e?c4j| zs}U3+#`)P@!NAN+jx z@~hjsdgC;6*@VY1)b|c8aTU7CfHTv*BoHA=4h#X&oD`^2c&d;J>owarRH`*Gx~8+m&)a s`hK>|R>}bxZTTRp#rp_5N-lW)NnSTSMdi=xN&i9Op00i_>zopr0LH|oEdT%j literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/turrets/malign/malign-end.png b/core/assets-raw/sprites/blocks/turrets/malign/malign-end.png new file mode 100644 index 0000000000000000000000000000000000000000..1424d302e73d8de679b0595e3ac2fada7e43e754 GIT binary patch literal 1133 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 Mr>mdKI;Vst0M$~DRR910 literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/turrets/malign/malign-front-l.png b/core/assets-raw/sprites/blocks/turrets/malign/malign-front-l.png new file mode 100644 index 0000000000000000000000000000000000000000..bb11c6359244792eb28a43117569c12336a21abb GIT binary patch literal 997 zcmeAS@N?(olHy`uVBq!ia0y~yU|0ac9Bd2>4Bh9`br~2K7>k44ofy`glX=O&z&zj6 z#WAE}&fB}T=N`Mr9C-M@Tf>4`=q#7luDy&UyGw2>YH6)X^>45^cv`N3>*7VmyO%CH zx}S7!J|g+T$MnVBBOjmlyp^=~msIsr`ETNPELok20S*>~l~>m@EPJ^t?~CR6_?pVk zp7nqJ-G1@9{?EhRi)`=Qjm`hpJ1PG}S=*!8uTEZ0U%lOMI)n5C<$WoyIap6j4WIva zPh<YG3n}cbDt^y@ph(~T-;-Ax!{h%83krUp_&vNp z)9rv4?@@8VkB{b_@7`Cx&Xt>K&4q}Xlan}}?@@DaVOrx8U*r6YWvj}Kt%6(|)b{_| znvw3$nSEBV+P7uelki2qpPoNB_f9#7-phaQ*RPY4j=q%dY3Hgd$;o=7W1nCqf3dPi z0`t83-@YzaKyID>$a`DIhu_=lPHod=40~g=PxncWzEi{1EX92sjA1LM{!n6xn7i?Z z*BoX&(fAgI)t91b1ew+xoA~JWi~IbW_O>%f8*cB??%$|MzF(R6yh;1}r+?kozdd+*;`_tp`R8xlo8$TVj&i)xfm2I3 z@@31GyH&J+>|46=eND2Uoa#OfMzhypE$&_VP7S`hdp=}*bmiFK*DvooZ?A`-T?PkYi6*tcWmv8-;v~cwkmI|TdhcTx_ zxh7kyM*@j%+z-Vf96{C8A8(Dt;?pu9$qDd%29OK`p5^bUQehUF8q4+*h& zxV#Zx$nf*NoFLbP>p8Lu8E#GmA^$~Jj(mw?vYDvtrg31hWmF53%|c~YjRTWsNhhv+ zDaknRhM)o1FM(L$KUFUsI%}mWGnPVl?cXyU^ z15cFj!-yI|rj#aCLBCFYrv@Jr^+PK^GQ#r*L5B4Y{?C^Jn)2_d90RHKboFyt=akR{ E0I4Bh9`br~2K7>k44ofy`glX=O&z}(>J z;uumf=k49qMOPhU4m_-voYy2N;~~e$&ZaWSF)<*9XP1<-W8x}_l+^44iW5B?N|&t< z44Lt5!sOS_HqCxN`K^kj@pJRpYBznA84#eTbi)^Rg}Lti^JCuqzB_mK_o(gvD@rV? z`OTl%DO}FzTEBYwdVcr!i}e}B6kKbj?o<|0_`mbd$MkI+tR8E3Dv3N`E7{4g(%8L) zN$1XmA6mig8VAnw?)`e{=oCRNgXH2P;WM?I7}K<#uARPaSw}#FWR%iAuU8zbGiItj zUcICzph3s0LFd)8OY#j5@7<~Ud;h$g&3;iq!S(xU=KX%mlf-f+B)CRUP=21>>@Po7 zs_AkVIOl#0ZF9MiK3hbP%fPtwqv=cGD-#lqyJ;Ngsj2-~dtv%r)is98-xvzcnl!(2 z+mBa%2ZLAbJ|Ste^gf4&k+Yi#(cYi#qm|7#qbS8}RqbrAj_tGQciU;0oIck2?_`%9Y-2w?=Ufudm4L2i#YnHda zpCs$t!1}`4abdURqizF5Q|a{O>g=Vj9asI>CmYXGC3olfzQk8QlzJK>Ev;>Le%nxA z{^WOA&Bg3`@8ck2Lj>Phzb)%6;00TiTmN~h>yBwZlvpCx)C#WC+{eKvmTP`!>rrvV z13I>UO7?#~^H}T9R-dc4R1f%k?KJp$xo3(Yw?T5Ol8$7VF-*Qi3 zIT4rqc(sY^3z3)!+qN(7t1bLF;m5jF*0R!!=1X)J7~baVjc$-ORyhO;g$HV1I}1*M zY?^YHbG7d-7mLywK_(r)RUFSd^qm@9UkNA9-3bbWH_vJ>G9g5jK0S(fdw{fuU zaLn!sXpp{YerRRhd5(g^*90DBwIxlvylqzA^$DGvzr|K?PuM%_&>P{z%eMttJQi;h z+_ra?bHf%Xsl@0SL8c{(_X(DD>N_=jxnO!|-A6`5J|M*6{=wZ?7#Fu^rk_1Xsi&)- J%Q~loCIE8Dpt%45 literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/turrets/malign/malign-main.png b/core/assets-raw/sprites/blocks/turrets/malign/malign-main.png new file mode 100644 index 0000000000000000000000000000000000000000..1deb5458de4ea1830c999e0c42f3cf395bad6dbf GIT binary patch literal 2107 zcmeAS@N?(olHy`uVBq!ia0y~yU|0ac9Bd2>4Bh9`br~2K7>k44ofy`glX=O&!2Z?K z#WAE}&fB}X#nRytZ4cGwGW=&d&vLb`t<}-j!`QWTro!X}w-k>aQ}pd}YO-l_m7A{O z*x1_W8JPY@`c#m@{EV$u)!%CB_q;DYUvg~f(#_d#r!JnlC5o}f@R&q0m{{ZVJ!-wf z>N?x~KeBfJ`Fc6M;{UgAxBuJMeKvS$SM~kRNTO4P+ zW1dy_|GOx|gY~oR=YGHG?_c+mi$Py*&ilXbF1~ztFV*{Z%jYHUl)L6I27kC|^rJ!7 zAo}us-~7qRvP;hOJYtx3Bz=?OmRPrz*PToe%=0t3&Y5ZpEwncLEo%93Z+-P^-s9WF z`OmHW-SBzKTj8!5jM?XEHWsRFF}FEz=SNNYf*Cc(ueB6pG$=phj%^cbab`Xf$y=j4 z?P@hkhnYf0!Q`q2T}1)Kg8g5)w&ZXg_>#NjO8Sw@8`ph2xQlP!?`ol7Yi7NNvy(UM zUH0@7i|fPu}a@{Z}$@{K&m9q4(d@&&%ijk6L^D#Y#qw9p*V2 zcJohrt#5A$VPttDZ6P}U{QIKy?NhEWvXq&Z=+!7*_l)KDT^o`$Y-HbyJu+Ij$=^xLYy^F0^Kf(NLFBis@s}oyy?c@{OY)jAP2| z?&&*rRz#-c=n6hq5>T^kezBgjGfPFdj@|WC%W0~%OfFV-^Y1U!2`+lY`0S8)(cBrS z-oB;>?)*qvw_0{#RKwB_NAI{9J56Qqe%!rtZCJ}IhHHn!joaK>Rxw;VCT={QPg;l4VCp)ZK`dl|P*PKWl52GAx(2 zVm~DFBj&ZTZ74(S`L{8T6pMK0zcxC#l2M{6@A({#+K)f~_(f$gtPABz)UeB4$@rpK z)BI3G&8&H`Z@V)=gHU0&wu#$cI|hI>+JHAt}i|Aa;{JQW)r)t!?l?OOPB>47}FiD%g*WIzcHV)c$-Pt zx|szgH3u4u7i8KAKRaNq``ujX=bU7#R5ckvc>@E7gl+?KyI{Q*MRkjQM++^xgn|Z! z5AS}uzi$q4{xCC0@L0`JXO2V1^X2&V^0wb*UlV&u{OXk-zph_YcIZ!15S$->n0d`t zrd*B{Q9o4nSlHS)EYNQ`B0g=#_D3~lC%#_&_WZ{6-+6j*dUl4M2e*F?d*JxR;IL{E zThGaF_txi|W!(Ir>8%S+Bi;UIoC|W&!>4=lA76R;+Pqhi7p^cdeauxlusf?sVP7tb z#Y#4wN4I+!(xXGNe_k$76EsdZ)z)Fl zeMlrmXWtZK1CImj95Wex7aBhlad>Mydznr&mz{%z!vXokSKAjYpRy^(^9MsCLt|;n zy7qmSID)6?^2#fu$QR7Zc3vy{H|EolN!iJ}ulXw3IlSP>n03D8GVh+UQ@wYLA4=_e z`S9;&b#?u0|oQ zB~NZl3i{nXyJo==CQZw2Q$qfKR1=>PqM&*_4O|!Z7#_Rf@t1#BnbE>)^EA^L7#J8l MUHx3vIVCg!0F6A)9{>OV literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/turrets/malign/malign-mid-heat.png b/core/assets-raw/sprites/blocks/turrets/malign/malign-mid-heat.png new file mode 100644 index 0000000000000000000000000000000000000000..026ec951a18e731cae9fdd4ec7cdbbbecb0ab424 GIT binary patch literal 1203 zcmeAS@N?(olHy`uVBq!ia0y~yU|0ac9Bd2>4Bh9`br~2K7>k44ofy`glX=O&z>@3f z;uumf=k49<{L5hs4j&)yV_I5r>6liC$+3O^+ogB{6%(dvEM40F^j&{-{$rJGk1ZT? zi_iOS3UU&PzB+Nfxt_-)6;DD)bm6Y|tQ9#<9HJk;Pg8H0uzc03L$$iMlT#YJITUjk zqYvCiBYxnn6N+k9&s(By#&i!$U&%eL9mp8r4ojF}l zjqSvOAM=)7fBwSCe6Q|j6DOX6sXt!LzT>F=rFX*zhU+5oFQ4zctZzGg;R}v#-h#8) z`x*rKf>Ijn6E{aEwls@~C*+2l7JjsHO6l9ryuBatbP_oh?g%t-Wu3t`IZx1E%3hgI zqr!8~o^Nee`7M6ANi-NvE^MikY8U8|x)K%AaKs?(dfo9O-r4IfpFe#h{66~{`|F~K zeeb7Ploe#jB>u8zz7t^CB{+FusQZzv4+KAcx>cOCp!V@;d;P8r`>yR)<9leuyl>e{ znH@PZ&bz&?{Z{AvM4_xx@SU+_OqD~->)shWS}%m-Zx?_4{_O9$z*)x~bNBuBaSQ*x zYtD90FYW+-pG-!!M`{N3?T?#I2K?H?xhJVEKBsK{noRk%Z%x0}?ptlr|M^yp{-w|6 znK!#`{%`*Djj_1lr?t%TBNNZGAMs6;3y8Y^=h@k$gsRUG|I5Q`EPu#n&ilWtvd*V} z`OBZ$JOz(gAI;J@{-Jfp|EC z1=Eh1J8Wb;bW4flvGkf342e%UK385bJZA3kk@3(24(7@CV_}N_D z2*f@sB>1d$-=CvjydR173HRh{vRN#4Z~1xao$2N6&wjY<+4WKE@$0h;(mEXm{5m@l zem!%M?_}I}{704X0Wn#@XN*hJ&)lE)wnbvm$FC_3vQkQG`j`Fm`pm2K`Gwfy*9RHI zXLK5{&+y+_(S1);)bvla=)EO>o*Nuc{gEzp?L5QuC-SQ%63*TP^FLU@684w%L9Nzr VS{h9^FfcGMc)I$ztaD0e0sy0)EV2Lq literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/turrets/malign/malign-mid.png b/core/assets-raw/sprites/blocks/turrets/malign/malign-mid.png new file mode 100644 index 0000000000000000000000000000000000000000..95c99e66e62f1210ebca6674b0fc171b895c66a6 GIT binary patch literal 1525 zcmeAS@N?(olHy`uVBq!ia0y~yU|0ac9Bd2>4Bh9`br~2~_jtNEhEy=Vy}h?fIFO<3 z;l!<53%P$E4Hd}A*%Bkb9hbH5!to;^{SoD%oR*wakwKnFvjYr_U5hX_H1H5>wAEF9WQEuxHv zy2unxSQfpzynma1%q&@%n!BsxzZ^V#^WxQP>&@rqe|vuHVjqLC#y*3+atj}EKX#eX z&LDjCF}KLWvv;dEZ;%m4v|{qPAQE3t_BqDFvYq3yKtlVrA1Y!C1QN}eaxRL_-@>Zl za-)wyIq1>kbquW>k2y9tX4Om*S|E^U%oH<0c>WSL4VMZb#%oWGl-K?KR9JJLe_u#@ zyM4d^a)m>cEI-2YY8oF2%PzN*7J6vU5)tZsT%Ak*LZ;H0;F^ZhcAr_h*7==wnX&E# zLwK*h$Q`9#!Ngff%x{$K0&{##{95jI@oZTC!)4*o7dA>c;V})h$JD#l^qx~cv||y| z8*973gjkbyj@hEZ4+K7TKJr>v=~59S$jB#p|84yB)$0B4Lh`@a&#Ot17I^46nZMw~ zkCfM^X1@A&j#nw>(h_DFE4#o3rn9oNU|^9BT!hX_BYPrJ&nf9}7DvWa;OyEh*{ z*{{X;FFlFzSWO;a*)(ip#@(g6QdiPkEpX)1g&KBiWfY_B%@`gcwpiw&VXMX8#E6nJ{D$@ zS$T&c^(u!rC}b56OtiB2v1|J~j@OLql=r3kr!RN=^+7*1Xg~XuQg;a^m3>cr^c-Gx z1>84!k*&A)&$Z0R$C`)C)wl|-{@5p9^D^f9m3cp#JlQlha)`z+xFHfdcbe%uCqcXV z?^da=HvZbhd{q3%HQTE{QZ_N3N^0?C)G*8aVWpdG)B0>#MpU`&K8Ne!@!zLBp6to4 zp?GK+15<7RSbk6Uv(n6{^5B}rb-}OaRn-{%WN;OH)qmGYb}{cd-uUIIz1uI&G28i( zb$#5v8CRCyouR}e^43~f>CiTY>Amj{|K9F;MExj>hO>(V_k-l|mCMty)6YA)rcqD$8N2Fnbys$cuN=XTxJ4%Marq}My%ZDc=hg4u#UCK@@Y%Dp z*L8;^Sf_eV*G#pK7iaq8ZM}N>PtEB`r$P^z%dF(skT#Q}m|10CCCd&4^FwnOI^U}> z4`L<7M%4AR|QSdzZYtoGB7YOc)I$ztaD0e F0ss@0ejES* literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/turrets/malign/malign-mouth-heat.png b/core/assets-raw/sprites/blocks/turrets/malign/malign-mouth-heat.png new file mode 100644 index 0000000000000000000000000000000000000000..aa7b11d00c60aaa91a5c092aba017a83b7af181d GIT binary patch literal 2336 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 O7(8A5T-G@yGywpNlNDkB literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/turrets/malign/malign-preview.png b/core/assets-raw/sprites/blocks/turrets/malign/malign-preview.png new file mode 100644 index 0000000000000000000000000000000000000000..865f7d8653667ad7eb2aeb2dc3d3d460cc5359bd GIT binary patch literal 3517 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 literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/turrets/malign/malign-spine-heat.png b/core/assets-raw/sprites/blocks/turrets/malign/malign-spine-heat.png new file mode 100644 index 0000000000000000000000000000000000000000..e10bf85567f6e8b251dae593343d290a31ae6a23 GIT binary patch literal 2595 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 MboFyt=akR{0B#=j>;M1& literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/turrets/malign/malign-spine-r.png b/core/assets-raw/sprites/blocks/turrets/malign/malign-spine-r.png new file mode 100644 index 0000000000000000000000000000000000000000..226f75928c407b788c163055353a35943e54037e GIT binary patch literal 631 zcmeAS@N?(olHy`uVBq!ia0y~yU|0ac9Bd2>4Bh9`br~2K7>k44ofy`glX=O&z+~v@ z;uumf=k48#euoT18XhkG*!a-%LGRbB&QoS=TWodz?z3JzN%han^v&9W3|PT|5W7wM z4KmYDKmGmv`t#40OIaEHUewog_i(UU%v}3JY^}1$1DAJ4w`WK$WKiEIcK>BbS4YR| zuT`HvuT>Ix!1C=;bc(CS0rPT|eXedT^G)OD{L4AI{p;Sv#g8|$oRD9uETUi@<)+~f zwzVsuAty_4A;Zm3YbVB{@UtNEw^rA>U+D^H$j^K0R&=xge7dxd!c=KcJ!chGKqFdk3p4#z2_EEP1 zvs}=xvvQeftM_Ium7L(KTjnFGusSODy0$~!mOI)}4eVbwG&^XoHP=TP`VOX6h`>^AqE60XaVS;^9@>t^)tKftO>}%V;J`wL#{sEHr MboFyt=akR{0B#=j>;M1& literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/turrets/ravage/ravage-back-l.png b/core/assets-raw/sprites/blocks/turrets/smite/smite-back-l.png similarity index 100% rename from core/assets-raw/sprites/blocks/turrets/ravage/ravage-back-l.png rename to core/assets-raw/sprites/blocks/turrets/smite/smite-back-l.png diff --git a/core/assets-raw/sprites/blocks/turrets/ravage/ravage-back-r.png b/core/assets-raw/sprites/blocks/turrets/smite/smite-back-r.png similarity index 100% rename from core/assets-raw/sprites/blocks/turrets/ravage/ravage-back-r.png rename to core/assets-raw/sprites/blocks/turrets/smite/smite-back-r.png diff --git a/core/assets-raw/sprites/blocks/turrets/ravage/ravage-blade-bar-heat.png b/core/assets-raw/sprites/blocks/turrets/smite/smite-blade-bar-heat.png similarity index 100% rename from core/assets-raw/sprites/blocks/turrets/ravage/ravage-blade-bar-heat.png rename to core/assets-raw/sprites/blocks/turrets/smite/smite-blade-bar-heat.png diff --git a/core/assets-raw/sprites/blocks/turrets/ravage/ravage-blade-bar-l.png b/core/assets-raw/sprites/blocks/turrets/smite/smite-blade-bar-l.png similarity index 100% rename from core/assets-raw/sprites/blocks/turrets/ravage/ravage-blade-bar-l.png rename to core/assets-raw/sprites/blocks/turrets/smite/smite-blade-bar-l.png diff --git a/core/assets-raw/sprites/blocks/turrets/ravage/ravage-blade-bar-r.png b/core/assets-raw/sprites/blocks/turrets/smite/smite-blade-bar-r.png similarity index 100% rename from core/assets-raw/sprites/blocks/turrets/ravage/ravage-blade-bar-r.png rename to core/assets-raw/sprites/blocks/turrets/smite/smite-blade-bar-r.png diff --git a/core/assets-raw/sprites/blocks/turrets/ravage/ravage-blade-heat.png b/core/assets-raw/sprites/blocks/turrets/smite/smite-blade-heat.png similarity index 100% rename from core/assets-raw/sprites/blocks/turrets/ravage/ravage-blade-heat.png rename to core/assets-raw/sprites/blocks/turrets/smite/smite-blade-heat.png diff --git a/core/assets-raw/sprites/blocks/turrets/ravage/ravage-blade-l.png b/core/assets-raw/sprites/blocks/turrets/smite/smite-blade-l.png similarity index 100% rename from core/assets-raw/sprites/blocks/turrets/ravage/ravage-blade-l.png rename to core/assets-raw/sprites/blocks/turrets/smite/smite-blade-l.png diff --git a/core/assets-raw/sprites/blocks/turrets/ravage/ravage-blade-r.png b/core/assets-raw/sprites/blocks/turrets/smite/smite-blade-r.png similarity index 100% rename from core/assets-raw/sprites/blocks/turrets/ravage/ravage-blade-r.png rename to core/assets-raw/sprites/blocks/turrets/smite/smite-blade-r.png diff --git a/core/assets-raw/sprites/blocks/turrets/ravage/ravage-front-l.png b/core/assets-raw/sprites/blocks/turrets/smite/smite-front-l.png similarity index 100% rename from core/assets-raw/sprites/blocks/turrets/ravage/ravage-front-l.png rename to core/assets-raw/sprites/blocks/turrets/smite/smite-front-l.png diff --git a/core/assets-raw/sprites/blocks/turrets/ravage/ravage-front-r.png b/core/assets-raw/sprites/blocks/turrets/smite/smite-front-r.png similarity index 100% rename from core/assets-raw/sprites/blocks/turrets/ravage/ravage-front-r.png rename to core/assets-raw/sprites/blocks/turrets/smite/smite-front-r.png diff --git a/core/assets-raw/sprites/blocks/turrets/ravage/ravage-mid-heat.png b/core/assets-raw/sprites/blocks/turrets/smite/smite-mid-heat.png similarity index 100% rename from core/assets-raw/sprites/blocks/turrets/ravage/ravage-mid-heat.png rename to core/assets-raw/sprites/blocks/turrets/smite/smite-mid-heat.png diff --git a/core/assets-raw/sprites/blocks/turrets/ravage/ravage-mid.png b/core/assets-raw/sprites/blocks/turrets/smite/smite-mid.png similarity index 100% rename from core/assets-raw/sprites/blocks/turrets/ravage/ravage-mid.png rename to core/assets-raw/sprites/blocks/turrets/smite/smite-mid.png diff --git a/core/assets-raw/sprites/blocks/turrets/ravage/ravage-preview.png b/core/assets-raw/sprites/blocks/turrets/smite/smite-preview.png similarity index 100% rename from core/assets-raw/sprites/blocks/turrets/ravage/ravage-preview.png rename to core/assets-raw/sprites/blocks/turrets/smite/smite-preview.png diff --git a/core/assets-raw/sprites/blocks/turrets/ravage/ravage-spine-heat.png b/core/assets-raw/sprites/blocks/turrets/smite/smite-spine-heat.png similarity index 100% rename from core/assets-raw/sprites/blocks/turrets/ravage/ravage-spine-heat.png rename to core/assets-raw/sprites/blocks/turrets/smite/smite-spine-heat.png diff --git a/core/assets-raw/sprites/blocks/turrets/ravage/ravage-spine-l.png b/core/assets-raw/sprites/blocks/turrets/smite/smite-spine-l.png similarity index 100% rename from core/assets-raw/sprites/blocks/turrets/ravage/ravage-spine-l.png rename to core/assets-raw/sprites/blocks/turrets/smite/smite-spine-l.png diff --git a/core/assets-raw/sprites/blocks/turrets/ravage/ravage-spine-r.png b/core/assets-raw/sprites/blocks/turrets/smite/smite-spine-r.png similarity index 100% rename from core/assets-raw/sprites/blocks/turrets/ravage/ravage-spine-r.png rename to core/assets-raw/sprites/blocks/turrets/smite/smite-spine-r.png diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 8c145ecf5a..c4f0726835 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -1626,7 +1626,8 @@ block.prime-refabricator.name = Prime Refabricator block.unit-repair-tower.name = Unit Repair Tower block.diffuse.name = Diffuse block.basic-assembler-module.name = Basic Assembler Module -block.ravage.name = Ravage +block.smite.name = Smite +block.malign.name = Malign block.switch.name = Switch block.micro-processor.name = Micro Processor diff --git a/core/assets/icons/icons.properties b/core/assets/icons/icons.properties index 0f1e0268a3..baa9a70758 100755 --- a/core/assets/icons/icons.properties +++ b/core/assets/icons/icons.properties @@ -573,4 +573,5 @@ 63111=scathe-missile|unit-scathe-missile-ui 63110=ravage|block-ravage-ui 63109=underflow-duct|block-underflow-duct-ui -63108=divine|block-divine-ui +63108=malign|block-malign-ui +63107=smite|block-smite-ui diff --git a/core/assets/logicids.dat b/core/assets/logicids.dat index 7898cd50d0a0cf9cd892ddf5c38357ae461aa18c..a3f5da8dc84490eca6b0021ecb095e32a5d094a9 100644 GIT binary patch delta 42 xcmaE={6u-fF+Mrg;@r%VR0h7%yp+_Uw4D5M-IUVg5(c*1#GK6Zyv0xXm;qfz53v9M delta 43 ycmaE&{8V|vF+O>=qQtVq^i&4E(!7+^qO_d+a@~~D (Mathf.absin(3f, 0.2f) - 0.2f) * p.warmup); + mirror = true; + under = true; + layerOffset = -0.3f; + turretHeatLayer = Layer.turret - 0.2f; + moveY = 9f; + moveX = 1f + fi * 4f; + moveRot = fi * 60f - 130f; + + color = Color.valueOf("bb68c3"); + heatColor = heatCol2; + moves.add(new PartMove(PartProgress.recoil.delay(fi / 5f), 1f, 0f, 3f)); + }}); + } + }}; + + velocityRnd = 0.15f; + heatRequirement = 90f; + maxHeatEfficiency = 2f; consumePower(5f); - size = 5; - drawer = new DrawTurret("reinforced-"); + shoot = new ShootSummon(0f, 0f, circleRad, 48f); + + minWarmup = 0.96f; + shootWarmupSpeed = 0.03f; + + shootY = circleY - 5f; + outlineColor = Pal.darkOutline; envEnabled |= Env.space; - reload = 200f; - recoil = 2f; - range = 350; + reload = 8f; + range = 370; shootCone = 100f; scaledHealth = 370; rotateSpeed = 2f; - - coolant = consume(new ConsumeLiquid(Liquids.water, 15f / 60f)); - limitRange(5f); + recoil = 0.5f; + recoilTime = 30f; + shake = 3f; }}; //endregion diff --git a/core/src/mindustry/content/Fx.java b/core/src/mindustry/content/Fx.java index c39515bc92..c1b50d78af 100644 --- a/core/src/mindustry/content/Fx.java +++ b/core/src/mindustry/content/Fx.java @@ -1611,7 +1611,7 @@ public class Fx{ } }), - shootSmokeRavage = new Effect(70f, e -> { + shootSmokeSmite = new Effect(70f, e -> { rand.setSeed(e.id); for(int i = 0; i < 13; i++){ float a = e.rotation + rand.range(30f); diff --git a/core/src/mindustry/entities/bullet/FlakBulletType.java b/core/src/mindustry/entities/bullet/FlakBulletType.java index 210efb5dea..26991e9287 100644 --- a/core/src/mindustry/entities/bullet/FlakBulletType.java +++ b/core/src/mindustry/entities/bullet/FlakBulletType.java @@ -6,7 +6,7 @@ import mindustry.entities.*; import mindustry.gen.*; public class FlakBulletType extends BasicBulletType{ - public float explodeRange = 30f, explodeDelay = 5f; + public float explodeRange = 30f, explodeDelay = 5f, flakInterval = 6f; public FlakBulletType(float speed, float damage){ super(speed, damage, "shell"); @@ -27,12 +27,12 @@ public class FlakBulletType extends BasicBulletType{ super.update(b); //don't check for targets if primed to explode - if(b.fdata >= 0 && b.timer(2, 6)){ + if(b.fdata >= 0 && b.timer(2, flakInterval)){ Units.nearbyEnemies(b.team, Tmp.r1.setSize(explodeRange * 2f).setCenter(b.x, b.y), unit -> { //fadata < 0 means it's primed to explode if(b.fdata < 0f || !unit.checkTarget(collidesAir, collidesGround)) return; - if(unit.within(b, explodeRange)){ + if(unit.within(b, explodeRange + unit.hitSize/2f)){ //mark as primed b.fdata = -1f; Time.run(explodeDelay, () -> { diff --git a/core/src/mindustry/entities/pattern/ShootSummon.java b/core/src/mindustry/entities/pattern/ShootSummon.java new file mode 100644 index 0000000000..3a0f1f164d --- /dev/null +++ b/core/src/mindustry/entities/pattern/ShootSummon.java @@ -0,0 +1,26 @@ +package mindustry.entities.pattern; + +import arc.math.*; +import arc.util.*; + +public class ShootSummon extends ShootPattern{ + public float x, y, radius, spread; + + public ShootSummon(float x, float y, float radius, float spread){ + this.x = x; + this.y = y; + this.radius = radius; + this.spread = spread; + } + + @Override + public void shoot(int totalShots, BulletHandler handler){ + + + for(int i = 0; i < shots; i++){ + Tmp.v1.trns(Mathf.random(360f), Mathf.random(radius)); + + handler.shoot(x + Tmp.v1.x, y + Tmp.v1.y, Mathf.range(spread), firstShotDelay + shotDelay * i); + } + } +} diff --git a/core/src/mindustry/world/blocks/defense/turrets/Turret.java b/core/src/mindustry/world/blocks/defense/turrets/Turret.java index 2342efbb8a..49d0766ce5 100644 --- a/core/src/mindustry/world/blocks/defense/turrets/Turret.java +++ b/core/src/mindustry/world/blocks/defense/turrets/Turret.java @@ -345,9 +345,9 @@ public class Turret extends ReloadTurret{ float warmupTarget = isShooting() && canConsume() ? 1f : 0f; if(linearWarmup){ - shootWarmup = Mathf.approachDelta(shootWarmup, warmupTarget, shootWarmupSpeed); + shootWarmup = Mathf.approachDelta(shootWarmup, warmupTarget, shootWarmupSpeed * (warmupTarget > 0 ? efficiency : 1f)); }else{ - shootWarmup = Mathf.lerpDelta(shootWarmup, warmupTarget, shootWarmupSpeed); + shootWarmup = Mathf.lerpDelta(shootWarmup, warmupTarget, shootWarmupSpeed * (warmupTarget > 0 ? efficiency : 1f)); } wasShooting = false;