diff --git a/gr-sim/tfv/TODO b/gr-sim/tfv/TODO index 9c77e45d..35329a6f 100644 --- a/gr-sim/tfv/TODO +++ b/gr-sim/tfv/TODO @@ -3,12 +3,15 @@ Soon: --> Sprites for all enemies --> Randomize enemy you fight --> Different backgrounds based on location ---> Print enemy attack name on screen ---> Menu --> Magic ---> Limit breaks +--> Summons +--> Limit break (move to end, only have item appear if breaking) +--> Die if HP hits 0. On ground sprite --> Run away -+ Enable getting back on spaceship (with animation) +--> Fix weird glitch on damage printing +--> Sound effects + ++ Enable getting back on spaceship (with better animation) + Better collision detection on Spaceship land + Better collision detection/walk on+off in College Park + Hook up art for all possible locations diff --git a/gr-sim/tfv/tfv_battle.c b/gr-sim/tfv/tfv_battle.c index 3e4a2738..f5123080 100644 --- a/gr-sim/tfv/tfv_battle.c +++ b/gr-sim/tfv/tfv_battle.c @@ -642,6 +642,98 @@ static void magic_attack(int which) { static void limit_break(int which) { + int ax=34,ay=20; + int damage=100; + int i; + + while(ay>0) { + + gr_copy_to_current(0xc00); + + grsim_put_sprite(tfv_stand_left,ax,ay); + grsim_put_sprite(tfv_led_sword,ax-5,ay); + + grsim_put_sprite(enemies[enemy_type].sprite,enemy_x,20); + + draw_battle_bottom(enemy_type); + + page_flip(); + + ay-=1; + + usleep(20000); + } + + ax=10; + ay=0; + + /* Falling */ + + while(ay<=20) { + + gr_copy_to_current(0xc00); + + grsim_put_sprite(enemies[enemy_type].sprite,enemy_x,20); + + grsim_put_sprite(tfv_stand_left,ax,ay); + grsim_put_sprite(tfv_led_sword,ax-5,ay); + + draw_battle_bottom(enemy_type); + + color_equals(13); + vlin(0,ay,ax-5); + + page_flip(); + + ay+=1; + + usleep(100000); + } + + i=0; + while(i<13) { + + gr_copy_to_current(0xc00); + + grsim_put_sprite(enemies[enemy_type].sprite,enemy_x,20); + + grsim_put_sprite(tfv_stand_left,ax,ay); + grsim_put_sprite(tfv_led_sword,ax-5,ay); + + draw_battle_bottom(enemy_type); + + color_equals(COLOR_LIGHTGREEN); + vlin(ay,ay+i,ax-5); + + page_flip(); + i++; + + usleep(100000); + } + + ax=34; + ay=20; + + gr_copy_to_current(0xc00); + + grsim_put_sprite(enemies[enemy_type].sprite,enemy_x,20); + + grsim_put_sprite(tfv_stand_left,ax,ay); + grsim_put_sprite(tfv_led_sword,ax-5,ay); + + draw_battle_bottom(enemy_type); + + color_equals(COLOR_LIGHTGREEN); + vlin(20,33,5); + + damage_enemy(damage); + gr_put_num(2,10,damage); + page_flip(); + + for(i=0;i<20;i++) { + usleep(100000); + } + } static void summon(int which) {