Shield energy table added.

... for easier activation.
Defensive weapon numbering revised.
This commit is contained in:
Pecusx
2022-06-13 09:18:05 +02:00
parent ff8c4d9329
commit cd69bf22db
5 changed files with 43 additions and 24 deletions
+26 -9
View File
@@ -870,17 +870,34 @@ NamesOfWeapons ;the comment is an index in the tables
dta d"Bal Guidance " ; 50 dta d"Bal Guidance " ; 50
dta d"Horz Guidance " ; 51 dta d"Horz Guidance " ; 51
dta d"Vert Guidance " ; 52 dta d"Vert Guidance " ; 52
dta d"Lazy Boy " ; 53 - no energy dta d"Lazy Boy " ; 53
dta d"Parachute " ; 54 dta d"Parachute " ; 54 - no energy
dta d"Battery " ; 55 - witch shield and energy dta d"Battery " ; 55
dta d"Mag Deflector " ; 56 - shield for one shot - no energy dta d"Mag Deflector " ; 56 - with shield and energy
dta d"Shield " ; 57 - shield with energy and parachute dta d"Shield " ; 57 - shield for one shot - no energy
dta d"Force Shield " ; 58 - shield with energy dta d"Force Shield " ; 58 - shield with energy and parachute
dta d"Heavy Shield " ; 59 dta d"Heavy Shield " ; 59 - shield with energy
dta d"Super Mag " ; 60 - witch shield and energy dta d"Super Mag " ; 60
dta d"Auto Defense " ; 61 dta d"Auto Defense " ; 61 - with shield and energy
dta d"Fuel Tank " ; 62 dta d"Fuel Tank " ; 62
dta d"Contact Trigger " ; 63 dta d"Contact Trigger " ; 63
DefensiveEnergy = * - 48
.by 00 ; White Flag
.by 00 ; Heat Guidance
.by 00 ; Bal Guidance
.by 00 ; Horz Guidance
.by 00 ; Vert Guidance
.by 00 ; Lazy Boy
.by 00 ; Parachute
.by 00 ; Battery
.by 90 ; Mag Deflector
.by 00 ; Shield
.by 99 ; Force Shield
.by 99 ; Heavy Shield
.by 00 ; Super Mag
.by 99 ; Auto Defense
.by 00 ; Fuel Tank
.by 00 ; Contact Trigger
weaponsOfDeath weaponsOfDeath
dta 1,2,3,7,15,16,17,18,19,20,21,22,23,24,25,26,27 dta 1,2,3,7,15,16,17,18,19,20,21,22,23,24,25,26,27
weaponsOfDeathEnd weaponsOfDeathEnd
+5 -5
View File
@@ -694,15 +694,15 @@ NoPlayerMissile
; draw defensive weapons like shield ( tank number in X ) ; draw defensive weapons like shield ( tank number in X )
; in xdraw, ydraw we have coordinates left LOWER corner of Tank char ; in xdraw, ydraw we have coordinates left LOWER corner of Tank char
lda ActiveDefenceWeapon,x lda ActiveDefenceWeapon,x
cmp #56 ; one shot shield activation cmp #57 ; one shot shield activation
beq ShieldDraw beq ShieldDraw
cmp #57 ; shield with energy and parachute activation cmp #58 ; shield with energy and parachute activation
beq ShieldDraw beq ShieldDraw
cmp #58 ; shield with energy activation cmp #59 ; shield with energy activation
beq ShieldDraw beq ShieldDraw
cmp #60 ; Auto Defence cmp #61 ; Auto Defence
beq DrawTankShieldWihHorns beq DrawTankShieldWihHorns
cmp #55 ; Mag Deflector cmp #56 ; Mag Deflector
beq DrawTankShieldWihHorns beq DrawTankShieldWihHorns
bne NoShieldDraw bne NoShieldDraw
ShieldDraw ShieldDraw
+4 -2
View File
@@ -133,8 +133,10 @@ START
; ldx numberOfPlayers ; ldx numberOfPlayers
; dex ; dex
;@ ;@
; mva #55 ActiveDefenceWeapon,x ; mva #56 ActiveDefenceWeapon,x
; mva #99 ShieldEnergy,x ; set energy of shield ; tay
; lda DefensiveEnergy,y
; sta ShieldEnergy,x ; set energy of shield
; dex ; dex
; bpl @- ; bpl @-
; mag deflector activated! (test) ; mag deflector activated! (test)
BIN
View File
Binary file not shown.
+8 -8
View File
@@ -667,15 +667,15 @@ DistanceCheckLoop
tay tay
; check shields ; check shields
lda ActiveDefenceWeapon,x lda ActiveDefenceWeapon,x
cmp #56 ; one hit shield cmp #57 ; one hit shield
beq UseShield beq UseShield
cmp #57 ; shield with energy and parachute cmp #58 ; shield with energy and parachute
beq UseShieldWithEnergy beq UseShieldWithEnergy
cmp #58 ; shield with energy cmp #59 ; shield with energy
beq UseShieldWithEnergy beq UseShieldWithEnergy
cmp #60 ; Auto Defence (it works only if hit ground next to tank. Tank hit is handled in Flight proc) cmp #61 ; Auto Defence (it works only if hit ground next to tank. Tank hit is handled in Flight proc)
beq UseShieldWithEnergy beq UseShieldWithEnergy
cmp #55 ; Mag deflector (it works only if hit ground next to tank. Tank hit is handled in Flight proc) cmp #56 ; Mag deflector (it works only if hit ground next to tank. Tank hit is handled in Flight proc)
beq UseShieldWithEnergy beq UseShieldWithEnergy
jsr DecreaseEnergyX jsr DecreaseEnergyX
jmp EndOfDistanceCheckLoop jmp EndOfDistanceCheckLoop
@@ -1335,9 +1335,9 @@ ShotUnderGround
; let's check if the given tank has got the parachute ; let's check if the given tank has got the parachute
ldx TankNr ldx TankNr
lda ActiveDefenceWeapon,x lda ActiveDefenceWeapon,x
cmp #53 ; parachute cmp #54 ; parachute
beq ParachuteActive beq ParachuteActive
cmp #57 ; scheld witch energy and parachute cmp #58 ; scheld witch energy and parachute
bne TankFallsX bne TankFallsX
ParachuteActive ParachuteActive
inc Parachute inc Parachute
@@ -1542,7 +1542,7 @@ EndOfFall
mva #1 Erase mva #1 Erase
ldx TankNr ldx TankNr
lda ActiveDefenceWeapon,x lda ActiveDefenceWeapon,x
cmp #53 ; deactivate weapon only if parachute (53) cmp #54 ; deactivate weapon only if parachute (53)
bne NoParachuteWeapon bne NoParachuteWeapon
mva #0 ActiveDefenceWeapon,x ; deactivate defence weapon (parachute) mva #0 ActiveDefenceWeapon,x ; deactivate defence weapon (parachute)
NoParachuteWeapon NoParachuteWeapon