Mostly working overlay to show when in combat or not.

This commit is contained in:
Zed A. Shaw 2025-02-20 12:43:52 -05:00
parent 30a7e1b2cc
commit 4a1a8a7d65
4 changed files with 66 additions and 32 deletions

15
gui.cpp
View file

@ -157,6 +157,7 @@ namespace gui {
state(State::ATTACKING);
break;
case START_COMBAT:
$overlay_view.show_sprite("top_right", "cinqueda");
state(State::IN_COMBAT);
break;
case CLOSE:
@ -188,6 +189,7 @@ namespace gui {
state(State::COMBAT_ROTATE);
break;
case STOP_COMBAT:
$overlay_view.close_sprite("top_right");
state(State::IDLE);
break;
case QUIT:
@ -273,10 +275,10 @@ namespace gui {
auto& player_combat = $level.world->get<Combat>(player.entity);
player_combat.hp = player_combat.max_hp;
$combat_view.set_damage(float(player_combat.hp) / float(player_combat.max_hp));
$overlay_view.init_stats();
$overlay_view.show_text("top_left", "STATS");
} else {
// it's off now, close it
$overlay_view.close_stats();
$overlay_view.close_text("top_left");
}
}
@ -297,14 +299,17 @@ namespace gui {
$stats.max, $stats.n, VSYNC,
FRAME_LIMIT, DEBUG_BUILD);
$overlay_view.draw_stats(stats);
$overlay_view.update_text("top_left", stats);
}
void FSM::draw_blood() {
auto player = $level.world->get_the<Player>();
auto player_combat = $level.world->get<Combat>(player.entity);
$overlay_view.show_damage(float(player_combat.hp) / float(player_combat.max_hp) < 0.5);
if(float(player_combat.hp) / float(player_combat.max_hp) < 0.5) {
$overlay_view.show_sprite("middle", "blood_splatter");
} else {
$overlay_view.close_sprite("middle");
}
}
void FSM::draw_gui() {