From 3d1b0bc4544d4edab50d3ab6f242b7df69d43385 Mon Sep 17 00:00:00 2001 From: Twcash Date: Sat, 24 Aug 2024 19:10:58 -0500 Subject: [PATCH] defense stuffs --- .../sprites/blocks/defense/bauxite-wall.png | Bin 828 -> 912 bytes .../sprites/blocks/defense/duralumin-wall.png | Bin 843 -> 870 bytes .../blocks/defense/gallium-wall-normal.png | Bin 1018 -> 0 bytes .../sprites/blocks/defense/gallium-wall.png | Bin 223 -> 903 bytes .../sprites/blocks/defense/gallium-walle.png | Bin 903 -> 0 bytes .../sprites/blocks/defense/manganese-wall.png | Bin 945 -> 1002 bytes .../blocks/defense/small-bauxite-wall.png | Bin 369 -> 279 bytes .../blocks/defense/small-duralumin-wall.png | Bin 363 -> 270 bytes .../blocks/defense/small-gallium-wall.png | Bin 372 -> 279 bytes .../blocks/defense/small-manganese-wall.png | Bin 369 -> 276 bytes src/aquarion/blocks/AquaDefense.java | 3 +- .../defense/BlockingForceProjector.java | 68 ++++++++++++++++++ 12 files changed, 70 insertions(+), 1 deletion(-) delete mode 100644 assets/sprites/blocks/defense/gallium-wall-normal.png delete mode 100644 assets/sprites/blocks/defense/gallium-walle.png create mode 100644 src/aquarion/world/blocks/defense/BlockingForceProjector.java diff --git a/assets/sprites/blocks/defense/bauxite-wall.png b/assets/sprites/blocks/defense/bauxite-wall.png index 505b36368fffb277752265000ba153de5aafcd52..837e68ea3f506a628aeebc0a29e256786aeaceb7 100644 GIT binary patch delta 877 zcmV-z1Cso_29O7kFn%SN0`nmjffBSxO_2=STA$$TT**{kZ zUjRG^uP;x#RR`nye*i3mGC=+8ZHlnIe*;h<^ortMAhf}w1b@;1dcpS$S#YD!vNl)< z-6_BX!8nHKqosG$1_R++5oDyVIF^Ml%LalFD&YC`?bH8uiOe{LGClKmG*#{IZVjlx zSLX_Zy?i_fz3;mKdV%fm8PCfozY`XdbH&ynlcgm9)0xvp_FMBym(Mz56po z6m6QUEeIfzI11cT5p!R?Muot3gW)RBI@xAWQ9w5H%5;cU3kKe%3OE2vYNIikWLJr$ zHQ-Rdp@2D^E)d1_9_po$U@YP<0pgx>UD*(xF zW}#E3g@uCdkG8|`IE)Grvjap9W`1Y=8afN8q-V?C12Zf5GCov*3L%rtE$%^?uQusd zWtEz+ML_D9y*)w?3iYydYn+vz>hP@V(F@)d0(@N_9e-KJ)%uVD%`TBG1nLhHqY%{K zGiG&%^)XaHWSBL8HcG5w6bP(uR1Huer~$3G-kUxW09*C5GF}mI&qlA6-@euxE`zq} z?=ARN#l6B97Qvs&*h;&t66l@aN(Wcisu0c=K&^2fKyF*T82@Z>00000NkvXXu0mjf DKB1P* delta 793 zcmV+!1LpjY2fPN5Fnmohi!zk5TwH_-bC#| z6C+|z8h~OXVt)h&ruQ5K0&;c;fY0;yRYMu7SZ`)62Smi)P>3Oc2Ni+0D7e`Qhe{)t9iTDnT6>(+=}NKC-iM;A$Y>3&Nb@mFeSbh|J&Mn z+AJk46oO?4qwWML*XP8y5bCv-jO06+ayS4+M+&-2s#`sF@e^@u@a&?GZdP zM(toEeSaXL^#pW%`anb~XQ-i+*X%iFYs1Yo7LSCWc@{cmLz1WqfamSj)gf!fI0OI! z0d1jM_iRH&J7XLMfP-Ka-{v68jBzLcsYF`u0MtIToQ42E4=aXx-?#)yYmWrM)CWjL zWR4e1gm%nLh4_MMM3b2=YJri0*FYAQQ|jSs8C1;;DHb+epdjR z+>yB!_5jZiBU6Cq+3FuhH4rqtyj6tf3{x4DuER*<6BWanAq)lB1%UGeq|A9Cc+O}i zOB5XFI!r-8470ksWgm5Ote?~SzepH>#i-f#P!N^^P&~QL3CjU!AuI`?hOjJv0^tV; X{}L0u%!F@V00000NkvXXu0mjfX~R&o diff --git a/assets/sprites/blocks/defense/duralumin-wall.png b/assets/sprites/blocks/defense/duralumin-wall.png index 20f7e1b800bd3f0f2caa1d723b5e6ed2e43dd086..936072c1b8c1d026270ec01bf72664fa76efbdae 100644 GIT binary patch delta 834 zcmV-I1HJsq2IdBkF@GOPL_t(|UhSJpQUfszM9DEyS;85)M()C0*uj#@F+w>NQ$~^1 zEnBveny{UTrGD1OpJ8`Aex479x0kK{?cU!%&inoA%T^&=0HoR9Duh1(TZQlsz!o9g z0H{Iu`T4rk$$PIAUO!a;5<(s{cM1!Fd^ftgcx*G1RRxeC)PDqMgO3((O+d{yg3t^= zro$}p8U$q9f?%dVboj0uuLhx71Xnsc%C-g}901C>UU4Ygt?_99r~rBjW3OQC_bm`y zDUgk(#S!ehm;?`2!ArSL5AwM`Ezj(yLp0c_~YMUyOy-kFyvVMRhM#ij$u5M*Iw@|$@_ zgWx$ANH*LnK~Dr|BCJ)UXXa|@V1Zi_0i{DN;+fSQ+kaJ-0_YJR1z{P02=NgR?hXJO zy6lb*jdxc7kh7=@c*I!IGo=g26zCOS6NJX~KogR+~T%a`dXPzsHPkjKm4F`^5S z=@G!39kxaS15;aPghW8Cn6Y;QjPq95Gr#W@pX?948q;8*T-Tm!5fmYw0?-->QQ|WY zS!d+8&7QC?A;So;`g$!LqQ#dG(5ed?YqlipF`;gctpXP&l1As0OXpM(_xbUN(h?;kRkj6`Mz-l7w^5I00000 MNkvXXu0mjf01st&QUCw| delta 807 zcmV+?1K9lL2FnJJF@FU~L_t(|UhSGqQo}F|h1+9vSi%{(26y2u>|ojHG0K=3F|Mnh zC(E)M0!xxOdY_(U+0F6o?c@6N^m5qi-|_YJ{dzh*ANC622SCaGULpJfXd#@>pEt8& zYYsu_W7P34 z0pPLdp95fJDdH|`Y_1l#9WXmUj|0lR2n2Bo^sWNPOT9vn`=w-P@wCs}tpXB+%jJu0 zmLlRQm=R;Nz_>A?Wsn9cogw`d@%8^R0?&pZxrKFrWxpDZbuV|l$GX;gdTY~k09K$G zPSD`F0YtKIiGTMtG#+ejZ0F_bL};WWQ+sFM^T- ztOjP56S6W-`piCnHZ@#<%7&0F-kbup=-JES4DnL|XijR~AP~IAYnub$ zttr;mYk!*rz(LRoss>@R0BQ)xY9c{c4#2ZVuzG##dJDnxA%rwG)CYKrmn9@}9X(z{ zm(gJWW;?-xxCFoq2%~?bg&lxQ1Ih|g)T|70*GG$YHA2?r2oZ#WL4|VfM6K`I47D$c z1ZY8sjO`WQ<$z2lM8uc4h60d2lS6ihJ<}l~o_}1W^$D)eZh`Z4Xq-k2|~t?_7ccDY6$MH#j^vP0eC3@t)YsD_cUtD z0dT=a#Sa013^F3nwwK5lQ>sO35wx0|k%304zx8bQDxftvTM;iMQEHZ4yFrWmR<73_ l;~*{pP^~NVV7CAW!Z&=}I|X67Xo>&;002ovPDHLkV1l3qZo&Wn diff --git a/assets/sprites/blocks/defense/gallium-wall-normal.png b/assets/sprites/blocks/defense/gallium-wall-normal.png deleted file mode 100644 index 5cbd21d4ab6b0036e759768cec95eb0ff1495955..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1018 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 diff --git a/assets/sprites/blocks/defense/manganese-wall.png b/assets/sprites/blocks/defense/manganese-wall.png index c75a54cd88baa918c85781a1c5aea55d9a2cb251..157eeb10f0876fa62f6c2ceab8a181ebb5b785b3 100644 GIT binary patch delta 967 zcmV;&133J#2kHlqF@K{;L_t(|UhSGORvj@6MPU!As3^0&6j=aENWmi5QA#SR?13C} zVvaGAe4peW{%80l%y{&!W$D>7*Y^*QBtD{1A0nldus1RNO zL=c|-JiV-tOUV)?-Zua&2z{_#BhDRy8t*#*BZPUdbBBd=|n={AyeZ0RedY{b>3G8YEro z+3RRcvY;)OKoj48qgk@VTY*#|(J?86`MR(Oj^alM)=WkIAPYeqa|OZrzuN}AbZl8L z|A;wKA!NrS_kWG?O8~Os`vWNiMFd@n-h^TRmUyofwV)Icr1*Jbsy<CG6VhgBR9BB=p z-ABoUG5|$sB{y0dV~RFA!Ni?A*kZRA~?_JEGWtZ#Ws7(K`CTy zjEwjafOa!o_m*uY0aFO{It%vF3P(H*0N;j92y5O!wDhi5=E`(tq9 zEPny`_kUh8@&y-D1HLlAI8U_J<)>W&mZ@5K_D@v46BT`rdBPbB6uz(aRTQ zIh4)>XMxJ8F%h19`Jy<(5`gM^g9w7Pi);poh<_v3^kpfED)_0rAGne6ut^2LXus zxpywOOZ;f6$Qfk6el_#UEmdpbe(KQq9QmN4{wGj`Kov?7W(`# ze$N|7Cqhb(UZwXb{vTzb_2CvWLbNTOLO@Vv%qU(90@@4oL3gEeMwoI>6z>cH0Z<-( p3D=Gg4hf*!^HvxS3!p>z3n^X~rqD^x)c^nh07*qoM6N<$f&gwcxJ3W} delta 910 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 1) { + Units.nearbyEnemies(team, x, y, effectiveRadius + 10f, unit -> { + float overlapDst = (unit.hitSize / 2f + effectiveRadius) - unit.dst(x, y); + if (!unit.isGrounded()){ + if (overlapDst > 0) { + unit.vel.setZero(); // Stop units + unit.move(Tmp.v1.set(unit).sub(x, y).setLength(overlapDst + 0.01f)); // Push units out + if (Mathf.chanceDelta(0.12f * Time.delta)) { + Fx.circleColorSpark.at(unit.x, unit.y, team.color); + } + } + } + }); + } + } + + @Override + public void draw() { + super.draw(); + drawShield(); // Draw the shield + } + + @Override + public void write(Writes write) { + super.write(write); + } + + @Override + public void read(Reads read, byte revision) { + super.read(read, revision); + } + + public float radius() { + // Override to ensure it returns the effective shield radius + return realRadius(); // Ensure this matches the logic for effective radius in ForceProjector + } + } +} \ No newline at end of file