diff --git a/gr-sim/tfv/TODO b/gr-sim/tfv/TODO index 7889061b..4cf8ef85 100644 --- a/gr-sim/tfv/TODO +++ b/gr-sim/tfv/TODO @@ -1,11 +1,11 @@ Soon: -+ Enable getting back on spaceship ++ Enable getting back on spaceship (with animation) + Better collision detection on Spaceship land + Better collision detection/walk on+off in College Park + Hook up art for all possible locations + Working conversation + Riding animals -+ Battle ++ Battle Sequence + End sequence Credits: @@ -17,27 +17,3 @@ Not soon: + Play as either DEATER or FROGGY + Allow spaceship to land on arbitrary grass space + Toggle lowercase/uppercase text - -Trailer: - Coming this July - At Kansasfest - - + A new game about 20 year old events for a 40 year old platform - - + Title Screen - + Riding bird - + Battle against killer crab - + Darkest Bel Air - - - - - - - - - - - - - diff --git a/gr-sim/tfv/tfv_battle.c b/gr-sim/tfv/tfv_battle.c index d0e51cc4..28f26931 100644 --- a/gr-sim/tfv/tfv_battle.c +++ b/gr-sim/tfv/tfv_battle.c @@ -68,6 +68,7 @@ List hits */ +static int battle_bar=0; /* Background depend on map location? */ @@ -279,43 +280,69 @@ static int victory_dance(void) { static int draw_battle_bottom(int enemy_type) { int i; + int saved_page; - clear_bottom(); + saved_page=ram[DRAW_PAGE]; ram[DRAW_PAGE]=PAGE2; // 0xc00 + clear_bottom(); + vtab(22); htab(1); move_cursor(); print(enemies[enemy_type].name); vtab(21); - htab(27); + htab(25); move_cursor(); print("HP"); vtab(21); - htab(34); + htab(28); + move_cursor(); + print("MP"); + + vtab(21); + htab(31); + move_cursor(); + print("TIME"); + + vtab(21); + htab(36); move_cursor(); print("LIMIT"); vtab(22); htab(15); move_cursor(); - print("DEATER"); + // should print "NAMEO" + print("DEATER--"); vtab(22); htab(24); move_cursor(); print_byte(hp); - print("/"); - print_byte(max_hp); + + vtab(22); + htab(27); + move_cursor(); + print_byte(mp); + + /* Draw Time bargraph */ + printf("Battle_bar=%d Limit=%d\n",battle_bar,limit); + ram[COLOR]=0xa0; + hlin_double(ram[DRAW_PAGE],30,34,42); + ram[COLOR]=0x20; + if (battle_bar) hlin_double(ram[DRAW_PAGE],30,30+(battle_bar-1),42); + /* Draw Limit break bargraph */ - ram[COLOR]=0x20; - hlin_double(ram[DRAW_PAGE],33,33+limit,42); ram[COLOR]=0xa0; - hlin_double_continue(5-limit); + hlin_double(ram[DRAW_PAGE],35,39,42); + + ram[COLOR]=0x20; + if (limit) hlin_double(ram[DRAW_PAGE],35,35+limit,42); /* Draw inverse separator */ ram[COLOR]=0x20; @@ -323,6 +350,8 @@ static int draw_battle_bottom(int enemy_type) { hlin_double(ram[DRAW_PAGE],12,12,i); } + ram[DRAW_PAGE]=saved_page; + return 0; } @@ -367,7 +396,7 @@ static int rotate_intro(void) { plot(xx,yy); } } - thetadiff-=(6.28/16.0); + thetadiff+=(6.28/16.0); page_flip(); usleep(100000); @@ -387,8 +416,9 @@ int do_battle(void) { int enemy_hp=0; int ax=34; - int battle_count=50; + int battle_count=20; int enemy_count=30; + int old; /* Setup Enemy */ // enemy_type=X @@ -403,8 +433,11 @@ int do_battle(void) { saved_drawpage=ram[DRAW_PAGE]; + ram[DRAW_PAGE]=PAGE2; + draw_battle_bottom(enemy_type); + /*******************/ /* Draw background */ /* Draw sky */ @@ -439,30 +472,46 @@ int do_battle(void) { if (ch=='q') return 0; if (enemy_count==0) { + // attack and decrement HP hp-=enemy_attack(enemy_x,enemy_type,ax); - // decrement HP // update limit count + if (limit<5) limit++; // redraw bottom + draw_battle_bottom(enemy_type); + // reset enemy time. FIXME: variable? enemy_count=50; } else { enemy_count--; } - if (battle_count==0) { + if (battle_count>=64) { if (ch==' ') { + // attack and decrement HP enemy_hp-=attack(enemy_x,enemy_type); - battle_count=50; + // redraw bottom + draw_battle_bottom(enemy_type); + // reset battle time + battle_count=0; } } else { - battle_count--; + battle_count++; } + old=battle_bar; + battle_bar=(battle_count/16); + if (battle_bar!=old) draw_battle_bottom(enemy_type); + + if (enemy_hp<0) { victory_dance(); break; } +// if (hp<0) { +// game_over(); +// } + } ram[DRAW_PAGE]=PAGE0;