mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-10-25 14:26:11 +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 MENU_POSITION
|
||||||
sta ENEMY_DEAD
|
sta ENEMY_DEAD
|
||||||
sta ENEMY_ATTACKING
|
sta ENEMY_ATTACKING
|
||||||
|
sta QUEUED_ATTACK
|
||||||
|
|
||||||
; start battle count part-way in
|
; start battle count part-way in
|
||||||
lda #20
|
lda #20
|
||||||
@ -247,8 +248,11 @@ done_battle_handle_dead:
|
|||||||
jsr get_keypress
|
jsr get_keypress
|
||||||
sta LAST_KEY
|
sta LAST_KEY
|
||||||
cmp #'Q'
|
cmp #'Q'
|
||||||
beq done_battle
|
bne not_quit
|
||||||
|
jmp done_battle
|
||||||
|
|
||||||
|
|
||||||
|
not_quit:
|
||||||
;========================================
|
;========================================
|
||||||
; delay for framerate
|
; delay for framerate
|
||||||
|
|
||||||
@ -331,20 +335,76 @@ battle_enemy_is_dead:
|
|||||||
inc ENEMY_DEAD
|
inc ENEMY_DEAD
|
||||||
lda ENEMY_DEAD
|
lda ENEMY_DEAD
|
||||||
cmp #15
|
cmp #15
|
||||||
bne end_battle_loop
|
bne end_check_enemy_dead
|
||||||
|
|
||||||
jsr victory_dance
|
jsr victory_dance
|
||||||
jmp done_battle
|
jmp done_battle
|
||||||
|
|
||||||
battle_enemy_is_not_dead_yet:
|
battle_enemy_is_not_dead_yet:
|
||||||
lda ENEMY_HP_HI
|
lda ENEMY_HP_HI
|
||||||
bne end_battle_loop
|
bne end_check_enemy_dead
|
||||||
lda ENEMY_HP_LO
|
lda ENEMY_HP_LO
|
||||||
bne end_battle_loop
|
bne end_check_enemy_dead
|
||||||
|
|
||||||
; make enemy dead
|
; make enemy dead
|
||||||
inc 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:
|
end_battle_loop:
|
||||||
|
|
||||||
|
@ -225,9 +225,10 @@ enemy_attack:
|
|||||||
lda #1
|
lda #1
|
||||||
sta ENEMY_ATTACKING
|
sta ENEMY_ATTACKING
|
||||||
|
|
||||||
|
|
||||||
enemy_attack_loop:
|
enemy_attack_loop:
|
||||||
|
|
||||||
; put attack name on
|
; put attack name onh
|
||||||
; occasionally attack with that enemy's power?
|
; occasionally attack with that enemy's power?
|
||||||
; occasionally heal self?
|
; occasionally heal self?
|
||||||
|
|
||||||
@ -247,11 +248,25 @@ enemy_attack_loop:
|
|||||||
sta YPOS
|
sta YPOS
|
||||||
jsr draw_enemy
|
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
|
; draw bottom
|
||||||
|
|
||||||
jsr draw_battle_bottom
|
jsr draw_battle_bottom
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;============
|
;============
|
||||||
; page flip
|
; page flip
|
||||||
|
|
||||||
|
@ -579,35 +579,46 @@ finger_action:
|
|||||||
brk
|
brk
|
||||||
|
|
||||||
finger_attack_action:
|
finger_attack_action:
|
||||||
lda #0
|
; lda #0
|
||||||
sta MENU_STATE
|
; sta MENU_STATE
|
||||||
|
|
||||||
; attack and decrement HP
|
; attack and decrement HP
|
||||||
jsr attack
|
; jsr attack
|
||||||
jsr done_attack
|
; jsr done_attack
|
||||||
|
|
||||||
|
lda #QUEUED_DO_ATTACK
|
||||||
|
sta QUEUED_ATTACK
|
||||||
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
finger_magic_action:
|
finger_magic_action:
|
||||||
lda #0
|
; lda #0
|
||||||
sta MENU_STATE
|
; sta MENU_STATE
|
||||||
jsr magic_attack
|
; jsr magic_attack
|
||||||
jsr done_attack
|
; jsr done_attack
|
||||||
|
|
||||||
|
lda #QUEUED_DO_MAGIC
|
||||||
|
sta QUEUED_ATTACK
|
||||||
rts
|
rts
|
||||||
|
|
||||||
finger_limit_action:
|
finger_limit_action:
|
||||||
lda #0
|
; lda #0
|
||||||
sta MENU_STATE
|
; sta MENU_STATE
|
||||||
jsr limit_break
|
; jsr limit_break
|
||||||
jsr done_attack
|
; jsr done_attack
|
||||||
|
|
||||||
|
lda #QUEUED_DO_LIMIT
|
||||||
|
sta QUEUED_ATTACK
|
||||||
rts
|
rts
|
||||||
|
|
||||||
finger_summon_action:
|
finger_summon_action:
|
||||||
lda #0
|
; lda #0
|
||||||
sta MENU_STATE
|
; sta MENU_STATE
|
||||||
jsr summon
|
; jsr summon
|
||||||
jsr done_attack
|
; jsr done_attack
|
||||||
|
|
||||||
|
lda #QUEUED_DO_SUMMON
|
||||||
|
sta QUEUED_ATTACK
|
||||||
rts
|
rts
|
||||||
|
|
||||||
battle_menu_nofinger_keypress:
|
battle_menu_nofinger_keypress:
|
||||||
|
@ -213,6 +213,11 @@ NEWX = $D9
|
|||||||
NEWY = $DA
|
NEWY = $DA
|
||||||
GROUND_COLOR = $DB
|
GROUND_COLOR = $DB
|
||||||
|
|
||||||
|
QUEUED_ATTACK = $DC
|
||||||
|
QUEUED_DO_ATTACK = $01
|
||||||
|
QUEUED_DO_MAGIC = $02
|
||||||
|
QUEUED_DO_LIMIT = $03
|
||||||
|
QUEUED_DO_SUMMON = $04
|
||||||
|
|
||||||
COLOR1 = $E0
|
COLOR1 = $E0
|
||||||
COLOR2 = $E1
|
COLOR2 = $E1
|
||||||
|
Loading…
Reference in New Issue
Block a user