From 1a19d3069d1c0074b7a64d9ceee96463f9c72130 Mon Sep 17 00:00:00 2001 From: pkali Date: Thu, 25 Aug 2022 00:36:35 -0400 Subject: [PATCH 01/27] manual and readme updt --- MANUAL_EN.md | 14 +++++++------- README.md | 10 +++++----- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/MANUAL_EN.md b/MANUAL_EN.md index c8b24ad..03c9d42 100644 --- a/MANUAL_EN.md +++ b/MANUAL_EN.md @@ -14,13 +14,13 @@ On the first screen, you can configure gameplay options: * frequency of suicides :) - if for a number of turns the game has not recorded hits (tanks are constantly shooting inaccurately), after one of such misses a tank commits suicide - here you determine how long they can "shooting for the stars" :) - if only people play the optimal setting is "norm", in the case of computer-controlled players ... you choose. * The height (and undulation) of the mountains from almost flat (NL - Kingdom of the Netherlands), to soaring and high (NP - Federal Democratic Republic of Nepal) * the way the walls (edges of the screen) work: - * none - projectiles that flew off the screen do not return - * wrap - the screen "wraps" and projectiles that flew to the right appear on the left side (and vice versa) - * bump - the right and left walls deflect projectiles that want to fly through them - * boxy - just like bump, except that the "ceiling" also reflects projectiles - * rand - at the beginning of each round, one of the above 4 ways the walls work is drawn. - - During gameplay, the current mode of the walls is represented by the color of the screen frame: none - black, wrap - purple, bump - blue, boxy - green. + * none - projectiles that flew off the screen do not return + * wrap - the screen "wraps" and projectiles that flew to the right appear on the left side (and vice versa) + * bump - the right and left walls deflect projectiles that want to fly through them + * boxy - just like bump, except that the "ceiling" also reflects projectiles + * rand - at the beginning of each round, one of the above 4 ways the walls work is drawn. + + During gameplay, the current mode of the walls is represented by the color of the screen frame: none - black, wrap - purple, bump - blue, boxy - green. Select options with cursor keys or a joystick. diff --git a/README.md b/README.md index e449544..fe9e2ad 100644 --- a/README.md +++ b/README.md @@ -54,13 +54,13 @@ With the advent of [fujinet](https://fujinet.online/) we are thinking about maki What is going on? Are we getting crazy or what? Changes: -* Background color indicates type of walls. This is very useful when `rand` option is selected. -* XEGS users requested that console keys are used when no keyboard attached! We delivered! [SELECT] to select an offensive weapon, [OPTION] to jump into inventory, defensive section, [START] + [OPTION] - immediate Game Over (no confirmation for you keyboardless folks) +* Background color indicates the type of walls. This is very useful when the rand option is selected. +* XEGS users requested that console keys are used when no keyboard is attached! We delivered! [SELECT] to select an offensive weapon, [OPTION] to jump into inventory, defensive section, [START] + [OPTION] - immediate Game Over (no confirmation for you keyboardless folks) * A very silly bug detected by our young testers fixed - the game crashed when you built a very high mountain using Dirt Balls :) * Boxy infinite bounce bug fixed. -* Funky bombs bouce off the walls! -* First letter entered for a tank name was inserted in a wrong spot. How did it work at all? Magic. -* [ESC] now correctly exits purchase screen. +* Funky bombs bounce off the walls! +* The first letter entered for a tank name was inserted in the wrong spot. How did it work at all? Magic. +[ESC] now correctly exits the purchase screen. ###### Version 1.11 From 07a25851475fb03d0c3a9d203dc49f2800c2a306 Mon Sep 17 00:00:00 2001 From: Pecusx Date: Thu, 25 Aug 2022 09:35:30 +0200 Subject: [PATCH 02/27] Much better aiming for Cyborg, Spoiler and Chooser --- ai.asm | 51 ++++++++++++++++++++++++++++++-------------------- scorch.xex | Bin 50946 -> 50969 bytes variables.asm | 4 +++- 3 files changed, 34 insertions(+), 21 deletions(-) diff --git a/ai.asm b/ai.asm index 7f90a97..65a27b6 100644 --- a/ai.asm +++ b/ai.asm @@ -455,25 +455,19 @@ loop01 lda eXistenZ,y beq skipThisPlayer - lda LowResDistances,x - cmp LowResDistances,y - bcs EnemyOnTheLeft ;enemy on the right lda Energy,y cmp temp2 ; lowest bcs lowestIsLower sta temp2 sty temp2+1 ; number of the closest tank + mva #0 tempor2 + lda LowResDistances,x + cmp LowResDistances,y + bcs EnemyOnTheLeft inc tempor2 ; set direction to right - bne lowestIsLower - -EnemyOnTheLeft - lda Energy,y - cmp temp2 ; lowest - bcs lowestIsLower - sta temp2 - sty temp2+1 ; number of the closest tank +EnemyOnTheLeft lowestIsLower skipThisPlayer dey @@ -607,14 +601,8 @@ skipThisPlayer ; returns angle and power of shoot tank X (TankNr) ; in the appropriate variables (Angle and Force) ;---------------------------------------------- + mva #$ff SecondTryFlag ; set initial Angle and Force values - ; wind correction 90+(wind/8) - mwa Wind temp2 - :7 lsrw temp2 - clc - lda #90 - adc temp2 - sta NewAngle lda OptionsTable+2 ; selected gravity asl tay @@ -633,10 +621,19 @@ skipThisPlayer adc #0 sta RandBoundaryHigh+1 jsr RandomizeForce +RepeatAim lda ForceTableL,x sta Force lda ForceTableH,x sta Force+1 + ; wind correction 90+(wind/8) + mwa Wind temp2 + :7 lsrw temp2 + clc + lda #90 + adc temp2 + sta NewAngle + ; set virtual weapon :) lda #ind_Baby_Missile___ sta ActiveWeapon,x ; now we have initial valuses @@ -673,7 +670,8 @@ GroundHitInFirstLoopR lda NewAngle adc #5 ; 5 deg to right cmp #(180-20) - bcs EndOfFirstLoopR ; if angle 180-20 or higher +; bcs EndOfFirstLoopR ; if angle 180-20 or higher + bcs AimSecondTry sta NewAngle jmp AimingRight NoHitInFirstLoopR @@ -721,8 +719,20 @@ NoHitInSecondLoopR ; Angle 1 deg to right and end loop inc NewAngle EndOfSecondLoopR +EndOfAim rts +AimSecondTry + bit SecondTryFlag + bpl EndOfAim ; closest RTS + inc SecondTryFlag + lda #<1000 + sta ForceTableL,x + lda #>1000 + sta ForceTableH,x + jsr RandomizeForce.LimitForce + jmp RepeatAim + AimingLeft ; make test Shoot (Flight) jsr SetStartAndFlight @@ -752,7 +762,8 @@ GroundHitInFirstLoopL lda NewAngle sbc #5 ; 5 deg to left cmp #21 - bcc EndOfFirstLoopL ; if angle 180-20 or higher +; bcc EndOfFirstLoopL ; if angle 20 or lower + bcc AimSecondTry sta NewAngle jmp AimingLeft NoHitInFirstLoopL diff --git a/scorch.xex b/scorch.xex index f023c1cf2d9f0c3afd87f24522873af31834f665..f5066039274670200dd12c0657026fd5f565254c 100644 GIT binary patch delta 10219 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 QDxPCr>b2{qDr@}z1CK-`_5c6? delta 10183 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 n&Az;3_`z8E8Y)9h_ diff --git a/variables.asm b/variables.asm index 997e0f4..1333993 100644 --- a/variables.asm +++ b/variables.asm @@ -151,7 +151,9 @@ LowResDistances ; coarse tank positions divided by 4 (to be in just one byte) .DS [MaxPlayers] ;---------------------------------------------------- TargetTankNr ; Target tank index (for AI routines) - .DS 1 + .DS 1 +SecondTryFlag ; For precize aiming AI + .DS 1 ;---------------------------------------------------- ;Erase .DS 1 ; if 1 only mask of the character is printed ; on the graphics screen. if 0 character is printed normally From e70752c12d8cd6d4f4dc3513b82a2b7f5c89bc41 Mon Sep 17 00:00:00 2001 From: Pecusx Date: Thu, 25 Aug 2022 13:18:29 +0200 Subject: [PATCH 03/27] Cyborgs prefer to kill humans :) --- ai.asm | 19 +++++++++++++++---- scorch.xex | Bin 50969 -> 50997 bytes variables.asm | 1 + 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/ai.asm b/ai.asm index 65a27b6..f502537 100644 --- a/ai.asm +++ b/ai.asm @@ -324,6 +324,7 @@ NoUseDefensive ; use defensives like Tosser jsr TosserDefensives ; now select best target + mva #$00 PreferHumansFlag jsr FindBestTarget3 sty TargetTankNr ; aiming @@ -364,6 +365,7 @@ HighForce ; use defensives like Tosser jsr TosserDefensives ; now select best target + mva #$00 PreferHumansFlag jsr FindBestTarget3 sty TargetTankNr ; aiming @@ -403,6 +405,7 @@ HighForce ; use defensives like Tosser jsr TosserDefensives ; now select best target + mva #$ff PreferHumansFlag jsr FindBestTarget3 sty TargetTankNr ; aiming @@ -441,7 +444,7 @@ HighForce ; direcion of shoot in A (0 - left, >0 - right) ;---------------------------------------------- jsr MakeLowResDistances - lda #101 + lda #202 sta temp2 ; max possible energy lda #0 sta tempor2 ; direction of shoot @@ -454,9 +457,16 @@ loop01 beq skipThisPlayer lda eXistenZ,y beq skipThisPlayer - - ;enemy on the right - lda Energy,y + + bit PreferHumansFlag + bpl NoPreferHumans + lda skilltable,y + beq ItIsHuman + lda #100 +ItIsHuman +NoPreferHumans + clc + adc Energy,y ; if robotank energy=energy+100 cmp temp2 ; lowest bcs lowestIsLower sta temp2 @@ -465,6 +475,7 @@ loop01 lda LowResDistances,x cmp LowResDistances,y bcs EnemyOnTheLeft + ; enemy on right inc tempor2 ; set direction to right EnemyOnTheLeft diff --git a/scorch.xex b/scorch.xex index f5066039274670200dd12c0657026fd5f565254c..2cfffa2ac3336a104b2211205285b3e6011674ce 100644 GIT binary patch delta 10247 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�nV*bY^(xMHj=#x4)i&MfumtoomWJ9x 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 diff --git a/variables.asm b/variables.asm index 1333993..dd8c13d 100644 --- a/variables.asm +++ b/variables.asm @@ -206,6 +206,7 @@ EndOfTheFallFlag .DS 1 ; in case of the infinite fall ;Parachute .DS 1 ; are you insured with parachute? FloatingAlt .DS 1 ; floating tank altitude FunkyWallFlag = FloatingAlt ; reuse this variable in different weapon (Funky Bomb)! +PreferHumansFlag = FloatingAlt ; second reuse in AI Aim proc ;---------------------------------------------------- ;Flight ;variables for 5 missiles (used for mirv) From 09651f163a02990ae8316c11ad6a128d2f9255d3 Mon Sep 17 00:00:00 2001 From: Pecusx Date: Thu, 25 Aug 2022 13:54:15 +0200 Subject: [PATCH 04/27] Memory optimizations --- ai.asm | 15 +++++++-------- scorch.xex | Bin 50997 -> 50987 bytes 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/ai.asm b/ai.asm index f502537..8043da9 100644 --- a/ai.asm +++ b/ai.asm @@ -324,7 +324,7 @@ NoUseDefensive ; use defensives like Tosser jsr TosserDefensives ; now select best target - mva #$00 PreferHumansFlag + lda #$00 ; no prefer humans jsr FindBestTarget3 sty TargetTankNr ; aiming @@ -365,7 +365,7 @@ HighForce ; use defensives like Tosser jsr TosserDefensives ; now select best target - mva #$00 PreferHumansFlag + lda #$00 ; no prefer humans jsr FindBestTarget3 sty TargetTankNr ; aiming @@ -405,7 +405,7 @@ HighForce ; use defensives like Tosser jsr TosserDefensives ; now select best target - mva #$ff PreferHumansFlag + lda #100 ; prefer humans jsr FindBestTarget3 sty TargetTankNr ; aiming @@ -440,9 +440,11 @@ HighForce .proc FindBestTarget3 ; find target with lowest energy ; X - shooting tank number +; A - 100 - prefer humans , 0 - equality :) ; returns target tank number in Y and ; direcion of shoot in A (0 - left, >0 - right) ;---------------------------------------------- + sta PreferHumansFlag jsr MakeLowResDistances lda #202 sta temp2 ; max possible energy @@ -458,15 +460,12 @@ loop01 lda eXistenZ,y beq skipThisPlayer - bit PreferHumansFlag - bpl NoPreferHumans lda skilltable,y beq ItIsHuman - lda #100 + lda PreferHumansFlag ItIsHuman -NoPreferHumans clc - adc Energy,y ; if robotank energy=energy+100 + adc Energy,y ; if robotank energy=energy+100 (100 or 0 from PreferHumansFlag) cmp temp2 ; lowest bcs lowestIsLower sta temp2 diff --git a/scorch.xex b/scorch.xex index 2cfffa2ac3336a104b2211205285b3e6011674ce..d89d0ce2b00ac5123a124348d26a4f022a45c7a5 100644 GIT binary patch delta 10285 zcma)i31Aad{(p|%91Z0P(3TMqDZ*M^z^YsxD+RKMipXt*wlu}26-irYYq%a%=(H)r z)k-AHn<+EUV7ln;MvPRY&{U2Ath*?Eytq%e?N|7=DqLxzVG+@ zzW2)qWyWn~Mqk$R`m!B!pAQ<^PvT2VKY4ojkC#@ixOcQHy7=8j+FUENafaN{EH)_`uDQ-Lg@ zXJj1)@MsPUpeo)0G|-o-DEg`ow@?hAZ72rNAu0|HO2yHaTK@Pfa15Y$Y)m#agJlw&9n4==F%+g!qQCMZAC3js3Y!4cIbNRazRbII)Ez

E?XKtop@|(*%b9u6mBkQob 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 BTQ~p! delta 10186 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 Date: Thu, 25 Aug 2022 20:52:03 +0200 Subject: [PATCH 05/27] Preparing to enter name of tank with joystick. --- scorch.xex | Bin 50987 -> 51025 bytes textproc.asm | 39 ++++++++++++++++++++++++++++++++++++--- 2 files changed, 36 insertions(+), 3 deletions(-) diff --git a/scorch.xex b/scorch.xex index d89d0ce2b00ac5123a124348d26a4f022a45c7a5..6130aa5d7fa636126c63290d42a7a20af9a88f32 100644 GIT binary patch delta 12694 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 XrZ?VrYs>bhOy*r;^IKPHhIanHe}U6j delta 12828 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%0ARrm(XlC4P=H)yU5gzAl+K zn#m^Z3~-WlcOJeorTPMe-94N?TLrs-n$N#k1=FaUEo3em;=Zjq{CDjd1hddM6qP6Y z&nf|ceu!=fp1fpfsw=szdP7~vUK6V>+)&5VVBM3$RM1l&1`#@oS|?1`$HHz3jnn$5 zDa5-uQ@>b1%{y1IZg?^@5yj+G_{_eZOsa7>;`BK@gFd14QilK-E%t^7A;7AV3IZE%GDcrYw1XP)~ zd@WS|kL8oykqd;cp3=8vdx2blvU`UOdm0R?MRM#!d4qZl%y0tCuqvM$o-eY~W6A{7 zYa<4XcmxwpnGiAIK*|Iy2IbXObtPaGW}JoQN*8y%IP&lrAsmN$kF+7dK^wQvm9!Mo z=t+p_u1j2 zqA16F^CSk2_dT?cpC@^ZK;KXTrPu;21_tcH{AXtmC{W}=ez78xq$GvyG(<}5G+Eg9 z>_GR^3Y^AL#kWKuF5fc>DQsM-G`U7k;!*lqsw5>@78NLjR}G66E2PTzv_h((g&OYR zHK&$>;hv?6w%4}Zr3B|~;g={uZ43X5aspqZ5D=6AW!Fh?E|LpRf_E{lM+n!PZ_}64 z;(VOA+^WHe3cu_EHH3Ud@g_96u&mno)-^;bV94zF3@^4tY1{(IP#(A*vdNzlUOq&s z`(ma*YK)5a?zEMTvQe&m&GQZ zD~NXM$n%8r?%~F;Fs`hR>0E&@ZsmyXm*@{L@Sv**mLN+L*kGzoW$Ws05ws&M>$Msi zx2lj$L%sKEfqV<3J+Fx2k)%Q02GbXH)5n*7@6jbCo5Q(+@G$*CRDGYxka`YD6u(!z zT=LcWG)<7>FAT-qC5JvQ*2{{0e#FcwT>Lza0-8uxY!?+)-@m8=HHL4(9a5kNg-8Yj zhCoy-1cpKUTL^Rd;weqbM^8H8X%btHCTgca^p1$Qvr|-?E{Tq{C5QB(uNGvlsH7!D zrLlhYG{aF}xN>EznBUspg5=+Tkex*@M_o%f=Th|%KFy@w&5tvw!riOJxkbfmh)l7e zoZVs8&Jy7tS#ae@VMSUmwjV}C(nIToCApbiV?%Jt#tklSOjpp{;KG*ej%$(v+?hnQ z!l-&6-W56#?^w*lF$UeK=nh&a*~a?&uzvTI2xAz+h$uqpWemL6`tHZ5xk@Y3O^o&U zl3np(xIc*7s-3|l)j}M_bZ3n#OI&oRy-;ov2i2*rsULc@yavknb1KgbH+Usx#kt=NHQdWHrB_Tcy^PlzP zvEqNofYzI66)P88WBg}FU$B%e=aGd6%Xp{3W7jdcnt1gV7GG>QzOqk4gU7&~IQpaZ zlTCdXE3gq8F-(fE62&+{7lvLyHP#i%6s}!kT|kzqVSZPK1b`kp5+5sNML-GjJEZe+`#)CC;BR zfP*Vlu(yCc%ZIA4w)~(BesBh#lEDwjz+lj43Oj-g09qpY)WH{Vg-PV$8>;fLsnIp* zA~YW~DDE||;@&p(mMGZDz{SElWT3HF_?!$MirlCGxAlL*qI$)Q>l_KRjReqQ$wZgLnUPWt&tny zp%$D%u_5qS#ZL9(V=`KPb{Y>xPps^W@QLkSc2b;=qo6h*axgUG;x3P>3H)HlLEa

APY_cOIp{&>X)Bhmxo8I^#LQ z-MSiBaYDzMg!qIXr2u)cCgCTK8ZOLmK$Nn=w@`eZ}q znk0R`&qp+Avp@q*Q=~Sh*O5$m9mEOSRO6UjLb!66`$}ePPXP^?N%qAdS3zSsD-`~q zoE%s{w4Q?2)-DNg=yl1;RO1cNn%70iA>xTBB2&GAS1I2>Nxf>~72Gjo!AFJ0hZ948 z49AAIAFcec`(YIO@v4ce-+=Kuz=2QbK@5uF`7%e_hxh8s(MmRYe*(<4P!DXUiNQ@TuTU@P>g9zN(K9J@@Gfn+NRO(mh$ zaDracOvI-=qPGbqe z-4Pia8_G7gtbZ0hsm|ziCB87UCN-sFmBwmX>`swYx`?C6g;m_(!VcXb%&NK9J%~BB zfs*N7oCmMl39FZ+3 zU%b$t98TOjSkkJk1Iug?6$#Te3~}F}wXegwm8!33@Eb~=4j!gtN$`8B1iz&lo|bb^ zoQ#znDEzY`0W@`q9ZZ#CN8=_b8#hV0qZ9Z6()~_Ht|R&<`qThc- z!>N$*&^J`;4>1oNW_Nnu(?j30r##=%T0B3x`S}Sw8ADrBuFlIQWIaF7-IP1EGs98E z%p*r_O+W77EfSW{dhO~c8mnZCic~W8S|l8q<)_FZVCTm#8ks*b`e%_BIsZu($@xw% z$;TmT(bUe`1k{3RlW~&#k@Y5$Meslu`_3VotnH)~X7`W(rdj=~$i`c5oJaXq_BhlAZ+NxeM=(dY4rWqPi5N~~&M!>fba(IWRk(7MLvwJC^_O)0 zdRExD={n;C;jK-h5N7Z|Bp};)w}O`nD;1QB%M_b8E_(P!_51!phl~BmuG+;|>~>p{ zQc)3jsXQ}KSDwi#J+7b&=V9Bf^26nYYwxajvLaM*{c~zLoB;0F&xd-k++MjzU_-5y z98@3V>sZy`r4$9}Io{#L;2j?Kuc@}+DrHE8GGwC?z9G0uD1Bkz;0mQ9&VvU58x{EC z@zna*TKH;gTK4>@>4g#Q2%jt2aB0)zgLwOhoEgs_ku>84q?fB`a)p0kZ#!*VcrDkr zf|H&LC(A|CrcJ|BBxfT3ilX(1Hm4?_#U{XxD&72N8(&c@B}dmn@UcvABma`3?qG78 z7D8~S{a;frY2xyc@|G-HweI;kvG<_if4KRMyQkq~5K8r@c*jAOBnyhzF1^skz;XUK zH4TwLKQI|FZmj<-!q-q7GmgI4ukXd$nl8Mx!dkjE(t$iIQgn-U;Nr#hTxB6b)pM7L z6x%iVbXmj&Y@Na`gE0+r5@r+Cp+y#PWBW3?oQBAHKy`Y&it5Z-@mub0tiAV2_Ba1N z`HqrFT^ zPDkH)9W*_b!79vcIwyFLBIuLm$~in0a6_50!T*x9hovya)BI zy`)%px7Ommzt~Y^QDmv!KO6sD%1K76QOO%TF-w@w%BKMR8_4HN0s z9+Bp{^_L0Lau5lx{usIyKEP?f(*}6Kj#&Mr!bkE!c)T@u*I-L(Xln~@Sf3fJS)Xa! zvVLG?W@QonQ}AC=r40p2YaIsM%F>eY#wPM~VkUx%hY?s`Hn&UEnrh%S%IzZwWhJ>gRrI zeamv~lnqCZ<@E*3x3Hr9ME_YX(t$*IIfJsDpV|e5OGiGYcU*}MA(H+d30~C)?$0Rj z?-CJ*QC=0CFK_O)$anIFMLtQA-bnHszs8;UOc8m$cE{20f9+--F#3)MXDwU%!midY zeoE*&;+{XxdwOHT+xx!nK62uM(mH?hH{Yk+Fe!U!RsD{m$G$t=8Jp0f_l=LtS&&mK zyhH;Zef-6lzQb>Q#9m(Y{0ntk-apvUbIe^cvY)Qn6gb-L`iYCG1N;AW!8CZxUGrY( z`uF0C!c(tVde(ORtE;OMs$NSGe6RHqcD&Zx_{tmFYY&-XH;M0yLcz-^LhrGC-k9 Date: Thu, 25 Aug 2022 22:44:33 +0200 Subject: [PATCH 06/27] Little visual improvement --- scorch.asm | 1 + scorch.xex | Bin 51025 -> 51028 bytes 2 files changed, 1 insertion(+) diff --git a/scorch.asm b/scorch.asm index 874a1f6..1546e1a 100644 --- a/scorch.asm +++ b/scorch.asm @@ -278,6 +278,7 @@ SettingBarrel mva #1 Erase jsr drawtanks mva #0 Erase + sta COLBAKS ; set background color to black jsr PMoutofScreen ;let P/M disappear ; here gains and losses should be displayed (dollars) diff --git a/scorch.xex b/scorch.xex index 6130aa5d7fa636126c63290d42a7a20af9a88f32..b49a910b8104979804692cf64e623927294f95dc 100644 GIT binary patch delta 14598 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 q_mk<|?r$!I4 Date: Fri, 26 Aug 2022 10:53:48 +0200 Subject: [PATCH 07/27] Manuals describes AI tactics. --- MANUAL_EN.md | 20 ++++++++++++++++++++ MANUAL_PL.md | 21 +++++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/MANUAL_EN.md b/MANUAL_EN.md index 03c9d42..bf23d67 100644 --- a/MANUAL_EN.md +++ b/MANUAL_EN.md @@ -195,3 +195,23 @@ And of course, activating a weapon when you already have some other weapon activ ## 7. "Other" weapons: * **Buy me!** - this is a 'loot box', not a weapon per se. Buying it draws one of the offensive or (rarely) defensive weapons and adds it to the player's arsenal. It is a lottery in which you can lose (if you draw a weapon cheaper than the **Buy Me!** price) but also gain. You can get a weapon otherwise not affordable at all! + +## 8. difficulty levels of computer-controlled opponents: + +The game has 8 difficulty levels of computer-controlled opponents. Or actually 7 different ones and one "surprise". Each has its own way of buying defensive and offensive weapons and a different method of target selection and targeting itself, as well as weapon selection. They are arranged in the list according to increasing "skills": + +* **Moron** - the dumbest of opponents (which does not mean the safest). Shoots completely at random using only one weapon - **Baby Missile**. He doesn't buy anything and doesn't know how to use defensive weapons. + +* **Shooter** - This opponent does not shoot blindly. He chooses one direction for himself. Based on his own position - he shoots in the direction from which there is more space assuming that this is where the other tanks are. He starts firing from a high angle and shot after shot changes this angle to a lower and lower angle trying to fire the entire area on the chosen side. He always fires with the best weapon he has (the highest on the list of weapons he has - that is, not necessarily the best). He does not use defensive weapons even though he buys them! At the beginning of the round, he makes 2 attempts to buy defensive weapons and 4 offensive weapons. + +* **Poolshark** - When attacking, he sets the nearest tank as his target, then selects the angle of the shot, and tries to select its strength by drawing it from the selected range. He always shoots with the best weapon he has. He uses defensive weapons. With a probability of 1:3, he activates the best defensive weapon he owns (the highest on the list of weapons he owns - that is, not necessarily the best) before firing. If his energy level drops below 30 units - he uses **Battery** (of course, if he bought it before), if the energy drops below 5 and he has no **Battery** he surrenders - **White Flag**. At the beginning of the round he makes 3 attempts to buy defensive weapons and 8 offensive weapons. + +** **Tosser** - When attacking, he acts exactly like **Poolshark** however, he may have a "better" weapon inventory due to a different purchase tactic. He always activates the best defensive weapon he has before shooting. And just like **Poolshark** he uses **Battery** and **White Flag**. At the beginning of the round, he assesses how much money he has and depending on that, he makes (money/2500) attempts to buy defensive weapons and then checks again how much money he has left and makes (money/1250) attempts to buy offensive weapons. + +** **Chooser** - Takes as a target the weakest opponent (with the least amount of energy) and aims very precisely, but before the shot the energy of the shot is modified by the parameter of luck :) , that is, despite the precise aiming it does not always hit. He shoots with the best weapon he has unless low energy is required (the target is close). Then he changes his weapon to **Baby Missile** to avoid hitting himself. He always activates the best defensive weapon he has before shooting and, like **Poolshark**, uses **Battery** and **White Flag**. He purchases just like **Tosser**. + +* **Spoiler** - He shoots exactly like **Chooser** except that he has more luck :) , which means that even if he doesn't hit the target of his choice, it can be a more precise shot than **Chooser**. He uses defensive weapons exactly like **Chooser**. At the beginning of the round, he assesses how much money he has and depending on that, he makes (money/2500) attempts to buy defensive weapons and then checks again how much money he has left and makes (money/160) attempts to buy offensive weapons. When buying defensive weapons, he buys only strong and precise weapons - that is, weapons that won't accidentally hurt him. + +** **Cyborg** - Takes aim at the weakest opponent (with the least amount of energy) but prefers human-controlled opponents. Aims very accurately and in the vast majority of cases hits on the first shot. He fires the shot with the best weapon he has unless low energy is required (the target is close). Then he changes his weapon to **Baby Missile** to avoid hitting himself. He uses defensive weapons exactly like **Chooser**. He shops exactly like **Spoiler**. + +* **Unknown** - Before firing each shot, he randomly chooses a course of action from **Poolshark** to **Cyborg** and applies his tactics. However, the tactics of weapon purchases are always identical to **Tosser**. diff --git a/MANUAL_PL.md b/MANUAL_PL.md index b147a42..942d613 100644 --- a/MANUAL_PL.md +++ b/MANUAL_PL.md @@ -189,3 +189,24 @@ Oczywiście aktywacja broni w momencie kiedy mamy już aktywowaną jakąś inną ## 7. Bronie 'inne' :) : * **Buy me!** - tej 'broni' nie można używać w rozgrywce. Jej zakup powoduje wylosowanie jesdnej z broni ofensywnych lub (żadziej) defensywnych i dodanie jej do arsenału gracza. Jest to loteria w której można stracić (jeśli wylosuje się broń tańsza niż cena **Buy Me!** ale też zyskać. Jeśli wylosuje się broń dużo droższa możemy otrzymać do dyspozycji broń, na którą nie było nas stać! + + +## 8. Poziomy trudności przeciwników sterowanych przez komputer: + +Gra posiada 8 poziomów trudności przeciwników sterowanych przez komputer. A właściwie 7 różnych i jeden "niespodziankę". Każdy z nich ma swój sposób kupowania broni defensywnych i ofensywnych oraz inną metodę wyboru celu i samego celowania, oraz wyboru broni. Ułożone są one na liście według wzrastających "umiejętności": + +* **Moron** - najgłupszy z przeciwników (co nie znaczy że najbezpieczniejszy). Strzela całkowicie przypadkowo używając wyłącznie jednej broni - **Baby Missile**. Nie kupuje nic, nie umie stosować broni defensywnych. + +* **Shooter** - Ten przeciwnik nie strzela na oślep. Wybiera sobie jeden kierunek. Na podstawie własnej pozycji - strzela w stronę z której jest więcej przestrzeni zakładając, że to tam są inne czołgi. Ostrzeliwanie zaczyna od wysokiego kąta i strzał po strzale zmienia ten kąt na coraz niższy starając się ostrzelać cały obszar po wybranej stronie. Strzał oddaje zawsze najlepszą posiadaną bronią (najwyższą na liście posiadanych broni - czyli nie koniecznie najlepszą). Nie używa broni defensywnych mimo, że je kupuje! Na początku rundy podejmuje 2 próby zakupu broni defensywnych i 4 ofensywnych. + +* **Poolshark** - Atakując wyznacza sobie za cel najbliższy czołg, następnie dobiera kąt strzału, a jego siłę stara się dobrać losując ją z wybranego przedziału. Strzał oddaje zawsze najlepszą posiadaną bronią. Używa broni defensywnych. Z prawdopodobieństwem 1:3 aktywuje przed oddaniem strzału najlepszą posiadaną broń defensywną (najwyższą na liście posiadanych broni - czyli nie koniecznie najlepszą). Jeżeli poziom jego energii spadnie poniżej 30 jednostek - używa **Battery** (oczywiście jeśli wcześniej ją kupił), jeżeli energia spadniej poniżej 5 i nie ma **Battery** poddaje się - **White Flag**. Na początku rundy podejmuje 3 próby zakupu broni defensywnych i 8 ofensywnych. + +* **Tosser** - Atakując działa dokładnie tak jak **Poolshark** jednak może posiadać "lepszy" zasób broni dzięki innej taktyce zakupów. Zawsze przed strzałem aktywuje najlepszą posiadaną broń defensywną. i tak jak **Poolshark** stosuje **Battery** i **White Flag**. Na początku rundy ocenia ile ma pieniędzy i w zależności od tego podejmuje (pieniądze/2500) prób zakupu broni defensywnych a następnie jeszcze raz sprawdza ile pieniędzy mu zostało i podejmuje (pieniądze/1250) prób zakupu broni ofensywnych. + +* **Chooser** - Obiera sobie za cel najsłabszego przeciwnika (o najmniejszym zasobie energii) i celuje bardzo dokładnie, jednak przed samym strzałem energia strzału modyfikowana jest o parametr szczęścia :) , czyli mimo precyzyjnego wycelowania nie zawsze trafia. Strzał oddaje najlepszą posiadaną bronią chyba że wymagana jest małą energia (cel jest blisko). Wtedy zmienia broń na **Baby Missile** by unikać trafienia samego siebie. Zawsze przed strzałem aktywuje najlepszą posiadaną broń defensywną i tak jak **Poolshark** stosuje **Battery** i **White Flag**. Zakupów dokonuje tak samo jak **Tosser**. + +* **Spoiler** - Strzela dokładnie tak jak **Chooser** tyle, że ma więcej szczęścia :) , co oznacza że nawet jeśli nie trafi w wybrany cel, to może być to strzał precyzyjniejszy niż **Chooser**. Broni defensywnych używa dokładnie tak jak **Chooser**. Na początku rundy ocenia ile ma pieniędzy i w zależności od tego podejmuje (pieniądze/2500) prób zakupu broni defensywnych a następnie jeszcze raz sprawdza ile pieniędzy mu zostało i podejmuje (pieniądze/160) prób zakupu broni ofensywnych. Przy zakupie broni defensywnych kupuje tylko bronie silne i precyzyjne - czyli takie, które nie zrobią mu przypadkiem krzywdy. + +* **Cyborg** - Obiera sobie za cel najsłabszego przeciwnika (o najmniejszym zasobie energii) lecz preferuje przeciwników sterowanych przez człowieka. Celuje bardzo dokładnie i w zdecydowanej większości przypadków trafia za pierwszym strzałem. Strzał oddaje najlepszą posiadaną bronią chyba że wymagana jest małą energia (cel jest blisko). Wtedy zmienia broń na **Baby Missile** by unikać trafienia samego siebie. Broni defensywnych używa dokładnie tak jak **Chooser**. Zakupy robi dokładnie tak jak **Spoiler** + +* **Unknown** - Przed oddaniem każdego strzału losowo wybiera sposób działania od **Poolsharka** do **Cyborga** i stosuje jego taktykę. Taktyka zakupów broni jest jednak zawsze identyczna jak **Tosser** From b57af2f9b20b745c6aaf0a876d7a01131c4140de Mon Sep 17 00:00:00 2001 From: Pecusx Date: Fri, 26 Aug 2022 16:57:21 +0200 Subject: [PATCH 08/27] Manuals update --- MANUAL_EN.md | 27 +++++++++++++++++++++++++++ MANUAL_PL.md | 27 +++++++++++++++++++++++++++ 2 files changed, 54 insertions(+) diff --git a/MANUAL_EN.md b/MANUAL_EN.md index bf23d67..91bb6fc 100644 --- a/MANUAL_EN.md +++ b/MANUAL_EN.md @@ -215,3 +215,30 @@ The game has 8 difficulty levels of computer-controlled opponents. Or actually 7 ** **Cyborg** - Takes aim at the weakest opponent (with the least amount of energy) but prefers human-controlled opponents. Aims very accurately and in the vast majority of cases hits on the first shot. He fires the shot with the best weapon he has unless low energy is required (the target is close). Then he changes his weapon to **Baby Missile** to avoid hitting himself. He uses defensive weapons exactly like **Chooser**. He shops exactly like **Spoiler**. * **Unknown** - Before firing each shot, he randomly chooses a course of action from **Poolshark** to **Cyborg** and applies his tactics. However, the tactics of weapon purchases are always identical to **Tosser**. + +Trying to buy a weapon (offensive or defensive) is as follows: +First, one of the weapons is drawn (among all possible offensive or defensive weapons). Then a check is performed to see if the drawn weapon is in the list of weapons possible for purchase by the tank. If not, no weapon is bought in this trial, and if so, its price is checked. If the tank has that much money, the weapon is bought, otherwise the trial ends without making a purchase. + +Table of weapons purchased by: **Shooter**, **Poolshark**, **Tosser** and **Chooser**. +| Offensive weapons | Defensive weapons | +| Missile | Battery | +| Baby Nuke | Parachute | +| Nuke | Strong Parachute | +| LeapFrog | Mag Deflector | +| Funky Bomb | Shield | +| MIRV | Heavy Shield | +| Death's Head | Force Shield | +| Napalm | Bouncy Castle | +| Hot Napalm | | +| Baby Roller | | +| Roller | | +| Heavy Roller | | + +Table of weapons purchased by: **Spoiler** and **Cyborg**. +| Offensive weapons | Defensive weapons | +| Baby Nuke | Battery | +| Nuke | Strong Parachute | +| Death's Head | Mag Deflector | +| Hot Napalm | Heavy Shield | +| | Force Shield | +| | Bouncy Castle | diff --git a/MANUAL_PL.md b/MANUAL_PL.md index 942d613..2f2d1a1 100644 --- a/MANUAL_PL.md +++ b/MANUAL_PL.md @@ -210,3 +210,30 @@ Gra posiada 8 poziomów trudności przeciwników sterowanych przez komputer. A w * **Cyborg** - Obiera sobie za cel najsłabszego przeciwnika (o najmniejszym zasobie energii) lecz preferuje przeciwników sterowanych przez człowieka. Celuje bardzo dokładnie i w zdecydowanej większości przypadków trafia za pierwszym strzałem. Strzał oddaje najlepszą posiadaną bronią chyba że wymagana jest małą energia (cel jest blisko). Wtedy zmienia broń na **Baby Missile** by unikać trafienia samego siebie. Broni defensywnych używa dokładnie tak jak **Chooser**. Zakupy robi dokładnie tak jak **Spoiler** * **Unknown** - Przed oddaniem każdego strzału losowo wybiera sposób działania od **Poolsharka** do **Cyborga** i stosuje jego taktykę. Taktyka zakupów broni jest jednak zawsze identyczna jak **Tosser** + +Próba zakupu broni (ofensywnej lub defensywnej) wygląda następująco: +Na początku losowana jest jedna z broni (wśród wszystkich możliwych ofensywnych lub defensywnych). Następnie wykonywane jest sprawdzenie czy wylosowana broń jest na liście broni możliwych do zakupu przez czołg. Jeśli nie to w tej próbie żadna broń nie jest kupowana, a jeśli tak, to sprawdzana jest jej cena. Jeśli czołg ma tyle pieniędzy, broń jest kupowana, w przeciwnym wypadku próba kończy się bez dokonania zakupu. + +Tabela broni kupowanych przez: **Shooter**, **Poolshark**, **Tosser** i **Chooser** +| bronie ofensywne | bronie defensywne | +| Missile | Battery | +| Baby Nuke | Parachute | +| Nuke | Strong Parachute | +| LeapFrog | Mag Deflector | +| Funky Bomb | Shield | +| MIRV | Heavy Shield | +| Death's Head | Force Shield | +| Napalm | Bouncy Castle | +| Hot Napalm | | +| Baby Roller | | +| Roller | | +| Heavy Roller | | + +Tabela broni kupowanych przez: **Spoiler** i **Cyborg** +| bronie ofensywne | bronie defensywne | +| Baby Nuke | Battery | +| Nuke | Strong Parachute | +| Death's Head | Mag Deflector | +| Hot Napalm | Heavy Shield | +| | Force Shield | +| | Bouncy Castle | From 69548da681183778a7bee9518945650f1bdb861d Mon Sep 17 00:00:00 2001 From: Pecusx Date: Fri, 26 Aug 2022 17:00:53 +0200 Subject: [PATCH 09/27] Manuals.... --- MANUAL_EN.md | 4 ++++ MANUAL_PL.md | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/MANUAL_EN.md b/MANUAL_EN.md index 91bb6fc..2e8faf3 100644 --- a/MANUAL_EN.md +++ b/MANUAL_EN.md @@ -220,7 +220,9 @@ Trying to buy a weapon (offensive or defensive) is as follows: First, one of the weapons is drawn (among all possible offensive or defensive weapons). Then a check is performed to see if the drawn weapon is in the list of weapons possible for purchase by the tank. If not, no weapon is bought in this trial, and if so, its price is checked. If the tank has that much money, the weapon is bought, otherwise the trial ends without making a purchase. Table of weapons purchased by: **Shooter**, **Poolshark**, **Tosser** and **Chooser**. + | Offensive weapons | Defensive weapons | +| --- | --- | | Missile | Battery | | Baby Nuke | Parachute | | Nuke | Strong Parachute | @@ -235,7 +237,9 @@ Table of weapons purchased by: **Shooter**, **Poolshark**, **Tosser** and **Choo | Heavy Roller | | Table of weapons purchased by: **Spoiler** and **Cyborg**. + | Offensive weapons | Defensive weapons | +| --- | --- | | Baby Nuke | Battery | | Nuke | Strong Parachute | | Death's Head | Mag Deflector | diff --git a/MANUAL_PL.md b/MANUAL_PL.md index 2f2d1a1..cf3c89d 100644 --- a/MANUAL_PL.md +++ b/MANUAL_PL.md @@ -215,7 +215,9 @@ Próba zakupu broni (ofensywnej lub defensywnej) wygląda następująco: Na początku losowana jest jedna z broni (wśród wszystkich możliwych ofensywnych lub defensywnych). Następnie wykonywane jest sprawdzenie czy wylosowana broń jest na liście broni możliwych do zakupu przez czołg. Jeśli nie to w tej próbie żadna broń nie jest kupowana, a jeśli tak, to sprawdzana jest jej cena. Jeśli czołg ma tyle pieniędzy, broń jest kupowana, w przeciwnym wypadku próba kończy się bez dokonania zakupu. Tabela broni kupowanych przez: **Shooter**, **Poolshark**, **Tosser** i **Chooser** + | bronie ofensywne | bronie defensywne | +| --- | --- | | Missile | Battery | | Baby Nuke | Parachute | | Nuke | Strong Parachute | @@ -230,7 +232,9 @@ Tabela broni kupowanych przez: **Shooter**, **Poolshark**, **Tosser** i **Choose | Heavy Roller | | Tabela broni kupowanych przez: **Spoiler** i **Cyborg** + | bronie ofensywne | bronie defensywne | +| --- | --- | | Baby Nuke | Battery | | Nuke | Strong Parachute | | Death's Head | Mag Deflector | From d0ceb2ec0d51d547064d94154163bc8ed44a52c7 Mon Sep 17 00:00:00 2001 From: Pecusx Date: Sat, 27 Aug 2022 14:22:36 +0200 Subject: [PATCH 10/27] Second young tester in creduts :) --- constants.asm | 2 +- scorch.xex | Bin 51028 -> 51037 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/constants.asm b/constants.asm index c126067..61b0b51 100644 --- a/constants.asm +++ b/constants.asm @@ -642,7 +642,7 @@ CreditsStart dta d"Shaggy the Atarian, RetroBorsuk, ZP",d"H"* dta d" "* dta d"Additional testin",d"g"* - dta d"Arek Peck",d"o"* + dta d"Arek and Alex Peck",d"o"* dta d" "* dta d"Stay tuned for the FujiNet version",d"!"* dta d" "* diff --git a/scorch.xex b/scorch.xex index b49a910b8104979804692cf64e623927294f95dc..9d1613e6ee82fb8d02f2c43277633dd1e6f06e25 100644 GIT binary patch delta 8935 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 delta 8925 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 From 851e8dd5af2957579ee264b3787ad924a2052126 Mon Sep 17 00:00:00 2001 From: Pecusx Date: Sat, 27 Aug 2022 16:12:03 +0200 Subject: [PATCH 11/27] Proper cursor operation in tank names. --- scorch.xex | Bin 51037 -> 51040 bytes textproc.asm | 76 ++++++++++++++++++++++++++++++--------------------- 2 files changed, 45 insertions(+), 31 deletions(-) diff --git a/scorch.xex b/scorch.xex index 9d1613e6ee82fb8d02f2c43277633dd1e6f06e25..847e651ab751b02542ceac5497580f27c76c2b06 100644 GIT binary patch delta 12616 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 QOy=F<$=7dw?S?-87s5T>lK=n! diff --git a/textproc.asm b/textproc.asm index acb2fe9..f301713 100644 --- a/textproc.asm +++ b/textproc.asm @@ -1079,12 +1079,12 @@ NoArrowDown jsr displaybyte jsr HighlightLevel ; setting choosen level of the opponent (Moron, etc) - ; clear tank name editor field - ldx #8 - lda #0 -@ sta NameAdr,x - dex - bpl @- + ; clear tank name editor field - not necessary +; ldx #8 +; lda #0 +;@ sta NameAdr,x +; dex +; bpl @- ; copy existing name and place cursor at end lda TankNr @@ -1102,25 +1102,22 @@ NoArrowDown endOfTankName @ lda NameAdr,y + and #$7f bne LastNameChar dey bpl @- LastNameChar + cpy #7 + beq @+ iny - - lda #$80 ; place cursor on the end - sta NameAdr,y - cpy #8 - bne @+ - dey @ sty PositionInName -; dey -; bpl @+ -; iny ; if old name is empty or first time entering -;@ sty PositionInName +; lda NameAdr,y +; ora #$80 ; place cursor on the end +; sta NameAdr,y CheckKeys + jsr CursorDisplay jsr getkey bit escFlag spl:rts @@ -1143,13 +1140,12 @@ YesLetter NotFirstLetter sta NameAdr,x inx - lda #$80 ; cursor behind the char - sta NameAdr,x +; lda #$80 ; cursor behind the char +; sta NameAdr,x cpx #$08 ; is there 8 characters? - beq CheckKeys ; if so, nothing increased - stx PositionInName ; if not, we store - ; position incremented by 1 - + bne @+ + dex +@ stx PositionInName ; if not, we store jmp CheckKeys CheckFurtherX01 ; here we check Tab, Return and Del cmp #$0c ; Return @@ -1169,15 +1165,19 @@ CheckFurtherX01 ; here we check Tab, Return and Del bne CheckKeys ; handling backing one char ldx PositionInName - beq FirstChar + beq FirstChar ; ferst char - no go back + cpx #7 + bne NotLastChar + lda NameAdr,x + and #$7f + bne LastIsNotSpace ; last char not empty - first clear last char (no go back) +NotLastChar dex +LastIsNotSpace FirstChar - lda #$80 - sta NameAdr,x - lda #$00 - sta NameAdr+1,x - sta NameAdr+2,x stx PositionInName + lda #0 + sta NameAdr,x jmp CheckKeys ChangeOfLevelUp ; change difficulty level of computer opponent inc:lda DifficultyLevel @@ -1275,13 +1275,27 @@ nextchar05 bne nextchar05 rts .endp +.proc CursorDisplay + ldy #7 +CursorLoop + lda NameAdr,y + and #$7f + cpy PositionInName + bne @+ + ora #$80 ; place cursor +@ sta NameAdr,y + dey + bpl CursorLoop + rts +.endp .proc EnterNameByJoy checkjoy lda STICK0 - and #$0f - cmp #$0f - bne JoyNotCentered +; commented but necessary (memory problems) !!! +; and #$0f +; cmp #$0f +; bne JoyNotCentered notpressedJoy ;fire From 068e5af36b67cf4dc81254749b2da8daa1efe228 Mon Sep 17 00:00:00 2001 From: pkali Date: Sun, 28 Aug 2022 01:01:36 -0400 Subject: [PATCH 12/27] weapons optimization --- constants.asm | 158 ++++++++++----------- definitions.asm | 131 +++++++++--------- scorch.asm | 17 +-- scorch.xex | Bin 51040 -> 34109 bytes textproc.asm | 360 ++++++++++++++++++++++++------------------------ variables.asm | 8 +- 6 files changed, 339 insertions(+), 335 deletions(-) diff --git a/constants.asm b/constants.asm index 61b0b51..2b04325 100644 --- a/constants.asm +++ b/constants.asm @@ -263,21 +263,21 @@ WeaponPriceH ; weapons prices (tables with prices of weapons) .by >price_Buy_me_________ .by >price_Plasma_Blast___ .by >price_Laser__________ - .by >price______________33 - .by >price______________34 - .by >price______________35 - .by >price______________36 - .by >price______________37 - .by >price______________38 - .by >price______________39 - .by >price______________40 - .by >price______________41 - .by >price______________42 - .by >price______________43 - .by >price______________44 - .by >price______________45 - .by >price______________46 - .by >price______________47 +; .by >price______________33 +; .by >price______________34 +; .by >price______________35 +; .by >price______________36 +; .by >price______________37 +; .by >price______________38 +; .by >price______________39 +; .by >price______________40 +; .by >price______________41 +; .by >price______________42 +; .by >price______________43 +; .by >price______________44 +; .by >price______________45 +; .by >price______________46 +; .by >price______________47 .by >price_White_Flag_____ .by >price_Battery________ .by >price_Bal_Guidance___ @@ -329,21 +329,21 @@ WeaponPriceL .by PMGraph + $300 - ; .error "memory conflict" - ;.endif +;---------------------------------------------- + org $bf80 +font4x4 + ins 'artwork/font4x4s.bmp',+62 + + diff --git a/scorch.xex b/scorch.xex index 847e651ab751b02542ceac5497580f27c76c2b06..4d94d934bfdc8e94eac6c130e81775aea5a63410 100644 GIT binary patch delta 14504 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 OgUjOT495*0-2cA|0Iq@n delta 29494 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 sec - sbc #17 + sbc #17 ; ???? bmi NoArrowDown cmp OffsetDL1 bcc NoArrowDown @@ -1036,9 +1043,6 @@ NoArrowDown .proc EnterPlayerNames ;entering names of players mwa #NameDL dlptrs -; lda dmactls -; and #$fc -; ora #$01 ; narrow screen (32 chars) lda #%00110001 ; narrow screen width, DL on, P/M off sta dmactls VDLI DLIinterruptText ; jsr SetDLI for text (names) screen diff --git a/variables.asm b/variables.asm index dd8c13d..b965f0b 100644 --- a/variables.asm +++ b/variables.asm @@ -152,7 +152,7 @@ LowResDistances ; coarse tank positions divided by 4 (to be in just one byte) ;---------------------------------------------------- TargetTankNr ; Target tank index (for AI routines) .DS 1 -SecondTryFlag ; For precize aiming AI +SecondTryFlag ; For precise AI aiming .DS 1 ;---------------------------------------------------- ;Erase .DS 1 ; if 1 only mask of the character is printed @@ -273,9 +273,9 @@ temptankNr .DS 1 ; tables with indexes of weapons on the right lists ; OK (2022) so, L1 is list of offensive weapons, L2 - defensive IndexesOfWeaponsL1 - .ds 8*5 ; max 40 offensive weapons. this is wrong, should be 48, still only 32 defined. + .ds (last_offensive_____ - first_offensive____) IndexesOfWeaponsL2 - .ds 8*2 ; max 16 defensive weapons. + .ds (last_defensive_____ - first_defensive____) ;---------------------------------------------------- ; variables storing amount of weapons on the first and second @@ -294,7 +294,7 @@ LastWeapon ; and the cursor must be placed elsewhere .DS 1 WhichList ; list currently on the screen - ; (0-offensive, 1-defensive) + ; (0-offensive, %10000000 - defensive (check with bit:bmi for defensives) .DS 1 ;OffsetDL1 .DS 1 ; offset of the list screen (how many lines).... From 374df312fe073ab21816ef3a42a95bf134605ad3 Mon Sep 17 00:00:00 2001 From: pkali Date: Sun, 28 Aug 2022 01:04:43 -0400 Subject: [PATCH 13/27] intro like it was --- scorch.asm | 2 +- scorch.xex | Bin 34109 -> 50748 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/scorch.asm b/scorch.asm index 9812e2d..d65ed7e 100644 --- a/scorch.asm +++ b/scorch.asm @@ -154,7 +154,7 @@ icl 'lib/macro.hea' ;splash screen and musix - ;icl 'artwork/Scorch50.asm' + icl 'artwork/Scorch50.asm' ;Game loading address diff --git a/scorch.xex b/scorch.xex index 4d94d934bfdc8e94eac6c130e81775aea5a63410..e699db1c7793b5b09468012e30a02ee83105bd71 100644 GIT binary patch delta 14809 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 Z|GKnl2X(?3uJ7po-ApQchZ(o-e*xv Date: Sun, 28 Aug 2022 13:23:00 +0200 Subject: [PATCH 14/27] Entering names by joy! --- .gitignore | 2 + scorch.xex | Bin 50748 -> 50862 bytes textproc.asm | 102 +++++++++++++++++++++++++++++++++++++++++---------- 3 files changed, 85 insertions(+), 19 deletions(-) diff --git a/.gitignore b/.gitignore index 272baa5..36161dd 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ *.bak scorch.lab scorch.lst +textproc.lab +textproc.lst diff --git a/scorch.xex b/scorch.xex index e699db1c7793b5b09468012e30a02ee83105bd71..7d97b3738e11b76bdce3c6fd1f7e507c87cafe30 100644 GIT binary patch delta 12834 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 diff --git a/textproc.asm b/textproc.asm index 1d47963..916123e 100644 --- a/textproc.asm +++ b/textproc.asm @@ -1138,14 +1138,8 @@ IsLetter YesLetter lda scrcodes,x ; we have screen code of the char ldx PositionInName - bne NotFirstLetter - and #$3f ; First letter should be Capital letter - ; (nice trick does not affect digits) -NotFirstLetter sta NameAdr,x inx -; lda #$80 ; cursor behind the char -; sta NameAdr,x cpx #$08 ; is there 8 characters? bne @+ dex @@ -1223,13 +1217,15 @@ ChangeOfLevel3Down EndOfNick ; now check long press joy button (or Return...) mva #0 pressTimer ; reset - jsr WaitForKeyRelease +WaitForLongPress + lda STRIG0 ; wait only for joy long press + bne ShortJoyPress lda pressTimer cmp #25 ; 1/2s - bcc NotLongPress + bcc WaitForLongPress jsr EnterNameByJoy jmp CheckKeys -NotLongPress +ShortJoyPress ; storing name of the player and its level ; level of the computer opponent goes to @@ -1279,11 +1275,17 @@ nextchar05 bne nextchar05 rts .endp +;-------------------------------------------------- .proc CursorDisplay ldy #7 CursorLoop lda NameAdr,y and #$7f + cpy #0 + bne NotFirstLetter + and #$3f ; First letter should be Capital letter + ; (nice trick does not affect digits) +NotFirstLetter cpy PositionInName bne @+ ora #$80 ; place cursor @@ -1291,15 +1293,40 @@ CursorLoop dey bpl CursorLoop rts - .endp +;-------------------------------------------------- .proc EnterNameByJoy -checkjoy + mva #sfx_keyclick sfx_effect + jsr CursorDisplay + ldy PositionInName + ; now in Y we have PositionInName + ldx #(keycodesEnd-keycodes) +SearchCharacter + lda NameAdr,y + and #$7f + cmp #$20 + bcc CharOK ; digit or space + cmp #$60 + bcs CharOK ; not capital letter + ora #$40 +CharOK + cmp scrcodes,x + beq CharacterFound + dex + bpl SearchCharacter + inx +CharacterFound + ; now in X we have Character (index) on PositionInName + ; wait for centered joy +@ lda STICK0 + and #$0f + cmp #$0f + bne @- +checkjoy lda STICK0 -; commented but necessary (memory problems) !!! -; and #$0f -; cmp #$0f -; bne JoyNotCentered + and #$0f + cmp #$0f + bne JoyNotCentered notpressedJoy ;fire @@ -1309,12 +1336,49 @@ notpressedJoy JoyNotCentered ; this is a place for code :) - - - jmp checkjoy + cmp #7 + bne NoRight + ; joy right + cpy #7 + beq GoToMainLoop ; jast character + iny + bne GoToMainLoop +NoRight + cmp #11 + bne NoLeft + ; joy left + lda #0 + sta NameAdr,y + dey + bpl GoToMainLoop + iny + beq GoToMainLoop +NoLeft + cmp #14 + bne NoUp + ; joy up + cpx #(keycodesEnd-keycodes-1) + bne @+ + ldx #$00 ; set to first character index (loop) + beq CharAndMainLoop +@ inx + bne CharAndMainLoop +NoUp + cmp #13 + bne EnterNameByJoy ; not down + ; joy down + dex + bpl CharAndMainLoop + ldx #(keycodesEnd-keycodes-1) ; set to last character index (loop) +CharAndMainLoop + lda scrcodes,x + sta NameAdr,y +GoToMainLoop + sty PositionInName + jmp EnterNameByJoy .endp - +;-------------------------------------------------- .proc HighlightLevel ; this routine highlights the choosen ; level of the computer opponent From 57844f2df09183fe34f50075b04a929e0cfffd04 Mon Sep 17 00:00:00 2001 From: pkali Date: Sun, 28 Aug 2022 10:53:10 -0400 Subject: [PATCH 15/27] schlongus disappearus --- scorch.xex | Bin 50862 -> 50871 bytes textproc.asm | 5 +++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/scorch.xex b/scorch.xex index 7d97b3738e11b76bdce3c6fd1f7e507c87cafe30..5ae6f9a26034297590d8da077deef0f70d0dc22c 100644 GIT binary patch delta 12006 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 delta 12161 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 diff --git a/textproc.asm b/textproc.asm index 916123e..556d52c 100644 --- a/textproc.asm +++ b/textproc.asm @@ -2330,7 +2330,8 @@ EndOfCredits lda #$00 ; space sta textbuffer+80+22 sta textbuffer+80+39 - lda #47 ; no weapon name + mwa #emptyLine temp + jmp ClearingOnly ActiveDefence sta temp ;get back number of the weapon mva #0 temp+1 @@ -2342,7 +2343,7 @@ ActiveDefence bpl @- adw temp #NamesOfWeapons - +ClearingOnly ldy #15 @ lda (temp),y From ef361d044ea108c0f622268658b7b7ba0e99c7df Mon Sep 17 00:00:00 2001 From: pkali Date: Sun, 28 Aug 2022 11:46:55 -0400 Subject: [PATCH 16/27] opty + purchaseTable fix --- constants.asm | 119 +++++++++++++++++++++++++----------------------- definitions.asm | 1 + scorch.xex | Bin 50871 -> 50802 bytes textproc.asm | 18 ++++---- 4 files changed, 71 insertions(+), 67 deletions(-) diff --git a/constants.asm b/constants.asm index 2b04325..ff56333 100644 --- a/constants.asm +++ b/constants.asm @@ -447,16 +447,14 @@ PurchaseMeTable ;weapons good to be purchased by the robot ; "Heavy Sandhog ","Dirt Clod ","Dirt Ball ","Ton of Dirt " ; "Liquid Dirt ","Dirt Charge ","Buy me! ","Plasma Blast " .by %00000000 - ; "Laser " - .by %00000000 - .by 0 ; offset to defensives - ; "White Flag ","Battery ","Bal Guidance ","Horz Guidance " - ; "Hovercraft ","Lazy Boy ","Parachute ","Strong Parachute" - .by %01000011 - ; "Mag Deflector ","Shield ","Heavy Shield ","Force Shield " - ; "Super Mag ","Bouncy Castle ","Long Barrel ","Nuclear Winter " - .by %11110100 - + ; "Laser ","White Flag ","Battery ","Bal Guidance " + ; "Horz Guidance ","Hovercraft ","Lazy Boy ","Parachute " + .by %00100001 + ; "Strong Parachute","Mag Deflector ","Shield ","Heavy Shield " + ; "Force Shield ","Super Mag ","Bouncy Castle ","Long Barrel " + .by %11111010 + ; "Nuclear Winter " + .by %00000000 PurchaseMeTable2 ;weapons good to be purchased by the robot (Cyborg) ;the comment is an index in the tables ; "Baby Missile ","Missile ","Baby Nuke ","Nuke " @@ -471,16 +469,14 @@ PurchaseMeTable2 ;weapons good to be purchased by the robot (Cyborg) ; "Heavy Sandhog ","Dirt Clod ","Dirt Ball ","Ton of Dirt " ; "Liquid Dirt ","Dirt Charge ","Buy me! ","Plasma Blast " .by %00000000 - ; "Laser " - .by %00000000 - .by 0 ; offset to defensives - ; "White Flag ","Battery ","Bal Guidance ","Horz Guidance " - ; "Hovercraft ","Lazy Boy ","Parachute ","Strong Parachute" - .by %01000001 - ; "Mag Deflector ","Shield ","Heavy Shield ","Force Shield " - ; "Super Mag ","Bouncy Castle ","Long Barrel ","Nuclear Winter " - .by %10110100 - + ; "Laser ","White Flag ","Battery ","Bal Guidance " + ; "Horz Guidance ","Hovercraft ","Lazy Boy ","Parachute " + .by %00100000 + ;,"Strong Parachute","Mag Deflector ","Shield ","Heavy Shield " + ;,"Force Shield ","Super Mag ","Bouncy Castle ","Long Barrel " + .by %11011010 + ;"Nuclear Winter " + .by %00000000 ;------------------------------------------------- ; Screen codes of icons (chars) representing a given weapon WeaponSymbols @@ -546,43 +542,59 @@ NamesOfWeapons ;the comment is an index in the tables dta d"White Flag " ; 33 dta d"Battery " ; 34 - dta d"Bal Guidance " ; 35 - dta d"Horz Guidance " ; 36 - dta d"Hovercraft " ; 37 - dta d"Lazy Boy " ; 38 + ;dta d"Bal Guidance " ; 35 +;----------------------------------- +DefensiveEnergy ; OPTIMIZATION - unused name of the weapon + .by 00 ; White Flag + .by 00 ; Heat Guidance + .by 00 ; Bal Guidance + .by 00 ; Horz Guidance + .by 98 ; Let's go! + .by 00 ; Lazy Boy + .by 00 ; Parachute + .by 99 ; Strong Parachute + .by 99 ; Mag Deflector + .by 00 ; Shield + .by 99 ; Heavy Shield + .by 99 ; Force Shield + .by 00 ; Super Mag + .by 99 ; Bouncy Castle + .by 00 ; Long Barrel + .by 00 ; Nuclear Winter +;----------------------------------- + ;dta d"Horz Guidance " ; 36 +;----------------------------------- +weaponsOfDeath ; weapons used in tank death animations + dta 1,2,3,7,17,18,19,20,21,22,23,24,25,26,27 ; OPTIMIZATION - unused name of the weapon +weaponsOfDeathEnd dta d"Hovercraft " ; 37 +;----------------------------------- + dta 0 ; ALIGN to 16 + ; dta d"Lazy Boy " ; 38 +;----------------------------------- +joyToKeyTable; OPTIMIZATION - unused name of the weapon + ; .by 00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, 13, 14, 15 + .by $ff,$ff,$ff,$ff,$ff,$ff,$ff,$07,$ff,$ff,$ff,$06,$ff,$0f,$0e,$ff +;----------------------------------- dta d"Parachute " ; 39 - no energy dta d"Strong Parachute" ; 40 - with energy (earlier Battery) dta d"Mag Deflector " ; 41 - with shield and energy dta d"Shield " ; 42 - shield for one shot - no energy dta d"Heavy Shield " ; 43 - shield with energy dta d"Force Shield " ; 44 - shield with energy and parachute - dta d"Super Mag " ; 45 + ;dta d"Super Mag " ; 45 +;----------------------------------- +gameOverSpritesTop ; OPTIMIZATION - unused name of the weapon + ; end of the Gover sprites by number of players + ; 1 2 3 4 5 6 + .by 130,130,136,142,148,154 +;-------decimal constans +zero +digits dta d"0123456789" +;----------------------------------- dta d"Bouncy Castle " ; 46 - with shield and energy dta d"Long Schlong " ; 47 dta d"Nuclear Winter " ; 48 -DefensiveEnergy = * - 48 - .by 00 ; White Flag - .by 00 ; Heat Guidance - .by 00 ; Bal Guidance - .by 00 ; Horz Guidance - .by 98 ; Let's go! - .by 00 ; Lazy Boy - .by 00 ; Parachute - .by 99 ; Strong Parachute - .by 99 ; Mag Deflector - .by 00 ; Shield - .by 99 ; Heavy Shield - .by 99 ; Force Shield - .by 00 ; Super Mag - .by 99 ; Bouncy Castle - .by 00 ; Long Barrel - .by 00 ; Nuclear Winter -weaponsOfDeath ; weapons used in tank death animations - dta 1,2,3,7,17,18,19,20,21,22,23,24,25,26,27 -weaponsOfDeathEnd -joyToKeyTable - ; .by 00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, 13, 14, 15 - .by $ff,$ff,$ff,$ff,$ff,$ff,$ff,$07,$ff,$ff,$ff,$06,$ff,$0f,$0e,$ff + ;----------------------------------- keycodes ;tables for converting KeyCode to Screen Code (38 -1 characters) @@ -598,16 +610,7 @@ scrcodes dta d"qrstuvwx" dta d"yz123456" dta d"7890. " ; "-" -;----------------------------------- -gameOverSpritesTop - ; end of the Gover sprites by number of players - ; 1 2 3 4 5 6 - .by 130,130,136,142,148,154 -;-------decimal constans -zero -digits dta d"0123456789" -nineplus dta d"9"+1 -space dta d" " + ;------credits CreditsStart dta d" "* diff --git a/definitions.asm b/definitions.asm index 3b5e62b..8758a36 100644 --- a/definitions.asm +++ b/definitions.asm @@ -26,6 +26,7 @@ LongBarrel = 20 ; long barrel length TextBackgroundColor = $02 ; REAL constans - use: LDA #TextBackgroundColor TextForegroundColor = $0A +space = 0 ; space in screencodes ;character codes for symbols (tank, parachute, etc. ) char_parachute_______ = $02 diff --git a/scorch.xex b/scorch.xex index 5ae6f9a26034297590d8da077deef0f70d0dc22c..3e373680ef5680562980ab177dbd1c46ba4f0b0f 100644 GIT binary patch delta 12885 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 Date: Mon, 29 Aug 2022 00:31:24 -0400 Subject: [PATCH 17/27] WIP: unfinished weapons optimization --- ai.asm | 4 +- constants.asm | 364 ++++++++++++++++++++---------------------------- definitions.asm | 156 ++++++++------------- display.asm | 19 ++- scorch.asm | 6 +- scorch.xex | Bin 50802 -> 50665 bytes textproc.asm | 29 ++-- variables.asm | 16 +-- weapons.asm | 94 +++++-------- 9 files changed, 282 insertions(+), 406 deletions(-) diff --git a/ai.asm b/ai.asm index 8043da9..9c96bf6 100644 --- a/ai.asm +++ b/ai.asm @@ -155,7 +155,7 @@ endo ; choose the best weapon - ldy #32 ;the last weapon + ldy #last_offensive_____ ;the last weapon loop dey lda (temp),y ; this is set up before calling the routine, has address of TanksWeaponsTable @@ -1043,7 +1043,7 @@ SorryNoPurchase :4 asl ;*16 sta tempXroller ; perform this many purchase attempts @ - randomize ind_Missile________ ind_Plasma_Blast___ + randomize first_offensive____ last_offensive_____ jsr TryToPurchaseOnePiece2 dec tempXroller bne @- diff --git a/constants.asm b/constants.asm index ff56333..7a4dd52 100644 --- a/constants.asm +++ b/constants.asm @@ -261,36 +261,16 @@ WeaponPriceH ; weapons prices (tables with prices of weapons) .by >price_Liquid_Dirt____ .by >price_Dirt_Charge____ .by >price_Buy_me_________ - .by >price_Plasma_Blast___ .by >price_Laser__________ -; .by >price______________33 -; .by >price______________34 -; .by >price______________35 -; .by >price______________36 -; .by >price______________37 -; .by >price______________38 -; .by >price______________39 -; .by >price______________40 -; .by >price______________41 -; .by >price______________42 -; .by >price______________43 -; .by >price______________44 -; .by >price______________45 -; .by >price______________46 -; .by >price______________47 .by >price_White_Flag_____ .by >price_Battery________ - .by >price_Bal_Guidance___ - .by >price_Horz_Guidance__ - .by >price_Floating_Tank__ - .by >price_Lazy_Boy_______ + .by >price_Hovercraft_____ .by >price_Parachute______ .by >price_StrongParachute .by >price_Mag_Deflector__ .by >price_Shield_________ .by >price_Heavy_Shield___ .by >price_Force_Shield___ - .by >price_Super_Mag______ .by >price_Bouncy_Castle__ .by >price_Long_Barrel____ .by >price_Nuclear_Winter_ @@ -327,36 +307,16 @@ WeaponPriceL .by )qpe+qZi(*=_KzJ=w=(d3s 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 R(R07MYN31Yf8T74{vRVtKOO)8 diff --git a/textproc.asm b/textproc.asm index a7dc36d..d7fd93f 100644 --- a/textproc.asm +++ b/textproc.asm @@ -699,25 +699,13 @@ WeHaveOffset bne @- ; add to the address of the list - clc - lda xbyte - adc #ListOfWeapons - sta xbyte+1 - stx xbyte - txa ; now there is zero here + adw xbyte #ListOfWeapons + ldy #0 ClearList1 + tya sta (xbyte),y - iny - bne DoNotIncHigher1 - inc xbyte+1 -DoNotIncHigher1 - cpy #ListOfWeapons1End + inw xbyte + cpw xbyte #ListOfWeapons1End bne ClearList1 ; And the same we do with the second list @@ -955,14 +943,14 @@ DefActivationEnd .proc PutLitteChar ; first let's clear both lists from little chars mwa #ListOfWeapons xbyte - ldx #last_defensive_____ ; there are 52 lines total + ldx #last_defensive_____ ; there are xx lines total ldy #$00 EraseLoop tya ; lda #$00 sta (xbyte),y adw xbyte #32 ; narrow screen dex - bpl EraseLoop + bne EraseLoop ; now let's check which list is active now bit WhichList @@ -979,8 +967,7 @@ AddLoop2 SelectList2 lda #$7f ; little char (tab) - this is the pointer sta (xbyte),y - ; now we clear flags of presence of list "out of screen" - ; unfortunately I am now sure what it means... :( + ; now we clear up and down arrows indicating more content below or above screen ldx #EmptyLine stx MoreUpdl diff --git a/variables.asm b/variables.asm index b965f0b..6573a2a 100644 --- a/variables.asm +++ b/variables.asm @@ -273,9 +273,9 @@ temptankNr .DS 1 ; tables with indexes of weapons on the right lists ; OK (2022) so, L1 is list of offensive weapons, L2 - defensive IndexesOfWeaponsL1 - .ds (last_offensive_____ - first_offensive____) + .ds (last_offensive_____ - first_offensive____+1) IndexesOfWeaponsL2 - .ds (last_defensive_____ - first_defensive____) + .ds (last_defensive_____ - first_defensive____+1) ;---------------------------------------------------- ; variables storing amount of weapons on the first and second @@ -329,17 +329,17 @@ LaserCoordinate .DS 8 ; 2,2,2,2 ; from $30 the defensive weapons begin TanksWeapons TanksWeapon1 - .DS [64] + .DS [last_defensive_____ - first_offensive____ +1] TanksWeapon2 - .DS [64] + .DS [last_defensive_____ - first_offensive____ +1] TanksWeapon3 - .DS [64] + .DS [last_defensive_____ - first_offensive____ +1] TanksWeapon4 - .DS [64] + .DS [last_defensive_____ - first_offensive____ +1] TanksWeapon5 - .DS [64] + .DS [last_defensive_____ - first_offensive____ +1] TanksWeapon6 - .DS [64] + .DS [last_defensive_____ - first_offensive____ +1] mountaintable ;table of mountains (size=screenwidth) .DS [screenwidth] diff --git a/weapons.asm b/weapons.asm index 51fc624..7f6b356 100644 --- a/weapons.asm +++ b/weapons.asm @@ -19,39 +19,38 @@ pha rts ExplosionRoutines - .word babymissile-1 - .word missile-1 - .word babynuke-1 - .word nuke-1 - .word leapfrog-1 - .word funkybomb-1 - .word mirv-1 - .word deathshead-1 - .word napalm-1 ;napalm - .word hotnapalm-1 ;hotnapalm - .word tracer-1 - .word tracer-1 ;smoketracer - .word babyroller-1 - .word roller-1 - .word heavyroller-1 - .word riotcharge-1 - .word riotblast-1 - .word riotbomb-1 - .word heavyriotbomb-1 - .word babydigger-1 - .word digger-1 - .word heavydigger-1 - .word babysandhog-1 - .word sandhog-1 - .word heavysandhog-1 - .word dirtclod-1 - .word dirtball-1 - .word tonofdirt-1 - .word liquiddirt-1 - .word dirtcharge-1 - .word VOID-1 ;earthdisrupter - .word VOID-1 ;plasmablast - .word laser-1 + .word babymissile-1 ;Baby_Missile___;_00 + .word missile-1 ;Missile________;_01 + .word babynuke-1 ;Baby_Nuke______;_02 + .word nuke-1 ;Nuke___________;_03 + .word leapfrog-1 ;LeapFrog_______;_04 + .word funkybomb-1 ;Funky_Bomb_____;_05 + .word mirv-1 ;MIRV___________;_06 + .word deathshead-1 ;Death_s_Head___;_07 + .word napalm-1 ;Napalm_________;_08 + .word hotnapalm-1 ;Hot_Napalm_____;_09 + .word tracer-1 ;Tracer_________;_10 + .word tracer-1 ;Smoke_Tracer___;_11 + .word babyroller-1 ;Baby_Roller____;_12 + .word roller-1 ;Roller_________;_13 + .word heavyroller-1 ;Heavy_Roller___;_14 + .word riotcharge-1 ;Riot_Charge____;_15 + .word riotblast-1 ;Riot_Blast_____;_16 + .word riotbomb-1 ;Riot_Bomb______;_17 + .word heavyriotbomb-1 ;Heavy_Riot_Bomb;_18 + .word babydigger-1 ;Baby_Digger____;_19 + .word digger-1 ;Digger_________;_20 + .word heavydigger-1 ;Heavy_Digger___;_21 + .word babysandhog-1 ;Baby_Sandhog___;_22 + .word sandhog-1 ;Sandhog________;_23 + .word heavysandhog-1 ;Heavy_Sandhog__;_24 + .word dirtclod-1 ;Dirt_Clod______;_25 + .word dirtball-1 ;Dirt_Ball______;_26 + .word tonofdirt-1 ;Ton_of_Dirt____;_27 + .word liquiddirt-1 ;Liquid_Dirt____;_28 + .word dirtcharge-1 ;Dirt_Charge____;_29 + .word VOID-1 ;Buy_me_________;_30 + .word laser-1 ;Laser__________;_31 VOID tracer @@ -670,21 +669,6 @@ DiggerCharacter mva EndOfTheBarrelY ybyte mva #0 ybyte+1 - ;clc - ;lda xtankstableL,x - ;adc EndOfTheBarrelX,y ; correction of the end of the barrel point (X) - ;sta xbyte - ;lda xtankstableH,x - ;adc #0 - ;sta xbyte+1 - ;sec - ;lda ytankstable,x - ;sbc EndOfTheBarrelY,y ; correction of the end of the barrel point (Y) - ;sta ybyte - ;lda #$00 - ;sbc #$00 - ;sta ybyte+1 - mwa xdraw LaserCoordinate mwa ydraw LaserCoordinate+2 mwa xbyte LaserCoordinate+4 @@ -3028,7 +3012,8 @@ RangesChecked .endp ;-------------------------------------------------- .proc ClearScreenSoilRange -; cleanup of the soil fall down ranges (left and right) ;-------------------------------------------------- +; cleanup of the soil fall down ranges (left and right) +;-------------------------------------------------- mwa #screenwidth RangeLeft lda #0 sta RangeRight @@ -3043,17 +3028,6 @@ RangesChecked jsr DecreaseWeapon ; and here we have amount of possessed ammo for given weapon sta WeaponDepleted -; ;cmp #0 -; bne AmmunitionDecreased -; ;lda #0 ;if ammo for given weapon ends -; sta ActiveWeapon,x ;then set to default weapon (baby missile) -;AmmunitionDecreased -; lda #99 -; ldy #0 -; sta (weaponPointer),y ;baby missile - always 99 pieces -; -; ;there is a good value in weaponPointer after jsr DecreaseWeapon -; rts .endp From cc07bd52f292b516282f3be69a4057605f1ed37b Mon Sep 17 00:00:00 2001 From: Pecusx Date: Mon, 29 Aug 2022 09:42:05 +0200 Subject: [PATCH 18/27] WIP: Proper selection of weapons with Tab key --- ai.asm | 8 ++++---- grafproc.asm | 5 +++-- scorch.xex | Bin 50665 -> 50672 bytes weapons.asm | 22 ++++++++++++++-------- 4 files changed, 21 insertions(+), 14 deletions(-) diff --git a/ai.asm b/ai.asm index 9c96bf6..d1eb767 100644 --- a/ai.asm +++ b/ai.asm @@ -262,10 +262,10 @@ EnoughEnergy ; first check check if any is in use lda ActiveDefenceWeapon,x bne DefensiveInUse - ldy #ind_Nuclear_Winter_+1 ;the last defensive weapon + ldy #last_defensive_____+1 ;the last defensive weapon @ dey - cpy #ind_Battery________ ;first defensive weapon (White Flag nad Battery - never use) + cpy #ind_Battery________ ;first defensive weapon (White Flag and Battery - never use) beq NoUseDefensive lda (temp),y ; has address of TanksWeaponsTable beq @- @@ -297,10 +297,10 @@ DefensiveInUse ; first check check if any is in use lda ActiveDefenceWeapon,x bne DefensiveInUse - ldy #ind_Nuclear_Winter_+1 ;the last defensive weapon + ldy #last_defensive_____+1 ;the last defensive weapon @ dey - cpy #ind_Battery________ ;first defensive weapon (White Flag nad Battery - never use) + cpy #ind_Battery________ ;first defensive weapon (White Flag and Battery - never use) beq NoUseDefensive lda (temp),y ; has address of TanksWeaponsTable beq @- diff --git a/grafproc.asm b/grafproc.asm index 23693be..028cd36 100644 --- a/grafproc.asm +++ b/grafproc.asm @@ -1100,8 +1100,9 @@ ParachutePresent ; check energy of parachute lda ShieldEnergy,x bne OneTimeParachute - mva #0 Parachute - mva #0 ActiveDefenceWeapon,x ; deactivate defence + lda #$00 + sta Parachute + sta ActiveDefenceWeapon,x ; deactivate defence OneTimeParachute lda Parachute ora #2 ; we set bit nr 1 (nr 0 means that parachute is present) diff --git a/scorch.xex b/scorch.xex index 314f5cbdd57f1f6f889c3663b26c8b43d4de3208..f946e75b177272e57e7ca4cd8e20338609e83a29 100644 GIT binary patch delta 13973 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 WUn=jkJGK0%T02@u+HLSw^!R^cykNlq delta 13667 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 0 +?notfirsttolast + dec ActiveWeapon,x @ lda ActiveWeapon,x jsr HowManyBullets ; and we have qty of owned shells. Ufff.... From 4a1c8aacda808a4ec26f4f541d9997d3cd1a613c Mon Sep 17 00:00:00 2001 From: Pecusx Date: Mon, 29 Aug 2022 12:05:51 +0200 Subject: [PATCH 19/27] ListOfWeapons is now 32 and it works --- display.asm | 2 +- scorch.xex | Bin 50672 -> 50643 bytes textproc.asm | 7 ++++--- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/display.asm b/display.asm index 51cd736..817666e 100644 --- a/display.asm +++ b/display.asm @@ -34,7 +34,7 @@ OptionsScreenEnd ListOfWeapons ; 0123456789012345678901234567890123456789 ; :number_of_offensives dta d" " - :33 dta d" " + :32 dta d" " ListOfWeapons1End ListOfDefensiveWeapons ; :number_of_defensives dta d" " diff --git a/scorch.xex b/scorch.xex index f946e75b177272e57e7ca4cd8e20338609e83a29..6e9967970a0af5f25bc51f2025a69f003a1b501a 100644 GIT binary patch delta 13276 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 delta 13364 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 diff --git a/textproc.asm b/textproc.asm index d7fd93f..95891ff 100644 --- a/textproc.asm +++ b/textproc.asm @@ -702,12 +702,13 @@ WeHaveOffset adw xbyte #ListOfWeapons ldy #0 ClearList1 + cpw xbyte #ListOfWeapons1End + beq ListCleared1 tya sta (xbyte),y inw xbyte - cpw xbyte #ListOfWeapons1End - bne ClearList1 - + jmp ClearList1 +ListCleared1 ; And the same we do with the second list ; Multiply number on list 1 by 32 and set address From 19820d7bf94595c339e19359521468ef3cfc9e56 Mon Sep 17 00:00:00 2001 From: Pecusx Date: Mon, 29 Aug 2022 14:20:30 +0200 Subject: [PATCH 20/27] Optimizations and fix for lonely weapon pointer --- scorch.xex | Bin 50643 -> 50650 bytes textproc.asm | 30 ++++++++++-------------------- 2 files changed, 10 insertions(+), 20 deletions(-) diff --git a/scorch.xex b/scorch.xex index 6e9967970a0af5f25bc51f2025a69f003a1b501a..67f577424b18db2bfad570147b824f9a0e181fb0 100644 GIT binary patch delta 12839 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 Qs=%+>(Rc4S&tIed4`O@m5C8xG delta 13037 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 z z-qHw?#T6Pny`z{vJ~P=y|BAMfPFT-oOH_GYUd{Bi2{qH!CeYH5jh3A=Ew;5A*AB|N zp2w_PzV4sv-dKy>isu49`J!q5U4ECqf|4?OLY~g;rHB80(%vt?o7O= zo%=^hdwa>M^&7X64&8bW8uIL)Cn0;`7tw3SgGm~cf?CzC``@r1^84(E zJjni6+!G%X-cIe&bx(Scz*xjmSjt_oa3jTZUn@7_c&A}k;$ZS|hX3&zT&MM}!3}^O zx24AHEka$Ervsi7FQz!&PUK`K;?Xs)%rhJ-TP&`$PzHDIXYeFtFc64yC}u}fO($}z z69JPhlu7eSrM(HAKdGP)3d%Dys+{0;x)b+s0ktu?;THCFma*n42Yn=EVdgd0IH0b*b;FivVt8On2z~)o;@HwqU=E4k#5A_ud*A#8KCYXh3@6LT2E)A zcmi9<<-z_lcidnSPvE)338aSE0n#U1NgscR)Dc;KqCVSiFi!;)eIx-r)R#8fPgvr* z6T{7m-3i{v<7K=a8pbv=H?9AlgmH9Mhxc`Mcp=P=4XSAWJ7GML%>iLf+3%O8{si(_ z^@Vo>e1TPi2OaQ`IMC6TIY-13@P-9=&0&eEXl(S3&rk4<%TKVpnBSCtD?g5l<6g&q zah#=`&BWGcZN)fA)pRc`vkkji=$~U|^MBoOv2c`sVp(PlZZ~W-xZTJ^!Jo~d7e0%{ z#dVoT60_=Tj>k=679L+_<1z91Oxyw7+g&w>_z$+l+B5R&mns)grCUl}3*F-FJ=d53 z)I#fBQU>jyHv$7&JCGN*qQ|sC;r@|asT~iZL#U|VA&7gJ;w4ocN`XHCBI@sOOToOv z+qV~og${mw-3Q<7?&*BlV4uHboBTKL*$_joC!QKU<&Af8-g|%Vx$kfH7-ULF$y&MT z?@eD{F+4eGPOfm^cuSaJ^z(Dq74K?18xj%SrBDAs@lU^yZO`4X{lkNwoc3S8Z8VL4 zB|EQT*WdOYIQ;LQ+6|tXw0Pa7T{Wjeo|rtRX!q%B`riFUO-)+4Dez}A{li~&cj2R| Z`tyUUy6&D_^$)Fnn2@r2fTz0i{{`cbTZ#Yx diff --git a/textproc.asm b/textproc.asm index 95891ff..5d726c9 100644 --- a/textproc.asm +++ b/textproc.asm @@ -704,7 +704,7 @@ WeHaveOffset ClearList1 cpw xbyte #ListOfWeapons1End beq ListCleared1 - tya + tya ; now there is zero here sta (xbyte),y inw xbyte jmp ClearList1 @@ -724,26 +724,16 @@ ListCleared1 bne @- ; add to the address of the list - clc - lda xbyte - adc #ListOfDefensiveWeapons - sta xbyte+1 - stx xbyte - txa ; now there is zero here + adw xbyte #ListOfDefensiveWeapons + ldy #0 ClearList2 + cpw xbyte #ListOfDefensiveWeaponsEnd + beq ListCleared2 + tya ; now there is zero here sta (xbyte),y - iny - bne DoNotIncHigher2 - inc xbyte+1 -DoNotIncHigher2 - cpy #ListOfDefensiveWeaponsEnd - bne ClearList2 + inw xbyte + jmp ClearList2 +ListCleared2 ; here we have pretty cool lists and there is no brute force ; screen clearing at each list refresh @@ -951,7 +941,7 @@ EraseLoop sta (xbyte),y adw xbyte #32 ; narrow screen dex - bne EraseLoop + bpl EraseLoop ; now let's check which list is active now bit WhichList From b219c23a9692d898c1e8f047298f8f51febc1ae4 Mon Sep 17 00:00:00 2001 From: Pecusx Date: Mon, 29 Aug 2022 14:53:31 +0200 Subject: [PATCH 21/27] AI tuning and manuals update --- MANUAL_EN.md | 6 +++--- MANUAL_PL.md | 6 +++--- ai.asm | 32 ++++++++++++++++---------------- scorch.xex | Bin 50650 -> 50643 bytes 4 files changed, 22 insertions(+), 22 deletions(-) diff --git a/MANUAL_EN.md b/MANUAL_EN.md index 2e8faf3..03c225f 100644 --- a/MANUAL_EN.md +++ b/MANUAL_EN.md @@ -202,15 +202,15 @@ The game has 8 difficulty levels of computer-controlled opponents. Or actually 7 * **Moron** - the dumbest of opponents (which does not mean the safest). Shoots completely at random using only one weapon - **Baby Missile**. He doesn't buy anything and doesn't know how to use defensive weapons. -* **Shooter** - This opponent does not shoot blindly. He chooses one direction for himself. Based on his own position - he shoots in the direction from which there is more space assuming that this is where the other tanks are. He starts firing from a high angle and shot after shot changes this angle to a lower and lower angle trying to fire the entire area on the chosen side. He always fires with the best weapon he has (the highest on the list of weapons he has - that is, not necessarily the best). He does not use defensive weapons even though he buys them! At the beginning of the round, he makes 2 attempts to buy defensive weapons and 4 offensive weapons. +* **Shooter** - This opponent does not shoot blindly. He chooses one direction for himself. Based on his own position - he shoots in the direction from which there is more space assuming that this is where the other tanks are. He starts firing from a high angle and shot after shot changes this angle to a lower and lower angle trying to fire the entire area on the chosen side. He always fires with the best weapon he has (the highest on the list of weapons he has - that is, not necessarily the best). He does not use defensive weapons even though he buys them! At the beginning of the round, he makes 1 attempt to buy defensive weapons (only from the **Battery** - **Strong Parachute** range) and 4 offensive weapons (from the **Missile** - **Heavy Roller** range). -* **Poolshark** - When attacking, he sets the nearest tank as his target, then selects the angle of the shot, and tries to select its strength by drawing it from the selected range. He always shoots with the best weapon he has. He uses defensive weapons. With a probability of 1:3, he activates the best defensive weapon he owns (the highest on the list of weapons he owns - that is, not necessarily the best) before firing. If his energy level drops below 30 units - he uses **Battery** (of course, if he bought it before), if the energy drops below 5 and he has no **Battery** he surrenders - **White Flag**. At the beginning of the round he makes 3 attempts to buy defensive weapons and 8 offensive weapons. +* **Poolshark** - When attacking, he sets the nearest tank as his target, then selects the angle of the shot, and tries to select its strength by drawing it from the selected range. He always shoots with the best weapon he has. He uses defensive weapons. With a probability of 1:3, he activates the best defensive weapon he owns (the highest on the list of weapons he owns - that is, not necessarily the best) before firing. If his energy level drops below 30 units - he uses **Battery** (of course, if he bought it before), if the energy drops below 5 and he has no **Battery** he surrenders - **White Flag**. At the beginning of the round he makes 2 attempts to buy defensive weapons and 7 offensive weapons. ** **Tosser** - When attacking, he acts exactly like **Poolshark** however, he may have a "better" weapon inventory due to a different purchase tactic. He always activates the best defensive weapon he has before shooting. And just like **Poolshark** he uses **Battery** and **White Flag**. At the beginning of the round, he assesses how much money he has and depending on that, he makes (money/2500) attempts to buy defensive weapons and then checks again how much money he has left and makes (money/1250) attempts to buy offensive weapons. ** **Chooser** - Takes as a target the weakest opponent (with the least amount of energy) and aims very precisely, but before the shot the energy of the shot is modified by the parameter of luck :) , that is, despite the precise aiming it does not always hit. He shoots with the best weapon he has unless low energy is required (the target is close). Then he changes his weapon to **Baby Missile** to avoid hitting himself. He always activates the best defensive weapon he has before shooting and, like **Poolshark**, uses **Battery** and **White Flag**. He purchases just like **Tosser**. -* **Spoiler** - He shoots exactly like **Chooser** except that he has more luck :) , which means that even if he doesn't hit the target of his choice, it can be a more precise shot than **Chooser**. He uses defensive weapons exactly like **Chooser**. At the beginning of the round, he assesses how much money he has and depending on that, he makes (money/2500) attempts to buy defensive weapons and then checks again how much money he has left and makes (money/160) attempts to buy offensive weapons. When buying defensive weapons, he buys only strong and precise weapons - that is, weapons that won't accidentally hurt him. +* **Spoiler** - He shoots exactly like **Chooser** except that he has more luck :) , which means that even if he doesn't hit the target of his choice, it can be a more precise shot than **Chooser**. He uses defensive weapons exactly like **Chooser**. At the beginning of the round, he assesses how much money he has and depending on that, he makes (money/2500) attempts to buy defensive weapons and then checks again how much money he has left and makes (money/320) attempts to buy offensive weapons. When buying defensive weapons, he buys only strong and precise weapons - that is, weapons that won't accidentally hurt him. ** **Cyborg** - Takes aim at the weakest opponent (with the least amount of energy) but prefers human-controlled opponents. Aims very accurately and in the vast majority of cases hits on the first shot. He fires the shot with the best weapon he has unless low energy is required (the target is close). Then he changes his weapon to **Baby Missile** to avoid hitting himself. He uses defensive weapons exactly like **Chooser**. He shops exactly like **Spoiler**. diff --git a/MANUAL_PL.md b/MANUAL_PL.md index cf3c89d..8d74e79 100644 --- a/MANUAL_PL.md +++ b/MANUAL_PL.md @@ -197,15 +197,15 @@ Gra posiada 8 poziomów trudności przeciwników sterowanych przez komputer. A w * **Moron** - najgłupszy z przeciwników (co nie znaczy że najbezpieczniejszy). Strzela całkowicie przypadkowo używając wyłącznie jednej broni - **Baby Missile**. Nie kupuje nic, nie umie stosować broni defensywnych. -* **Shooter** - Ten przeciwnik nie strzela na oślep. Wybiera sobie jeden kierunek. Na podstawie własnej pozycji - strzela w stronę z której jest więcej przestrzeni zakładając, że to tam są inne czołgi. Ostrzeliwanie zaczyna od wysokiego kąta i strzał po strzale zmienia ten kąt na coraz niższy starając się ostrzelać cały obszar po wybranej stronie. Strzał oddaje zawsze najlepszą posiadaną bronią (najwyższą na liście posiadanych broni - czyli nie koniecznie najlepszą). Nie używa broni defensywnych mimo, że je kupuje! Na początku rundy podejmuje 2 próby zakupu broni defensywnych i 4 ofensywnych. +* **Shooter** - Ten przeciwnik nie strzela na oślep. Wybiera sobie jeden kierunek. Na podstawie własnej pozycji - strzela w stronę z której jest więcej przestrzeni zakładając, że to tam są inne czołgi. Ostrzeliwanie zaczyna od wysokiego kąta i strzał po strzale zmienia ten kąt na coraz niższy starając się ostrzelać cały obszar po wybranej stronie. Strzał oddaje zawsze najlepszą posiadaną bronią (najwyższą na liście posiadanych broni - czyli nie koniecznie najlepszą). Nie używa broni defensywnych mimo, że je kupuje! Na początku rundy podejmuje 1 próbę zakupu broni defensywnych (tylko z zakresu **Battery** - **Strong Parachute**) i 4 ofensywnych (z zakresu **Missile** - **Heavy Roller**). -* **Poolshark** - Atakując wyznacza sobie za cel najbliższy czołg, następnie dobiera kąt strzału, a jego siłę stara się dobrać losując ją z wybranego przedziału. Strzał oddaje zawsze najlepszą posiadaną bronią. Używa broni defensywnych. Z prawdopodobieństwem 1:3 aktywuje przed oddaniem strzału najlepszą posiadaną broń defensywną (najwyższą na liście posiadanych broni - czyli nie koniecznie najlepszą). Jeżeli poziom jego energii spadnie poniżej 30 jednostek - używa **Battery** (oczywiście jeśli wcześniej ją kupił), jeżeli energia spadniej poniżej 5 i nie ma **Battery** poddaje się - **White Flag**. Na początku rundy podejmuje 3 próby zakupu broni defensywnych i 8 ofensywnych. +* **Poolshark** - Atakując wyznacza sobie za cel najbliższy czołg, następnie dobiera kąt strzału, a jego siłę stara się dobrać losując ją z wybranego przedziału. Strzał oddaje zawsze najlepszą posiadaną bronią. Używa broni defensywnych. Z prawdopodobieństwem 1:3 aktywuje przed oddaniem strzału najlepszą posiadaną broń defensywną (najwyższą na liście posiadanych broni - czyli nie koniecznie najlepszą). Jeżeli poziom jego energii spadnie poniżej 30 jednostek - używa **Battery** (oczywiście jeśli wcześniej ją kupił), jeżeli energia spadniej poniżej 5 i nie ma **Battery** poddaje się - **White Flag**. Na początku rundy podejmuje 2 próby zakupu broni defensywnych i 7 ofensywnych. * **Tosser** - Atakując działa dokładnie tak jak **Poolshark** jednak może posiadać "lepszy" zasób broni dzięki innej taktyce zakupów. Zawsze przed strzałem aktywuje najlepszą posiadaną broń defensywną. i tak jak **Poolshark** stosuje **Battery** i **White Flag**. Na początku rundy ocenia ile ma pieniędzy i w zależności od tego podejmuje (pieniądze/2500) prób zakupu broni defensywnych a następnie jeszcze raz sprawdza ile pieniędzy mu zostało i podejmuje (pieniądze/1250) prób zakupu broni ofensywnych. * **Chooser** - Obiera sobie za cel najsłabszego przeciwnika (o najmniejszym zasobie energii) i celuje bardzo dokładnie, jednak przed samym strzałem energia strzału modyfikowana jest o parametr szczęścia :) , czyli mimo precyzyjnego wycelowania nie zawsze trafia. Strzał oddaje najlepszą posiadaną bronią chyba że wymagana jest małą energia (cel jest blisko). Wtedy zmienia broń na **Baby Missile** by unikać trafienia samego siebie. Zawsze przed strzałem aktywuje najlepszą posiadaną broń defensywną i tak jak **Poolshark** stosuje **Battery** i **White Flag**. Zakupów dokonuje tak samo jak **Tosser**. -* **Spoiler** - Strzela dokładnie tak jak **Chooser** tyle, że ma więcej szczęścia :) , co oznacza że nawet jeśli nie trafi w wybrany cel, to może być to strzał precyzyjniejszy niż **Chooser**. Broni defensywnych używa dokładnie tak jak **Chooser**. Na początku rundy ocenia ile ma pieniędzy i w zależności od tego podejmuje (pieniądze/2500) prób zakupu broni defensywnych a następnie jeszcze raz sprawdza ile pieniędzy mu zostało i podejmuje (pieniądze/160) prób zakupu broni ofensywnych. Przy zakupie broni defensywnych kupuje tylko bronie silne i precyzyjne - czyli takie, które nie zrobią mu przypadkiem krzywdy. +* **Spoiler** - Strzela dokładnie tak jak **Chooser** tyle, że ma więcej szczęścia :) , co oznacza że nawet jeśli nie trafi w wybrany cel, to może być to strzał precyzyjniejszy niż **Chooser**. Broni defensywnych używa dokładnie tak jak **Chooser**. Na początku rundy ocenia ile ma pieniędzy i w zależności od tego podejmuje (pieniądze/2500) prób zakupu broni defensywnych a następnie jeszcze raz sprawdza ile pieniędzy mu zostało i podejmuje (pieniądze/320) prób zakupu broni ofensywnych. Przy zakupie broni defensywnych kupuje tylko bronie silne i precyzyjne - czyli takie, które nie zrobią mu przypadkiem krzywdy. * **Cyborg** - Obiera sobie za cel najsłabszego przeciwnika (o najmniejszym zasobie energii) lecz preferuje przeciwników sterowanych przez człowieka. Celuje bardzo dokładnie i w zdecydowanej większości przypadków trafia za pierwszym strzałem. Strzał oddaje najlepszą posiadaną bronią chyba że wymagana jest małą energia (cel jest blisko). Wtedy zmienia broń na **Baby Missile** by unikać trafienia samego siebie. Broni defensywnych używa dokładnie tak jak **Chooser**. Zakupy robi dokładnie tak jak **Spoiler** diff --git a/ai.asm b/ai.asm index d1eb767..49c2a71 100644 --- a/ai.asm +++ b/ai.asm @@ -955,13 +955,13 @@ SorryNoPurchase ;---------------------------------------------- .proc ShooterPurchase ; first try to buy defensives - mva #2 tempXroller; number of offensive purchases to perform +; mva #2 tempXroller; number of offensive purchases to perform ldx TankNr @ randomize ind_Battery________ ind_StrongParachute jsr TryToPurchaseOnePiece - dec tempXroller - bne @- +; dec tempXroller +; bne @- ; and now offensives mva #4 tempXroller; number of offensive purchases to perform @@ -977,7 +977,7 @@ SorryNoPurchase ;---------------------------------------------- .proc PoolsharkPurchase ; first try to buy defensives - mva #3 tempXroller; number of offensive purchases to perform + mva #2 tempXroller; number of offensive purchases to perform ldx TankNr @ randomize ind_Battery________ ind_Bouncy_Castle__ @@ -986,7 +986,7 @@ SorryNoPurchase bne @- ; and now offensives - mva #8 tempXroller; number of purchases to perform + mva #7 tempXroller; number of purchases to perform ;ldx TankNr @ randomize ind_Missile________ ind_Dirt_Charge____ @@ -1001,15 +1001,15 @@ SorryNoPurchase ; what is my money level ldx TankNr -; lda MoneyH,x ; money / 256 -; sta tempXroller ; perform this many purchase attempts + lda MoneyH,x ; money / 256 + sta tempXroller ; perform this many purchase attempts ; first try to buy defensives - mva #1 tempXroller; number of defensive purchases to perform +; mva #1 tempXroller; number of defensive purchases to perform @ randomize ind_Battery________ ind_Bouncy_Castle__ jsr TryToPurchaseOnePiece dec tempXroller - bne @- + bpl @- ; and now offensives lda MoneyH,x ; money / 256 @@ -1019,7 +1019,7 @@ SorryNoPurchase randomize ind_Missile________ ind_Dirt_Charge____ jsr TryToPurchaseOnePiece dec tempXroller - bne @- + bpl @- rts .endp @@ -1028,25 +1028,25 @@ SorryNoPurchase ; what is my money level ldx TankNr - ;lda MoneyH,x ; money / 256 - ;sta tempXroller ; perform this many purchase attempts + lda MoneyH,x ; money / 256 + sta tempXroller ; perform this many purchase attempts ; first try to buy defensives - mva #1 tempXroller; number of defensive purchases to perform +; mva #1 tempXroller; number of defensive purchases to perform @ randomize ind_Battery________ ind_Bouncy_Castle__ jsr TryToPurchaseOnePiece2 dec tempXroller - bne @- + bpl @- ; and now offensives lda MoneyH,x ; money / 256 - :4 asl ;*16 + :3 asl ;*8 sta tempXroller ; perform this many purchase attempts @ randomize first_offensive____ last_offensive_____ jsr TryToPurchaseOnePiece2 dec tempXroller - bne @- + bpl @- rts .endp diff --git a/scorch.xex b/scorch.xex index 67f577424b18db2bfad570147b824f9a0e181fb0..7c2f0027b1b22eff63df65096a7438f56af4ed03 100644 GIT binary patch delta 10250 zcma)i31Ade(*GQ}g)nl+K(6Kx3E&#Vl^`IjTmgoF2OfwzLXMdL6IPsr5W)ncF+w_- z&_WVqbowRTrb8x91a${(hzOdAkgvsKSN6k27g*wf!}W2vgzxuy0*I^M{~t)YyIxhj zs(SV6RaN)ljmFP58vWm8>hIa{eP+S2AS@UX>IEtIf= zhZWq$E|-wZ3Jck^3bp-k2b+_-xToZpttR5M$5LzzUPHd zysYEyGB9grF|(FiQYN3eO!x;L89J_7I(c-sdXYqe0y;oY@Y*QIi#*kWr(WQ_m7iM^Bc+VquyXu9IzOCJKq1E8;FEzC*^@1AFZn|joRZHd) zzu@r;R-ausI9YJ_f&g|w9>{tb>z^$TOqZ4^O9VE*QK=SGqa}Kpe3d=SlrEF?>>E

3kERU2C=C75 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 delta 10258 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 From ddc8c5b4142b44c7ce804d88b9fee7ac8f1bcb10 Mon Sep 17 00:00:00 2001 From: Pecusx Date: Mon, 29 Aug 2022 15:22:10 +0200 Subject: [PATCH 22/27] AI fine tune --- MANUAL_EN.md | 6 +++--- MANUAL_PL.md | 6 +++--- ai.asm | 8 +++++--- scorch.xex | Bin 50643 -> 50639 bytes 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/MANUAL_EN.md b/MANUAL_EN.md index 03c225f..ee6437c 100644 --- a/MANUAL_EN.md +++ b/MANUAL_EN.md @@ -204,13 +204,13 @@ The game has 8 difficulty levels of computer-controlled opponents. Or actually 7 * **Shooter** - This opponent does not shoot blindly. He chooses one direction for himself. Based on his own position - he shoots in the direction from which there is more space assuming that this is where the other tanks are. He starts firing from a high angle and shot after shot changes this angle to a lower and lower angle trying to fire the entire area on the chosen side. He always fires with the best weapon he has (the highest on the list of weapons he has - that is, not necessarily the best). He does not use defensive weapons even though he buys them! At the beginning of the round, he makes 1 attempt to buy defensive weapons (only from the **Battery** - **Strong Parachute** range) and 4 offensive weapons (from the **Missile** - **Heavy Roller** range). -* **Poolshark** - When attacking, he sets the nearest tank as his target, then selects the angle of the shot, and tries to select its strength by drawing it from the selected range. He always shoots with the best weapon he has. He uses defensive weapons. With a probability of 1:3, he activates the best defensive weapon he owns (the highest on the list of weapons he owns - that is, not necessarily the best) before firing. If his energy level drops below 30 units - he uses **Battery** (of course, if he bought it before), if the energy drops below 5 and he has no **Battery** he surrenders - **White Flag**. At the beginning of the round he makes 2 attempts to buy defensive weapons and 7 offensive weapons. +* **Poolshark** - When attacking, he sets the nearest tank as his target, then selects the angle of the shot, and tries to select its strength by drawing it from the selected range. He always shoots with the best weapon he has. He uses defensive weapons. With a probability of 1:3, he activates the best defensive weapon he owns (the highest on the list of weapons he owns - that is, not necessarily the best) before firing. If his energy level drops below 30 units - he uses **Battery** (of course, if he bought it before), if the energy drops below 5 and he has no **Battery** he surrenders - **White Flag**. At the beginning of the round he makes 1 attemp to buy defensive weapons and 6 offensive weapons. -** **Tosser** - When attacking, he acts exactly like **Poolshark** however, he may have a "better" weapon inventory due to a different purchase tactic. He always activates the best defensive weapon he has before shooting. And just like **Poolshark** he uses **Battery** and **White Flag**. At the beginning of the round, he assesses how much money he has and depending on that, he makes (money/2500) attempts to buy defensive weapons and then checks again how much money he has left and makes (money/1250) attempts to buy offensive weapons. +** **Tosser** - When attacking, he acts exactly like **Poolshark** however, he may have a "better" weapon inventory due to a different purchase tactic. He always activates the best defensive weapon he has before shooting. And just like **Poolshark** he uses **Battery** and **White Flag**. At the beginning of the round, he assesses how much money he has and depending on that, he makes (money/5100) attempts to buy defensive weapons and then checks again how much money he has left and makes (money/1250) attempts to buy offensive weapons. ** **Chooser** - Takes as a target the weakest opponent (with the least amount of energy) and aims very precisely, but before the shot the energy of the shot is modified by the parameter of luck :) , that is, despite the precise aiming it does not always hit. He shoots with the best weapon he has unless low energy is required (the target is close). Then he changes his weapon to **Baby Missile** to avoid hitting himself. He always activates the best defensive weapon he has before shooting and, like **Poolshark**, uses **Battery** and **White Flag**. He purchases just like **Tosser**. -* **Spoiler** - He shoots exactly like **Chooser** except that he has more luck :) , which means that even if he doesn't hit the target of his choice, it can be a more precise shot than **Chooser**. He uses defensive weapons exactly like **Chooser**. At the beginning of the round, he assesses how much money he has and depending on that, he makes (money/2500) attempts to buy defensive weapons and then checks again how much money he has left and makes (money/320) attempts to buy offensive weapons. When buying defensive weapons, he buys only strong and precise weapons - that is, weapons that won't accidentally hurt him. +* **Spoiler** - He shoots exactly like **Chooser** except that he has more luck :) , which means that even if he doesn't hit the target of his choice, it can be a more precise shot than **Chooser**. He uses defensive weapons exactly like **Chooser**. At the beginning of the round, he assesses how much money he has and depending on that, he makes (money/5100) attempts to buy defensive weapons and then checks again how much money he has left and makes (money/320) attempts to buy offensive weapons. When buying defensive weapons, he buys only strong and precise weapons - that is, weapons that won't accidentally hurt him. ** **Cyborg** - Takes aim at the weakest opponent (with the least amount of energy) but prefers human-controlled opponents. Aims very accurately and in the vast majority of cases hits on the first shot. He fires the shot with the best weapon he has unless low energy is required (the target is close). Then he changes his weapon to **Baby Missile** to avoid hitting himself. He uses defensive weapons exactly like **Chooser**. He shops exactly like **Spoiler**. diff --git a/MANUAL_PL.md b/MANUAL_PL.md index 8d74e79..3bd3351 100644 --- a/MANUAL_PL.md +++ b/MANUAL_PL.md @@ -199,13 +199,13 @@ Gra posiada 8 poziomów trudności przeciwników sterowanych przez komputer. A w * **Shooter** - Ten przeciwnik nie strzela na oślep. Wybiera sobie jeden kierunek. Na podstawie własnej pozycji - strzela w stronę z której jest więcej przestrzeni zakładając, że to tam są inne czołgi. Ostrzeliwanie zaczyna od wysokiego kąta i strzał po strzale zmienia ten kąt na coraz niższy starając się ostrzelać cały obszar po wybranej stronie. Strzał oddaje zawsze najlepszą posiadaną bronią (najwyższą na liście posiadanych broni - czyli nie koniecznie najlepszą). Nie używa broni defensywnych mimo, że je kupuje! Na początku rundy podejmuje 1 próbę zakupu broni defensywnych (tylko z zakresu **Battery** - **Strong Parachute**) i 4 ofensywnych (z zakresu **Missile** - **Heavy Roller**). -* **Poolshark** - Atakując wyznacza sobie za cel najbliższy czołg, następnie dobiera kąt strzału, a jego siłę stara się dobrać losując ją z wybranego przedziału. Strzał oddaje zawsze najlepszą posiadaną bronią. Używa broni defensywnych. Z prawdopodobieństwem 1:3 aktywuje przed oddaniem strzału najlepszą posiadaną broń defensywną (najwyższą na liście posiadanych broni - czyli nie koniecznie najlepszą). Jeżeli poziom jego energii spadnie poniżej 30 jednostek - używa **Battery** (oczywiście jeśli wcześniej ją kupił), jeżeli energia spadniej poniżej 5 i nie ma **Battery** poddaje się - **White Flag**. Na początku rundy podejmuje 2 próby zakupu broni defensywnych i 7 ofensywnych. +* **Poolshark** - Atakując wyznacza sobie za cel najbliższy czołg, następnie dobiera kąt strzału, a jego siłę stara się dobrać losując ją z wybranego przedziału. Strzał oddaje zawsze najlepszą posiadaną bronią. Używa broni defensywnych. Z prawdopodobieństwem 1:3 aktywuje przed oddaniem strzału najlepszą posiadaną broń defensywną (najwyższą na liście posiadanych broni - czyli nie koniecznie najlepszą). Jeżeli poziom jego energii spadnie poniżej 30 jednostek - używa **Battery** (oczywiście jeśli wcześniej ją kupił), jeżeli energia spadniej poniżej 5 i nie ma **Battery** poddaje się - **White Flag**. Na początku rundy podejmuje 1 próbę zakupu broni defensywnych i 6 ofensywnych. -* **Tosser** - Atakując działa dokładnie tak jak **Poolshark** jednak może posiadać "lepszy" zasób broni dzięki innej taktyce zakupów. Zawsze przed strzałem aktywuje najlepszą posiadaną broń defensywną. i tak jak **Poolshark** stosuje **Battery** i **White Flag**. Na początku rundy ocenia ile ma pieniędzy i w zależności od tego podejmuje (pieniądze/2500) prób zakupu broni defensywnych a następnie jeszcze raz sprawdza ile pieniędzy mu zostało i podejmuje (pieniądze/1250) prób zakupu broni ofensywnych. +* **Tosser** - Atakując działa dokładnie tak jak **Poolshark** jednak może posiadać "lepszy" zasób broni dzięki innej taktyce zakupów. Zawsze przed strzałem aktywuje najlepszą posiadaną broń defensywną. i tak jak **Poolshark** stosuje **Battery** i **White Flag**. Na początku rundy ocenia ile ma pieniędzy i w zależności od tego podejmuje (pieniądze/5100) prób zakupu broni defensywnych a następnie jeszcze raz sprawdza ile pieniędzy mu zostało i podejmuje (pieniądze/1250) prób zakupu broni ofensywnych. * **Chooser** - Obiera sobie za cel najsłabszego przeciwnika (o najmniejszym zasobie energii) i celuje bardzo dokładnie, jednak przed samym strzałem energia strzału modyfikowana jest o parametr szczęścia :) , czyli mimo precyzyjnego wycelowania nie zawsze trafia. Strzał oddaje najlepszą posiadaną bronią chyba że wymagana jest małą energia (cel jest blisko). Wtedy zmienia broń na **Baby Missile** by unikać trafienia samego siebie. Zawsze przed strzałem aktywuje najlepszą posiadaną broń defensywną i tak jak **Poolshark** stosuje **Battery** i **White Flag**. Zakupów dokonuje tak samo jak **Tosser**. -* **Spoiler** - Strzela dokładnie tak jak **Chooser** tyle, że ma więcej szczęścia :) , co oznacza że nawet jeśli nie trafi w wybrany cel, to może być to strzał precyzyjniejszy niż **Chooser**. Broni defensywnych używa dokładnie tak jak **Chooser**. Na początku rundy ocenia ile ma pieniędzy i w zależności od tego podejmuje (pieniądze/2500) prób zakupu broni defensywnych a następnie jeszcze raz sprawdza ile pieniędzy mu zostało i podejmuje (pieniądze/320) prób zakupu broni ofensywnych. Przy zakupie broni defensywnych kupuje tylko bronie silne i precyzyjne - czyli takie, które nie zrobią mu przypadkiem krzywdy. +* **Spoiler** - Strzela dokładnie tak jak **Chooser** tyle, że ma więcej szczęścia :) , co oznacza że nawet jeśli nie trafi w wybrany cel, to może być to strzał precyzyjniejszy niż **Chooser**. Broni defensywnych używa dokładnie tak jak **Chooser**. Na początku rundy ocenia ile ma pieniędzy i w zależności od tego podejmuje (pieniądze/5100) prób zakupu broni defensywnych a następnie jeszcze raz sprawdza ile pieniędzy mu zostało i podejmuje (pieniądze/320) prób zakupu broni ofensywnych. Przy zakupie broni defensywnych kupuje tylko bronie silne i precyzyjne - czyli takie, które nie zrobią mu przypadkiem krzywdy. * **Cyborg** - Obiera sobie za cel najsłabszego przeciwnika (o najmniejszym zasobie energii) lecz preferuje przeciwników sterowanych przez człowieka. Celuje bardzo dokładnie i w zdecydowanej większości przypadków trafia za pierwszym strzałem. Strzał oddaje najlepszą posiadaną bronią chyba że wymagana jest małą energia (cel jest blisko). Wtedy zmienia broń na **Baby Missile** by unikać trafienia samego siebie. Broni defensywnych używa dokładnie tak jak **Chooser**. Zakupy robi dokładnie tak jak **Spoiler** diff --git a/ai.asm b/ai.asm index 49c2a71..ab9e339 100644 --- a/ai.asm +++ b/ai.asm @@ -977,16 +977,16 @@ SorryNoPurchase ;---------------------------------------------- .proc PoolsharkPurchase ; first try to buy defensives - mva #2 tempXroller; number of offensive purchases to perform +; mva #2 tempXroller; number of offensive purchases to perform ldx TankNr @ randomize ind_Battery________ ind_Bouncy_Castle__ jsr TryToPurchaseOnePiece dec tempXroller - bne @- +; bpl @- ; and now offensives - mva #7 tempXroller; number of purchases to perform + mva #6 tempXroller; number of purchases to perform ;ldx TankNr @ randomize ind_Missile________ ind_Dirt_Charge____ @@ -1002,6 +1002,7 @@ SorryNoPurchase ; what is my money level ldx TankNr lda MoneyH,x ; money / 256 + lsr ; /2 sta tempXroller ; perform this many purchase attempts ; first try to buy defensives ; mva #1 tempXroller; number of defensive purchases to perform @@ -1029,6 +1030,7 @@ SorryNoPurchase ; what is my money level ldx TankNr lda MoneyH,x ; money / 256 + lsr ; /2 sta tempXroller ; perform this many purchase attempts ; first try to buy defensives ; mva #1 tempXroller; number of defensive purchases to perform diff --git a/scorch.xex b/scorch.xex index 7c2f0027b1b22eff63df65096a7438f56af4ed03..9b7c9ef6709117a7430b8ef66dc4250ab4da856f 100644 GIT binary patch delta 10140 zcma)C3t$sf)=rxA6?sHn4baDcyoxAY6e$XV%DWL^S5c9b0BuQ78Wht4rIyz~7dvgr z1))eJb76)KHYF8TjWEC}Xj6e5aK&YRaS?@W6-xLQL2zmR?@r3g$N&F@c4p2!=iGD8 zJ@>q3K6}md*VjzJ?#^{u1j|fA>(CP&t_Fo4nZAK!*R`UQEQIrJ`@C z=ruJLim6M*hYLlU>d}E7QFV(&g`&^RZceNcy_}YSu@i#m?UIR`Yl7(0k*=*`NcMj} zrWgRgtxc`hS=5W_ex1dBc5|IY{dE@g;$X%@$6`G8i}nXbfk!>Nt>u zgD^0LTb9LT&9|pL)^v#s|3mMGh}>|ppY|h-1p$@-Il*d`sLb*a(dQR^vZyrpz7!Rc z@06%K@6$xZ=sPBIm&g0o65k(wSL_!f#=3gz<$W>1B)Pg?^^2Oh-uj~>KxA7{wdkuB z9f2J2&~+j~z|oW= zatS%W{ECR&wP&`v6$AJ_F;ChPxgQc-COe+&`7oq5ac{j^Z~eEtbfvrcs;I@u?hU>s z@di4Lg+_p{Z>VkB1ellD(_DVD{uH8K`-bD>Q{R^oVnz;ZPFfcHxH z<=_uOgu$`)sjPz`NNYcHLc-}WhtGb(hU^DG1?v2$Twx*R@oPn z>#g70!=p<#i>e^n=5A(ttF97V25c}^cWATdjXk$nw8nshVClBdQW02{OT|zjuqq2h z2Wb5UwelveB{Q&DyjCgpuL4n}=wK>^Z2W8)iuPR;0pmumRE!V{Q$y54Kat0$JQ;UN zl>X)Wl5CrjnzdaJ_QeF=5`@3R1gZt$!LVuW*A8Wt_AL~1tV+oy)~9Wm2ej`Y#rv{i7D7Y~=n+}|VI9~&Uv6Urg zLZT*EG~o_Sc}i%bImT@mw{=tKL!tVZ@ZERc2}xS1O*^y6S>+r#4(Lf*;21gl^xeiw zzN*VBRb9sbOV-`nGst zrx@wsP2)Z4PBt!id^<&USUsvs1Tmgn;+cYmZ}YXIQh`>_RCP@Z3>U-ZNaBRNYa;t~ zB(OE^!vJY~Ha+Ir8q#U%SmQu4ZR)s`OMYf^v}L784gMf!*pBTK9o&^{9Q-Eom#HD+ zk7Vz2HbS1eTfZCBnNTS#tfiUKr;V|~Iw~D(GzhPgxM}^{W>F{aX4|dA3Tw#lX+5ok z@^yi=ln)2iQU24w>%=`R#j=KKHJIg8AZzFA(^8GbMDpi9E@OURyiI!B)q&5JcDiuz zaQ+VDXt6kr2eO0rW=d~2>O+kfvc`cv`&JaJWGt%%KjX z;W}@u@(Ez}(4_Qu-jfN~X-^af{Fof;F&Q|*IrXJj{y@s-f&o8!^*9Jv?A%^&J#{#h zLOg_;Nt2i}aGY%cTM$0+}zloK{;W+^-TVDOYZvRvr^{UqF?pX+-2IsCfbeh!a~ z>J4gd!`G0<9Fw1W1czF9l-fr>1p`_uR|VdXd1qjg%)0_UnV*AwdqK(;u0X}YRj63_ z2`U!;LnWthjY=+|nM!kn7An0U7`7-ekZy^PEpo3GfN3^4@8~-23Kk!@ip2+h!r}w} z!QungD5hwpn4*R9a{`7f{0od0WFMDm2be(yenCbi%@~oEEw;uA4+O46yuM^es!>dazBLpIM^H+lq9??@UL z!IU);%HoDR`3sRC>@Q$^ZdAlUOvHuRlOf`#*~!Bnp_=LNqxA42H1H@58{iNh!6jm{ zKk*bC4qt_>{<#BWu20n6AnBF!pXt}u*e^^8tcXE+arPNRVV`~U6v<~bgW4DF8qAR0 z%^Gr#=3^ot{@b~EP4=WIx-X3~6!C}|HEfp!Ue4pzid+Jv08$yPxeiw|_B)GjXti zWY%S2NTl2BRJe6U`A(G5`0JE7dW2}w|MlL!EJS5D+> zZbX(Y14A$XAq@zc>8l$Er=tknl$OUY`GrewG*^kuf$ZYQU3K=;ROXZ%J zhx79iy*}feP{=l{jq+O%qhF$0JE(@I>M;?3u2BD4nU~nXtz!o_%nt6SAlb?vf=c5aUav%+=l4M7Fz<%`ef6t|WDC*JlDAX4v`6 z3oKw>U?IGKRL47|Fz=E+<>yET`4@2d2Y|rD9h`nspqoPWs?4}U+7>ZOr;xthmm}@b zrVV(BJTxaYZWQxKqsjC+Bdnts^U+`qY!mnTGUCWfB?sqpil0X#@g=46$iL?F>a~a2 z?fc^PdiA0hPS;F!by~PLOyd1%t(oLL)l3Gy@VuF2WTfH+uKSOam&R<#MVPwXp|J6T zFQnW*iZ;d~T8>5(;SU07o89-UzIQjb=@(l>QeI3cwnO*6$bvW00FaT$ae7{etO!F*R^w(v(l8x6utKyjH3_pr-VCp;g;ofXA( z>bP~n^eAq26xT(OG0@H}Wp3K!rU5q%$7(2J1UId5lfy6G({m1mMslXxR68wtj{59W zolJ`y6vC=gXi*OJO(7|BQ;J`v!h9H!H6DI{KE)1wst3i9cmN(^S1jnlBM~Q;2rttB zP&#Vy174;XZLIgI7HgJRNpilWVLR5KkC^f5d$WwX!jc&3eZ)glMxm|f#9kZxo z(!EkxkLh(#OV6e(($)Qd<$Aq{81<}s0z%kUcmDxdR7rqKo5g#S&3wKxlm9zrJDwTH zqK$3%FSzP?tZd*HqTD%@MXtJ&jTVwLug8$zz*h`h4Ja}ZH5+62BM6#}2L7mS@fQ9w zSiE~)O1DZe+(}FQPFdDE=Ykt^5_#U34hRb0%!mesH)q=S&rmB#^Sq>Db9AGd#qj;X zJDQu>@iHT!n5mc`eg`;H#9vl^F3YmN0U9y#nBT~yj%BAwkIZ}(q+wACvV~*4)~}jH zcGm(A3O+)V5B(XRn=%&P5K>o6>q1d_-DJAKYb+^+KG}>jUj=i$TI6$(O?>N)WTWzq zOb0ZxF_DSVXh0qtvp+kSwZZ1<#2~I#h^1eW_Z9+oV@o#kT)_ zX1#SCh}*RWDVC97-OXZpv#(i1zTiQ=kZ+SbMG(#-{&uK41^lx^-DuDPp8RKl?&RqF-a`?hJ0W*Pjf6;@xX%!Y#SyO9 z=wL|@SH^Et`;_r-)NXVH(zNtg&5TaLv2xl9--1`^AJN66AwSOS55 z4Y#h)$yY<9T#;Lm%Qa6x^Tg-~x7Ru}<%)q^F`TIV3t4)uX#XfD+)itII9IeD)6p3q zPP?-vSNv+Qs16pbdz%OASn*m%0Pz4ITyYhK8EzZRWWPHXch!T%y1EtBld2y;*%$gk zK$9!IcQpRY907RzD<$S_EN) zSUpS(>5B^Ki^}sn95-0BSc(Rdw>>?Lx#V-t?@?*?%O7GpPwlH_D^8)^aAmO2emE9z z9<{&FL<;gV()Avb-%wf?Be^XW%XYQJU)eCMp>AJ-cCj^C@`(I))lIbguHDYkvU8NX z=Ir&2H7#(SYMu4y=rLLC+rNskOtIz0%%8=cv}N`W!7;vDeaBZ2`>6fo99&N#+pA(d%`0ol zqdmwQKELcnwrU@dr3-;m5$>UNRFZlBhH`Qk#6W)g+5$^*451^Yd7jA3@owD7sW^$Z1hPa zV0HWM&@TB62hY*ql@)s(x((=q`}Dyyeef*#dQmS}L|ox2sI07Tq%lbTTG$;n`F&x^ zXjs{%hoV*%+VoI*v1TfUbv8P9`QrJQ=JMjZCbszXIsV(BK2Yv!eYoiG$Ln+MGiWjC zBMwHW7L&LH;*?k$9EuI)>!`fy2&H{=q%h}=3p;`_i6c+kN1R2!?{pslDulF8&!Y)y zyD}sdN#t@sxWM7~s4O-iM=mi~`PPkY5^lcseHgJIgqUUHAsNV?0 ziiK!8}z_~!mKL_3m(46JDMQ(@g6l|^*-t&NBaQXRs$pdPLS1$YGYdzRD z?MmGWeyf`yvyum{WS3mM3zDI*>nrRh)y14~7dcdHGp->cm-Zm>OYSm?xJxEum-IC* z*J0izceKLZUvgKMOZ3pgVx$khUCH7XDk8rKPC$8-Tv(D~dvIXc@OWAGb~atvk{ZqOJ8PC zWh`=lG9-FSqWO%ydY+Q`OVAY3XW6t4dt|>MD&zK*tl?jIg{)oHv%7;-c>Jat9=XB; zGrj};Nw-=}jx0-^xre#r_eK6KW*!~k8uMLnjT}~iL=sr_Yx)*J<_tN6#!FR)PN3=(mT z{zt+Qo)nA&YJ%6qefA1681*8NmiH;Pu&!I!0EhPH;19_Au0Qn;{*c~mD;iLSlt~>_ z<}&!qIwsDV?vNZvy)Ux9`gWgzYdCp9`_ZAeph5zzM)(4S;}@VJ$PceW8^#lMM(nko z3{#zUC3D3ArQhiT6Zivu!-nk@WWtJ3zi$#lm&%1j!=fcVwtX?Se3))jy5j=dp9hVe zEOA57$oIFe^;8xQ!}&xSaCn%KDExC6mUePQdgt45{>pGvLQ?s(IOrxB3H4*VYt$u* z`S#vAAIkmhtlWP~+1UyTB)sN#mqbZRe2zC0)@w8dH*L9z{z>6KBcCmN8WN zGt6VQFqUNgsdxV|thOGD+M07LN8dN6^m^Y{dM9T-pDWygzUoiC zv!I&22nkgx>|s5}y;QEo#-_(t?XM1Agdfw+hs;#_&K6K_e6 zs1h&iBKfO(#o@JEAN5`0U){UwZh@)vxnK;EtrzjmZ1hSlvK)GTmwdH)a9pqq&Bk|0 z*Vmpzg_iePrqQx<+iUk2(_zO}uca}8&*dgY2^=;UHyleYY-F}xW5uwFgIp{9!<`sF z1<3{=ln$LC41Hoe6(&$#R$_#4tnGu fhuaIc6t+zqHF$#a;MHg#{v|by=P_hOP2tC=qEk@wGxBS5R$Rh_fL}E*<|D7>oz<4?@+Ac{zAk$yG z<>O$nUbQFuaPSef=3mEQ;J zwwDjZ-<9P<+o9Z&jl`W>~GRnWC7E%6XwUkz=tH}C_-xa?{$GCExxvjrjoi&T;2E5Ia zbJe^=-U<967T(3bT=O24wrOo^ok9goNh+^!+IuY5ABLyl0Yrfc>RUynm+($ddKvEo zskwSFJ-e7jQZeoEWmM~enU5E-CS@r-UW&|JT}3Nbk+ExrCo+DHTIcXIBCP3|o>UH3 zjSfy-=ILDFeabCZZvQ9d(kEiMdq3WZ(${tPee(A;$)jH9=Sq35&3qmbh`HliDz~8+ zsoa6g>4Hs~>q_9~0{8mZdhA@~W;P~eqsy3sE~7I&UU-jW5-#~Y8p)oxp5|?)6F1O2 zKb=@f^F%svBh90fOe40gnR(l2-VT~qMe~9*Poa6WG;cf2dz%t`( zwo%^>IJL{vQ0q)tPls=#s1$I!nGWAUPLl`Q?q|m{1}VTta$r9hur@jKBiU;1kDtW$ zpvH^T9aM?EUn4c!#k`#w#M9?C{67CZ_0OjLFaSuwThjX~mYDaagKKNkAdV+TFdy>wIQdw$yIdBd3n*Y)oV7=4&8d*J?OzlC*W&>aB48w-vjen zY-mk*SlPusG6=^O2V)hEr8IChdfjJ6-DlL&;K8+S{sATXdPF*c?6OX_0f^C3%)wQc za0!314=wrsA);lLyt=dt<&@R8$ZRgDEsm-}%#5NAM~r-i)F@s(Eq_c`!}R-WiL@!hO`A{aa}Al(zu?h zlzOCu27W0Lqy6qk-w>LBJwy0j#)J;5Z6Og46a?FKz(*$w7?NtG$E{>UCC9$n>90T0 zV8_gmm0q(_U?wrdGfTDhnHamGgUk$6Vy)l0K!T5M5t3+Nh=|Hesk??_R$vQ71S~qI z0ILgK5TMo@3cT@hM>>Sc>M*}x%!1s4)?e~fW%s+AP*?Dk(o)1c`8BRvDL&9iM>kDAc_0MqX^nlNY@fi-Wz0s$*x6oU72LE~sjw(JMCyDoLK+YFRD&OiE8Yz#= zw3n9ta^So2$oQ@KA@poKq1Tj>bSt{G z32@6VNvzjN$P=47qt&0Y>8&{9JQqnVqjGsDh;l^$6 zo@}^k>wEvGS@Vl3-l_ku^KI@P^ZYX32iobFHp3pD&abWc_)CM?(lM=9-vNUrdJ31V z+OTuiN5{|p`)a5AAAQoZLaurH-4FJD^F!i26K1@^SJeFZxFLP)^TLkf7g|z#J~UxQ k(Yol*>+FY|4LFRxosZWXHJS&DvqbXhrsSO?f@?ef4}JOtNB{r; delta 10156 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 Zhd<-B>fhWkx#6hZI6}zYk?3pe@xNm@)tCSP From da52beb2bb96953a197b2e514a95c226d88012bb Mon Sep 17 00:00:00 2001 From: Pecusx Date: Mon, 29 Aug 2022 18:55:20 +0200 Subject: [PATCH 23/27] Tank dropping error at the right edge definitely corrected! --- grafproc.asm | 18 ++++++++---------- scorch.asm | 2 +- scorch.xex | Bin 50639 -> 50624 bytes 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/grafproc.asm b/grafproc.asm index 028cd36..2779518 100644 --- a/grafproc.asm +++ b/grafproc.asm @@ -1129,16 +1129,13 @@ FallingRight bit PreviousFall ; bit 6 - left bvs EndRightFall ; we finish falling right if the tank reached the edge of the screen - clc - lda XtanksTableL,x - adc #$08 ; we'll check right side of the char - sta temp lda XtanksTableH,x - adc #0 - sta temp+1 - cpw temp #screenwidth-2 ; 2 pixels correction due to a barrel wider than tank - bcs EndRightFall -NotLeftEdge + cmp #>(screenwidth-8-2) ; 2 pixels correction due to a barrel wider than tank + bne @+ + lda XtanksTableL,x + cmp #<(screenwidth-8-2) ; 2 pixels correction due to a barrel wider than tank +@ bcs EndRightFall +NotRightEdge ; tank is falling right - modify coorinates clc lda XtankstableL,x @@ -1159,6 +1156,7 @@ FallingLeft lda XtanksTableL,x cmp #3 ; 2 pixels correction due to a barrel wider than tank bcc EndLeftFall +NotLeftEdge ; tank is falling left - modify coorinates sec lda XtankstableL,x @@ -1206,7 +1204,7 @@ DoNotDrawParachute ForceFallLeft sta UnderTank1 sty UnderTank2 - jne TankFallsX + jmp TankFallsX EndOfFall mva #1 Erase ; ldx TankNr diff --git a/scorch.asm b/scorch.asm index 3ba0146..ea1722b 100644 --- a/scorch.asm +++ b/scorch.asm @@ -36,7 +36,7 @@ ;we decided it must go in 'English' to let other people work on it .macro build - dta d"1.12" ; number of this build (3 bytes) + dta d"1.13" ; number of this build (3 bytes) .endm icl 'definitions.asm' diff --git a/scorch.xex b/scorch.xex index 9b7c9ef6709117a7430b8ef66dc4250ab4da856f..1a25c25634be3aa45ab48a2dc9388d7a849fe95e 100644 GIT binary patch delta 11456 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