AI uses defensives
This commit is contained in:
@@ -150,7 +150,47 @@ loop
|
|||||||
.endp
|
.endp
|
||||||
;----------------------------------------------
|
;----------------------------------------------
|
||||||
Poolshark .proc
|
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
|
firstShoot
|
||||||
;find nearest tank neighbour
|
;find nearest tank neighbour
|
||||||
jsr MakeLowResDistances
|
jsr MakeLowResDistances
|
||||||
@@ -321,27 +361,45 @@ SorryNoPurchase
|
|||||||
|
|
||||||
;----------------------------------------------
|
;----------------------------------------------
|
||||||
ShooterPurchase .proc
|
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
|
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
|
randomize 1 14
|
||||||
jsr TryToPurchaseOnePiece
|
jsr TryToPurchaseOnePiece
|
||||||
dec tempXroller
|
dec tempXroller
|
||||||
bne loop
|
bne @-
|
||||||
|
|
||||||
rts
|
rts
|
||||||
.endp
|
.endp
|
||||||
;----------------------------------------------
|
;----------------------------------------------
|
||||||
PoolsharkPurchase .proc
|
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
|
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
|
randomize 1 30
|
||||||
jsr TryToPurchaseOnePiece
|
jsr TryToPurchaseOnePiece
|
||||||
dec tempXroller
|
dec tempXroller
|
||||||
bne loop
|
bne @-
|
||||||
|
|
||||||
rts
|
rts
|
||||||
.endp
|
.endp
|
||||||
|
|||||||
@@ -542,6 +542,22 @@ PurchaseMeTable ;weapons good to be purchased by the robot
|
|||||||
dta 0 ;"----------------" ; 45
|
dta 0 ;"----------------" ; 45
|
||||||
dta 0 ;"----------------" ; 46
|
dta 0 ;"----------------" ; 46
|
||||||
dta 0 ;"----------------" ; 47
|
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
|
||||||
|
|
||||||
|
|
||||||
;-------------------------------------------------
|
;-------------------------------------------------
|
||||||
|
|||||||
@@ -311,12 +311,16 @@ SettingEnergies
|
|||||||
|
|
||||||
jsr SetMainScreen
|
jsr SetMainScreen
|
||||||
jsr ColorsOfSprites
|
jsr ColorsOfSprites
|
||||||
|
lda #0
|
||||||
|
sta colpf2s ; status line "off"
|
||||||
|
sta colpf1s
|
||||||
|
|
||||||
jsr drawmountains ;draw them
|
jsr drawmountains ;draw them
|
||||||
jsr drawtanks ;finally draw tanks
|
jsr drawtanks ;finally draw tanks
|
||||||
|
|
||||||
mva #0 TankSequencePointer
|
mva #0 TankSequencePointer
|
||||||
;---------round screen is ready---------
|
;---------round screen is ready---------
|
||||||
|
mva #TextForegroundColor colpf1s ; status line "on"
|
||||||
rts
|
rts
|
||||||
.endp
|
.endp
|
||||||
|
|
||||||
|
|||||||
BIN
Binary file not shown.
Reference in New Issue
Block a user