Add a help screen and win.
This commit is contained in:
parent
831b46fa3f
commit
b5c2fc3b5f
3 changed files with 37 additions and 14 deletions
|
|
@ -116,5 +116,9 @@
|
||||||
},
|
},
|
||||||
"player": {
|
"player": {
|
||||||
"hands": "hands_sword_attack"
|
"hands": "hands_sword_attack"
|
||||||
|
},
|
||||||
|
"game_play": {
|
||||||
|
"levels_to_win": 4,
|
||||||
|
"help_text": "WASD moves\nQE rotates\nSpace attacks\nESC close\nRight-Click to heal\nClick on Ladders\nDev Tools:\nP: Debug\nZ: Mind Reader\nN: Next Level\nK: Die\nH/F1: Help\nF5: Screenshot\nReach Level 5 to Win\nAttack to Get Gud\nGet Hit to Get Tuff"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -377,9 +377,6 @@ namespace gui {
|
||||||
case KEY::A:
|
case KEY::A:
|
||||||
event(Event::MOVE_LEFT);
|
event(Event::MOVE_LEFT);
|
||||||
break;
|
break;
|
||||||
case KEY::R:
|
|
||||||
dbc::log("HEY! DIPSHIT! You need to move debug ui so you can rest stats.");
|
|
||||||
break;
|
|
||||||
case KEY::M:
|
case KEY::M:
|
||||||
event(Event::MAP_OPEN);
|
event(Event::MAP_OPEN);
|
||||||
break;
|
break;
|
||||||
|
|
@ -395,10 +392,6 @@ namespace gui {
|
||||||
$debug_ui.debug();
|
$debug_ui.debug();
|
||||||
shaders::reload();
|
shaders::reload();
|
||||||
break;
|
break;
|
||||||
case KEY::X:
|
|
||||||
show_scene("NEXT_LEVEL");
|
|
||||||
state(State::NEXT_LEVEL_SCENE);
|
|
||||||
break;
|
|
||||||
case KEY::Z:
|
case KEY::Z:
|
||||||
$main_ui.toggle_mind_reading();
|
$main_ui.toggle_mind_reading();
|
||||||
break;
|
break;
|
||||||
|
|
@ -406,7 +399,11 @@ namespace gui {
|
||||||
player_died();
|
player_died();
|
||||||
break;
|
break;
|
||||||
case KEY::N:
|
case KEY::N:
|
||||||
player_won();
|
check_player_wins();
|
||||||
|
break;
|
||||||
|
case KEY::H:
|
||||||
|
case KEY::F1:
|
||||||
|
toggle_help();
|
||||||
break;
|
break;
|
||||||
case KEY::F5:
|
case KEY::F5:
|
||||||
take_screenshot();
|
take_screenshot();
|
||||||
|
|
@ -530,8 +527,7 @@ namespace gui {
|
||||||
event(Event::ATTACK, data);
|
event(Event::ATTACK, data);
|
||||||
break;
|
break;
|
||||||
case eGUI::STAIRS_DOWN:
|
case eGUI::STAIRS_DOWN:
|
||||||
show_scene("NEXT_LEVEL");
|
check_player_wins();
|
||||||
state(State::NEXT_LEVEL_SCENE);
|
|
||||||
break;
|
break;
|
||||||
case eGUI::START:
|
case eGUI::START:
|
||||||
event(Event::START, data);
|
event(Event::START, data);
|
||||||
|
|
@ -591,8 +587,29 @@ namespace gui {
|
||||||
state(State::DEATH_SCENE);
|
state(State::DEATH_SCENE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FSM::player_won() {
|
void FSM::check_player_wins() {
|
||||||
|
auto& level = GameDB::current_level();
|
||||||
|
auto config = settings::get("config");
|
||||||
|
size_t levels_to_win = config["game_play"]["levels_to_win"];
|
||||||
|
|
||||||
|
if(level.index <= levels_to_win) {
|
||||||
|
show_scene("NEXT_LEVEL");
|
||||||
|
state(State::NEXT_LEVEL_SCENE);
|
||||||
|
} else {
|
||||||
show_scene("WIN");
|
show_scene("WIN");
|
||||||
state(State::WIN_SCENE);
|
state(State::WIN_SCENE);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void FSM::toggle_help() {
|
||||||
|
$display_help = !$display_help;
|
||||||
|
auto config = settings::get("config");
|
||||||
|
std::string help = config["game_play"]["help_text"];
|
||||||
|
|
||||||
|
if($display_help) {
|
||||||
|
$main_ui.$overlay_ui.show_text("middle", guecs::to_wstring(help));
|
||||||
|
} else{
|
||||||
|
$main_ui.$overlay_ui.close_text("middle");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -52,6 +52,7 @@ namespace gui {
|
||||||
|
|
||||||
std::shared_ptr<gui::SceneUI> $cur_scene = nullptr;
|
std::shared_ptr<gui::SceneUI> $cur_scene = nullptr;
|
||||||
std::shared_ptr<storyboard::UI> $story = nullptr;
|
std::shared_ptr<storyboard::UI> $story = nullptr;
|
||||||
|
bool $display_help = false;
|
||||||
|
|
||||||
FSM(sf::RenderWindow& window);
|
FSM(sf::RenderWindow& window);
|
||||||
|
|
||||||
|
|
@ -89,6 +90,7 @@ namespace gui {
|
||||||
void show_scene(const std::string& name);
|
void show_scene(const std::string& name);
|
||||||
void close_scene();
|
void close_scene();
|
||||||
void player_died();
|
void player_died();
|
||||||
void player_won();
|
void check_player_wins();
|
||||||
|
void toggle_help();
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue