From 38d9bc83a3bc8c9bc152d4844c89c062c086d629 Mon Sep 17 00:00:00 2001 From: Anuken Date: Mon, 3 Nov 2025 16:28:46 -0500 Subject: [PATCH] New serpulo core unit bullet effects --- core/assets/sounds/laserbolt.ogg | Bin 0 -> 9236 bytes core/src/mindustry/content/UnitTypes.java | 62 ++++++++++++------ core/src/mindustry/graphics/Pal.java | 1 + .../blocks/defense/turrets/BaseTurret.java | 25 ++++--- 4 files changed, 61 insertions(+), 27 deletions(-) create mode 100644 core/assets/sounds/laserbolt.ogg diff --git a/core/assets/sounds/laserbolt.ogg b/core/assets/sounds/laserbolt.ogg new file mode 100644 index 0000000000000000000000000000000000000000..ba034545dd004ed8d7cc9287a0e7b7db66ffa310 GIT binary patch literal 9236 zcmeZIPY-5bVt|6!H+ID!W>L%UHbyzdvizc?Ot1hGLpdWzg5lr)|NlXZ9gJX|ASM`t zbb?fbDzTjta`}%2CNe{eGGSm~h{!C+(DN@!SIEgs3Iki9;Hh9_U}RumZeXII5tN!z znw*)JuHc$imRXdamz$bbq6xBskriTwrjv6RBLfEm1B0QD!qJ8c6G9mn1Q-|+R5bY} zr+I2Fow87)a>f)75bLNx=Zq#m_vm&RM2QsP`2u zu*~$cSgyd{75KoC^Uznd4TCt#s%jkqcvyaisC6oQEUanZ&XZ1>B%LONH-7S~AdzKL#o)li;BdT9=6IosYmmzEA{};c2%lhJ z;9zhF(m7gW;$CcWyx8V=v5k9)%gHG|XTSLHgOxBafuo&)!NE}GXrau>iz@y>x|fSg z!;5XN7yDi>jSUBd2!7lMPA@DB42pBpre!s77*9w92MZ{mB^Gix^FVB3VPNQ3_(WmW zg;}4^TJp_$x?rWq?8^r`LuRY*TsdPlI0kdhNj{!ad`|P!%%cltUYJ#U&XZ@>QV6S3 zXg2%Wm6v7}pObt(hwqqV;+*1hnU`jg;~#5>=c<@e6DlKZ1t@>Lm=jX z4J|&mGH%YfgO(5H6rbz7H9LDJXY8Efb3aq&ygSPY5<^cu4h#$|i8myU&23Vs?PE(4 zQCy}tS+1m?Z}I}e6Piopdi&hGRyGF&Nvba`X#)FPfq|h#0Gx_p1UM-}Qt^^WU0SC! zHlHy%tpg&~96o3Ddc$D>XCA{Xm%MaLuZAV}Zhbbdc%7w3_R_7_qO_Mz3G&ih3JyO| z22n_v;K(Kk&LnL!icV=RU(mz_2~J4FeNZ_sD0>kJo&P8kD5M%FqFw>Uu{TQZU$4D?y*FOG4LxDOa}I+OhhhsjPfkhdF+4t}+0Tg+62Y*XQz&wL zqRh#OD&Ct^d@t#o{bb_*+2o?IYoLj5uxRW>(bCIesljHkmrYYIho)XFOTD=*HF|q( zXfxEu)#(!CmFdNoKlG{hEvjtLD7 zy=vln*`)EpgsBV+k_-$_mMptc#V3?B!LrjagTwQP%+VODmva`!^t4YdB4u*x241C8KWqg@syqUp;3Il`Z zWd>gn#O}Ng$*EV*punF@*7=3DhnJVb=r3 zt_~)l6j=h*jK!`%Q$~LzyBth>9YTDe%15cu5TIoUFfuSO@-Z+lia9M*)Mje1U}R{2 z>@Z2e^Mgr4a^we_3Mn7q2N7a6{Il3E!*T}$gTp723OO78Wtx!jU@$Ru$Uc7HW6Ff=f-Gc+&=pK^e^ zX|ab81B1n+lt>1K1s;=985tTR*Fic9Vl*4We@uFxJGB#*1Ftjg<5G#;5&D571 z=`cx$J0X(6m$^d9L4*;cmAr!ScVKCzg#G;`63LLKkR zE)!ETXD#bgGV#9bA~^4PF$XvB*)vk3q%psv*zT|>ct6uF|r+u2?dTH#h(}GwPr%v)(sjws{NRySJLDqtyK{kS;wQUUx!zTs?j^rsx zXDpwqIC&X9n^P>LxKyI}oaIW9WKa`%$|S?*bBg`EPR=MkXQ{q4<&5R?Ig^8|p3f=f z^U_>ea?bMkk|{w>FXj{nd1=lqK4;0u-~b8jt{guDp%8Fzi!vN|0E(`8>Rrn+Jtr-z zoTol(S!ULxC7EE6SvKdPpGdmbOe@wDEwGa~Kn-zHBk% z&}qb=e+O1&>66ac( z9U@zLjn}Bm742gam)a!6z`@DD(Bs%)_(EmMBrh*fryffU)v42>y4E^%7;-FKawRIq zQ0%-V`@$ttqPjGZf%G2Dtvr$lw@Zj+duqqt;BP`2T*sAOZWty7}9 z4Ub7=>v-*)5|q91s6=+JtH$hTkZkr^Q_ZKv-W#t*C9m14wzy}K;jyUfHCwMKO$jnO zCK9}6>$O=e2FJcjB(E`i9yM9$&=0v_-HlhHvV*)dl~a0G9*ZjW^WseH>D9eDrT82x zgM+OFgM+Gsqq=0MSmI(%ak&O?#O!2b;BfLXJO)Z(pmY_qM56eN<#UA=P)}?L2Ux<9 zL$O7`$wM+3Cb6((QqZXx#pgg0L0+1wORqq5Xn0sfZINSjW;SlR!;tsD!2}NDzcU26%x~ zgD^-mqOKn`o=+CQ1ieRO$pM1a2XgD zFoQ}zWi8z!e#Yx;nA}B-d>p`e_5=fi0Q<%**P>SU6rJ+)Tz>3 z$iraa;4y)Tfs30*_OPpigP!8z0}Bd#EY#t_Iscz~+K&Zq-Ss`^b@+B#aAI-162W|pRwdfH}| z7PpSvICJ6brTyF1&73)FHZu;7Ppj5 zH|G4D^Lg`pb{6J!|Nl>C)fWo=vzPau1;Z82HErjEKYkai6J!WbH;}e#i3)afT6K(} zA=~DeLKjm-!|c0PR7yp+FYKNtzvpUf>OK3%{Qri%_N*-;*13<`cZ#u3 zy5Z$n`0Zt^+_O{cM%_sg0{``dM853u46*-hxo-KlTVWDgMB1O7u()(p!h`Abghflg zPT>cI!&!|5b@R@r*BTvvZW;XCFeh&R5p8M4Eh6n1k9O~rT0Svynuzk#sijY)CYY?5 zk$9lT_}!vf*?Bq-v<1@B*G0t%P7zssE;Q+?c8pQ?YB@BKY*HT$s( zQ)#i|Uk`>YBB~|R{|JRYa!9)vwB0oK5ap{|@2ivpPAH7UO zYsD9BDc!S9XJSg&tS(mmrcHd;Cwd62{#!RmL9}CHMEioNUFWVQ<%F&d)!j7zr%u2J z7t!^&j1aq7m zFT4_Am?B#K&*arU)>yx052eqW9-WJ4ySsgX_GN`hCl=W&sLS41dDTJ5TDDu z-q+sah)BC9#NZ+t|J(TbnSUP(cSd>yZC>{1_5NbtckSKGQ6bL_v420*Ae-O__nLq5_+L zFAEfj^$N|(>5k*q$`(yH>LtnGV$|KQzhRCKZ?achw!L)~#I_vNqb# zC8Q+FVfBI)E3U0ru;6Mm^Nog3h83&2wEP%C)b?KUQ;}lOn*1*zn1T61?;MfYx;a7{ zE*_ZGnc(Hx-*HsRB``2_%Ra}$e{C6jxJ-{2AL0v%^5HUlAeqRnWjbjwYlKlyj!#aA z!L5B?ZU==h$garO*ZrFq&hp;l}dI%Xg%4P2}rS6VOdpX%rDSE-WtF>GpNow4FxQ|R6hwrdLIWB%v$AaD>()&$eDa}*d9~S02?mA+G2M(UQo0#iRy8#-y$A^j5OoL*FxARn z6cvy=w?*StbXRD|1~su2D>Nh?9Nb&Cz%iS*fr}x7(V;nP^;HI`UcR|jj3rHc7Z@A- z_H`~<)V%k^%l=Dx?4N~Zx0p@r2{RD4+;$`A{%C=#R&WY}n z2_HgsZEBU-ae0CfgF~+5N3Z8mUzc6c_3tp^F+a3nV+4c4hOHAXZGI%z7j5yb^1~Iz zBldm&OgrNbc^_FYVcFUD+^GlJQX5+toR|`NGMg-o#3CXh7F}J$>cGvwut3;BouMxB z$eCsjG0)3^2RE5)*4W^9a?QeplS^+;eERv)a{c)~&pdy3z{lF@?#F3Ok@*`phwsho zvrAB|TGw57F?XlD;HLsnmRG4yr6L+K)A`femuYaFYSKKn{%~ix1jDm{X&GCS9JL-q zaqya!`tb?yupgRWZTe!R_yzqdYf^Pf1Fo0yGCYvdzjjSZX8{98*HY0nky093s}^ZB zurV;qWnf@PILj5bHt8r=L{efRvsqH((#)h;YFtYh=5_J59Gv;YUrWKXc>dFv=Vdy3 z)@*2T^l=FJMf<1tD!G3B_OhrX7R5@{b_poHeWoC zsxiF}xRd>t!KA@$F=Gi+gC7F}gI(m77qUlgE%4f3>#?%EM#E1`w~{?p`r12Q`CC4= zZmV|qzn`4j=>7Rbqs|t^?YSvwX(x(oCq-o0u9|QC(IVMI=?;`#ORnK5YTXd>sXvl#0I785RvGf%r*-qHU^_5t9gpEQ%sB! zXMCF=$-of7WW`v*V0B@kFa!6SHOWb{(y~m1`4<^%(n;i=l5}zYx3~5`b=*!IV``RG zxo6Ixq$J_8s-uS|LYtwBDN9uMfYb%X1X%_KhI^4qsu*YUN4)vB@LJ@f%_kl)HOp?; zAwPZ9B%$es2K?M7=I-11M&)QC^D*wj*RE|a$egt;c8&%g6Wg{PrPUfMjtTe6X6(Eh z7oxm$;yY1BB|cpX#^Ctt9UMx(-HUh*uz2e@9Dm?yeSW2 zb}+tSymIiY?vur4hZ{-{C!O#-a*08NVd=Jp84?W45|!bbJC^RQKXL!4(1D~J5v3VE z0Sry9459q%lzSO6)_z@h|FV=Y53`T(iEV5fq5`ijxX2L2a4&O>kFuU#vHP|iQ#LQY z@O+~O^Yq(y!b)ETo#S(QF1va0R{04=XI{EA+${azcl6<^?D$to#&b7axp|K7Dr4z~ zqjJHWe0-PQ+~IHMa=Y4}vG$!A!{P%biI&G+UAmJXVQ|gPV8i`GP0T%lZV7h}Gcc?P z+g@a`X05pG#)g&~CVa9?3S3k{~ItUscicsW2tRi$(Rc;wlaUz1CxV z4hA>*J37-?8 zP5Dd2A59GgJ-vw>`&ZjZpV;=+E_7yRbHcLexo+YkbwdUeN zrfVy{HcZqP75w&?XNQ~E;ZTM!(?v!T_!F4EUGr^_me}cRX1!zbR=oqinkEQoh;moG zE_8I=1ccTxZaC1C61l)Ga!!1n$7j7IGUw*qd9Yfkc&_Hf zJGV;LJx@^;yWX%!ORIs2fnnBGhPce0H#g(>7;YKe+RK!t#k<}+S?GL`F~f!_-_|SK z^l5rnIWHn7dp=+36fIHXjXRiyjc4D?xZE*Nbj?Aro*yRBA;P8tO^V;YK7A5hypvUgfq~%~1H->gnTKm< zc{7~XHoK<4dU*9`i$&U5>(*7rZQW|DDKRhI`^1cu8R2IXMU4#^wyqWaEn*!VeD&Ox z?c$+ZyDX-PE_&f$&=s~pfz6qB!K#catjr0$*KR1at>yNd?EiFiyHmTHz=Rf~CIRWy zszwuj+AO)ciiQ8Jr_Y1JqfGP3LDVOAf9jqHQRz$pc{Yi~&!58PUFVp^c&u(By zRABqZVY_ox9s{Gy!n=KXAz!59`Y%jg{fbTCfZ(mOFPs)%`|yj4VZx-Y88dDO8XG3E zESSmAAlj$Epm^$OWve5rWs}(qCWfS|vwE-jh^%#E73gN&laPJvIRitNmO|E6lS6h> zyZ5gD_d8_DOn&ZdLA$L4t9al2p2BnRKxu0N&xS({56;yto9!qoZ7#jO{P`Un1`e4F zUIx1rd$^lV=&i55zVGz)BTB0tUj85xayO*B6J|*i>T16cv!vw9P+SUe% zEDTd-F*JxS(`j!is?h0Qs zPMqC>0$S@f2AtIP_Eg%Wy6!c9=Ii#pV)oTvx#OQMIAoP;H8*~OcMH$H@I96B5v(85 zul!%|Niweb= z<>%t0lD08g72R(tnJIEK*qQ&aS7*j*#aFERLht;^5@%^J-|D<-+r!DBf2y}~GaZ;b zOEL8JhsvO6PXWmbVWGNCObH%Y3^^OLwAeZ%JYG#*c1euEa6;axzw_Jn6=%!|layOv zmT~L!a<_^loWK7*tJ&TB*ygVF-j(yJip!(Q-|fHAeYT-~`;F>7g&V}09vs|NEGNOh z@TXmh=fSjvjsH@_6qvs;dvvfcd33yVVwkbX^>1OQpg@%Dr`3}VFn|XTSRN!I1`t4# zUmiJAcCyZ$HoeY1F7!_+r^c&YzP{dXCFg}6y&qmJz+h(T9JTu4=A6x|R;^ZHm~9lf zJ!=-TlAB)f;ex!F9!?R42Gt3r@e9ZnOM4dlC}I~%kql% z{fpj}|I2&--fZ)x0|xnOwm#>rL?%yF`Fi7{ovlP#Llwhg`5t|_)A~C;$>~jttv_AI zuCSn2|L~%M6r-mi3H^`!7rflVP#5~AbZeMsgYQ`Z-)ys*RbBhnU0cAAv#NE=wuhUy zn1z@+F>Tmf7_zOCiO*s3cHmmbazuw+AZ_RD% z)i2+4uXOTOyE*%6@fFs}iB}gZWtMK<|4?>0Uw^uR#23--$!ra)s<>R7c9t=DDeASQVQlA2^FI?8TqwRUd z>Q$>=NibxWh%+!5xICY*KrL?S)Sx$U%ht)1^Z9PgVta1XeC$6wrcmW#K|+B>gWo~eUNF8(Ks#rU}vtyi7VC{ z?)4mQpR{6mqh7?UuvLER)B`j5_&Grhw~#+}P5OKcrp&7!ZVvflb%>u4%wBpiz^P>l z9~*;B!{*2L&hG5q&7?f5G3vq;!?LRUTHCp2<_KO*yL|8ZhQJ4RSKWJSq3`!pLry~c z+vyv%m%C+civ63}xfvL^4@*U?Yhe5u!y40}{PSJ2REWX@4jrC|HEm}c8s0Im{tNk2 z{G?Lw`oej~jPES&s^4x|_r=QO{xMS<#!!Zq87vGH#l`E^t*c3VIiqW5)5?`AH6z*# PSs5fAY|hatn9m3RR^4 c instanceof ConsumeCoolant); } - //just makes things a little more convenient + checkInitCoolant(); + + if(!disableOverlapCheck){ + placeOverlapRange = Math.max(placeOverlapRange, range + placeOverlapMargin); + } + fogRadius = Math.max(Mathf.round(range / tilesize * fogRadiusMultiplier), fogRadius); + super.init(); + } + + @Override + public void reinitializeConsumers(){ + checkInitCoolant(); + + super.reinitializeConsumers(); + } + + void checkInitCoolant(){ if(coolant != null){ - //TODO coolant fix coolant.update = false; coolant.booster = true; coolant.optional = true; @@ -57,12 +72,6 @@ public class BaseTurret extends Block{ //json parsing does not add to consumes if(!hasConsumer(coolant)) consume(coolant); } - - if(!disableOverlapCheck){ - placeOverlapRange = Math.max(placeOverlapRange, range + placeOverlapMargin); - } - fogRadius = Math.max(Mathf.round(range / tilesize * fogRadiusMultiplier), fogRadius); - super.init(); } @Override