From 31bed37976a4ebe9d4a0c333c1217bb8e9e3c83c Mon Sep 17 00:00:00 2001 From: MEEPofFaith <54301439+MEEPofFaith@users.noreply.github.com> Date: Wed, 10 May 2023 09:52:54 -0700 Subject: [PATCH] Ser-pew-lo Turret Animations (#8562) * Scatter animations * Do the same thing to salvo Like, the exact same thing. Corporate wants you to tell the difference between these two pictures. They're the same picture. * Faster salvo barrel recoil * Move entire scatter midsection * Cyclone barrel animations --- .../turrets/cyclone/cyclone-barrel-1.png | Bin 0 -> 230 bytes .../turrets/cyclone/cyclone-barrel-2.png | Bin 0 -> 221 bytes .../turrets/cyclone/cyclone-barrel-3.png | Bin 0 -> 220 bytes .../cyclone-preview.png} | Bin .../blocks/turrets/cyclone/cyclone.png | Bin 0 -> 1122 bytes .../sprites/blocks/turrets/salvo-heat.png | Bin 517 -> 0 bytes .../turrets/salvo/salvo-barrel-heat.png | Bin 0 -> 501 bytes .../blocks/turrets/salvo/salvo-barrel.png | Bin 0 -> 383 bytes .../blocks/turrets/salvo/salvo-heat.png | Bin 0 -> 203 bytes .../{salvo.png => salvo/salvo-preview.png} | Bin .../sprites/blocks/turrets/salvo/salvo.png | Bin 0 -> 864 bytes .../sprites/blocks/turrets/scatter.png | Bin 853 -> 0 bytes .../blocks/turrets/scatter/scatter-mid.png | Bin 0 -> 499 bytes .../turrets/scatter/scatter-preview.png | Bin 0 -> 779 bytes .../blocks/turrets/scatter/scatter.png | Bin 0 -> 547 bytes core/src/mindustry/content/Blocks.java | 44 ++++++++++++++++-- 16 files changed, 39 insertions(+), 5 deletions(-) create mode 100644 core/assets-raw/sprites/blocks/turrets/cyclone/cyclone-barrel-1.png create mode 100644 core/assets-raw/sprites/blocks/turrets/cyclone/cyclone-barrel-2.png create mode 100644 core/assets-raw/sprites/blocks/turrets/cyclone/cyclone-barrel-3.png rename core/assets-raw/sprites/blocks/turrets/{cyclone.png => cyclone/cyclone-preview.png} (100%) create mode 100644 core/assets-raw/sprites/blocks/turrets/cyclone/cyclone.png delete mode 100644 core/assets-raw/sprites/blocks/turrets/salvo-heat.png create mode 100644 core/assets-raw/sprites/blocks/turrets/salvo/salvo-barrel-heat.png create mode 100644 core/assets-raw/sprites/blocks/turrets/salvo/salvo-barrel.png create mode 100644 core/assets-raw/sprites/blocks/turrets/salvo/salvo-heat.png rename core/assets-raw/sprites/blocks/turrets/{salvo.png => salvo/salvo-preview.png} (100%) create mode 100644 core/assets-raw/sprites/blocks/turrets/salvo/salvo.png delete mode 100644 core/assets-raw/sprites/blocks/turrets/scatter.png create mode 100644 core/assets-raw/sprites/blocks/turrets/scatter/scatter-mid.png create mode 100644 core/assets-raw/sprites/blocks/turrets/scatter/scatter-preview.png create mode 100644 core/assets-raw/sprites/blocks/turrets/scatter/scatter.png diff --git a/core/assets-raw/sprites/blocks/turrets/cyclone/cyclone-barrel-1.png b/core/assets-raw/sprites/blocks/turrets/cyclone/cyclone-barrel-1.png new file mode 100644 index 0000000000000000000000000000000000000000..d0a09b148d4e05cf8ec709b886bdce127088d8f9 GIT binary patch literal 230 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4mJh`hDS5XEf^RW7>k44ofy`glX=O&z_7s6 z#WAE}&fANIe1{AKTn|oI9ne0zW!CN;-*ztSV&UMt^JKHZ<;b#)_so46{;YPcY6yJ& zvuLmV{ArI5*S_C-W&X1-49fGS|M$v%`*wDIklF$D)AvKV0+bG%_+%ccG=<~CX%-G) l1)l~3#zVLn3^+kTz4^8Of&tDNK1)DqJYD@<);T3K0RW|^OmqMM literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/turrets/cyclone/cyclone-barrel-2.png b/core/assets-raw/sprites/blocks/turrets/cyclone/cyclone-barrel-2.png new file mode 100644 index 0000000000000000000000000000000000000000..df9abb659d26f71bcb1cff20cd58c7b6f0b7b00f GIT binary patch literal 221 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4mJh`hDS5XEf^RW7>k44ofy`glX=O&z%bp@ z#WAE}&fANIe1{x(TpcI>cAUHWP3ww>4FO9#n_PrzwXK79ZTh>4fuZ5%olD$vUjB=) z|9$iK*PPPNlj0uexSwCYN-A0AT(F+xgX^Eo=PJb*9kAc!GQ-Rvw4WoG{e?q=0plSS j4q*i!Oa=o^pzxUc&kVs+QWZQPXES)Z`njxgN@xNAYPv=! literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/turrets/cyclone/cyclone-barrel-3.png b/core/assets-raw/sprites/blocks/turrets/cyclone/cyclone-barrel-3.png new file mode 100644 index 0000000000000000000000000000000000000000..c6ed1cb0d383fbeff98e4924154a757dd98d569e GIT binary patch literal 220 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4mJh`hDS5XEf^RW7>k44ofy`glX=O&z%b3z z#WAE}&fANIe1{AKTrR49Z?-Bgd|T|?+A>K&YRSeo-%qU#`@EWgq2cPCOZ+lhugyCi z{l0dG{r^;N`wuVw-SB@L9_v2yr~%`?-v4IVEs9Kkr0UZ?GHCb5n>sXH$GI5+p(qIQrPPgg&ebxsLQ05xDoga7~l literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/turrets/cyclone.png b/core/assets-raw/sprites/blocks/turrets/cyclone/cyclone-preview.png similarity index 100% rename from core/assets-raw/sprites/blocks/turrets/cyclone.png rename to core/assets-raw/sprites/blocks/turrets/cyclone/cyclone-preview.png diff --git a/core/assets-raw/sprites/blocks/turrets/cyclone/cyclone.png b/core/assets-raw/sprites/blocks/turrets/cyclone/cyclone.png new file mode 100644 index 0000000000000000000000000000000000000000..ef964181073d303264d93c567d60cf3e5f1be29d GIT binary patch literal 1122 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4mJh`hDS5XEf^RW7>k44ofy`glX=O&z#`-6 z;uumf=k476-NKF{$IaWmS`YoYd+UCGQLBpn z`GC`|CTa5wxi$4$ZGOj3+x=bti2jL3rVI4{T>JC0QZ3Fbka5;w^(CquoDxnyT9&W~ zGQRi_EVm(R;-mw54X;m>t1dXKuA;Jm%c14}yT6_$58me8|9$iJ`u$nv=k*$W8MJDY zo@|EgL3crnu+wks|7xwbF+dN5FU0aKfV z-9;}Zp92#Pt4Db>aJ;Baeevn%Z`&i!A}T-ra=%pc{P}YM&Z|tvMC=qb7kV9#IIO-z zMTA?T_(w}iixT5@#hRvQr)>?lMeGi0HZIjn@_8t{QmCkrTO#=fOFPSo2E%s$1*!*F zme@R;W-?`=;}pfOotCT_yf1EB9_d^Dh1qq@@_gAB%`A1i9B=1@{5bKo_1eKe=g4=wE@O>J1%=ASVkKxctU&HjUahc_tNADGm(O^VZ%>6nn+ z#UQ6|(~gPRUG!r5UCa>fZ;`dwajRvk!?xeY6Yesl|FCnOx}a#zhVK7d8`h^@nr_e% zzGM~alNNs--=-)=)rZ2)lNJOy`2IK&pt3^vz*WXouS>iFR2`B&v>jQS%9rJ(Y+2+s znWe&0!2gtx$M&B`5-dfWgx0OsQ@EK%xz^hzopr04Wp(T>t<8 literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/turrets/salvo-heat.png b/core/assets-raw/sprites/blocks/turrets/salvo-heat.png deleted file mode 100644 index 75573a5f930184aa31a514d183c4eb6d7bddbd34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 517 zcmeAS@N?(olHy`uVBq!ia0y~yU~m9o4mJh`hEk44ofy`glX=O&z_{Pj z#WAE}&fA%L{SF&Qxc2{)6c7?(<_>mGQ@hua{=|32gd0|6NiPF5gB&?Tja3-0Tda(J zmA$0Sebtm(eUFNBmltxi6<*j8CI0PR{hHDvJ1yF?n~vr<3Dv4fA4#g{y}O6bGT!q&Md9j<9)YAKpBCKYd)}rno&7HN#DxNGn!5al%A0PtEttUm*Zblc zfsjuD&$s^A@AU8fgJqEmWNKG@f1Y8)vUN|QL>ne5)Tm*M=;)lhWUA~$1_lNOPgg&e IbxsLQ082jLkpKVy diff --git a/core/assets-raw/sprites/blocks/turrets/salvo/salvo-barrel-heat.png b/core/assets-raw/sprites/blocks/turrets/salvo/salvo-barrel-heat.png new file mode 100644 index 0000000000000000000000000000000000000000..3da20590373e9f7df2c98e6f761ec670faeeaeb3 GIT binary patch literal 501 zcmeAS@N?(olHy`uVBq!ia0y~yU~m9o4mJh`hEk44ofy`glX=O&z_{Mi z#WAE}&fA&0{SF&QwAvR-3J3`?a|($j^rMgQSX~^wV>x??S+W~e9>PPcQP*hF;7hG%}VJW!+n3$!n&DD zn;qra_VO6cNs<#dtx~uC+iu7{kI{+ay6JCLCT2Ic;@O<> zkE*j~FNk3Je)N0#vGU)hAC*hX`yLrq@Yyh?M@DLvta+n(b#2!t8H1xOHsMXbWDHzq z_}FCdROEz|3$2ozzns9toH~U-94dN!rI}E>-xXxp_dj8?* zMH$o9iNCzH^tD3`$HR4T>w~1XO24?7{bI+?4k44ofy`glX=O&z-Z~| z;uumf=j}Datiuihtq+$!&{OxAX)VE&SHt@C-R0*hmIv=Sstc?T9$Z=YVz;K`M>Y}#Dn4m z&aYxcp1B*;yxD!8#a*i5$mZrGZT(D>*^MmN$&Sj|HaPYvH(N`@sH24Z}3S8PQELj|J{A?tja8(afHS zMWFV9ZM6f7H+u~C!L9r^+z$Nx#lI%sA$Ds{Qy$9$y#u`rcUX4_Htc3FXDSeX;KuNd di2(r^_c5*v3AO)v?%!&Vpr@;!%Q~loCIA_MpWpxh literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/turrets/salvo/salvo-heat.png b/core/assets-raw/sprites/blocks/turrets/salvo/salvo-heat.png new file mode 100644 index 0000000000000000000000000000000000000000..48482e269780d74a7e595a238699db44ec93921e GIT binary patch literal 203 zcmeAS@N?(olHy`uVBq!ia0y~yU~m9o4mJh`hEk44ofy`glX=O&z|iXH z;uumf=j}B|u_gl^hl5v?3;!EeEZwo{JZsl4pGK?A>K|^qb})d!KiAa~vu2+D%epqU z-zfX+)9cL2S$12J(srJSk;^am^11y(?h%oXcb6LmA1#0H<|}zW_vl-}_)Vk44ofy`glX=O&z%1qI z;uumf=j|-pZs9 zQn+#QU(1F>>FHZ9x?Sp8dqQMokL!-ZXYN)%n^*mAZmy00No$`I+kGgK<-)}QYob>dK(ITaW-_KOlejJfb@=cIVaA#6|_4KiRNYysZ zDL>wBzP|Om|E4`kbCR6`Sk5f7WvDYWRBP$dUv4e6rS@jL;ttM&`%8|nto%{*D?s=L z+nHs1A8eCJa$57F$WBph15ZKc{{QL6v=*Fed04S=Udm6au$ubUON!)@m`*dStYA)c zlAZG7{c`nlul0m2o>uT0$j)Er_b0Wi=kw3j&v6}`Q+}lXjb*42wg?os!})KAX-VAv zGkx8UC4_4p@#+abtB zGMgH^#PX^f^yE0^bA%c#o8>Gy|A5sjF@6`f25v1a4Z|spS3b`vyXV1DpzatF(&FOO zQ_*10!gPjX!kTA0idp?;FmIBZC(JqLFT=&Ed6(@ACU&q_Oq`J7-l5dW8T2tGZ^?-x zExWDflpj?-`123b?H#kOO__XX&I=BW?O!j*?d9`}`*tPVX$s@IKD|~>#mXbI6wDqR zJ(&9`u7`8dmbBF|O(z(X|DAlG`?JTTL*;C9v#-5^=|OA1TZb3CK07_U$;@{hYtIj( z_jcjuYl|Bfa4a|!C&Ve^bd>qwM1f7}H(tGeKOt|KnWK{2jX$Z=YIFnQSnusE-drfW zGf|cE_)_a|cm9%n&mLqm?c+NiY^v`W)_m#WLHEm#8e2{$o@)8`&oBGSzvP0{ z?|kmMUMX519UlEH6Amr`LB?H@sWfV&0JQdg_6y za?Ul?LiYsLgfqRqt6K0du;JDBf0ybG_VXnOIz+}Z@P2n!e6x+&ARh3%C=@IWIJA)Ysm-wQ3PVwC$~ZD}{EHPx#ps~c%N2z;8yaf?RTQjZMqkm{XK6|w|oBz*+;uSulXKpt$%B;m);eF<_AT8ye`Cyw*co#k@-DdcJiY%M;})la?Rx2JCvk7(_Wq&K za3^|p;I}D^SDZG4Pv0DNvh`N$R)#m7zij_KW!|u_q{=_woW|d6j8DGvJe%|8FtbNd z=KF>?hNsn>&*wbh*tgX_y3e<$@O?uV!$1Cy@i#05Yqs3~z5K+}i;Op~>GK|_%dOp1 z?tk?JqisVN!?$g}7XQ6x9lMu#%h#K13GwUqZ@pi={M6H}%v-)LEoS)E^KJXL>hB^u zEvyo>5A@W%zppaAPiBK?g4=$X)lV;7WZuS<^LBdj)R+~qtJYq>mi>C`*Qj|%ix!qG z-2Z&7zU?RH3;TuVB<`J-zAC{8+j6MIPOc zRDZQqxWD!5<%gSDG8tdS)$*Sx&;6_SA@b0b2BjZSe>oyCSws$Ae^u?US3r(W-t)$+?JOTm7U*(De~xCKpt9kfRKxFiK~Cqn4%qtZ9^B6M z;Lr34AF`PX-g#$cGn}jTT+4gFa=G7JE7RzDhSvx8_)XoVYQw<5z~JfX=d#Wzp$P!Z CN2~(? diff --git a/core/assets-raw/sprites/blocks/turrets/scatter/scatter-mid.png b/core/assets-raw/sprites/blocks/turrets/scatter/scatter-mid.png new file mode 100644 index 0000000000000000000000000000000000000000..b33adc2c1775adc58912ae666921ef9bc5451ad7 GIT binary patch literal 499 zcmeAS@N?(olHy`uVBq!ia0y~yU~m9o4mJh`hEk44ofy`glX=O&z_`}a z#WAE}&f8grc}#`^uJw!Vv`FPKnX)$~ZJn}ln+M+{tDT%z=A;HM;Pl%fG3m#7_fLDW zSeee-yxE%0uD~(t*}>`qPqT8TD>LXk+nm2~$&{GKl_j!o&s03lE)ik!>fGfWaJFH$ zBFhTq0Agf+gkl{E#LWhk1JzPI{o1pjGLt=vc*nL%z>dQSJoGll|L* znp_TC2?_Ts5D$oY&c#_M5X8PfjirKL;yHs!osh|_b*w#Vs}C+a&v^Q370W60gZtjc z&gb66x#3A~knRJ`gG=>482_AeX^X$+#m9@!Hw1l}{gyBGdhDMy$9*QeWt#o=-RoT{ zjlC%LD|RWqXN-@Zr@zmfr#V?gUBx)Tt4XQSVFybQ=c*@+4?N9`{DfxJ>eT7CFqAT6 ztzhyhWhmGy#_;1SgYN;|lhR(CB8>Yz?*(|S(0ibNQksi1lr_eCAKO;dBYF$?9DF$f zKpt4Z93aeeg>eNZqv`%PkN@`GJGJVr-fBDM8A1|!olXfQcqEv5Wqxm%B{U;8>6Pz> sHkPvPIs3T(xHldD&)lStG24IVgDEketCuZgU|?YIboFyt=akR{09fk44ofy`glX=O&z;x8p z#WAE}&f6Iq^Q0UF+UngaCwN>@aIIuN-5WdmN+pYiz!b|smHr2}0-S}P8ZP*@Ii@RP z&ezoZ{Iv44=Tq*4E7tsY_CF%6oNvaAAM1CntUdg@-M#82(}5(r>R|87CZVq@!@uU$ zXUu#*^Rc3W=$2h9>qQNu)EMuvRy@{9Fr5FesP?1IL4Su0e|LHn2nw{R?@Us$g~S=%KVV zEK`FQw>3Qa(9+%##Hh#Y)4oW`i={`=W@4=Ox(35m^-Wnq@0nIg>pnBqdA5Id$z_v^ zdUId>SoyEu|A!lwOgrN)I{ld7zJ+N;hs51QO>eV4L^X)dE6#nj&+rD5%0tVe1?i3Z zerI_maGu~izpzB=$^-)q1yQ@BZ|@3iFF(Ei-t>9QeCPcwZ0w&-IWQ@~i2FzrbG~$> zIM@B~l65VLS6F#k)pu=n@bKjfU3M@;`E=%jSu?mjzD~GW)qXbZ^6#5cLU-n|uerAS z`gKjtYdl;J&V4^}UcUWc_Ms0f?uR~o7WdTLyZoZSHLeR&1i1Z|s6@1|vur-_vt-Z2 zIh+>Sjm;(&2l)9psvAmFkNo)eHv9ekZ@+6_?iX)mpEE1Lr^)Sy%#~%1nhROZez>%D z^4^$VhxmD&oe%e2eZJGa^-*TQniamy|E51!uI|90&)>zZFb z6mPQZ7EU;~Q=#>h|AKsxzKPb{8U07Hn2HVy#|ee7OlecMQ4!&u&~n|)`Op^LD)9%s zznCW)KK$m8!n5KWlf%50D{s!LrU%I!WftuH(BjhclUcBj--3H4NUIw;nPsp5M^Q(*2_0VW8nY* literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/turrets/scatter/scatter.png b/core/assets-raw/sprites/blocks/turrets/scatter/scatter.png new file mode 100644 index 0000000000000000000000000000000000000000..b37f3f7c535271bbe6674a8eed776c82a54f9ce9 GIT binary patch literal 547 zcmeAS@N?(olHy`uVBq!ia0y~yU~m9o4mJh`hEk44ofy`glX=O&z(wO^dF2iN@q6#}xRyE2(c|r8|HWHT7s_rkaD@$+AQ$dUQ7m-E+$m8^Th95~gM z2=HrEHQp^VF1pGxJ!0kpQN9293KcwIn0 zVpc-Z0n?-0VQMbY6P))XBr?S}?-V}K`?Jx*GsRj!lkxIwMTIjhH@pQIR;==}br)n; z5_`nj%XyODrN(E2i2jcm3AL*J;Mm~!xx0qBeCO25rAB>=85kHCJYD@<);T3K0RS*X B=WPH0 literal 0 HcmV?d00001 diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index 6a7cebb2ef..b329d38edd 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -3055,7 +3055,7 @@ public class Blocks{ progress = PartProgress.recoil; recoilIndex = f; under = true; - moves.add(new PartMove(PartProgress.recoil, 0f, -1.5f, 0f)); + moveY = -1.5f; }}); } }}; @@ -3122,6 +3122,15 @@ public class Blocks{ }}; }} ); + + drawer = new DrawTurret(){{ + parts.add(new RegionPart("-mid"){{ + progress = PartProgress.recoil; + under = true; + moveY = -1f; + }}); + }}; + reload = 18f; range = 220f; size = 2; @@ -3130,7 +3139,7 @@ public class Blocks{ shoot.shotDelay = 5f; shoot.shots = 2; - recoil = 2f; + recoil = 1f; rotateSpeed = 15f; inaccuracy = 17f; shootCone = 35f; @@ -3479,12 +3488,21 @@ public class Blocks{ }} ); + drawer = new DrawTurret(){{ + parts.add(new RegionPart("-barrel"){{ + progress = PartProgress.recoil.delay(0.5f); //Since recoil is 1-0, cut from the start instead of the end. + under = true; + turretHeatLayer = Layer.turret - 0.0001f; + moveY = -1.5f; + }}); + }}; + size = 2; range = 190f; reload = 31f; consumeAmmoOnce = false; ammoEjectBack = 3f; - recoil = 3f; + recoil = 2f; shake = 1f; shoot.shots = 4; shoot.shotDelay = 3f; @@ -3776,7 +3794,8 @@ public class Blocks{ explodeRange = 20f; }} ); - shootY = 8.75f; + shootY = 10f; + shoot = new ShootBarrel(){{ barrels = new float[]{ 0f, 1f, 0f, @@ -3784,10 +3803,25 @@ public class Blocks{ -3f, 0f, 0f, }; }}; + + recoils = 3; + drawer = new DrawTurret(){{ + for(int i = 3; i > 0; i--){ + int f = i; + parts.add(new RegionPart("-barrel-" + i){{ + progress = PartProgress.recoil; + recoilIndex = f - 1; + under = true; + moveY = -2f; + }}); + } + }}; + reload = 8f; range = 200f; size = 3; - recoil = 3f; + recoil = 1.5f; + recoilTime = 10; rotateSpeed = 10f; inaccuracy = 10f; shootCone = 30f;