mirror of
https://github.com/Pecusx/scorch_src.git
synced 2026-05-20 22:33:43 +02:00
New weapon (I promise - last one :) ) - Spy Hard!
This commit is contained in:
Binary file not shown.
+8
-2
@@ -277,6 +277,7 @@ WeaponPriceH ; weapons prices (tables with prices of weapons)
|
|||||||
.by >price_Lazy_Boy_______
|
.by >price_Lazy_Boy_______
|
||||||
.by >price_Lazy_Darwin____
|
.by >price_Lazy_Darwin____
|
||||||
.by >price_Auto_Defense___
|
.by >price_Auto_Defense___
|
||||||
|
.by >price_Spy_Hard_______
|
||||||
WeaponPriceL
|
WeaponPriceL
|
||||||
.by <price_Baby_Missile___
|
.by <price_Baby_Missile___
|
||||||
.by <price_Missile________
|
.by <price_Missile________
|
||||||
@@ -325,6 +326,7 @@ WeaponPriceL
|
|||||||
.by <price_Lazy_Boy_______
|
.by <price_Lazy_Boy_______
|
||||||
.by <price_Lazy_Darwin____
|
.by <price_Lazy_Darwin____
|
||||||
.by <price_Auto_Defense___
|
.by <price_Auto_Defense___
|
||||||
|
.by <price_Spy_Hard_______
|
||||||
|
|
||||||
;-------------------------------------------------
|
;-------------------------------------------------
|
||||||
; how many units (bulletd) of a given weapon we get for a given price
|
; how many units (bulletd) of a given weapon we get for a given price
|
||||||
@@ -380,6 +382,7 @@ WeaponUnits
|
|||||||
.by 2 ;Lazy_Boy_______;_44
|
.by 2 ;Lazy_Boy_______;_44
|
||||||
.by 2 ;Lazy_Darwin____;_45
|
.by 2 ;Lazy_Darwin____;_45
|
||||||
.by 2 ;Auto_Defense___;_46
|
.by 2 ;Auto_Defense___;_46
|
||||||
|
.by 4 ;Spy_Hard_______;_47
|
||||||
|
|
||||||
PurchaseMeTable ;weapons good to be purchased by the robot
|
PurchaseMeTable ;weapons good to be purchased by the robot
|
||||||
;the comment is an index in the tables
|
;the comment is an index in the tables
|
||||||
@@ -399,7 +402,7 @@ PurchaseMeTable ;weapons good to be purchased by the robot
|
|||||||
; "Strong Parachute","Mag Deflector ","Shield ","Heavy Shield "
|
; "Strong Parachute","Mag Deflector ","Shield ","Heavy Shield "
|
||||||
.by %01011111
|
.by %01011111
|
||||||
; "Force Shield ","Bouncy Castle ","Long Barrel ","Nuclear Winter "
|
; "Force Shield ","Bouncy Castle ","Long Barrel ","Nuclear Winter "
|
||||||
; "Lazy Boy ","Lazy Darwin ","Auto Defense "
|
; "Lazy Boy ","Lazy Darwin ","Auto Defense ","Spy Hard "
|
||||||
.by %11000000
|
.by %11000000
|
||||||
|
|
||||||
PurchaseMeTable2 ;weapons good to be purchased by the robot (Cyborg)
|
PurchaseMeTable2 ;weapons good to be purchased by the robot (Cyborg)
|
||||||
@@ -420,7 +423,7 @@ PurchaseMeTable2 ;weapons good to be purchased by the robot (Cyborg)
|
|||||||
; "Strong Parachute","Mag Deflector ","Shield ","Heavy Shield "
|
; "Strong Parachute","Mag Deflector ","Shield ","Heavy Shield "
|
||||||
.by %01001101
|
.by %01001101
|
||||||
; "Force Shield ","Bouncy Castle ","Long Barrel ","Nuclear Winter "
|
; "Force Shield ","Bouncy Castle ","Long Barrel ","Nuclear Winter "
|
||||||
; "Lazy Boy ","Lazy Darwin ","Auto Defense "
|
; "Lazy Boy ","Lazy Darwin ","Auto Defense ","Spy Hard "
|
||||||
.by %11000000
|
.by %11000000
|
||||||
|
|
||||||
;-------------------------------------------------
|
;-------------------------------------------------
|
||||||
@@ -473,6 +476,7 @@ WeaponSymbols
|
|||||||
.by $02 ;ind_Lazy_Boy_______ ;_44
|
.by $02 ;ind_Lazy_Boy_______ ;_44
|
||||||
.by $03 ;ind_Lazy_Darwin____ ;_45
|
.by $03 ;ind_Lazy_Darwin____ ;_45
|
||||||
.by $5e ;ind_Auto_Defense___ ;_46
|
.by $5e ;ind_Auto_Defense___ ;_46
|
||||||
|
.by $7c ;ind_Spy_Hard_______ ;_47
|
||||||
|
|
||||||
; Names of weapons (16 chars long)
|
; Names of weapons (16 chars long)
|
||||||
NamesOfWeapons ;the comment is an index in the tables
|
NamesOfWeapons ;the comment is an index in the tables
|
||||||
@@ -524,6 +528,7 @@ NamesOfWeapons ;the comment is an index in the tables
|
|||||||
dta d"Lazy Boy " ; 44
|
dta d"Lazy Boy " ; 44
|
||||||
dta d"Lazy Darwin " ; 45
|
dta d"Lazy Darwin " ; 45
|
||||||
dta d"Auto Defense " ; 46
|
dta d"Auto Defense " ; 46
|
||||||
|
dta d"Spy Hard " ; 47
|
||||||
|
|
||||||
DefensiveEnergy = *-(last_offensive_____ - first_offensive____ +1) ; to fake the table for ALL weapons
|
DefensiveEnergy = *-(last_offensive_____ - first_offensive____ +1) ; to fake the table for ALL weapons
|
||||||
.by 00 ; White Flag
|
.by 00 ; White Flag
|
||||||
@@ -541,6 +546,7 @@ DefensiveEnergy = *-(last_offensive_____ - first_offensive____ +1) ; to fake th
|
|||||||
.by 00 ; Lazy Boy
|
.by 00 ; Lazy Boy
|
||||||
.by 00 ; Lazy Darwin
|
.by 00 ; Lazy Darwin
|
||||||
.by 00 ; Auto Defense
|
.by 00 ; Auto Defense
|
||||||
|
.by 00 ; Spy Hard
|
||||||
weaponsOfDeath ; weapons used in tank death animations
|
weaponsOfDeath ; weapons used in tank death animations
|
||||||
dta 1,2,3,7,17,18,19,20,21,22,23,24,25,26,27
|
dta 1,2,3,7,17,18,19,20,21,22,23,24,25,26,27
|
||||||
weaponsOfDeathEnd
|
weaponsOfDeathEnd
|
||||||
|
|||||||
+3
-1
@@ -87,6 +87,7 @@ price_Nuclear_Winter_ = 1000 ;_43
|
|||||||
price_Lazy_Boy_______ = 500 ;_44
|
price_Lazy_Boy_______ = 500 ;_44
|
||||||
price_Lazy_Darwin____ = 500 ;_45
|
price_Lazy_Darwin____ = 500 ;_45
|
||||||
price_Auto_Defense___ = 250 ;_46
|
price_Auto_Defense___ = 250 ;_46
|
||||||
|
price_Spy_Hard_______ = 83 ;_47
|
||||||
;Weapon indexes (numbers)
|
;Weapon indexes (numbers)
|
||||||
ind_Baby_Missile___ = 0
|
ind_Baby_Missile___ = 0
|
||||||
first_offensive____ = ind_Baby_Missile___
|
first_offensive____ = ind_Baby_Missile___
|
||||||
@@ -138,7 +139,8 @@ ind_Nuclear_Winter_ = 43
|
|||||||
ind_Lazy_Boy_______ = 44
|
ind_Lazy_Boy_______ = 44
|
||||||
ind_Lazy_Darwin____ = 45
|
ind_Lazy_Darwin____ = 45
|
||||||
ind_Auto_Defense___ = 46
|
ind_Auto_Defense___ = 46
|
||||||
last_defensive_____ = ind_Auto_Defense___
|
ind_Spy_Hard_______ = 47
|
||||||
|
last_defensive_____ = ind_Spy_Hard_______
|
||||||
last_real_defensive = ind_Bouncy_Castle__
|
last_real_defensive = ind_Bouncy_Castle__
|
||||||
number_of_offensives = last_offensive_____ - first_offensive____+1
|
number_of_offensives = last_offensive_____ - first_offensive____+1
|
||||||
number_of_defensives = (last_defensive_____ - first_defensive____+1)
|
number_of_defensives = (last_defensive_____ - first_defensive____+1)
|
||||||
|
|||||||
+5
-4
@@ -328,6 +328,7 @@ MainGameLoop
|
|||||||
jsr SetStandardBarrels
|
jsr SetStandardBarrels
|
||||||
|
|
||||||
jsr CallPurchaseForEveryTank
|
jsr CallPurchaseForEveryTank
|
||||||
|
mva #0 SpyHardFlag
|
||||||
|
|
||||||
; issue #72 (glitches when switches)
|
; issue #72 (glitches when switches)
|
||||||
jsr MakeDarkScreen
|
jsr MakeDarkScreen
|
||||||
@@ -1681,7 +1682,7 @@ SetRandomWalls
|
|||||||
and #$3f ;CTRL and SHIFT ellimination
|
and #$3f ;CTRL and SHIFT ellimination
|
||||||
cmp #@kbcode._esc ; 28 ; ESC
|
cmp #@kbcode._esc ; 28 ; ESC
|
||||||
bne getkeyend
|
bne getkeyend
|
||||||
mvx #$80 escFlag
|
mvy #$80 escFlag
|
||||||
bne getkeyend
|
bne getkeyend
|
||||||
|
|
||||||
checkJoyGetKey
|
checkJoyGetKey
|
||||||
@@ -1703,9 +1704,9 @@ notpressedJoyGetKey
|
|||||||
lda #@kbcode._ret ;Return key
|
lda #@kbcode._ret ;Return key
|
||||||
|
|
||||||
getkeyend
|
getkeyend
|
||||||
ldx #0
|
ldy #0
|
||||||
stx ATRACT ; reset atract mode
|
sty ATRACT ; reset atract mode
|
||||||
mvx #sfx_keyclick sfx_effect
|
mvy #sfx_keyclick sfx_effect
|
||||||
rts
|
rts
|
||||||
.endp
|
.endp
|
||||||
|
|
||||||
|
|||||||
BIN
Binary file not shown.
BIN
Binary file not shown.
+6
-1
@@ -875,8 +875,13 @@ NoLazyBoy
|
|||||||
jsr FindBestTarget3 ; find target with lowest energy
|
jsr FindBestTarget3 ; find target with lowest energy
|
||||||
jsr LazyAim
|
jsr LazyAim
|
||||||
ply
|
ply
|
||||||
jmp DecreaseDefensive ; bypass activation
|
jmp DecreaseDefensive ; bypass activation
|
||||||
NoLazyDarwin
|
NoLazyDarwin
|
||||||
|
cmp #ind_Spy_Hard_______
|
||||||
|
bne NotSpy
|
||||||
|
mva #$ff SpyHardFlag
|
||||||
|
jmp DecreaseDefensive ; bypass activation
|
||||||
|
NotSpy
|
||||||
cmp #ind_Long_Barrel____
|
cmp #ind_Long_Barrel____
|
||||||
bne NotBarrel
|
bne NotBarrel
|
||||||
; if activate long barrel, we do it differently too
|
; if activate long barrel, we do it differently too
|
||||||
|
|||||||
@@ -164,6 +164,8 @@ TargetTankNr ; Target tank index (for AI routines)
|
|||||||
.DS 1
|
.DS 1
|
||||||
SecondTryFlag ; For precise AI aiming
|
SecondTryFlag ; For precise AI aiming
|
||||||
.DS 1
|
.DS 1
|
||||||
|
SpyHardFlag ; >$7f - run SpyHard after inventory
|
||||||
|
.DS 1
|
||||||
;----------------------------------------------------
|
;----------------------------------------------------
|
||||||
;Erase .DS 1 ; if 1 only mask of the character is printed
|
;Erase .DS 1 ; if 1 only mask of the character is printed
|
||||||
; on the graphics screen. if 0 character is printed normally
|
; on the graphics screen. if 0 character is printed normally
|
||||||
|
|||||||
+52
-2
@@ -1163,12 +1163,16 @@ callInventory
|
|||||||
jsr Purchase
|
jsr Purchase
|
||||||
afterInventory
|
afterInventory
|
||||||
jsr MakeDarkScreen
|
jsr MakeDarkScreen
|
||||||
RmtSong song_ingame
|
|
||||||
mva #0 escFlag
|
|
||||||
jsr DisplayStatus
|
jsr DisplayStatus
|
||||||
jsr SetMainScreen
|
jsr SetMainScreen
|
||||||
jsr WaitOneFrame
|
jsr WaitOneFrame
|
||||||
jsr DrawTanks
|
jsr DrawTanks
|
||||||
|
bit SpyHardFlag
|
||||||
|
bpl NoSpyHard
|
||||||
|
jsr SpyHard
|
||||||
|
NoSpyHard
|
||||||
|
RmtSong song_ingame
|
||||||
|
mva #0 escFlag
|
||||||
jsr WaitForKeyRelease
|
jsr WaitForKeyRelease
|
||||||
jmp BeforeFire
|
jmp BeforeFire
|
||||||
@
|
@
|
||||||
@@ -2429,6 +2433,52 @@ InverseScreenByte
|
|||||||
rts
|
rts
|
||||||
.endp
|
.endp
|
||||||
; -------------------------------------------------
|
; -------------------------------------------------
|
||||||
|
.proc SpyHard
|
||||||
|
; -------------------------------------------------
|
||||||
|
mvx TankNr TargetTankNr ; save
|
||||||
|
RepeatSpy
|
||||||
|
mvx #0 TankNr
|
||||||
|
CheckNextTankSH
|
||||||
|
cpx TargetTankNr
|
||||||
|
beq ThisTankItsMe
|
||||||
|
lda Energy,x ; only active players
|
||||||
|
beq ThisTankIsDead
|
||||||
|
; run SpyHard for tank in X
|
||||||
|
jsr DisplaySpyInfo
|
||||||
|
jsr FlashTank
|
||||||
|
@ jsr GetKey
|
||||||
|
bit escFlag
|
||||||
|
bmi SpyHardEnd
|
||||||
|
cmp #@kbcode._space ; $21 ; Space
|
||||||
|
beq SpyHardEnd
|
||||||
|
cmp #@kbcode._ret ; Return key (5200 - fire)
|
||||||
|
beq SpyHardEnd
|
||||||
|
cmp #@kbcode._left ; $6
|
||||||
|
beq SelectNextTank
|
||||||
|
cmp #@kbcode._right ; $07 ; cursor right
|
||||||
|
bne @-
|
||||||
|
ThisTankIsDead
|
||||||
|
ThisTankItsMe
|
||||||
|
SelectNextTank
|
||||||
|
inc TankNr
|
||||||
|
ldx TankNr
|
||||||
|
cpx NumberOfPlayers
|
||||||
|
bne CheckNextTankSH
|
||||||
|
beq RepeatSpy
|
||||||
|
SpyHardEnd
|
||||||
|
mvx TargetTankNr TankNr ; restore
|
||||||
|
jsr DisplaySpyInfo
|
||||||
|
mva #0 SpyHardFlag
|
||||||
|
rts
|
||||||
|
.endp
|
||||||
|
.proc DisplaySpyInfo
|
||||||
|
lda TankStatusColoursTable,x
|
||||||
|
sta COLOR2 ; set color of status line
|
||||||
|
jsr PutTankNameOnScreen
|
||||||
|
jsr DisplayStatus
|
||||||
|
rts
|
||||||
|
.endp
|
||||||
|
; -------------------------------------------------
|
||||||
.proc TankFlying
|
.proc TankFlying
|
||||||
; -------------------------------------------------
|
; -------------------------------------------------
|
||||||
; This routine is run from inside of the main loop
|
; This routine is run from inside of the main loop
|
||||||
|
|||||||
Reference in New Issue
Block a user