You can now go down stairs to new levels, but when you do you become stairs or a random monster.

This commit is contained in:
Zed A. Shaw 2025-01-24 13:47:00 -05:00
parent c14efee9ea
commit 2825faf038
7 changed files with 100 additions and 49 deletions

27
gui.hpp
View file

@ -79,16 +79,19 @@ class InventoryUI : public Panel {
Component $inventory_box;
Component $inventory_render;
Component $inventory_table;
DinkyECS::World& $world;
GameLevel $level;
std::vector<std::string> $menu_list;
std::string $item_text = "No item selected.";
InventoryUI(DinkyECS::World& world) :
InventoryUI(GameLevel level) :
Panel(INVENTORY_PIXEL_X, INVENTORY_PIXEL_Y, INVENTORY_WIDTH, INVENTORY_HEIGHT),
$world(world)
$level(level)
{}
void create_render();
void update_level(GameLevel &level) { $level = level; }
void update_menu_list(components::Inventory& inventory);
};
@ -96,40 +99,42 @@ class StatusUI : public Panel {
public:
ActionLog $log;
string $status_text = "NOT DEAD";
DinkyECS::World& $world;
GameLevel $level;
StatusUI(DinkyECS::World& world) :
StatusUI(GameLevel level) :
Panel(0, 0, STATUS_UI_WIDTH, STATUS_UI_HEIGHT),
$log({{"Welcome to the game!"}}),
$world(world) {}
$level(level) {}
void create_render();
void log(string msg) {
$log.log(msg);
}
void update_level(GameLevel &level) { $level = level; }
};
class MapViewUI : public Panel {
public:
Canvas $canvas;
DinkyECS::World& $world;
LightRender& $lights;
Map& $game_map;
GameLevel $level;
MapViewUI(DinkyECS::World& world, LightRender& lights, Map& game_map);
MapViewUI(GameLevel &level);
void create_render();
void resize_canvas();
void draw_map();
void update_level(GameLevel &level);
};
class GUI {
LevelManager $level_manager;
GameLevel &$level;
GameLevel $level;
StatusUI $status_ui;
MapViewUI $map_view;
InventoryUI $inventory_ui;
DeathUI $death_ui;
NextLevelUI $next_level_ui;
Canvas $canvas;
bool $inventory_open = false;
bool $player_died = false;