New offensive(defensive) weapon - "Buy me!" #97

This commit is contained in:
Pecusx
2022-08-18 09:36:41 +02:00
parent 63adc066da
commit 8a3d3ae0a9
4 changed files with 41 additions and 16 deletions
+12 -12
View File
@@ -263,7 +263,7 @@ WeaponPriceH ; weapons prices (tables with prices of weapons)
.by >price_Ton_of_Dirt____ .by >price_Ton_of_Dirt____
.by >price_Liquid_Dirt____ .by >price_Liquid_Dirt____
.by >price_Dirt_Charge____ .by >price_Dirt_Charge____
.by >price_Earth_Disrupter .by >price_Buy_me_________
.by >price_Plasma_Blast___ .by >price_Plasma_Blast___
.by >price_Laser__________ .by >price_Laser__________
.by >price______________33 .by >price______________33
@@ -329,7 +329,7 @@ WeaponPriceL
.by <price_Ton_of_Dirt____ .by <price_Ton_of_Dirt____
.by <price_Liquid_Dirt____ .by <price_Liquid_Dirt____
.by <price_Dirt_Charge____ .by <price_Dirt_Charge____
.by <price_Earth_Disrupter .by <price_Buy_me_________
.by <price_Plasma_Blast___ .by <price_Plasma_Blast___
.by <price_Laser__________ .by <price_Laser__________
.by <price______________33 .by <price______________33
@@ -401,8 +401,8 @@ WeaponUnits
.by 1 ;Ton_of_Dirt____ .by 1 ;Ton_of_Dirt____
.by 4 ;Liquid_Dirt____ .by 4 ;Liquid_Dirt____
.by 2 ;Dirt_Charge____ .by 2 ;Dirt_Charge____
.by 10 ;Earth_Disrupter .by 1 ;Buy_me_________
.by 5 ;Plasma_Blast___ .by 0 ;Plasma_Blast___
.by 5 ;Laser__________ .by 5 ;Laser__________
.by 0 ;_____________33 .by 0 ;_____________33
.by 0 ;_____________34 .by 0 ;_____________34
@@ -421,17 +421,17 @@ WeaponUnits
.by 0 ;_____________47 .by 0 ;_____________47
.by 1 ;White_Flag___48 .by 1 ;White_Flag___48
.by 3 ;Battery________ .by 3 ;Battery________
.by 2 ;Bal_Guidance___ .by 0 ;Bal_Guidance___
.by 5 ;Horz_Guidance__ .by 0 ;Horz_Guidance__
.by 5 ;Vert_Guidance__ .by 0 ;Vert_Guidance__
.by 2 ;Lazy_Boy_______ .by 0 ;Lazy_Boy_______
.by 3 ;Parachute______ .by 3 ;Parachute______
.by 2 ;StrongParachute .by 2 ;StrongParachute
.by 2 ;Mag_Deflector__ .by 2 ;Mag_Deflector__
.by 3 ;Shield_________ .by 3 ;Shield_________
.by 2 ;Heavy_Shield___ .by 2 ;Heavy_Shield___
.by 3 ;Force_Shield___ .by 3 ;Force_Shield___
.by 2 ;Super_Mag______ .by 0 ;Super_Mag______
.by 1 ;Auto_Defense___ .by 1 ;Auto_Defense___
.by 2 ;Long_Barrel____ .by 2 ;Long_Barrel____
.by 1 ;Nuclear_Winter_ .by 1 ;Nuclear_Winter_
@@ -448,7 +448,7 @@ PurchaseMeTable ;weapons good to be purchased by the robot
; "Digger ","Heavy Digger ","Baby Sandhog ","Sandhog " ; "Digger ","Heavy Digger ","Baby Sandhog ","Sandhog "
.by %00000000 .by %00000000
; "Heavy Sandhog ","Dirt Clod ","Dirt Ball ","Ton of Dirt " ; "Heavy Sandhog ","Dirt Clod ","Dirt Ball ","Ton of Dirt "
; "Liquid Dirt ","Dirt Charge ","Earth Disrupter ","Plasma Blast " ; "Liquid Dirt ","Dirt Charge ","Buy me! ","Plasma Blast "
.by %00000000 .by %00000000
; "Laser " ; "Laser "
.by %00000000 .by %00000000
@@ -472,7 +472,7 @@ PurchaseMeTable2 ;weapons good to be purchased by the robot (Cyborg)
; "Digger ","Heavy Digger ","Baby Sandhog ","Sandhog " ; "Digger ","Heavy Digger ","Baby Sandhog ","Sandhog "
.by %00000000 .by %00000000
; "Heavy Sandhog ","Dirt Clod ","Dirt Ball ","Ton of Dirt " ; "Heavy Sandhog ","Dirt Clod ","Dirt Ball ","Ton of Dirt "
; "Liquid Dirt ","Dirt Charge ","Earth Disrupter ","Plasma Blast " ; "Liquid Dirt ","Dirt Charge ","Buy me! ","Plasma Blast "
.by %00000000 .by %00000000
; "Laser " ; "Laser "
.by %00000000 .by %00000000
@@ -528,7 +528,7 @@ NamesOfWeapons ;the comment is an index in the tables
dta d"Ton of Dirt " ; 27 dta d"Ton of Dirt " ; 27
dta d"Liquid Dirt " ; 28 dta d"Liquid Dirt " ; 28
dta d"Dirt Charge " ; 29 dta d"Dirt Charge " ; 29
dta d"Earth Disrupter " ; 30 dta d"Buy me! " ; 30
dta d"Plasma Blast " ; 31 dta d"Plasma Blast " ; 31
dta d"Laser " ; 32 dta d"Laser " ; 32
dta d"----------------" ; 33 dta d"----------------" ; 33
+2 -2
View File
@@ -65,7 +65,7 @@ price_Dirt_Ball______ = 130 ;_26
price_Ton_of_Dirt____ = 171 ;_27 price_Ton_of_Dirt____ = 171 ;_27
price_Liquid_Dirt____ = 330 ;_28 price_Liquid_Dirt____ = 330 ;_28
price_Dirt_Charge____ = 343 ;_29 price_Dirt_Charge____ = 343 ;_29
price_Earth_Disrupter = $ffff ;430 ;_30 price_Buy_me_________ = 170 ;430 ;_30
price_Plasma_Blast___ = $ffff ;274 ;_31 price_Plasma_Blast___ = $ffff ;274 ;_31
price_Laser__________ = 277 ;_32 price_Laser__________ = 277 ;_32
price______________33 = 0 price______________33 = 0
@@ -130,7 +130,7 @@ ind_Dirt_Ball______ = 26
ind_Ton_of_Dirt____ = 27 ind_Ton_of_Dirt____ = 27
ind_Liquid_Dirt____ = 28 ind_Liquid_Dirt____ = 28
ind_Dirt_Charge____ = 29 ind_Dirt_Charge____ = 29
ind_Earth_Disrupter = 30 ind_Buy_me_________ = 30
ind_Plasma_Blast___ = 31 ind_Plasma_Blast___ = 31
ind_Laser__________ = 32 ind_Laser__________ = 32
ind______________33 = 0 ind______________33 = 0
BIN
View File
Binary file not shown.
+27 -2
View File
@@ -795,7 +795,34 @@ positiveMoney
; now we have to get address of ; now we have to get address of
; the table of the weapon of the tank ; the table of the weapon of the tank
; and add appropriate number of shells ; and add appropriate number of shells
sty LastWeapon ; store last purchased weapon
; because we must put screen pointer next to it
; but if we purchasing "Buy me!" then we must draw the winning weapon.
cpy #ind_Buy_me_________
bne NoSuprise
Suprise ; get a random weapon
lda random
cmp #51 ; defensive weapons are less likely because they are more expensive - probability 255:51 (5:1)
bcc GetRandomDefensive
GetRandomOffensive
randomize ind_Missile________ ind_Laser__________
cmp #ind_Buy_me_________
beq GetRandomOffensive
tay
lda WeaponUnits,y ; check if weapon exist
beq GetRandomOffensive
bne NoSuprise ; Y always <> 0
GetRandomDefensive
randomize ind_Battery________ ind_Nuclear_Winter_
tay
lda WeaponUnits,y ; check if weapon exist
beq GetRandomDefensive
NoSuprise
lda TanksWeaponsTableL,x lda TanksWeaponsTableL,x
sta weaponPointer sta weaponPointer
lda TanksWeaponsTableH,x lda TanksWeaponsTableH,x
@@ -810,8 +837,6 @@ positiveMoney
lda #99 lda #99
sta (weaponPointer),y sta (weaponPointer),y
LessThan100 LessThan100
sty LastWeapon ; store last purchased weapon
; because we must put screen pointer next to it
mva #0 PositionOnTheList ; to move the pointer to the top when no more monies mva #0 PositionOnTheList ; to move the pointer to the top when no more monies
jmp Purchase.AfterPurchase jmp Purchase.AfterPurchase