mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-09-10 08:54:51 +00:00
tfv: queue commands so you can choose while being attacked
This commit is contained in:
parent
716ab79c2e
commit
ad842faeed
@ -27,6 +27,7 @@ do_battle:
|
||||
sta MENU_POSITION
|
||||
sta ENEMY_DEAD
|
||||
sta ENEMY_ATTACKING
|
||||
sta QUEUED_ATTACK
|
||||
|
||||
; start battle count part-way in
|
||||
lda #20
|
||||
@ -247,8 +248,11 @@ done_battle_handle_dead:
|
||||
jsr get_keypress
|
||||
sta LAST_KEY
|
||||
cmp #'Q'
|
||||
beq done_battle
|
||||
bne not_quit
|
||||
jmp done_battle
|
||||
|
||||
|
||||
not_quit:
|
||||
;========================================
|
||||
; delay for framerate
|
||||
|
||||
@ -331,20 +335,76 @@ battle_enemy_is_dead:
|
||||
inc ENEMY_DEAD
|
||||
lda ENEMY_DEAD
|
||||
cmp #15
|
||||
bne end_battle_loop
|
||||
bne end_check_enemy_dead
|
||||
|
||||
jsr victory_dance
|
||||
jmp done_battle
|
||||
|
||||
battle_enemy_is_not_dead_yet:
|
||||
lda ENEMY_HP_HI
|
||||
bne end_battle_loop
|
||||
bne end_check_enemy_dead
|
||||
lda ENEMY_HP_LO
|
||||
bne end_battle_loop
|
||||
bne end_check_enemy_dead
|
||||
|
||||
; make enemy dead
|
||||
inc ENEMY_DEAD
|
||||
|
||||
end_check_enemy_dead:
|
||||
|
||||
;====================
|
||||
; run queued attack
|
||||
|
||||
lda QUEUED_ATTACK
|
||||
beq end_queued_attack
|
||||
|
||||
cmp #QUEUED_DO_ATTACK
|
||||
beq queued_attack_action
|
||||
cmp #QUEUED_DO_MAGIC
|
||||
beq queued_magic_action
|
||||
cmp #QUEUED_DO_LIMIT
|
||||
beq queued_limit_action
|
||||
cmp #QUEUED_DO_SUMMON
|
||||
beq queued_summon_action
|
||||
|
||||
|
||||
jmp end_queued_attack
|
||||
|
||||
queued_attack_action:
|
||||
lda #0
|
||||
sta MENU_STATE
|
||||
|
||||
; attack and decrement HP
|
||||
jsr attack
|
||||
jsr done_attack
|
||||
jmp done_queued_attack
|
||||
|
||||
queued_magic_action:
|
||||
lda #0
|
||||
sta MENU_STATE
|
||||
jsr magic_attack
|
||||
jsr done_attack
|
||||
jmp done_queued_attack
|
||||
|
||||
queued_limit_action:
|
||||
lda #0
|
||||
sta MENU_STATE
|
||||
jsr limit_break
|
||||
jsr done_attack
|
||||
jmp done_queued_attack
|
||||
|
||||
queued_summon_action:
|
||||
lda #0
|
||||
sta MENU_STATE
|
||||
jsr summon
|
||||
jsr done_attack
|
||||
jmp done_queued_attack
|
||||
|
||||
done_queued_attack:
|
||||
lda #0
|
||||
sta QUEUED_ATTACK
|
||||
|
||||
|
||||
end_queued_attack:
|
||||
|
||||
end_battle_loop:
|
||||
|
||||
|
@ -225,9 +225,10 @@ enemy_attack:
|
||||
lda #1
|
||||
sta ENEMY_ATTACKING
|
||||
|
||||
|
||||
enemy_attack_loop:
|
||||
|
||||
; put attack name on
|
||||
; put attack name onh
|
||||
; occasionally attack with that enemy's power?
|
||||
; occasionally heal self?
|
||||
|
||||
@ -247,11 +248,25 @@ enemy_attack_loop:
|
||||
sta YPOS
|
||||
jsr draw_enemy
|
||||
|
||||
; let you finish menu commands?
|
||||
|
||||
lda MENU_STATE
|
||||
cmp #MENU_NONE
|
||||
beq enemy_no_menu
|
||||
|
||||
jsr get_keypress
|
||||
sta LAST_KEY
|
||||
jsr battle_menu_keypress
|
||||
|
||||
enemy_no_menu:
|
||||
|
||||
;============
|
||||
; draw bottom
|
||||
|
||||
jsr draw_battle_bottom
|
||||
|
||||
|
||||
|
||||
;============
|
||||
; page flip
|
||||
|
||||
|
@ -579,35 +579,46 @@ finger_action:
|
||||
brk
|
||||
|
||||
finger_attack_action:
|
||||
lda #0
|
||||
sta MENU_STATE
|
||||
; lda #0
|
||||
; sta MENU_STATE
|
||||
|
||||
; attack and decrement HP
|
||||
jsr attack
|
||||
jsr done_attack
|
||||
; jsr attack
|
||||
; jsr done_attack
|
||||
|
||||
lda #QUEUED_DO_ATTACK
|
||||
sta QUEUED_ATTACK
|
||||
|
||||
rts
|
||||
|
||||
finger_magic_action:
|
||||
lda #0
|
||||
sta MENU_STATE
|
||||
jsr magic_attack
|
||||
jsr done_attack
|
||||
; lda #0
|
||||
; sta MENU_STATE
|
||||
; jsr magic_attack
|
||||
; jsr done_attack
|
||||
|
||||
lda #QUEUED_DO_MAGIC
|
||||
sta QUEUED_ATTACK
|
||||
rts
|
||||
|
||||
finger_limit_action:
|
||||
lda #0
|
||||
sta MENU_STATE
|
||||
jsr limit_break
|
||||
jsr done_attack
|
||||
; lda #0
|
||||
; sta MENU_STATE
|
||||
; jsr limit_break
|
||||
; jsr done_attack
|
||||
|
||||
lda #QUEUED_DO_LIMIT
|
||||
sta QUEUED_ATTACK
|
||||
rts
|
||||
|
||||
finger_summon_action:
|
||||
lda #0
|
||||
sta MENU_STATE
|
||||
jsr summon
|
||||
jsr done_attack
|
||||
; lda #0
|
||||
; sta MENU_STATE
|
||||
; jsr summon
|
||||
; jsr done_attack
|
||||
|
||||
lda #QUEUED_DO_SUMMON
|
||||
sta QUEUED_ATTACK
|
||||
rts
|
||||
|
||||
battle_menu_nofinger_keypress:
|
||||
|
@ -213,6 +213,11 @@ NEWX = $D9
|
||||
NEWY = $DA
|
||||
GROUND_COLOR = $DB
|
||||
|
||||
QUEUED_ATTACK = $DC
|
||||
QUEUED_DO_ATTACK = $01
|
||||
QUEUED_DO_MAGIC = $02
|
||||
QUEUED_DO_LIMIT = $03
|
||||
QUEUED_DO_SUMMON = $04
|
||||
|
||||
COLOR1 = $E0
|
||||
COLOR2 = $E1
|
||||
|
Loading…
Reference in New Issue
Block a user