Made an AI debug view to I can make working on the AI easier. I might add the ability to toggle things on/off live to see what the AI does.
This commit is contained in:
parent
fc8e65f4d6
commit
4bf9a9177f
8 changed files with 60 additions and 16 deletions
|
@ -4,6 +4,7 @@
|
|||
#include <fmt/xchar.h>
|
||||
#include "constants.hpp"
|
||||
#include "game_level.hpp"
|
||||
#include "ai.hpp"
|
||||
|
||||
namespace gui {
|
||||
using namespace components;
|
||||
|
@ -31,20 +32,12 @@ namespace gui {
|
|||
$overlay_ui.init();
|
||||
}
|
||||
|
||||
DinkyECS::Entity MainUI::camera_aim() {
|
||||
auto& level = GameDB::current_level();
|
||||
// what happens if there's two things at that spot
|
||||
if(level.collision->something_there($rayview->aiming_at)) {
|
||||
return level.collision->get($rayview->aiming_at);
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
void MainUI::render() {
|
||||
if($needs_render) $rayview->render();
|
||||
$rayview->draw($window);
|
||||
|
||||
if($mind_reading) render_mind_reading();
|
||||
$overlay_ui.render($window);
|
||||
}
|
||||
|
||||
|
@ -97,6 +90,32 @@ namespace gui {
|
|||
}
|
||||
}
|
||||
|
||||
void MainUI::toggle_mind_reading() {
|
||||
$mind_reading = !$mind_reading;
|
||||
|
||||
if($mind_reading) {
|
||||
render_mind_reading();
|
||||
} else {
|
||||
$overlay_ui.close_text("left");
|
||||
}
|
||||
}
|
||||
|
||||
void MainUI::render_mind_reading() {
|
||||
auto level = GameDB::current_level();
|
||||
if(level.collision->occupied($rayview->aiming_at)) {
|
||||
auto entity = level.collision->get($rayview->aiming_at);
|
||||
|
||||
if(auto enemy_ai = level.world->get_if<ai::EntityAI>(entity)) {
|
||||
$overlay_ui.show_text("left", fmt::format(L"AI: {}",
|
||||
guecs::to_wstring(enemy_ai->to_string())));
|
||||
} else {
|
||||
$overlay_ui.show_text("left", L"no mind to read");
|
||||
}
|
||||
} else {
|
||||
$overlay_ui.show_text("left", L"nothing there");
|
||||
}
|
||||
}
|
||||
|
||||
void MainUI::update_level() {
|
||||
auto& level = GameDB::current_level();
|
||||
auto& player_position = GameDB::player_position();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue