mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-11-03 14:05:58 +00:00
tfv: battle, split off attack code
This commit is contained in:
parent
a7725fd35b
commit
b249df66fa
@ -79,7 +79,7 @@ tfv_world.o: tfv_world.s zp.inc \
|
|||||||
tfv_overworld.s tfv_drawmap.s \
|
tfv_overworld.s tfv_drawmap.s \
|
||||||
tfv_battle.s tfv_battle_menu.s tfv_battle_limit.s tfv_battle_summons.s \
|
tfv_battle.s tfv_battle_menu.s tfv_battle_limit.s tfv_battle_summons.s \
|
||||||
tfv_battle_magic.s tfv_battle_enemy.s tfv_battle_draw_hero.s \
|
tfv_battle_magic.s tfv_battle_enemy.s tfv_battle_draw_hero.s \
|
||||||
tfv_battle_boss.s \
|
tfv_battle_boss.s tfv_battle_attack.s \
|
||||||
help_overworld.s rotate_intro.s \
|
help_overworld.s rotate_intro.s \
|
||||||
sound_effects.s speaker_tone.s \
|
sound_effects.s speaker_tone.s \
|
||||||
graphics_map/tfv_backgrounds.inc \
|
graphics_map/tfv_backgrounds.inc \
|
||||||
|
@ -386,124 +386,6 @@ gr_put_num_ones:
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;=========================
|
|
||||||
; attack
|
|
||||||
;=========================
|
|
||||||
attack:
|
|
||||||
lda #34
|
|
||||||
sta HERO_X
|
|
||||||
|
|
||||||
lda #$10
|
|
||||||
sta DAMAGE_VAL
|
|
||||||
|
|
||||||
attack_loop:
|
|
||||||
|
|
||||||
; copy over background
|
|
||||||
|
|
||||||
jsr gr_copy_to_current
|
|
||||||
|
|
||||||
; draw hero
|
|
||||||
|
|
||||||
lda #20
|
|
||||||
sta YPOS
|
|
||||||
|
|
||||||
lda HERO_X
|
|
||||||
sta XPOS
|
|
||||||
|
|
||||||
lsr
|
|
||||||
bcc attack_draw_walk
|
|
||||||
|
|
||||||
attack_draw_stand:
|
|
||||||
lda #<tfv_stand_left_sprite
|
|
||||||
sta INL
|
|
||||||
lda #>tfv_stand_left_sprite
|
|
||||||
jmp attack_actually_draw
|
|
||||||
|
|
||||||
attack_draw_walk:
|
|
||||||
lda #<tfv_walk_left_sprite
|
|
||||||
sta INL
|
|
||||||
lda #>tfv_walk_left_sprite
|
|
||||||
|
|
||||||
attack_actually_draw:
|
|
||||||
sta INH
|
|
||||||
jsr put_sprite_crop
|
|
||||||
|
|
||||||
;=========================
|
|
||||||
; draw sword
|
|
||||||
|
|
||||||
lda HERO_X
|
|
||||||
sec
|
|
||||||
sbc #5
|
|
||||||
sta XPOS
|
|
||||||
; ypos already 20?
|
|
||||||
|
|
||||||
lda #<tfv_led_sword_sprite
|
|
||||||
sta INL
|
|
||||||
lda #>tfv_led_sword_sprite
|
|
||||||
sta INH
|
|
||||||
|
|
||||||
jsr put_sprite_crop
|
|
||||||
|
|
||||||
|
|
||||||
;=========================
|
|
||||||
; draw enemy
|
|
||||||
|
|
||||||
lda ENEMY_X
|
|
||||||
sta XPOS
|
|
||||||
; ypos already 20?
|
|
||||||
|
|
||||||
jsr draw_enemy
|
|
||||||
|
|
||||||
;===========================
|
|
||||||
; draw battle bottom
|
|
||||||
|
|
||||||
jsr draw_battle_bottom
|
|
||||||
|
|
||||||
;===========================
|
|
||||||
; page flip
|
|
||||||
|
|
||||||
jsr page_flip
|
|
||||||
|
|
||||||
dec HERO_X
|
|
||||||
lda HERO_X
|
|
||||||
cmp #10 ; repeat until 10
|
|
||||||
bne attack_loop
|
|
||||||
|
|
||||||
;======================
|
|
||||||
; attack done
|
|
||||||
|
|
||||||
;===================
|
|
||||||
; damage the enemy
|
|
||||||
|
|
||||||
jsr damage_enemy
|
|
||||||
|
|
||||||
; display damage
|
|
||||||
|
|
||||||
lda #2
|
|
||||||
sta XPOS
|
|
||||||
lda #10
|
|
||||||
sta YPOS
|
|
||||||
jsr gr_put_num
|
|
||||||
|
|
||||||
;===================
|
|
||||||
; page flip
|
|
||||||
|
|
||||||
jsr page_flip
|
|
||||||
|
|
||||||
; delay
|
|
||||||
lda #255
|
|
||||||
jsr WAIT
|
|
||||||
|
|
||||||
; restore X value
|
|
||||||
lda #34
|
|
||||||
sta HERO_X
|
|
||||||
|
|
||||||
rts
|
|
||||||
|
|
||||||
|
|
||||||
victory_string:
|
victory_string:
|
||||||
.byte 13,21,"EXPERIENCE +2",0
|
.byte 13,21,"EXPERIENCE +2",0
|
||||||
.byte 16,22,"MONEY +1",0
|
.byte 16,22,"MONEY +1",0
|
||||||
|
116
games/tfv/tfv_battle_attack.s
Normal file
116
games/tfv/tfv_battle_attack.s
Normal file
@ -0,0 +1,116 @@
|
|||||||
|
|
||||||
|
;=========================
|
||||||
|
; attack
|
||||||
|
;=========================
|
||||||
|
attack:
|
||||||
|
lda #34
|
||||||
|
sta HERO_X
|
||||||
|
|
||||||
|
lda #$10
|
||||||
|
sta DAMAGE_VAL
|
||||||
|
|
||||||
|
attack_loop:
|
||||||
|
|
||||||
|
; copy over background
|
||||||
|
|
||||||
|
jsr gr_copy_to_current
|
||||||
|
|
||||||
|
; draw hero
|
||||||
|
|
||||||
|
lda #20
|
||||||
|
sta YPOS
|
||||||
|
|
||||||
|
lda HERO_X
|
||||||
|
sta XPOS
|
||||||
|
|
||||||
|
lsr
|
||||||
|
bcc attack_draw_walk
|
||||||
|
|
||||||
|
attack_draw_stand:
|
||||||
|
lda #<tfv_stand_left_sprite
|
||||||
|
sta INL
|
||||||
|
lda #>tfv_stand_left_sprite
|
||||||
|
jmp attack_actually_draw
|
||||||
|
|
||||||
|
attack_draw_walk:
|
||||||
|
lda #<tfv_walk_left_sprite
|
||||||
|
sta INL
|
||||||
|
lda #>tfv_walk_left_sprite
|
||||||
|
|
||||||
|
attack_actually_draw:
|
||||||
|
sta INH
|
||||||
|
jsr put_sprite_crop
|
||||||
|
|
||||||
|
;=========================
|
||||||
|
; draw sword
|
||||||
|
|
||||||
|
lda HERO_X
|
||||||
|
sec
|
||||||
|
sbc #5
|
||||||
|
sta XPOS
|
||||||
|
; ypos already 20?
|
||||||
|
|
||||||
|
lda #<tfv_led_sword_sprite
|
||||||
|
sta INL
|
||||||
|
lda #>tfv_led_sword_sprite
|
||||||
|
sta INH
|
||||||
|
|
||||||
|
jsr put_sprite_crop
|
||||||
|
|
||||||
|
|
||||||
|
;=========================
|
||||||
|
; draw enemy
|
||||||
|
|
||||||
|
lda ENEMY_X
|
||||||
|
sta XPOS
|
||||||
|
; ypos already 20?
|
||||||
|
|
||||||
|
jsr draw_enemy
|
||||||
|
|
||||||
|
;===========================
|
||||||
|
; draw battle bottom
|
||||||
|
|
||||||
|
jsr draw_battle_bottom
|
||||||
|
|
||||||
|
;===========================
|
||||||
|
; page flip
|
||||||
|
|
||||||
|
jsr page_flip
|
||||||
|
|
||||||
|
dec HERO_X
|
||||||
|
lda HERO_X
|
||||||
|
cmp #10 ; repeat until 10
|
||||||
|
bne attack_loop
|
||||||
|
|
||||||
|
;======================
|
||||||
|
; attack done
|
||||||
|
|
||||||
|
;===================
|
||||||
|
; damage the enemy
|
||||||
|
|
||||||
|
jsr damage_enemy
|
||||||
|
|
||||||
|
; display damage
|
||||||
|
|
||||||
|
lda #2
|
||||||
|
sta XPOS
|
||||||
|
lda #10
|
||||||
|
sta YPOS
|
||||||
|
jsr gr_put_num
|
||||||
|
|
||||||
|
;===================
|
||||||
|
; page flip
|
||||||
|
|
||||||
|
jsr page_flip
|
||||||
|
|
||||||
|
; delay
|
||||||
|
lda #255
|
||||||
|
jsr WAIT
|
||||||
|
|
||||||
|
; restore X value
|
||||||
|
lda #34
|
||||||
|
sta HERO_X
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
@ -59,6 +59,7 @@
|
|||||||
|
|
||||||
.include "tfv_battle.s"
|
.include "tfv_battle.s"
|
||||||
.include "tfv_battle_menu.s"
|
.include "tfv_battle_menu.s"
|
||||||
|
.include "tfv_battle_attack.s"
|
||||||
.include "tfv_battle_enemy.s"
|
.include "tfv_battle_enemy.s"
|
||||||
.include "tfv_battle_magic.s"
|
.include "tfv_battle_magic.s"
|
||||||
.include "tfv_battle_limit.s"
|
.include "tfv_battle_limit.s"
|
||||||
|
Loading…
Reference in New Issue
Block a user