Very basic collision and combat to work out the idea and a logging system on the left.
This commit is contained in:
parent
98993481b0
commit
dbc2a10933
5 changed files with 57 additions and 13 deletions
23
gui.cpp
23
gui.cpp
|
@ -83,12 +83,24 @@ void GUI::create_renderer() {
|
|||
|
||||
$document = Renderer([&, player]{
|
||||
const auto& player_combat = $world.component<Combat>(player.entity);
|
||||
const auto& log = $world.get<ActionLog>();
|
||||
|
||||
$status_text = player_combat.hp > 0 ? "NOT DEAD" : "DEAD!!!!!!";
|
||||
|
||||
std::vector<Element> log_list;
|
||||
for(auto msg : log.messages) {
|
||||
log_list.push_back(text(msg));
|
||||
}
|
||||
auto log_box = vbox(log_list) | yflex_grow | border;
|
||||
|
||||
return hbox({
|
||||
hflow(
|
||||
vbox(
|
||||
text(format("HP: {}", player_combat.hp)) | border,
|
||||
text($status_text) | border
|
||||
) | xflex_grow
|
||||
text(format("HP: {: >3}", player_combat.hp)) | border,
|
||||
text($status_text) | border,
|
||||
separator(),
|
||||
log_box
|
||||
) | flex_grow
|
||||
),
|
||||
separator(),
|
||||
hbox(),
|
||||
|
@ -262,6 +274,9 @@ void GUI::configure_world() {
|
|||
Player player{$world.entity()};
|
||||
$world.set<Player>(player);
|
||||
|
||||
ActionLog log{{"Welcome to the game!"}};
|
||||
$world.set<ActionLog>(log);
|
||||
|
||||
$world.assign<Position>(player.entity, {$game_map.place_entity(0)});
|
||||
$world.assign<Motion>(player.entity, {0, 0});
|
||||
$world.assign<Combat>(player.entity, {100, 10});
|
||||
|
@ -286,6 +301,8 @@ void GUI::configure_world() {
|
|||
}
|
||||
|
||||
void GUI::render_scene() {
|
||||
$screen.Clear();
|
||||
$map_screen.Clear();
|
||||
Render($map_screen, $map_view->Render());
|
||||
Render($screen, $document->Render());
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue