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": {
|
||||
"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:
|
||||
event(Event::MOVE_LEFT);
|
||||
break;
|
||||
case KEY::R:
|
||||
dbc::log("HEY! DIPSHIT! You need to move debug ui so you can rest stats.");
|
||||
break;
|
||||
case KEY::M:
|
||||
event(Event::MAP_OPEN);
|
||||
break;
|
||||
|
|
@ -395,10 +392,6 @@ namespace gui {
|
|||
$debug_ui.debug();
|
||||
shaders::reload();
|
||||
break;
|
||||
case KEY::X:
|
||||
show_scene("NEXT_LEVEL");
|
||||
state(State::NEXT_LEVEL_SCENE);
|
||||
break;
|
||||
case KEY::Z:
|
||||
$main_ui.toggle_mind_reading();
|
||||
break;
|
||||
|
|
@ -406,7 +399,11 @@ namespace gui {
|
|||
player_died();
|
||||
break;
|
||||
case KEY::N:
|
||||
player_won();
|
||||
check_player_wins();
|
||||
break;
|
||||
case KEY::H:
|
||||
case KEY::F1:
|
||||
toggle_help();
|
||||
break;
|
||||
case KEY::F5:
|
||||
take_screenshot();
|
||||
|
|
@ -530,8 +527,7 @@ namespace gui {
|
|||
event(Event::ATTACK, data);
|
||||
break;
|
||||
case eGUI::STAIRS_DOWN:
|
||||
show_scene("NEXT_LEVEL");
|
||||
state(State::NEXT_LEVEL_SCENE);
|
||||
check_player_wins();
|
||||
break;
|
||||
case eGUI::START:
|
||||
event(Event::START, data);
|
||||
|
|
@ -591,8 +587,29 @@ namespace gui {
|
|||
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");
|
||||
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<storyboard::UI> $story = nullptr;
|
||||
bool $display_help = false;
|
||||
|
||||
FSM(sf::RenderWindow& window);
|
||||
|
||||
|
|
@ -89,6 +90,7 @@ namespace gui {
|
|||
void show_scene(const std::string& name);
|
||||
void close_scene();
|
||||
void player_died();
|
||||
void player_won();
|
||||
void check_player_wins();
|
||||
void toggle_help();
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue