Refactored the GUECS system to have its own namespace then got Meter to work.

This commit is contained in:
Zed A. Shaw 2025-02-18 12:51:28 -05:00
parent 9c66e870d2
commit 722d55d948
9 changed files with 206 additions and 177 deletions

View file

@ -159,7 +159,7 @@ namespace gui {
state(State::MAPPING);
break;
case ATTACK:
fmt::println("ATTACK IGNORED");
state(State::ATTACKING);
break;
case START_COMBAT:
state(State::IN_COMBAT);
@ -269,6 +269,7 @@ namespace gui {
auto player = $level.world->get_the<Player>();
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));
} break;
default:
break; // ignored
@ -398,6 +399,9 @@ namespace gui {
if(damage.enemy_did > 0) {
$status_view.log(fmt::format("Enemy HIT YOU for {} damage!", damage.enemy_did));
$status_view.log(fmt::format("-- Enemy has {} HP left.", enemy_combat.hp));
auto player = world.get_the<Player>();
auto player_combat = world.get<Combat>(player.entity);
$combat_view.set_damage(float(player_combat.hp) / float(player_combat.max_hp));
} else {
$status_view.log("Enemy MISSED YOU.");
}
@ -407,8 +411,6 @@ namespace gui {
} else {
$status_view.log("You MISSED the enemy.");
}
// this is where we tell the combat ui about the damage
}
break;
case eGUI::COMBAT_START: