mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-09-09 02:54:25 +00:00
tfv: drop limit break sorta works
This commit is contained in:
parent
fab7df55d7
commit
3a964b3573
@ -151,6 +151,9 @@ battle_draw_running_walk:
|
|||||||
battle_draw_normal_hero:
|
battle_draw_normal_hero:
|
||||||
; grsim_put_sprite(tfv_stand_left,ax,20);
|
; grsim_put_sprite(tfv_stand_left,ax,20);
|
||||||
|
|
||||||
|
lda #20
|
||||||
|
sta HERO_Y
|
||||||
|
|
||||||
jsr draw_hero_and_sword
|
jsr draw_hero_and_sword
|
||||||
|
|
||||||
battle_done_draw_hero:
|
battle_done_draw_hero:
|
||||||
@ -1404,10 +1407,6 @@ victory_draw_done:
|
|||||||
|
|
||||||
magic_attack:
|
magic_attack:
|
||||||
|
|
||||||
; int ax=34,ay=20;
|
|
||||||
; int damage=20;
|
|
||||||
; int i;
|
|
||||||
|
|
||||||
lda #34
|
lda #34
|
||||||
sta HERO_X
|
sta HERO_X
|
||||||
|
|
||||||
@ -1520,18 +1519,12 @@ cast_magic_loop:
|
|||||||
bne cast_magic_loop
|
bne cast_magic_loop
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
; ax=34;
|
|
||||||
; ay=20;
|
|
||||||
; i=0;
|
|
||||||
|
|
||||||
;========================
|
;========================
|
||||||
; Actually do the magic
|
; Actually do the magic
|
||||||
|
|
||||||
lda #20
|
lda #20
|
||||||
sta ANIMATE_LOOP
|
sta ANIMATE_LOOP
|
||||||
magic_happens_loop:
|
magic_happens_loop:
|
||||||
; while(i<=20) {
|
|
||||||
|
|
||||||
jsr gr_copy_to_current
|
jsr gr_copy_to_current
|
||||||
|
|
||||||
@ -1545,6 +1538,8 @@ magic_happens_loop:
|
|||||||
; draw hero
|
; draw hero
|
||||||
lda #34
|
lda #34
|
||||||
sta HERO_X
|
sta HERO_X
|
||||||
|
lda #20
|
||||||
|
sta HERO_Y
|
||||||
jsr draw_hero_and_sword
|
jsr draw_hero_and_sword
|
||||||
|
|
||||||
lda ANIMATE_LOOP
|
lda ANIMATE_LOOP
|
||||||
@ -1590,6 +1585,8 @@ magic_happens_loop:
|
|||||||
; draw hero
|
; draw hero
|
||||||
lda #34
|
lda #34
|
||||||
sta HERO_X
|
sta HERO_X
|
||||||
|
lda #20
|
||||||
|
sta HERO_Y
|
||||||
jsr draw_hero_and_sword
|
jsr draw_hero_and_sword
|
||||||
|
|
||||||
; draw enemy
|
; draw enemy
|
||||||
@ -1635,99 +1632,188 @@ done_magic_damage:
|
|||||||
|
|
||||||
limit_break_drop:
|
limit_break_drop:
|
||||||
|
|
||||||
.if 0
|
lda #$99
|
||||||
int ax=34,ay=20;
|
sta DAMAGE_VAL
|
||||||
int damage=100;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
while(ay>0) {
|
lda #34
|
||||||
|
sta HERO_X
|
||||||
|
lda #20
|
||||||
|
sta HERO_Y
|
||||||
|
|
||||||
gr_copy_to_current(0xc00);
|
drop_jump_loop:
|
||||||
|
|
||||||
grsim_put_sprite(tfv_stand_left,ax,ay);
|
; while(ay>0) {
|
||||||
grsim_put_sprite(tfv_led_sword,ax-5,ay);
|
|
||||||
|
|
||||||
; grsim_put_sprite(enemies[enemy_type].sprite,enemy_x,20);
|
jsr gr_copy_to_current
|
||||||
|
|
||||||
draw_battle_bottom(enemy_type);
|
jsr draw_hero_and_sword
|
||||||
|
|
||||||
page_flip();
|
; draw enemy
|
||||||
|
lda ENEMY_X
|
||||||
|
sta XPOS
|
||||||
|
lda #20
|
||||||
|
sta YPOS
|
||||||
|
jsr draw_enemy
|
||||||
|
|
||||||
ay-=1;
|
jsr draw_battle_bottom
|
||||||
|
|
||||||
usleep(20000);
|
jsr page_flip
|
||||||
}
|
|
||||||
|
|
||||||
ax=10;
|
lda #75
|
||||||
ay=0;
|
jsr WAIT
|
||||||
|
|
||||||
; Falling */
|
; must be even
|
||||||
|
dec HERO_Y
|
||||||
|
dec HERO_Y
|
||||||
|
|
||||||
while(ay<=20) {
|
lda HERO_Y
|
||||||
|
cmp #$f6
|
||||||
|
bne drop_jump_loop
|
||||||
|
|
||||||
gr_copy_to_current(0xc00);
|
|
||||||
|
|
||||||
; grsim_put_sprite(enemies[enemy_type].sprite,enemy_x,20);
|
lda #10
|
||||||
|
sta HERO_X
|
||||||
|
|
||||||
grsim_put_sprite(tfv_stand_left,ax,ay);
|
;===============
|
||||||
grsim_put_sprite(tfv_led_sword,ax-5,ay);
|
; Falling
|
||||||
|
|
||||||
draw_battle_bottom(enemy_type);
|
drop_falling_loop:
|
||||||
|
; while(ay<=20) {
|
||||||
|
|
||||||
color_equals(13);
|
jsr gr_copy_to_current
|
||||||
vlin(0,ay,ax-5);
|
|
||||||
|
|
||||||
page_flip();
|
; draw enemy
|
||||||
|
lda ENEMY_X
|
||||||
|
sta XPOS
|
||||||
|
lda #20
|
||||||
|
sta YPOS
|
||||||
|
jsr draw_enemy
|
||||||
|
|
||||||
ay+=1;
|
jsr draw_hero_and_sword
|
||||||
|
|
||||||
usleep(100000);
|
jsr draw_battle_bottom
|
||||||
}
|
|
||||||
|
|
||||||
i=0;
|
; draw line
|
||||||
while(i<13) {
|
; only if HERO_Y>0
|
||||||
|
lda #$dd ; yellow
|
||||||
|
sta COLOR
|
||||||
|
|
||||||
gr_copy_to_current(0xc00);
|
ldx HERO_Y
|
||||||
|
bmi done_drop_vlin
|
||||||
|
stx V2
|
||||||
|
ldx #0
|
||||||
|
|
||||||
; grsim_put_sprite(enemies[enemy_type].sprite,enemy_x,20);
|
lda HERO_X
|
||||||
|
sec
|
||||||
|
sbc #5
|
||||||
|
tay
|
||||||
|
|
||||||
grsim_put_sprite(tfv_stand_left,ax,ay);
|
jsr vlin ; X,V2 at Y vlin(0,ay,ax-5);
|
||||||
grsim_put_sprite(tfv_led_sword,ax-5,ay);
|
|
||||||
|
|
||||||
draw_battle_bottom(enemy_type);
|
done_drop_vlin:
|
||||||
|
|
||||||
color_equals(COLOR_LIGHTGREEN);
|
jsr page_flip
|
||||||
vlin(ay,ay+i,ax-5);
|
|
||||||
|
|
||||||
page_flip();
|
lda #100
|
||||||
i++;
|
jsr WAIT
|
||||||
|
|
||||||
usleep(100000);
|
inc HERO_Y
|
||||||
}
|
inc HERO_Y
|
||||||
|
lda HERO_Y
|
||||||
|
cmp #20
|
||||||
|
bne drop_falling_loop
|
||||||
|
|
||||||
ax=34;
|
|
||||||
ay=20;
|
|
||||||
|
|
||||||
gr_copy_to_current(0xc00);
|
lda #0
|
||||||
|
sta ANIMATE_LOOP
|
||||||
|
|
||||||
; grsim_put_sprite(enemies[enemy_type].sprite,enemy_x,20);
|
more_drop_loop:
|
||||||
|
|
||||||
grsim_put_sprite(tfv_stand_left,ax,ay);
|
jsr gr_copy_to_current
|
||||||
grsim_put_sprite(tfv_led_sword,ax-5,ay);
|
|
||||||
|
|
||||||
draw_battle_bottom(enemy_type);
|
; draw enemy
|
||||||
|
lda ENEMY_X
|
||||||
|
sta XPOS
|
||||||
|
lda #20
|
||||||
|
sta YPOS
|
||||||
|
jsr draw_enemy
|
||||||
|
|
||||||
color_equals(COLOR_LIGHTGREEN);
|
jsr draw_hero_and_sword
|
||||||
vlin(20,33,5);
|
|
||||||
|
|
||||||
damage_enemy(damage);
|
jsr draw_battle_bottom
|
||||||
gr_put_num(2,10,damage);
|
|
||||||
page_flip();
|
; draw cut line
|
||||||
|
lda #$CC
|
||||||
|
sta COLOR
|
||||||
|
|
||||||
|
lda HERO_Y
|
||||||
|
clc
|
||||||
|
adc ANIMATE_LOOP
|
||||||
|
sta V2
|
||||||
|
|
||||||
|
ldx HERO_Y
|
||||||
|
|
||||||
|
lda HERO_X
|
||||||
|
sec
|
||||||
|
sbc #5
|
||||||
|
tay
|
||||||
|
|
||||||
|
jsr vlin ; x,v2 at Y vlin(ay,ay+i,ax-5);
|
||||||
|
|
||||||
|
jsr page_flip
|
||||||
|
|
||||||
|
lda #75
|
||||||
|
jsr WAIT
|
||||||
|
|
||||||
|
inc ANIMATE_LOOP
|
||||||
|
lda ANIMATE_LOOP
|
||||||
|
cmp #13
|
||||||
|
bne more_drop_loop
|
||||||
|
|
||||||
|
|
||||||
|
jsr gr_copy_to_current
|
||||||
|
|
||||||
|
; draw enemy
|
||||||
|
lda ENEMY_X
|
||||||
|
sta XPOS
|
||||||
|
lda #20
|
||||||
|
sta YPOS
|
||||||
|
jsr draw_enemy
|
||||||
|
|
||||||
|
; draw hero
|
||||||
|
|
||||||
|
jsr draw_hero_and_sword
|
||||||
|
|
||||||
|
jsr draw_battle_bottom
|
||||||
|
|
||||||
|
; slice
|
||||||
|
; FIXME: should this be ground color?
|
||||||
|
|
||||||
|
lda #$cc ; lightgreen
|
||||||
|
sta COLOR
|
||||||
|
|
||||||
|
ldx #33
|
||||||
|
stx V2
|
||||||
|
ldx #20
|
||||||
|
lda #5
|
||||||
|
tay
|
||||||
|
|
||||||
|
jsr vlin ; x,v2 at Y
|
||||||
|
|
||||||
|
jsr damage_enemy
|
||||||
|
|
||||||
|
lda #2
|
||||||
|
sta XPOS
|
||||||
|
lda #10
|
||||||
|
sta YPOS
|
||||||
|
jsr gr_put_num
|
||||||
|
|
||||||
|
jsr page_flip
|
||||||
|
|
||||||
|
; wait 2s
|
||||||
|
ldx #200
|
||||||
|
jsr long_wait
|
||||||
|
|
||||||
for(i=0;i<20;i++) {
|
|
||||||
usleep(100000);
|
|
||||||
}
|
|
||||||
.endif
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
;=========================
|
;=========================
|
||||||
@ -1796,17 +1882,30 @@ limit_break_slice:
|
|||||||
|
|
||||||
; grsim_put_sprite(enemies[enemy_type].sprite,enemy_x,20);
|
; grsim_put_sprite(enemies[enemy_type].sprite,enemy_x,20);
|
||||||
|
|
||||||
|
; draw enemy
|
||||||
|
lda ENEMY_X
|
||||||
|
sta XPOS
|
||||||
|
lda #20
|
||||||
|
sta YPOS
|
||||||
|
jsr draw_enemy
|
||||||
|
|
||||||
|
; draw hero
|
||||||
|
|
||||||
|
jsr draw_hero_and_sword
|
||||||
|
|
||||||
grsim_put_sprite(tfv_stand_left,tx,ty);
|
grsim_put_sprite(tfv_stand_left,tx,ty);
|
||||||
grsim_put_sprite(tfv_led_sword,tx-5,ty);
|
grsim_put_sprite(tfv_led_sword,tx-5,ty);
|
||||||
|
|
||||||
draw_battle_bottom(enemy_type);
|
|
||||||
|
|
||||||
page_flip();
|
|
||||||
|
|
||||||
for(i=0;i<20;i++) {
|
|
||||||
usleep(100000);
|
|
||||||
}
|
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
|
jsr draw_battle_bottom
|
||||||
|
|
||||||
|
jsr page_flip
|
||||||
|
|
||||||
|
; wait 2s
|
||||||
|
ldx #20
|
||||||
|
jsr long_wait
|
||||||
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
;=========================
|
;=========================
|
||||||
@ -1866,19 +1965,37 @@ limit_break_zap:
|
|||||||
|
|
||||||
; grsim_put_sprite(enemies[enemy_type].sprite,enemy_x,20);
|
; grsim_put_sprite(enemies[enemy_type].sprite,enemy_x,20);
|
||||||
|
|
||||||
|
; draw enemy
|
||||||
|
lda ENEMY_X
|
||||||
|
sta XPOS
|
||||||
|
lda #20
|
||||||
|
sta YPOS
|
||||||
|
jsr draw_enemy
|
||||||
|
|
||||||
|
|
||||||
|
; draw hero
|
||||||
|
|
||||||
|
jsr draw_hero_and_sword
|
||||||
|
|
||||||
grsim_put_sprite(tfv_stand_left,tx,ty);
|
grsim_put_sprite(tfv_stand_left,tx,ty);
|
||||||
grsim_put_sprite(tfv_led_sword,tx-5,ty);
|
grsim_put_sprite(tfv_led_sword,tx-5,ty);
|
||||||
|
|
||||||
draw_battle_bottom(enemy_type);
|
|
||||||
|
|
||||||
damage_enemy(damage);
|
|
||||||
gr_put_num(2,10,damage);
|
|
||||||
page_flip();
|
|
||||||
|
|
||||||
for(i=0;i<20;i++) {
|
|
||||||
usleep(100000);
|
|
||||||
}
|
|
||||||
.endif
|
.endif
|
||||||
|
jsr draw_battle_bottom
|
||||||
|
|
||||||
|
jsr damage_enemy
|
||||||
|
|
||||||
|
lda #2
|
||||||
|
sta XPOS
|
||||||
|
lda #10
|
||||||
|
sta YPOS
|
||||||
|
jsr gr_put_num
|
||||||
|
|
||||||
|
jsr page_flip
|
||||||
|
|
||||||
|
; wait 2s
|
||||||
|
ldx #20
|
||||||
|
jsr long_wait
|
||||||
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
;==========================
|
;==========================
|
||||||
@ -2479,13 +2596,13 @@ battle_actual_draw_enemy:
|
|||||||
;============================
|
;============================
|
||||||
; draw hero and sword
|
; draw hero and sword
|
||||||
;============================
|
;============================
|
||||||
; draws at HERO_X,#20
|
; draws at HERO_X,HERO_Y
|
||||||
|
|
||||||
draw_hero_and_sword:
|
draw_hero_and_sword:
|
||||||
|
|
||||||
lda HERO_X
|
lda HERO_X
|
||||||
sta XPOS
|
sta XPOS
|
||||||
lda #20
|
lda HERO_Y
|
||||||
sta YPOS
|
sta YPOS
|
||||||
|
|
||||||
lda #<tfv_stand_left_sprite
|
lda #<tfv_stand_left_sprite
|
||||||
@ -2500,7 +2617,7 @@ draw_hero_and_sword:
|
|||||||
sec
|
sec
|
||||||
sbc #5
|
sbc #5
|
||||||
sta XPOS
|
sta XPOS
|
||||||
lda #20
|
lda HERO_Y
|
||||||
sta YPOS
|
sta YPOS
|
||||||
|
|
||||||
lda #<tfv_led_sword_sprite
|
lda #<tfv_led_sword_sprite
|
||||||
|
@ -41,6 +41,7 @@
|
|||||||
|
|
||||||
.include "gr_fast_clear.s"
|
.include "gr_fast_clear.s"
|
||||||
.include "gr_hlin.s"
|
.include "gr_hlin.s"
|
||||||
|
.include "gr_vlin.s"
|
||||||
.include "gr_pageflip.s"
|
.include "gr_pageflip.s"
|
||||||
.include "keyboard.s"
|
.include "keyboard.s"
|
||||||
.include "joystick.s"
|
.include "joystick.s"
|
||||||
|
@ -109,20 +109,21 @@ JS_BUTTON_STATE = $A7
|
|||||||
ANIMATE_LOOP = $A8
|
ANIMATE_LOOP = $A8
|
||||||
|
|
||||||
HERO_X = $B0 ; used in battle
|
HERO_X = $B0 ; used in battle
|
||||||
HERO_STATE = $B1 ; used in battle
|
HERO_Y = $B1 ; used in battle
|
||||||
|
HERO_STATE = $B2 ; used in battle
|
||||||
HERO_STATE_RUNNING = $01 ; running from battle
|
HERO_STATE_RUNNING = $01 ; running from battle
|
||||||
BATTLE_COUNT = $B2 ; battle counter
|
BATTLE_COUNT = $B3 ; battle counter
|
||||||
ENEMY_TYPE = $B3 ; used in battle
|
ENEMY_TYPE = $B4 ; used in battle
|
||||||
ENEMY_HP = $B4 ; enemy hitpoints
|
ENEMY_HP = $B5 ; enemy hitpoints
|
||||||
ENEMY_X = $B5 ; enemy X position
|
ENEMY_X = $B6 ; enemy X position
|
||||||
ENEMY_COUNT = $B6 ; enemy countdown to attack
|
ENEMY_COUNT = $B7 ; enemy countdown to attack
|
||||||
MENU_STATE = $B7 ; battle menu state
|
MENU_STATE = $B8 ; battle menu state
|
||||||
MENU_NONE = 0
|
MENU_NONE = 0
|
||||||
MENU_MAIN = 1
|
MENU_MAIN = 1
|
||||||
MENU_MAGIC = 2
|
MENU_MAGIC = 2
|
||||||
MENU_SUMMON = 3
|
MENU_SUMMON = 3
|
||||||
MENU_LIMIT = 4
|
MENU_LIMIT = 4
|
||||||
MENU_POSITION = $B8
|
MENU_POSITION = $B9
|
||||||
MENU_MAIN_ATTACK = 0
|
MENU_MAIN_ATTACK = 0
|
||||||
MENU_MAIN_SKIP = 1
|
MENU_MAIN_SKIP = 1
|
||||||
MENU_MAIN_MAGIC = 2
|
MENU_MAIN_MAGIC = 2
|
||||||
@ -143,11 +144,11 @@ MENU_POSITION = $B8
|
|||||||
MENU_LIMIT_ZAP = 1
|
MENU_LIMIT_ZAP = 1
|
||||||
MENU_LIMIT_DROP = 2
|
MENU_LIMIT_DROP = 2
|
||||||
|
|
||||||
LAST_KEY = $B9
|
LAST_KEY = $BA
|
||||||
DAMAGE_VAL = $BA
|
DAMAGE_VAL = $BB
|
||||||
MAGIC_X = $BB
|
MAGIC_X = $BC
|
||||||
MAGIC_Y = $BC
|
MAGIC_Y = $BD
|
||||||
MAGIC_TYPE = $BD
|
MAGIC_TYPE = $BE
|
||||||
|
|
||||||
COLOR1 = $E0
|
COLOR1 = $E0
|
||||||
COLOR2 = $E1
|
COLOR2 = $E1
|
||||||
|
Loading…
Reference in New Issue
Block a user