AI uses defensives

This commit is contained in:
Pecusx
2022-07-03 15:16:58 +02:00
parent 00099f4c27
commit 7bd7105374
4 changed files with 87 additions and 9 deletions
+67 -9
View File
@@ -150,7 +150,47 @@ loop
.endp
;----------------------------------------------
Poolshark .proc
; defensives
ldx TankNr
; address of weapons table (for future use)
lda TanksWeaponsTableL,x
sta temp
lda TanksWeaponsTableH,x
sta temp+1
; if low energy ten use battery
lda Energy,x
cmp #30
bcs EnoughEnergy
; lower than 30 units - check battery
ldy #ind_Battery________
lda (temp),y
beq NoBatteries
; we have batteries - use one
clc
sbc #1
sta (temp),y
lda #99
sta Energy,x
NoBatteries
EnoughEnergy
; use best defensive :)
; first check check if any is in use
lda ActiveDefenceWeapon,x
bne DefensiveInUse
ldy #64 ;the last defensive weapon
@
dey
cpy #ind_Battery________ ;first defensive weapon (White Flag nad Battery - never use)
beq NoUseDefensive
lda (temp),y
beq @-
tya
; activate defensive weapon
sta ActiveDefenceWeapon,x
lda DefensiveEnergy,y
sta ShieldEnergy,x
NoUseDefensive
DefensiveInUse
firstShoot
;find nearest tank neighbour
jsr MakeLowResDistances
@@ -321,27 +361,45 @@ SorryNoPurchase
;----------------------------------------------
ShooterPurchase .proc
mva #4 tempXroller; number of purchases to perform
; first try to buy defensives
mva #2 tempXroller; number of offensive purchases to perform
ldx TankNr
loop
@
randomize 49 55
jsr TryToPurchaseOnePiece
dec tempXroller
bne @-
; and now offensives
mva #4 tempXroller; number of offensive purchases to perform
ldx TankNr
@
randomize 1 14
jsr TryToPurchaseOnePiece
dec tempXroller
bne loop
bne @-
rts
.endp
;----------------------------------------------
PoolsharkPurchase .proc
mva #8 tempXroller; number of purchases to perform
; first try to buy defensives
mva #3 tempXroller; number of offensive purchases to perform
ldx TankNr
loop
@
randomize 49 61
jsr TryToPurchaseOnePiece
dec tempXroller
bne @-
; and now offensives
mva #8 tempXroller; number of purchases to perform
ldx TankNr
@
randomize 1 30
jsr TryToPurchaseOnePiece
dec tempXroller
bne loop
bne @-
rts
.endp
+16
View File
@@ -542,6 +542,22 @@ PurchaseMeTable ;weapons good to be purchased by the robot
dta 0 ;"----------------" ; 45
dta 0 ;"----------------" ; 46
dta 0 ;"----------------" ; 47
dta 0 ;"White Flag " ; 48
dta 1 ;"Battery " ; 49
dta 0 ;"Bal Guidance " ; 50
dta 0 ;"Horz Guidance " ; 51
dta 0 ;"Vert Guidance " ; 52
dta 0 ;"Lazy Boy " ; 53
dta 1 ;"Parachute " ; 54
dta 1 ;"Strong Parachute" ; 55
dta 1 ;"Mag Deflector " ; 56
dta 1 ;"Shield " ; 57
dta 1 ;"Force Shield " ; 58
dta 1 ;"Heavy Shield " ; 59
dta 0 ;"Super Mag " ; 60
dta 1 ;"Auto Defense " ; 61
dta 0 ;"Fuel Tank " ; 62
dta 0 ;"Nuclear Winter " ; 63
;-------------------------------------------------
+4
View File
@@ -311,12 +311,16 @@ SettingEnergies
jsr SetMainScreen
jsr ColorsOfSprites
lda #0
sta colpf2s ; status line "off"
sta colpf1s
jsr drawmountains ;draw them
jsr drawtanks ;finally draw tanks
mva #0 TankSequencePointer
;---------round screen is ready---------
mva #TextForegroundColor colpf1s ; status line "on"
rts
.endp
BIN
View File
Binary file not shown.