mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-12-21 08:00:25 +00:00
newbie-friendliness: explain how to get Safety
This commit is contained in:
parent
41235b4afa
commit
660eaa6afe
@ -9396,3 +9396,25 @@ S("Reverses all the curses. When found far away from the Cursed Canyon, you gain
|
|||||||
S("Hyperbolic shapes", "Hiperboliczne kształty")
|
S("Hyperbolic shapes", "Hiperboliczne kształty")
|
||||||
S("Projections of hyperbolic space", "Rzuty płaszczyzny hiperbolicznej")
|
S("Projections of hyperbolic space", "Rzuty płaszczyzny hiperbolicznej")
|
||||||
S("Procedural generation", "Proceduralna generacja")
|
S("Procedural generation", "Proceduralna generacja")
|
||||||
|
|
||||||
|
// newbie-friendly Safety
|
||||||
|
|
||||||
|
S("Find an Orb of Safety to save your game",
|
||||||
|
"Znajdź Sferę Bezpieczeństwa by zapisać grę")
|
||||||
|
|
||||||
|
S("how to find an Orb of Safety?", "jak znaleźć Sferę Bezpieczeństwa?")
|
||||||
|
|
||||||
|
S(
|
||||||
|
"To save the game you need an Orb of Safety.\n\n"
|
||||||
|
"Orbs of Safety appear:\n\n"
|
||||||
|
"* in the Crossroads and the Land of Eternal Motion, after you collect %1 Phoenix Feathers in the Land of Eternal Motion.\n\n"
|
||||||
|
"* in the Ocean after you unlock it (%2 treasures)\n\n"
|
||||||
|
"* in the Prairie after you unlock it (%3 treasures)\n\n",
|
||||||
|
|
||||||
|
"By zapisać grę potrzebujesz Sferę Bezpieczeństwa.\n\n"
|
||||||
|
"Możesz je znaleźć:\n\n"
|
||||||
|
"* na Skrzyżowaniu i w Krainie Wiecznego Ruchu, po znalezieniu %1 Piór Feniksa w Krainie Wiecznego Ruchu\n\n"
|
||||||
|
"* na Oceanie po jego odblokowaniu (%2 skarbów)\n\n"
|
||||||
|
"* na Prerii po jej odblokowaniu (%3 skarbów)\n\n"
|
||||||
|
)
|
||||||
|
|
||||||
|
31
quit.cpp
31
quit.cpp
@ -385,6 +385,9 @@ EX void showMission() {
|
|||||||
else if(princess::challenge)
|
else if(princess::challenge)
|
||||||
dialog::addInfo(XLAT("Follow the Mouse and escape with %the1!", moPrincess));
|
dialog::addInfo(XLAT("Follow the Mouse and escape with %the1!", moPrincess));
|
||||||
else if(!in_full_game()) ;
|
else if(!in_full_game()) ;
|
||||||
|
else if(casual && savecount == 0) {
|
||||||
|
dialog::addInfo(XLAT("Find an Orb of Safety to save your game"));
|
||||||
|
}
|
||||||
else if(gold() < R30)
|
else if(gold() < R30)
|
||||||
dialog::addInfo(XLAT("Collect %1 $$$ to access more worlds", its(R30)));
|
dialog::addInfo(XLAT("Collect %1 $$$ to access more worlds", its(R30)));
|
||||||
else if(gold() < R60)
|
else if(gold() < R60)
|
||||||
@ -502,8 +505,12 @@ EX void showMission() {
|
|||||||
#if !ISMOBILE
|
#if !ISMOBILE
|
||||||
dialog::addItem(quitsaves() ? XLAT("save") : XLAT("quit"), SDLK_F10);
|
dialog::addItem(quitsaves() ? XLAT("save") : XLAT("quit"), SDLK_F10);
|
||||||
#endif
|
#endif
|
||||||
if(casual && savecount)
|
if(casual || ISMOBILE) {
|
||||||
|
if(savecount)
|
||||||
dialog::addItem(XLAT("load (%1 turns passed)", its(turncount - save_turns)), SDLK_F9);
|
dialog::addItem(XLAT("load (%1 turns passed)", its(turncount - save_turns)), SDLK_F9);
|
||||||
|
else
|
||||||
|
dialog::addItem(XLAT("how to find an Orb of Safety?"), SDLK_F9);
|
||||||
|
}
|
||||||
#if CAP_ANDROIDSHARE
|
#if CAP_ANDROIDSHARE
|
||||||
dialog::addItem(XLAT("SHARE"), 's'-96);
|
dialog::addItem(XLAT("SHARE"), 's'-96);
|
||||||
#endif
|
#endif
|
||||||
@ -513,6 +520,19 @@ EX void showMission() {
|
|||||||
dialog::display();
|
dialog::display();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EX string safety_help() {
|
||||||
|
return XLAT(
|
||||||
|
"To save the game you need an Orb of Safety.\n\n"
|
||||||
|
"Orbs of Safety appear:\n\n"
|
||||||
|
"* in the Crossroads and the Land of Eternal Motion, after you collect %1 Phoenix Feathers in the Land of Eternal Motion.\n\n"
|
||||||
|
"* in the Ocean after you unlock it (%2 treasures)\n\n"
|
||||||
|
"* in the Prairie after you unlock it (%3 treasures)\n\n",
|
||||||
|
its(inv::on ? 25 : 10),
|
||||||
|
its(R30), its(R90)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
EX void handleKeyQuit(int sym, int uni) {
|
EX void handleKeyQuit(int sym, int uni) {
|
||||||
dialog::handleNavigation(sym, uni);
|
dialog::handleNavigation(sym, uni);
|
||||||
// ignore the camera movement keys
|
// ignore the camera movement keys
|
||||||
@ -526,7 +546,8 @@ EX void handleKeyQuit(int sym, int uni) {
|
|||||||
if(sym == SDLK_RETURN || sym == SDLK_KP_ENTER || sym == SDLK_F10) {
|
if(sym == SDLK_RETURN || sym == SDLK_KP_ENTER || sym == SDLK_F10) {
|
||||||
if(needConfirmation()) pushScreen([] {
|
if(needConfirmation()) pushScreen([] {
|
||||||
dialog::confirm_dialog(
|
dialog::confirm_dialog(
|
||||||
XLAT("This will exit HyperRogue without saving your current game. Are you sure?"),
|
XLAT("This will exit HyperRogue without saving your current game. Are you sure?") + "\n\n" +
|
||||||
|
safety_help(),
|
||||||
[] {
|
[] {
|
||||||
quitmainloop = true;
|
quitmainloop = true;
|
||||||
});
|
});
|
||||||
@ -540,11 +561,15 @@ EX void handleKeyQuit(int sym, int uni) {
|
|||||||
else if(uni == 'v') popScreenAll(), pushScreen(showMainMenu);
|
else if(uni == 'v') popScreenAll(), pushScreen(showMainMenu);
|
||||||
else if(uni == 'l') popScreenAll(), pushScreen(showMessageLog), messagelogpos = isize(gamelog);
|
else if(uni == 'l') popScreenAll(), pushScreen(showMessageLog), messagelogpos = isize(gamelog);
|
||||||
else if(uni == 'z') hints[hinttoshow].action();
|
else if(uni == 'z') hints[hinttoshow].action();
|
||||||
else if(sym == SDLK_F9 && casual && savecount) {
|
else if(sym == SDLK_F9) {
|
||||||
|
if(casual && savecount) {
|
||||||
stop_game();
|
stop_game();
|
||||||
load_last_save();
|
load_last_save();
|
||||||
start_game();
|
start_game();
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
gotoHelp(safety_help());
|
||||||
|
}
|
||||||
else if(sym == SDLK_F3 || (sym == ' ' || sym == SDLK_HOME))
|
else if(sym == SDLK_F3 || (sym == ' ' || sym == SDLK_HOME))
|
||||||
fullcenter();
|
fullcenter();
|
||||||
else if(uni == 'o') get_o_key().second();
|
else if(uni == 'o') get_o_key().second();
|
||||||
|
Loading…
Reference in New Issue
Block a user