From 669fe6401f23e7e7b3cce58e30517d145fcf836d Mon Sep 17 00:00:00 2001 From: Pecusx Date: Wed, 14 Jun 2023 13:43:10 +0200 Subject: [PATCH] Cyborg & Spoiler aims better --- ai.asm | 79 ++++++++++++++++++++++++++++++++++++++------------ scorch.bin | Bin 32768 -> 32768 bytes scorch.xex | Bin 56540 -> 56603 bytes variables.asm | 2 ++ 4 files changed, 62 insertions(+), 19 deletions(-) diff --git a/ai.asm b/ai.asm index 3a5a00d..4040747 100644 --- a/ai.asm +++ b/ai.asm @@ -212,21 +212,6 @@ AngleTable ; 16 bytes ;ba w $348b L$3350 .by 18,26,34,43,50,58,66,74 .endp ;---------------------------------------------- -.proc UseBatteryOrFlag - jsr UseBattery ; as subroutine for reuse in AutoDefense - ; if very low energy and no battery then use White Flag - lda Energy,x - cmp #5 - bcs EnoughEnergy - ; lower than 5 units - white flag - jsr ClearTankNr ; we must hide tank to erase shields (issue #138) - lda #ind_White_Flag - sta ActiveDefenceWeapon,x - jsr PutTankNr ; and draw tank witch Flag -EnoughEnergy - rts -.endp -; .proc CyborgBattery ; cyborg is smarter :) ; if have more than 2 batteries and less than 60 of energy @@ -251,6 +236,22 @@ LowBatteries ; if low energy ten use battery (no RTS :) ) .endp ; +.proc UseBatteryOrFlag + jsr UseBattery ; as subroutine for reuse in AutoDefense + ; if very low energy and no battery then use White Flag + lda Energy,x + cmp #5 + bcs EnoughEnergy + ; lower than 5 units - white flag + jsr ClearTankNr ; we must hide tank to erase shields (issue #138) + lda #ind_White_Flag + sta ActiveDefenceWeapon,x + jsr PutTankNr ; and draw tank witch Flag + clc +EnoughEnergy + rts ; Carry = 0 - White Flag , Carry = 1 - We don't give up :) +.endp +; .proc UseBattery ; if low energy ten use battery lda Energy,x @@ -379,7 +380,7 @@ HighForce jsr FindBestTarget3 sty TargetTankNr ; aiming - jsr TakeAim ; direction still in A (0 - left, >0 - right) + jsr TakeAimExtra ; direction still in A (0 - left, >0 - right) ; choose the best weapon jsr ChooseBestOffensive @@ -411,8 +412,7 @@ HighForce jsr FindBestTarget3 sty TargetTankNr ; aiming - jsr TakeAim ; direction still in A (0 - left, >0 - right) - + jsr TakeAimExtra ; direction still in A (0 - left, >0 - right) ; choose the best weapon ldy #ind_Nuke +1 jsr ChooseBestOffensive.NotFromAll @@ -549,9 +549,10 @@ skipThisPlayer ; returns angle and power of shoot tank X (TankNr) ; in the appropriate variables (Angle and Force) ;---------------------------------------------- + mva #$ff SecondTryFlag +NoSecondTry lda ActiveWeapon,x pha ; store active weapon - mva #$ff SecondTryFlag ; set initial Angle and Force values lda OptionsTable+2 ; selected gravity asl @@ -784,6 +785,46 @@ SetStartAndFlight ; set start point (virtual barrel end :) ) and make test fl rts .endp ;---------------------------------------------- +.proc TakeAimExtra +; It triggers aiming and if it misses the target, +; repeats the targeting by aiming at other tanks. +;---------------------------------------------- + jsr TakeAim ; standard aiming first + ldy HitFlag + bpl TankHit + ; Target missed - repeat aiming + mva TargetTankNr FirstTargetTankNr + ldy NumberOfPlayers + dey +SetNextTarget + cpy TankNr ; Don't aim at yourself + beq skipThisPlayer + cpy FirstTargetTankNr ; Don't aim at the original target + beq skipThisPlayer + lda eXistenZ,y + beq skipThisPlayer + ; check target direction + mva #0 tempor2 ; check target direction + lda LowResDistances,x + cmp LowResDistances,y + bcs EnemyOnTheLeft + ; enemy on right + inc tempor2 ; set direction to right + sty TargetTankNr ; new target for aiming +EnemyOnTheLeft + ; Go Aiming! + phy + jsr TakeAim.NoSecondTry ; standard aiming first (only first try) + ply + lda HitFlag + bpl TankHit +skipThisPlayer + dey + bpl SetNextTarget +TankHit + rts +.endp +;---------------------------------------------- .proc PurchaseAI ; ; A - skill of the TankNr ; makes purchase for AI opponents diff --git a/scorch.bin b/scorch.bin index 3c0fe7008c2c9703001bed210a177f948d0433e2..75d429577c8facd91bd190109c35b131b4219088 100644 GIT binary patch delta 5936 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�EzZKeQ5pS^lnORyVWa2@=NW$+f1HrDzmV^l97M=aBx{EvnNy-S`1Sg832#36 sh8n&F9j`c`T_*D1`hFU-952~6CjN0zIFcIL9kg!Cqo7T0*j~>34?z?B#sB~S delta 5858 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≪O--&GHg_vvfw@`J8-0_j=Wj(4md0tBUX z4I*d{2TsaiQ1=Glzsi<3y4*+*upa8jc(UnAkBM&B*fud*tBY4*4py0E9RVLOf%P2w${r2`1br2(R>lAnQ(X z<|@#2|E|Ii+v6&0Z!ggd>jrgnV_GU$oP~vg9FrsAHd ze%@K7pG9Iv)q=O5?om_I@LOB|URQ`R7y<#tk{X(}Hr6TF7D}jgXS=0u+pVtqT3PAW$EK^c+J5RgGXZV;-uJ!t ziOIe9{JH0zd(Q8io6m#Fqo=O|aL;k2lGW7r?qx28VnF=feNS-qa#s;vyspnN5rx$>E;bt%jq((q zz;NaTi`spILKdntBF>1M%3Db&$%y78A%kF$7Y#^=LzPL0i<1WDGmw)OH9$LWLe9zA zFt}+#oXm7HLt-*tU&Je50fq*lSXNPtgaTQ`0|nA(Tu1S^j$&Dd%q8h4K;}oypraUu z_??pU6fh0;hix(tU&v)4Za(4`Ai6%6&*w@JPjGfTVSS4BAYfX0Y)>?X3yN(MjcVRfi$0~!2V4_iidm6E{~%UK&4d|^3Tj!$ixF>w2#glTho7incGVaT-1nHK&X!7_XbXvB@+;P7i<;rI^>J}_+0GA z;UB8SYnG5&jG2{+i^^+>RD7j;HIasw+B4{V`jRwupWdk)-LDVjh!cJAl`ZP{Ff8&W zc7K4gKNAyUBYpCLzTJ^dXfeI>p4D39)1r`8JkM)bEi$`a2T~^ z(V`1Qq)ApCkbs)U=v259JF%{KPJ!`e{9HV4uO8c1_Ms9z(B# z;5t3C#e8KMeKnuo#{x?{`-~oJ^ice5wuPeCt#$A9JWHFF(@VDVbFr}Nfte=Km8QQu z(5n%zwml#GWF`Bco}U7+Uyf_X z%_MuK?w)ziPCcK)?$Yz!?0jkTxIPHzenHyi(bkAbMi-|v|Q>Za_?*Dco9F45Q7^|ck)vG=hDpVoU{1UGqJ zbmw@7!_l5T_iyWD7T+;STFf4qXwvizJEJ|9fFg^H?#++4kj$3?_{)(jN9b|DFB7)x zONkAlPRWn^lZ774?%SdbA|Z&$`xlvekkErdN>K%d_8{}swcx@dz5`Jr={*vf z>byp8EP};$tM^L|?p(zyfy=FU33A}L1lMjwRrvv1@L+PfgEQgQ{WB+;ATs3p`v%hJ zla-t)@ag^rLKlmUS4qXim4SCK_v=k$y$!fx#cOc0x%ebQ|7I23uM}*Pn9bhu5=A8E z6wGE|u#lZ%^ywfP2o9}ur`FrtI;lEEx$_&{_tx8>HbZ0-;3-wJp3fi$#H#?Jg-}#v z*8_;s>z?BE^k0^FRP_BNfVLhLSmHyWxqcO`DPtD5TW|T0P>;e|_>TNZIwF~^w~YBvfOtPV7Vqs=cRrl!xTtdL+MmB%drU73tz_N$cI)XH6ntR?>(L7} zh<>xd(*}^Hk3d=n(*Q}<2u=c0hn4>}GKY!}^(~*hs)vI?Br4czdRC1(9dwU1JV9dA zzzVO0H7JRmp1TSa>=`}#j-Gv2&%Os+OMXd&N*GS?XzI@BJ@4G*)B=O|9Aoo-$dvO6 zqiE8xVLk6)ujs`D_~3WLG@DmkvN1OJEN9A}EHA=atEqdxxue6!Q=Z{FGuRF4)60Tg zO7hRJuX;-IIlaeGC+fw?+5BraSH#zfde82rex`E1a;S?c4RKZ@MEdN~D7J`HLm3k@g zBfp2efy7zBYBIu_7$Y$%orY`#gOM@L5#Yq{*Z)!nHvK{dk@~=``YnXEoMhgC-1wyp zSK_zsVVGC>W+p&~tOMPzQa=nF*!NOr5YA`|cHpIlFkuS(<4_!t=tDm_K4J`oKS@$?0b1Hp6uK==xL`+=2K-`|+FTHosM$apk;Nt5z+t+8Q##w9szIR{Ql7xe zBdokt1J4r)PQzb_k4QZR%t8tv&j2!<>_=n+e|vE%$)=LL8tRC-z6R!LB%6i}{3B4r zpW-W%Bkz#L$_@xx$USDwfx_woZv)I551Vvy(2Vjl;1oJe5=2d4+RM8L(<*d)5Q-#h zs|!yK#fIZTGr|&HhtlC)_S(VF%&^jY;-H+E(M&IZ#6Z`|X^}UFzO3E4jxPe~pG7GMDYh53L zM}V~||LZ;!P7$*3RevVYhw1L=sh5t>=P<7bYv^`)w1+ti{(Zqx+lT1Pquy3@V>5b(VeAwMRD+3TCiun_S&xnHgNIsE{`7=yQ6wJqT zbA_B({0z8*+4$S;r&mF}vCH@-$2`LW=Qvb7OY_%V}>Rj`^p zqU{9#6M@Ml$!19KsP`;R6M&PZ%;+(paf>3R#QkKy-v-h$r5y8?S3+=}QoeI9=TXrh;wLy{f|JTN&DO%eYT@X^c(^TY;z3;uf`fjES}3ncvt?0Q-fT;p6g zqU>Aae_RTina=1?hVwBHiy#oxDu1TzY>i}n&TFZO(ov#e0{0L(g#U7*p@fpizkBUi z4CDjfz;gKh*G&(M;euSYZBV*xUYjd`s;Ob2VmV;Xj^#|bCAo24<427F*XOQ`Bipd^ z^?xJs@ZjsSCPQ}G#PX%>b8)iSCT*-jwhpVE)c5t8WBFa-WVY zl5v8|{AuIQIsbP?UIAGW$qf2gy!GV$Gp)@bwO{J2YsQt`;TdS6pKZ?ewvIfAD^Dik zODB=_C)|%nTk~tjG!8Vmqv^cnI|+wqVAhPQW?J|`cylS3$~Ip$VEes62#@5T1zKcp zi(z{f>a+Xf82f<=iA4yYPXl=Mo6{EnQ-(Z4{z=)v0J<5F7^g^#!<8bmKml|^UW%5M zs;R-Y3U8$aUT*J8z?tJ)N9sDW`GK20-1p`ZM-Ae8nZw>nz^u$By0yvsb~xRnX?wf+ zETBqSS093AtnZAdf|AqM>rXIvhe}i-w?CH|GP{mudxu6;%uxRjuVOYwgzvv2occ3i zr?!8ne{+~Je*$u?AlK@T>UXpa53Q5@JnMZ#eLMO-;x7X@!E?oq=;5c#tB(F(COH#i zBSHyI0Zhtlk_}{rhW}qC`L&MWh)wI7?%LGWKV;T7jp6q|B%4F<8xlHRjN!qw6}oZ&S)@>dzM4 z@xiHsLOhovOyY7ZDO?lxF84M3o6$U@`D<)FHI-P3nNvnJJfZDE96oU>L1Tbli!PPJ zv-a$%G{<8cV9eI>^g#Y=^kZEAR&f-%FKICuat7Wv@*@07b%$~Kj~U@$?9bLP@&EMV`C6g%S3R$mqtTq^A}Q8$~D<_w>8)Qw>@BgY+|^1tMfDk~L$IY>}fk vaQ3ag=!uiqJ9tRb!88BzUZ2{D=YB9X<}IFUP7I2Hf)DN^p!;;5HBhG%nUAt(f2` zK89hn%U5)|hJ|cYk&M`6WDA~*NAr`>qIjec=E%f3NQgoe@raF*2Ita|jTV)_JC}uQ zu{kifnT1$c=w`Ykq`kg^R{#Nq8lgm1QG$d*Sw&W%G@8~?GOeRT)*(wtItr2YH(Jn9 z0z>?sJ~a_cgZ*Kfbi^02*@#_&*jz-{ujcdFQp6Li8PC|77-3_|c{O9^BXG{vq{=18 zPYexH*ZPCpv!x?0L1M@-bzSGmi`G=ELF^i&b48%DM$(3Og*5{4aSTf*?9yhh4miZG z6q=Afn0^uuQ+|5lh0bjPi5SB%@Rb;>4O_+EV!ovFcJc({>@)~LdDg)o`i5R8ApP^` zp~g=9)z-N9lZb9#OV5K#VGhyfYm+{w2px>2b+D!ZM;j7j8W51*(M?1knr)<$wvJ{a z!Gc#9(jI{m1k>}&hpEe*6*Y#gRwRaX8k$%Oa)g2r-~{l%Fm;8GWmw7NT;vZGmf&NC zd2@47-TG+hOkoVmugWN;GGlHZ8-HVXgmNH#2%{66NUvZDa)fT2vMq@yz$>@Su3U_S zETq}KSaP_K4g%nH*zW9NWDEVD#fS=mo5@BU28}lvfmCxc^2UQyb3D>n79+btSa?TP zmE&5BZZ1SlShEmGM=$C$unh<%blEPRpugX%J-^bW`tlH;=W~f z<43lq5lXDvo)~!=S>8uOmiLfl09&`OdtwP1rheiHD+F;Eb42F|<-^z-xJR}L7?*Vp z1?Wr-A8@&^u_U@Zt}%8PzaWu+qL#XTi6!xUrH`eTBF@a3kx+%snZd!rZgj2`xk>nj z&;ly(bV4a&+66OiC|yxWqD$w)#A^;kP5Gt1NaS6E`bhM}8f04{W=iu-@_ZArJuK4F zyilGOB3qJ3N%InUUV{A5wpl_XVvG<~Y$W20VCY!+r3)^R=gLJp_{!RbTrZHm5Pw8& zX&aLM>s+e*PgDDWq3bFphlZ+MT_vPL;XQE*^3B_K3Q|r|@Q*G%={}^ddg}fyGlv#)9bA!();XsYdJpoLj24!(x2q0 zsM+BlYhI+EDdx@iyB8iMX5oagm-(6z&lSAi~;$>L$8p-eX^pzzL5PPFWb95wf zMSgZR@-zR>wc=HsFH8*2NWoi779s^-Ha$nA;z^Z~U##d<((3!bP}`<96_UGSA7 zs(3#T`AloIhb@09JlsUO0)LuaU(|KZ;cMjgLcMUboKRw0wc=s+M zs5$7y_j!SGaN~3y8->HG@(2rlu4+zfwuDzDPVL4b-~A%Vrvo&#u}!$HD)ZhNB+@=w zj5^nVL^VGTIEnyD_~YQ)yL2PF5dW=8Lp0!@s^)^a+57TUtJId&>N>O9vIAG{TlnBp zYVLV(ljC{&GH%Qt;ux_1p-vWY9i=2<&iKqs<-nLN#BmWg^0JA2`OyU=b3p)qRVK(0 zdJOO@3+whLMxI1Y$&UvTgnn$@|6;^RB%DO4!R$#)9$2C6M?ydH1&g6zXg|_k*$gf` z?5YkDN$#+3j_oR4x&?@x2JQk2cOJ?IgOpwI3go~s39jvm8dJ5=`&vS3C7XrY4y024DPDz}U4u_B^zS#p{Yt?W z#q8irdPN}T6wD3~C?K6;NZ&~`^)Ur=wftEB1_WY2H1-&b#h+6<9Vh-cSiY)U7G z#47-zMNm{^*8_;sC2M#!{g-u)Q2GHqpsgbmEa^tR$K0W`vW!{TX_)LrLId(gz<1!E z#9rzEj7S9NZ>WU;G-k&V_ib*G`v zg1pZ@ZEaTz7DT_(=->d-)B#9yGL4XAP2eP8y>8&I1?Eukp}yr?ud3l-5Qz%wk7{c; za#qr(4E`CCpb{v21kj))I{NP@R9N3rTmP)KzOS|pz}Avq;-C`xV;su5_tcI*-;s;} z0q!hgsYB2^r_`NXA;T0E+j1fLfjA^N93*K2v-S@+79WI`7 ze0zHayFq<=LoiE8{uOrB&QAD9?WnB#L@mbV@Vz&mj<$TFcI>VDNG*oJ$O6odJr`@2 z1rbWm{ja`GggX%Uo$bb7Tjmx!koXU;6N%qxTn4J*c%IcjH9Md!oY+RWwo%PaG_jrP z-cCW48448HcufVYmqaF=C`WLhacSlb9(BsK=xd$SnmEvaPMi(x#z28cafPtgbJj(~ z65MJ{Bl@w=+6$Szw=Re1_ME88AW|WWD4S|r$rREr?V>Ng+-cBhAhz^DOd;f1kp}d^ z7}^(1+Sbkl1`%KYU8a`VmVrXAZ4uFpuiH}KGofBn*?@dWqQ*|pvsd>kptJgF6^g8j{gP6$je0y*f z5!a1=aeTxS=sFG1UkNpys6!7CN*l>+X0{6(@T$hz5E}`DFB?S1oE;o;bUt;v!R=pFSKb$vBUU=l7+-j51YJ;jHIYb+dYI%ZgKy+oJw#_Vn zKBKT<24m_mF27Z8)X{Z~QljBqE%`*Y=f7IYg5sdHU9REY)X!pcoCi>=09*yJ0ba!g zNAFQiPdwE}uLMOX5&gXZa#4x*IojtcQJ|am?*@lz^ub`e6TTJ9^U%irzC8tQUf+Hn z1y>ux8J5);0IVc1@f>X*A;KV0jL^vK=H^O4HrJNUBjz|rjCLacEAF^2)E!K3TQ_)I z{BDXf*^N(eF_OU*?;HFtL9~?Tz#ZHSTm!o4#1mZV!*|DoauSkA$_CJ=JyQ$X?}~#+ zFj|z7W7L6HbkcGE+;++hr`&vcn9lh`WvQgf44}-gzid%$!P@h+f&Mhmt4h;SaD<92 zMYfM&jW+QW?l2VsOQ9sW=SwO^p`|TFzFXpqQ8S{H;1{#h=E72mn*+RYdAXz;Br->F zqO)_21^MEoJb{;oKX}pt&l3qw{ojb$QjY;Mp90wNz=o6E#n$k*R;G~F6p{~vI-;$A z73Qg=H5F_4Y$)Pu_=<$UJEWIm+;z`3h%Ps*L=zTVD0hOf6{ANNBbLT zeY3W&xzkWLh~N=msLB8PAo3>)+4zb(ofyP)&%6Z}4%25bukb5rP99Y;hrqwj>MVnZ zPCLT2gUh)Nc(iWrNz!zqfi_z@1PQmp7iyEx$Vr!)M!T`SCnF6IBZ&C~!e?B;d@7$v z#r!8s^$O-Qy45Tv79S6Hun_;)^W-y7Z^~tSlVhIYL2??Z9(G4gho$!K2l-%Vv1UOX z79W<1)S~G{(gH;Q+d^&BD4-gE*DWbtvE$9uNAGZ(Y(#Cf1Kz$oJz@eO`7Oy5KxSSr z_;v8s_CEvEobd=J_@D5^W=b|gf(N~?vt(K6t0$ABh!y$O=^uqP|_7q41AggLIA*~n+(zjd!&0zs{Er_0V(O4cvyT@WW7B?KmL4}n9tFEwfO zl*In`-lO4=4}7Dw6+iG+X4Vug$Yt9IrQ66En|o0$H71zX1NQ7*&zN)xO^-Ky+Vp1g zSIw!1cVgRHza}(z_^pgs$jSp=^ zE_ypREw**5Y4`qD8V);V#U-Xc_-~KrLWn|p0$3I)1p+OFu)0hKA$t1lm`b?~m)P^& zQTBu$qkl%uI8kque^`MA9p0Fq`Uq&$Lfls&c;dlBVw^p#wm;Dy1;W>4;U-WicjZVY znbOy+{i5k#6XZz+Bt;+*=vch#!~@A0t-dg~)JR*Vwefe$wB~T_;}7D!C*ttf31s+% z^h#-Oe)DaO_7GardON=m4Z_N4)l3^d3{NZtQ_!Cg$gs!?~c)MBl=LE-MyL_(Ka2);YP+onUTQ}K9t!JSp2~4#S8vvu`Ob7WN?R{ z(vHBoc39W$4jQcN7#k^({G4$HQ9n+cLHs4aB6yvc5k0m>yYa~XXOb;OHo_NU6Tqaj z7TG{%Wb9uu$sJKS7O<(f<&I4qgCp7*EmLqk1W^y*=7XQ4(0B;*0o=uh+z8W2Z?ZrW zs5&-0ER3`)6FzHMru(MlS+<&W!QXlKbFn%nW6I6VWsFU!;ZE<-ybj~9^Pct>YNOdZ z4E*uQIrqYgxLkS>n>q7f1vonUygTSp3t9TJ^edqbB4R3Xl~a+clcUuW+4mPUu?t@qKBz3=nIE|8 ebM(0CgE`@Qc(ygpTko-da6bXf<;Ndtss9D|=Hj9N diff --git a/variables.asm b/variables.asm index 616eca7..157c413 100644 --- a/variables.asm +++ b/variables.asm @@ -164,6 +164,8 @@ TankShape ; Tank shape number (from 0 to 2) ;---------------------------------------------------- TargetTankNr ; Target tank index (for AI routines) .DS 1 +FirstTargetTankNr ; Target tank index (for AI routines) + .DS 1 SecondTryFlag ; For precise AI aiming .DS 1 ;----------------------------------------------------