Unlocked combat now works and weirdly this fixes the enemies not running away when scared.
This commit is contained in:
parent
e9365e0d87
commit
f6c8163acd
2 changed files with 17 additions and 2 deletions
|
|
@ -73,8 +73,15 @@ void System::enemy_ai_initialize() {
|
||||||
if(world.has<ai::EntityAI>(ent)) {
|
if(world.has<ai::EntityAI>(ent)) {
|
||||||
auto& enemy = world.get<ai::EntityAI>(ent);
|
auto& enemy = world.get<ai::EntityAI>(ent);
|
||||||
auto& personality = world.get<Personality>(ent);
|
auto& personality = world.get<Personality>(ent);
|
||||||
|
int dist_to_player = map.distance(pos.location);
|
||||||
|
|
||||||
enemy.set_state("detect_enemy", map.distance(pos.location) < personality.hearing_distance);
|
if(dist_to_player > 1) {
|
||||||
|
// not near the player so can't be in combat
|
||||||
|
enemy.set_state("enemy_found", false);
|
||||||
|
enemy.set_state("in_combat", false);
|
||||||
|
}
|
||||||
|
|
||||||
|
enemy.set_state("detect_enemy", dist_to_player < personality.hearing_distance);
|
||||||
enemy.update();
|
enemy.update();
|
||||||
} else {
|
} else {
|
||||||
auto ai_start = ai::load_state(config.ai_start_name);
|
auto ai_start = ai::load_state(config.ai_start_name);
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
#define FSM_DEBUG 1
|
|
||||||
#include "gui/fsm.hpp"
|
#include "gui/fsm.hpp"
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <chrono>
|
#include <chrono>
|
||||||
|
|
@ -175,6 +174,12 @@ namespace gui {
|
||||||
case AIM_CLICK:
|
case AIM_CLICK:
|
||||||
$systems.runPickup();
|
$systems.runPickup();
|
||||||
break;
|
break;
|
||||||
|
case COMBAT_START:
|
||||||
|
fmt::println("!!!!!!!!!!!!!! COMBAT START in IDLE");
|
||||||
|
break;
|
||||||
|
case COMBAT_STOP:
|
||||||
|
fmt::println("!!!!!!!!!!!!!!!! COMBAT STOP in IDLE");
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break; // ignore everything else
|
break; // ignore everything else
|
||||||
}
|
}
|
||||||
|
|
@ -335,6 +340,9 @@ namespace gui {
|
||||||
auto &damage = std::any_cast<components::CombatResult&>(data);
|
auto &damage = std::any_cast<components::CombatResult&>(data);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case eGUI::COMBAT_START:
|
||||||
|
event(Event::COMBAT_START);
|
||||||
|
break;
|
||||||
case eGUI::ENTITY_SPAWN: {
|
case eGUI::ENTITY_SPAWN: {
|
||||||
auto& sprite = world->get<components::Sprite>(entity);
|
auto& sprite = world->get<components::Sprite>(entity);
|
||||||
$main_ui.$rayview->update_sprite(entity, sprite);
|
$main_ui.$rayview->update_sprite(entity, sprite);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue