From 2a5595f3c94167a6c9e8ac906289c509b6740838 Mon Sep 17 00:00:00 2001 From: Pecusx Date: Sun, 3 Jul 2022 16:43:43 +0200 Subject: [PATCH] New AI tank - Toosser and angle bugfixex --- ai.asm | 51 ++++++++++++++++++++++++++++++++++++++++++++------- scorch.asm | 8 +------- scorch.xex | Bin 40430 -> 40479 bytes 3 files changed, 45 insertions(+), 14 deletions(-) diff --git a/ai.asm b/ai.asm index c922c33..1c0cdba 100644 --- a/ai.asm +++ b/ai.asm @@ -49,7 +49,7 @@ AIRoutines .word Moron-1 .word Shooter-1 ;Shooter .word Poolshark-1 ;Poolshark - .word Poolshark-1 ;Toosser + .word Toosser-1 ;Toosser .word Poolshark-1 ;Chooser .word Poolshark-1 ;Spoiler .word Poolshark-1 ;Cyborg @@ -77,10 +77,9 @@ AIRoutines lda PreviousAngle,x clc adc #5 - bmi @+ - cmp #90 + cmp #180 bcc @+ - lda #(-90) + lda #0 @ sta NewAngle @@ -174,6 +173,10 @@ loop NoBatteries EnoughEnergy ; use best defensive :) + ; but not allways + randomize 1 3 + cmp #1 + bne NoUseDefensive ; first check check if any is in use lda ActiveDefenceWeapon,x bne DefensiveInUse @@ -280,9 +283,43 @@ loop ;---------------------------------------------- AngleTable ; 16 bytes ;ba w $348b L$3350 - .by 178,186,194,202,210,218,226,234 - .by 16,24,32,40,48,56,64,72 - .endp + .by 106,114,122,130,138,146,154,162 + .by 18,26,34,43,50,58,66,74 +.endp +;---------------------------------------------- +.proc Toosser + ldx TankNr + ; address of weapons table + lda TanksWeaponsTableL,x + sta temp + lda TanksWeaponsTableH,x + sta temp+1 + ; use best defensive :) + ; allways + ; first check check if any is in use + lda ActiveDefenceWeapon,x + bne DefensiveInUse + ldy #64 ;the last defensive weapon +@ + dey + cpy #ind_Battery________ ;first defensive weapon (White Flag nad Battery - never use) + beq NoUseDefensive + lda (temp),y + beq @- + tya + ; activate defensive weapon + sta ActiveDefenceWeapon,x + lda DefensiveEnergy,y + sta ShieldEnergy,x + ; decrease in inventory + clc + sbc #1 + sta (temp),y +DefensiveInUse +NoUseDefensive + ; Toosser is like Poolshark but allways uses defensives + jmp Poolshark +.endp ;---------------------------------------------- .proc PurchaseAI ; ; A - skill of the TankNr diff --git a/scorch.asm b/scorch.asm index c8cf91b..8a2807f 100644 --- a/scorch.asm +++ b/scorch.asm @@ -1142,14 +1142,8 @@ LimitForce .proc MoveBarrelToNewPosition jsr DrawTankNr ldx TankNr - lda AngleTable,x - clc - adc #90 ;shift angle to the positive values - sta temp lda NewAngle - clc - adc #90 - cmp temp + cmp AngleTable,x beq BarrelPositionIsFine bcc rotateLeft ; older is bigger rotateRight;older is lower diff --git a/scorch.xex b/scorch.xex index 47955ceb63c0a67fa3b5a38814040153e715767f..0f017cc42fe1f356952ff10fa9f5d3c7ed0b09da 100644 GIT binary patch delta 13928 zcmbVz349bq_Ww*KH`gH7a5sYMMiGMo4)-BfU;qV=MLb41)_{pz9w^w!Bn>f1$4nZ8 zu40%lp+h>Rvx$Ii+?|zOmyn5sZH4tGy11-BOjeQ|4+Pxb!tYz%lLJLR`~L?>cUQgl z>eZ|FUcFbZX#HK3|MyW<>&IB>fem9$TNk|V)=K^QMK17b_H5y_Io!ifsTR?4lB=1; z{eA{F>R#4yQnd(q+^^@VR&fpCmTUwBp7z;l6xTO}oAylQF}XgtTk?(j1s|NtK87^P zQ_jea;3x8yM%nj?96Tv+IV1Z{vX|2roM12H@hF(SqS$qTZ& z+;>^_#SmW?qBi-Gh-&lQNz})EgNbVO4JX{^b9`e-y}cfD;U;e2N;Yt(Uf>?s%-ud4 zL)Au!N20jLo;M~eP<2F32C43kfq$h9#*I+5aR=4X9_i~mLuJ;o2votR_gM^a9iJ_@_SB`Ie9OSrn z+3(hn%;ma4q%`ld%QCn4!F_q)<5NHPuT*U@3D3ocmx@J{8jhM=3O`@>;F=GLS6@1$R9I;yu}n!9Isj&tJ70R zq0Nz+n4^Eo-XVPrzmp*IkJP>phatHxBpkyi_o}yl)0nU1H-K_9R4(5&>Rzl|f#Qes zI;7gV->=33S4;dbG_LSUXnoa1ai70J@q=~Vm>%B2v6P+1-TIs&33;q9GV@Bs?+7j- zsnJ44a4AW(2${~{6Qns>@L<3!F`bCd5>qVdH1QcGjWmLRl7@zQR9z~oiOJqE#28bkU}Z z(YhF;i?O;Gr@OW1dGT_+_PPg2iX2>NQ^% zD&0Hr?nyCFwC@9!T-ajMnOOZYNWhE43cppu;=+9(Tqmm*_>khq19RX^9zExtyKC;g zw`x3m#p}|W6Q}caa&oW4vVcXkj4Y9pZCsBM1BtVhJYDv5`O~f^&N1o@GNXRU9k4L@ z#zB9pzC&Zj$5!t?@2Lhk+>&Fz+=QO3n6Tnydj6>!P@#iWSJ+dK7>Z5Ut{wFs*{;WE ze69b8RMn`3%+ES}6@IKp@L$Sy_^;rd{U9L}@RHGb}AV~PE=I;!mxthY}iU99Yjf?=01f=MK? zJUAz1Zg6(WTz5_iO{q-zW6H^t{CPR^=FQ)hV*dGf{@MAh^IH~J7G9Yj=j!9S)0N`- z^@7X=bitto?=ARXL9c~>U%()5S?E?{paQK$RP7=bP@YS4yIK~uxAjC@q$xTA*8j&% zLpz$&mW4{*4>rwuww*jJ+afj-@dDBMQSqNdbMRFB zl4$)YWS|Y8Vyh__NCJz%gwf3qg0WQK;do!F7lXt=%I2U(mH{3En{3NMr;^b;T*#=3 zs?7v;TdPCKNS!TY6h<|6Zf%2=?9&EEGi+(}w1F^vkTD_+gFaIbSIm8Fa)`XLQ6sNy z+H!6YgBi?Z1$8>NNbL=dz-KXG?cKzenJ8W&t`)8u^w`>aF#h#Oab}m2AwEx(Oz{Px zc*GZpk|k~;l`jz`!?zjDzHBu6^3m+u4&T?zxfZZFW4B{-)?Ox#)TqQnlQ&@HCRz2~ z&fsQjfItssW355K^{LAd97}<%zFbsCEY=RvuA3GQb2wAyv!Qs>8_4dz?zf8bhvdvZL zGK9`EhnN)WNFA3}OoSXIGi1fqkP(_t^$*vSm(-h>P~&eT)F1b>3H8T4F{Vt}!gP%+ z*xSbP^%Z$@{mjoc8#liuM?m-8ul58R47&|rcSlnj6q*JyX0M8Sn8y2wYvN*fvazI$ z1tOaUW(nD5BqFd#TD?kk~J|gu`D=4YQ48V|HdNj`B{f8h)&1NLPVwa#7Juh(6>GJbh&Er z%^2`2i?4(t2^m7BdejVC8T1=4F0BH_rD-rOtrEt? z93R_~n42%Qs9-<^Uk+vG$_y~MYh|Xet9mEnL_0_9@!D0AU=^vSI9R4 zMz=FGDBM@s3CZlL-C4a8TExsnL$+2XE`2wG|V*urV%tvh@RR;VvmD$ife|xv z^e<{XiYIg}Jfd|k!C!4J5d&mlfH)zSmVhamW(51k3#h*LMzV5a=-o`pKBDbr@IHtV z3)^W)?`U7sPK{=p;K7u!l=rkPB^ED!PO^2QG=9#|C)-z^Njn_HSoQ9N_+U2Wo3uSd zw;lJB<9mqaCm{=>zCCzAS!XSF!%zG$#500BGte{hL&SN8j_Gsa`LC9QE+L`(Y6+6Y zq<1@|ji0$g-Si}k*|A4sMQUa4m8Y-@rG7>VdGC^qNG)BxmxKyHWx)fX*YFS@2vy(_ z`(V=4Q1|eXP!D{#9|*l3ZM;{_<)^{ju;|*$&&VB~s)ky?FYbY5OU_o|`cTRDK zKR3k;x|4`KM!mD6=YrXzURw~5#ei&_aI`m-$YO~c`GUCcra)%kcheFhjo`;sT|p|0 zgxqT8`9{PX;`APv<0PuaAr3`;i# zB3l$9G`2?}L@Ty9w0{zKJud=B9)7O~k>dy6ssw~>hKjq<4RiXEd8QWTnOfnQpnHoA z`+t*&2Z(r(z)MsUaEqgiapCyTJ>lrk1l`tpkZ1?V9n~b92rjFM;bcuEUcC`LNM&P6 z^SHW)(YprdL$w1$zZ+ya=gQb8;3eY)FLz%0Y97ZkG(Dy`ift4a?jC(0-mlv`*kE9Z zZ5kLPAqpSZlt9P#1aZxMxHzunanF%A!^uYugky5-Unf5?@=db#5e%xwKu+QNi~|O% zZ;2^2-%^4N?@gjl1X%Ljvy5J_V{ZB^=VgJ7H#9BmaDqm21hLt|5T`LjTk8P=D+ezj zn?A^xFtd1`&DQ3+^&w-zkVPLgqu9y@v6ZP-;mzy=(AHZYGUSC!(7^6$NZ3$DV{*W< zb;u8cME1uqLXNQy$0JT_7bZ95CF~=nPIb|(d|m!$1ZygOL$Ijgw*)IKh6$Eh{EBgY zlx>>-AmZmlJWH_NY{wEjLRR>M+q};XOS3tps`bf(~ zQXYIHL;PQ&L1(WJ?Gh2cXS(`t5{OU#Us5>8!E0AY8tDInXy21GjPg0r{!P*_)>$&@ z3K{i18TD^cub%+YIig)f7L3yk10GKU98Uup&vOJofILscMk0Q}*aL5I>OtpEa>948 z!Z-oud4m(+HyWIL!3h0;lO}9Q7f1_WkoUBZ7Qi6eX(cU91lHu#8cEAM1OE$_cYQ&$ zCiZM1_O7PfncF?L%%L@tG#+zkW%UP0! z^PRIqJ4e!Rzyo=NnN@zptnwRXmEXcDnWbhkOBI-P@!BK` z6*|NcH2p517&}-C355z{@MRyzi2l(08KMnAi)+|YZ6E7a7$2pKkNqreIr^gVU&K88 z4TGMF&qz2fC;v0zdT|-n6X_=yv$+N@v$J32^~?Y!hhGXg_2&#rj28Dryqm&8pT%Tk z;)nJTPVm)y6S|O$D`ccX?2{d6N*#fwLR+gsT)md@MhgQnS}=)*=~g`!U=7o(Rox8| z4BjAt*2p~F>NRJJk@uTt0ET@Ufhy;Cp2ezgW$-*W|1+~=tSB@C_-u_8w!lt^3duPS z#o5oa1Bo&VCR|@V3?2DN&pwHo^kC1R1n&b%uyLp#hHNFw-D9ngkFasRL~>`0)WR|n zQ$>xDidSH)fo!Y*9}O+^9by{jdxxR;-X%~y-=CS@`9e(Te8-u_`A#rr`Z3bL;|_GC zt`O^4Cr0=S>&EjW=JYvfULn5EIxvvVI`I4}m;y$fcr1ePK?LI?;^Y}ho!AgT`7na= zKg{<;PHxr6$x+~1!D-TZnrNpmuxw~r14)_BAEF*5zjCufM_`bZ^>O@W=2vy4PT&!9U=zQL(>Xl0PuIB z0j8JE$Bq0uVC{F~VIKwcPJaCQw19P^^uT;Bu#tPe%VOHli!SNWj&BUrwkb!_I|zo^ z%mfF3*v1Ytwyzgk0E(Uc<~Cfu^NtR(z=K4jNAdT1KFmHu3I=9`q`;D-qH3>`Wj@(i z-0l?M-v|$tnvY2!8Uhc;)Y~s7vmp%kz$-tO6M-7Wy-}#&QLkWS4a58p__9g{mICo{ z{qvFVgcTW3K`_g2kjB!rR9(9ff6ir7WM^Puw`{mGyErFrCfOWk71Sm`GLUcR5n+tR*$l zQh1{3?H`+%aV&?#D6N2s>p?#4H7af(8o$BNUTr-IO)X4Rr=ky2+d!O3MhhU<0xj0_h|1BzKGI0TIvi|k&ya?-q_C@o)@K+9tHwM_8aA-LbkeXMhu$C!d1)J1<%T6p zh_GLGi*s=RjzBwMIL-uOpkv;H?lN>9kmS0${9|&(b~#|F*~z2SS#!^B9_3DB6VY3MaWj~5d<9cWYB_4y44#T zD`1ARR_x0gSt}=R48#TX>AvTuqDETktwG)QP_`ahgR1Yv>?)hfI!ikE@JN2F0NPx6 zYN^+uWTy@kb|^xsMR+}UF`JEfC>vv9EZ1AhL9MQX8e7I1wv79{)d!71i~Fh;Z+6|` zVfq!til&?`p*jX!8Sb)HF@FO>59S*> zjS)Y7ijnJXl7okxL?B6g@gNFs5E`v_RR_U!8`lK%VaU>ZpPoUGEe~dmEdN6k79N0S z&5>8}+A(DHLBpqj99D1!33tUBuBG9)y2Ez1hQ~5#)s=h?HT{v%ixo!iFOA;V45M3G zx{T|N6-ZW(z?LQnLZwIAw(L%;M|ykN5UU`4w2T`h&~S9%uf^jE62{~wj)4LOq~fX0 z=AOw34T5yjqxYD0%$;QyIKo!9Y2dQ{g&RAQ;RD2NIEKxkY7#7W8Z5UwmAf@Hz|KF$ zOha+hG<#H`m&@SEC+H3e*=--+8aEN#f%xD%Joef5czB0|3)`eakKN4Y&{40_+d_$jG0lmsIkaAH zDG#1am2+v1{qI^XZ8)2%->kK!in&zFGroGWuRN;d8(*>PE1wqIYI3P}2a3P$Vk?t< z_nhm9hTDmL9wBNV=F(pjTiY@1J#XsOyHDSKj{XBIHOR@mHA{(5RJqR|TqkXQ{ATMq z$^ZC3e%JdCz%7o)UUr~8HCjCGM|$-ae`|x^b!s)MY}#Q~5Le)TT# zeLrGj{uujxoN@e@Hn5Yc+rc7;htin|A!9A8FbN zzsa6!Fqy#Q|&`RQyGWNm$C<|0Y|6o6(l7fYNO}Z+C41j0~@yp%8fW%#lZB zdtz%DI~``l(fbzSP^}xzzHBIrvGjeSl9haqS*+FXL|$gNd?V+E{5&6c3kP)MfxMB1 zBNxoyZ=QjH-|#|tG&sq=hs zbF^b6z+Ds81LQ_|yxW1+m9ODgtpd5JzzUx$_X{5JHw4vBG-QcYtV-xa`+2mZu^Ej< z%NyjpiHDXwm0*WI6l zDqw@eWrsDend6fvjK0}sUKqj!K`+#x?JhvASN}?lzOKnEJEP-EHOA;@Z}=txY2GMk zZ*Eaza507}l5$sbOFBrK{Y)h>dbh}RB^aJj)s9?BDB6TVIjfzhgWv;w!s`axxLvR# zR2Pmj&dz$jB;C2D-+)s;0Aw&me~~n5%@F<>b^@IS({?9`=|wH%*R}%!X%C1XD5^(n;al;X@dw zW5|boZcM9q4W-0tU+8Gno%z>TtAuAjwMU3R3x*u@!4*{2(~)26cDNjB&`ds@Yr#tA#LBn>uYK%})p>?({2SPN!K|9Ylx|9h#P=lb@A$m(?(OB#|k@Mc6lxLn0t#$_D* z6qj#&$7W>e_b3EQ`*OE=f$K*x$0G8H=;x?@!;)<k5;Nw&*)%${#Q`Vlyv%$_OJH>U>E>s3rUDK2J$+)XDTUb4BURh*hW8BE7@zvSJ zknZYiV>E0frmKj|;3rT4J;(Fd91oLMmRjdL?-8f4n-s1)UWyQ6CqKUwvJ0c48-?Rj zq~E3w;+G4rD!HjUgxun|>Q_^)$s=(~SRR8k?kk7#YHGajYGG7kTi+mPhCG7x{eYqC zMXGq5&2i<1Jlkd!Ua@cxO&>uQ4yNh1(1k;2`Y-6hp)~zgo-X8Q`Y-9iVKhC7F1(qh z-$oY>r|Gv-XZlE*K8B{>LDR?5^iec@98JHIrr$%;lWDq>rjMrS<7xU`G<^b1zni8{ zL=L)}`K%u5wLqM2B=wDfv%VCtK$e5(^9D)e(e)K%D+)~KgHhX39mw+xl9~q4PkAEuq**v^{XRK`RⓈU}R72E^^^F;orv zn3Q}YsC4_9Rv)@gF)cl!*bBWuSq|8Azl zvx`=F*+0cAuOvD4Mt5R)eSNTO^W5P6&2!yvZT@KU%Ud?R^70n*4|a>s=ZF)DdY@R! z(#E5Hm18&0ZMb>P{c{f6?#ldwEB%At@rQ@w)sY$#I#`Hn%D{03EB(zexH1xa$KRuw z-6(M_+QN206!)cqbq;Kkm36+a#X4E%Erehr$7%i6v&KPq^>NPhAyxL`(dbQd;GElQ9A+_3XD#Hfgrci1 zqIxtG(Y!vOcv{Zk(cxZzytJ$ROv}LGwrs{#9H}&qh0%Y`3*TFV`ofgpN^)u?sT%C8 zSxNr0lHicwcKoM`?epf%!!6L%c(LB^8up44P*;r3?(Ll^ap=pjzr`~)EV%ERP<64Q z-tXA7`V}UGkxU3yCh6ZZNk>7_5g~NUtMhzUuYbvtTSNjk4Y>LCyC%$-cisGdZekO# zb#2~aEdN`t%ncrTWv=_ruk_+)cKYKkt9ecc&#AeX4edFUEfnFPQILWsC2m8XKA*_S z_VY!Nvqp0rYQ{?QHVmCt`%3Ljy%l@?P8>HGvc7`FC^&gHjb?blIxXCjg`t_Er`wza?axw0f zG1Ko~n~}TckN?y3zx|y{*1T4J^z_#~`lmedOwr!oooMdXvmZBd^qBEemw9qt+pZk0 z(;Kf?;)YFM^rXjo;CJu7cl1~|s_%q{(=&_q{O(VU-Nrqzh6cZ|biZTt{72U1nm>8Q zk92=dpT7BG+fPCJ&ugzqTXHyQcTSfs-XilylB5GwId{fH2jnBN_x|1oE{T_V{2$SH B@B9D& delta 13979 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 IcqRV-0OGi19RL6T