|
|
|
@ -108,6 +108,9 @@ namespace gui { |
|
|
|
|
dbc::log("Exiting ATTACKING STATE"); |
|
|
|
|
state(State::IDLE); |
|
|
|
|
break; |
|
|
|
|
case ATTACK: |
|
|
|
|
// ignore these since they're just from SFML not having discrete events
|
|
|
|
|
break; |
|
|
|
|
default: |
|
|
|
|
dbc::log(fmt::format("In ATTACKING state, unhandled event {}", (int)ev)); |
|
|
|
|
} |
|
|
|
@ -249,10 +252,6 @@ namespace gui { |
|
|
|
|
case KEY::A: |
|
|
|
|
event(Event::MOVE_LEFT); |
|
|
|
|
break; |
|
|
|
|
case KEY::Space: |
|
|
|
|
$rotation = 0; |
|
|
|
|
event(Event::ATTACK); |
|
|
|
|
break; |
|
|
|
|
case KEY::R: |
|
|
|
|
$stats.reset(); |
|
|
|
|
break; |
|
|
|
@ -262,15 +261,8 @@ namespace gui { |
|
|
|
|
case KEY::Escape: |
|
|
|
|
event(Event::CLOSE); |
|
|
|
|
break; |
|
|
|
|
case KEY::P: { |
|
|
|
|
auto& debug = $level.world->get_the<Debug>(); |
|
|
|
|
debug.FPS = !debug.FPS; |
|
|
|
|
debug.PATHS = !debug.PATHS; |
|
|
|
|
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; |
|
|
|
|
case KEY::P: |
|
|
|
|
debug(); |
|
|
|
|
default: |
|
|
|
|
break; // ignored
|
|
|
|
|
} |
|
|
|
@ -278,6 +270,16 @@ namespace gui { |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void FSM::debug() { |
|
|
|
|
auto& debug = $level.world->get_the<Debug>(); |
|
|
|
|
debug.FPS = !debug.FPS; |
|
|
|
|
debug.PATHS = !debug.PATHS; |
|
|
|
|
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)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void FSM::draw_weapon() { |
|
|
|
|
return; |
|
|
|
|
auto weapon = $rayview.$textures.sword.sprite; |
|
|
|
@ -426,6 +428,10 @@ namespace gui { |
|
|
|
|
$status_view.log("You picked up an item."); |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|
case eGUI::ATTACK: |
|
|
|
|
$rotation = 0; |
|
|
|
|
event(Event::ATTACK); |
|
|
|
|
break; |
|
|
|
|
default: |
|
|
|
|
$status_view.log(fmt::format("INVALID EVENT! {},{}", evt, entity)); |
|
|
|
|
} |
|
|
|
|