mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-11-30 15:39:54 +00:00
improved texts, appro overview changed in some cases, 'x'pansion moved to geom sel
This commit is contained in:
parent
dad544958f
commit
fe3f1bf4ad
@ -276,7 +276,7 @@ const char *blizzarddesc =
|
|||||||
|
|
||||||
const char *crystaldesc =
|
const char *crystaldesc =
|
||||||
"Yes, this is definitely a crystal. A very regular crystalline structure.\n\n"
|
"Yes, this is definitely a crystal. A very regular crystalline structure.\n\n"
|
||||||
"This land has been designed to test various geometries, and it does not appear during a normal gameplay.";
|
"This land has been designed as a tool to play with various geometries, and it does not appear during a normal gameplay.";
|
||||||
|
|
||||||
const char *NODESC = "No description yet.";
|
const char *NODESC = "No description yet.";
|
||||||
const char *NODESCYET = "No description yet.";
|
const char *NODESCYET = "No description yet.";
|
||||||
|
@ -215,6 +215,7 @@ int main() {
|
|||||||
plural.insert("Kraken Depths");
|
plural.insert("Kraken Depths");
|
||||||
allchars.insert("ᵈ");
|
allchars.insert("ᵈ");
|
||||||
allchars.insert("δ");
|
allchars.insert("δ");
|
||||||
|
allchars.insert("∞");
|
||||||
|
|
||||||
langPL(); langCZ(); langRU();
|
langPL(); langCZ(); langRU();
|
||||||
langTR(); langDE(); langPT();
|
langTR(); langDE(); langPT();
|
||||||
|
115
language-pl.cpp
115
language-pl.cpp
@ -6167,8 +6167,123 @@ S("When your plan has clearly failed, it is better to abandon it and go to a saf
|
|||||||
|
|
||||||
S("The Hunting Dogs give up.", "Myśliwskie psy się poddały.");
|
S("The Hunting Dogs give up.", "Myśliwskie psy się poddały.");
|
||||||
|
|
||||||
|
// missing from previous versions:
|
||||||
|
|
||||||
S("\n\nThis orb also allows you to collect items encased in ice.",
|
S("\n\nThis orb also allows you to collect items encased in ice.",
|
||||||
"\n\nTa sfera pozwala Ci również zbierać rzeczy zamrożone w lodowej ścianie.")
|
"\n\nTa sfera pozwala Ci również zbierać rzeczy zamrożone w lodowej ścianie.")
|
||||||
|
|
||||||
|
// vampire attack
|
||||||
|
S("%The1 drains your powers!", "%The1 wysysa Twoje moce!")
|
||||||
|
|
||||||
|
// additions
|
||||||
|
S(" This tutorial will not advance on its own -- you have to press Enter (not while reading help text).",
|
||||||
|
" Ten podręcznik nie idzie do przodu sam z siebie -- musisz nacisnąć Enter (nie podczas czytania tekstu pomocy)."
|
||||||
|
)
|
||||||
|
|
||||||
|
S("Hint: hold Alt to highlights enemies and other important features.",
|
||||||
|
"Wskazówka: trzymaj Alt by podświetlać przeciwników i inne istotne elementy.")
|
||||||
|
|
||||||
|
// Crystal World
|
||||||
|
N("Crystal World", GEN_O, "Kryształowy Świat", "Kryształowe Światy", "Kryształowy Świat", "w Kryształowym Świecie")
|
||||||
|
N("Glowing Crystal", GEN_O, "Świecący Kryształ", "Świecące Kryształy", "Świecący Kryształ", "Świecącym Kryształem")
|
||||||
|
|
||||||
|
S("Yes, this is definitely a crystal. A very regular crystalline structure.\n\n"
|
||||||
|
"This land has been designed as a tool to play with various geometries, and it does not appear during a normal gameplay.",
|
||||||
|
|
||||||
|
"Tak, to na pewno kryształ. Bardzo regularna struktura krystaliczna.\n\n"
|
||||||
|
"Ta kraina została zaprojektowana do zabawy różnymi geometriami, i nie pojawia się podczas normalnej gry.")
|
||||||
|
|
||||||
|
S("You cannot move there!", "Nie możesz tam iść!");
|
||||||
|
|
||||||
|
// geometry stuff
|
||||||
|
|
||||||
|
S("experiment with geometry", "eksperymenty z geometrią")
|
||||||
|
|
||||||
|
S(
|
||||||
|
"If you want to know how much the gameplay is affected by the "
|
||||||
|
"hyperbolic geometry in HyperRogue, this mode is for you!\n\n"
|
||||||
|
|
||||||
|
"You can try many different geometries here. We start by gluing "
|
||||||
|
"n-gons in such a way that k of them meet in every vertex. "
|
||||||
|
"Depending on n and k, this either folds into a sphere, unfolds into a plane, "
|
||||||
|
"or requires a hyperbolic space. The result may be then 'truncated' by "
|
||||||
|
"replacing each vertex by a 2k-gon. Furthermore, you can play "
|
||||||
|
"with quotient geometries. For example, the elliptic geometry is "
|
||||||
|
"obtained from the sphere by making the antipodes be the same point, "
|
||||||
|
"so you return to the same spot (but as a mirror image) after going there. "
|
||||||
|
"Have fun experimenting! "
|
||||||
|
"Achievements and leaderboards do not work in geometry experiments, "
|
||||||
|
"except some specific ones.\n\n"
|
||||||
|
"In standard geometry (truncated or not), you can play the full game, but in other geometries "
|
||||||
|
"you select a particular land. Lands are unlocked by visiting them in this "
|
||||||
|
"session, or permanently by collecting 25 treasure. Try Crossroads in Euclidean "
|
||||||
|
"or chaos mode in non-standard non-quotient hyperbolic to visit many lands. "
|
||||||
|
"Highlights:\n"
|
||||||
|
"* Crystal World and Warped Coast can be understood as extra geometries.\n"
|
||||||
|
"* Halloween is specially designed for spherical geometry.\n"
|
||||||
|
"* To see the difference, try Hunting Grounds in Euclidean -- it is impossible.\n",
|
||||||
|
|
||||||
|
"Chcesz wiedzieć, jak geometria wpływa na grę HyperRogue? Ten tryb jest dla Ciebie!\n\n"
|
||||||
|
"Możesz tu wypróbować wiele różnych geometrii. Zaczynamy od sklejania n-kątów tak, "
|
||||||
|
"by k z nich spotykało się w 1 wierzchołku. Zależnie od n i k, to się zwija w kulkę, "
|
||||||
|
"rozwija w płaszczyznę, albo wymaga przestrzeni hiperbolicznej. Wynik może być "
|
||||||
|
"następnie 'przycięty' poprzez zastąpienie każdego wierzchołka 2k-kątem. Można "
|
||||||
|
"też eksperymentować z przestrzeniami ilorazowymi. Na przykład, geometria eliptyczna "
|
||||||
|
"jest otrzymana w ten sposób, że antypody traktujemy jako ten sam punkt, także "
|
||||||
|
"po przejściu na antypody wracasz w to samo miejsce (ale odbit%y0 lustrzanie). "
|
||||||
|
"Miłej zabawy! Osiągnięcia nie działają w eksperymentach geometrycznych, oprócz "
|
||||||
|
"niektórych specjalnych.\n\n"
|
||||||
|
"W standardowej geometrii (przyciętej lub nie) grasz całą grę, w innych geometriach "
|
||||||
|
"wybierasz krainę. Krainy są odblokowane poprzez odwiedzenie ich w tej sesji, lub "
|
||||||
|
"permanentnie przez zebranie 25 skarbów. By odwiedzić wiele krain, wypróbuj "
|
||||||
|
"Skrzyżowanie w geometrii euklidesowej, lub Chaos w niestandardowej nieilorazowej "
|
||||||
|
"geometrii.\n"
|
||||||
|
"Godne uwagi:\n"
|
||||||
|
"* Kryształowy Świat i Zakrzywiony Brzeg to w pewnym sensie dodatkowe geometrie.\n"
|
||||||
|
"* Halloween to kraina zaprojektowana dla geometrii sferycznej.\n"
|
||||||
|
"* Wypróbuj Krainę Wiecznych Łowów w geometrii euklidesowej -- staje się "
|
||||||
|
"niemożliwa do przejścia."
|
||||||
|
)
|
||||||
|
|
||||||
|
// new geometries available:
|
||||||
|
S("standard", "standard") // renamed from 'hyperbolic'
|
||||||
|
|
||||||
|
S("octagons", "ośmiokąty")
|
||||||
|
S("four pentagons", "cztery pięciokąty")
|
||||||
|
S("four hexagons", "cztery sześciokąty")
|
||||||
|
S("four heptagons", "cztery siedmiokąty")
|
||||||
|
S("cube", "sześcian")
|
||||||
|
S("tetrahedron (buggy)", "czworościan (bugi)")
|
||||||
|
S("tetrahedron", "czworościan") // in case if it gets better
|
||||||
|
|
||||||
|
S("land", "kraina")
|
||||||
|
S("truncated", "przycięte")
|
||||||
|
S("does not matter", "bez znaczenia")
|
||||||
|
S("sides per face", "boki ścian")
|
||||||
|
S("faces per vertex", "wierzchołki")
|
||||||
|
S("none", "brak")
|
||||||
|
S("zebra", "zebra")
|
||||||
|
S("field", "ciało")
|
||||||
|
S("quotient space", "przestrzeń ilorazowa")
|
||||||
|
S("size of the world", "wielkość świata")
|
||||||
|
S("flat", "płaska")
|
||||||
|
|
||||||
|
// truncated or not truncated
|
||||||
|
S(" (t)", " (p)")
|
||||||
|
S(" (n)", " (n)")
|
||||||
|
|
||||||
|
S("(locked)", "(blok)")
|
||||||
|
|
||||||
|
S("stereographic/orthogonal", "rzut stereo/orto")
|
||||||
|
S("Poincaré/Klein", "Poincaré/Klein")
|
||||||
|
|
||||||
|
// Paper Model Creator
|
||||||
|
S("Useless in Euclidean geometry.", "Bezużyteczne w geometrii euklidesowej.");
|
||||||
|
S("Not implemented for spherical geometry. Please tell me if you really want this.",
|
||||||
|
"Nie zaimplementowane dla geometrii sferycznej. Jeśli bardzo tego chcesz, powiedz.")
|
||||||
|
|
||||||
|
// Hypersian Rug
|
||||||
|
S("This makes sense only in hyperbolic geometry.", "To ma sens tylko w geometrii hiperbolicznej.")
|
||||||
|
|
||||||
#undef Orb
|
#undef Orb
|
||||||
|
|
||||||
|
46
menus.cpp
46
menus.cpp
@ -347,7 +347,7 @@ void showDisplayMode() {
|
|||||||
dialog::addBoolItem(XLAT("paper model creator"), (false), 'n');
|
dialog::addBoolItem(XLAT("paper model creator"), (false), 'n');
|
||||||
#endif
|
#endif
|
||||||
dialog::addBoolItem(XLAT("conformal/history mode"), (conformal::on), 'a');
|
dialog::addBoolItem(XLAT("conformal/history mode"), (conformal::on), 'a');
|
||||||
dialog::addBoolItem(XLAT("expansion"), viewdists, 'x');
|
// dialog::addBoolItem(XLAT("expansion"), viewdists, 'x');
|
||||||
|
|
||||||
showAllConfig();
|
showAllConfig();
|
||||||
dialog::display();
|
dialog::display();
|
||||||
@ -613,7 +613,7 @@ string euchelp =
|
|||||||
"except some specific ones.\n\n"
|
"except some specific ones.\n\n"
|
||||||
"In standard geometry (truncated or not), you can play the full game, but in other geometries "
|
"In standard geometry (truncated or not), you can play the full game, but in other geometries "
|
||||||
"you select a particular land. Lands are unlocked by visiting them in this "
|
"you select a particular land. Lands are unlocked by visiting them in this "
|
||||||
"game, or permanently by collecting 25 treasure. Try Crossroads in Euclidean "
|
"session, or permanently by collecting 25 treasure. Try Crossroads in Euclidean "
|
||||||
"or chaos mode in non-standard non-quotient hyperbolic to visit many lands. "
|
"or chaos mode in non-standard non-quotient hyperbolic to visit many lands. "
|
||||||
"Highlights:\n"
|
"Highlights:\n"
|
||||||
"* Crystal World and Warped Coast can be understood as extra geometries.\n"
|
"* Crystal World and Warped Coast can be understood as extra geometries.\n"
|
||||||
@ -659,9 +659,9 @@ void showEuclideanMenu() {
|
|||||||
dialog::addBreak(50);
|
dialog::addBreak(50);
|
||||||
|
|
||||||
if(ts == 6 && tv == 3)
|
if(ts == 6 && tv == 3)
|
||||||
dialog::addSelItem("truncated", "does not matter", 't');
|
dialog::addSelItem(XLAT("truncated"), XLAT("does not matter"), 't');
|
||||||
else
|
else
|
||||||
dialog::addBoolItem("truncated", !nontruncated, 't');
|
dialog::addBoolItem(XLAT("truncated"), !nontruncated, 't');
|
||||||
|
|
||||||
dialog::addBreak(50);
|
dialog::addBreak(50);
|
||||||
|
|
||||||
@ -673,8 +673,8 @@ void showEuclideanMenu() {
|
|||||||
if(!nontruncated) worldsize = ((ts+tv)*worldsize) / tv;
|
if(!nontruncated) worldsize = ((ts+tv)*worldsize) / tv;
|
||||||
}
|
}
|
||||||
|
|
||||||
dialog::addSelItem("sides per face", its(ts), 0);
|
dialog::addSelItem(XLAT("sides per face"), its(ts), 0);
|
||||||
dialog::addSelItem("faces per vertex", its(tv), 0);
|
dialog::addSelItem(XLAT("faces per vertex"), its(tv), 0);
|
||||||
|
|
||||||
string qstring = "none";
|
string qstring = "none";
|
||||||
if(tq & qZEBRA) qstring = "zebra";
|
if(tq & qZEBRA) qstring = "zebra";
|
||||||
@ -685,26 +685,25 @@ void showEuclideanMenu() {
|
|||||||
|
|
||||||
else if(tq & qTORUS) qstring = "torus";
|
else if(tq & qTORUS) qstring = "torus";
|
||||||
|
|
||||||
dialog::addSelItem("quotient space", qstring, 0);
|
dialog::addSelItem(XLAT("quotient space"), XLAT(qstring), 0);
|
||||||
|
|
||||||
dialog::addSelItem("size of the world",
|
dialog::addSelItem(XLAT("size of the world"),
|
||||||
XLAT(
|
worldsize < 0 ? "exp(∞)*" + (nom%denom ? its(nom)+"/"+its(-denom) : its(-worldsize)):
|
||||||
worldsize == 0 ? "infinite" :
|
worldsize == 0 ? "∞" :
|
||||||
worldsize > 0 ? "finite (%1)" :
|
its(worldsize),
|
||||||
"exponentially infinite (%1)", its(worldsize)),
|
'3');
|
||||||
0);
|
|
||||||
|
|
||||||
switch(ginf[geometry].cclass) {
|
switch(ginf[geometry].cclass) {
|
||||||
case 0:
|
case 0:
|
||||||
dialog::addSelItem("curvature", curvenames[getDistLimit()], 0);
|
dialog::addSelItem(XLAT("Curvature"), XLAT("hyperbolic"), 0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
dialog::addSelItem("curvature", "flat", 0);
|
dialog::addSelItem(XLAT("Curvature"), XLAT("flat"), 0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
dialog::addSelItem("curvature", "spherical", 0);
|
dialog::addSelItem(XLAT("Curvature"), XLAT("spherical"), 0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -713,7 +712,7 @@ void showEuclideanMenu() {
|
|||||||
else
|
else
|
||||||
dialog::addBoolItem(XLAT("Poincaré/Klein"), vid.alpha>.5, '1');
|
dialog::addBoolItem(XLAT("Poincaré/Klein"), vid.alpha>.5, '1');
|
||||||
dialog::addItem(XLAT("help"), SDLK_F1);
|
dialog::addItem(XLAT("help"), SDLK_F1);
|
||||||
dialog::addItem(XLAT("done"), '0');
|
dialog::addItem(XLAT("back"), '0');
|
||||||
dialog::display();
|
dialog::display();
|
||||||
|
|
||||||
keyhandler = [] (int sym, int uni) {
|
keyhandler = [] (int sym, int uni) {
|
||||||
@ -730,6 +729,7 @@ void showEuclideanMenu() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(uni == '2' || sym == SDLK_F1) gotoHelp(euchelp);
|
else if(uni == '2' || sym == SDLK_F1) gotoHelp(euchelp);
|
||||||
|
else if(uni == '3') { viewdists = !viewdists; if(viewdists) popScreenAll(); }
|
||||||
else if(uni == '1' && !euclid) {
|
else if(uni == '1' && !euclid) {
|
||||||
if(sphere) {
|
if(sphere) {
|
||||||
if(vid.alpha < 10) { vid.alpha = 999; vid.scale = 998; }
|
if(vid.alpha < 10) { vid.alpha = 999; vid.scale = 998; }
|
||||||
@ -747,10 +747,10 @@ void showEuclideanMenu() {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
dialog::init(XLAT("use this where?"));
|
dialog::init(XLAT("experiment with geometry"));
|
||||||
string truncatenames[2] = {" (t)", " (n)"};
|
string truncatenames[2] = {" (t)", " (n)"};
|
||||||
|
|
||||||
dialog::addSelItem(XLAT("geometry"), XLAT(ginf[geometry].name) + truncatenames[nontruncated], '5');
|
dialog::addSelItem(XLAT("geometry"), XLAT(ginf[geometry].name) + XLAT(truncatenames[nontruncated]), '5');
|
||||||
dialog::addBreak(50);
|
dialog::addBreak(50);
|
||||||
|
|
||||||
for(int i=0; i<euperpage; i++) {
|
for(int i=0; i<euperpage; i++) {
|
||||||
@ -772,7 +772,7 @@ void showEuclideanMenu() {
|
|||||||
dialog::addItem(XLAT("next page"), '-');
|
dialog::addItem(XLAT("next page"), '-');
|
||||||
|
|
||||||
dialog::addItem(XLAT("help"), SDLK_F1);
|
dialog::addItem(XLAT("help"), SDLK_F1);
|
||||||
dialog::addItem(XLAT("done"), '0');
|
dialog::addItem(XLAT("back"), '0');
|
||||||
dialog::display();
|
dialog::display();
|
||||||
|
|
||||||
vid.fsize = s;
|
vid.fsize = s;
|
||||||
@ -954,13 +954,15 @@ void showStartMenu() {
|
|||||||
|
|
||||||
void setAppropriateOverview() {
|
void setAppropriateOverview() {
|
||||||
clearMessages();
|
clearMessages();
|
||||||
if(tactic::on)
|
if(viewdists)
|
||||||
|
runGeometryExperiments();
|
||||||
|
else if(tactic::on)
|
||||||
pushScreen(tactic::showMenu);
|
pushScreen(tactic::showMenu);
|
||||||
else if(yendor::on)
|
else if(yendor::on)
|
||||||
pushScreen(yendor::showMenu);
|
pushScreen(yendor::showMenu);
|
||||||
else if(peace::on)
|
else if(peace::on)
|
||||||
pushScreen(peace::showMenu);
|
pushScreen(peace::showMenu);
|
||||||
else if(geometry != gNormal) {
|
else if(geometry != gNormal && !chaosmode && !(geometry == gEuclid && isCrossroads(specialland))) {
|
||||||
runGeometryExperiments();
|
runGeometryExperiments();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -709,7 +709,7 @@ namespace netgen {
|
|||||||
if(euclid)
|
if(euclid)
|
||||||
addMessage("Useless in Euclidean geometry.");
|
addMessage("Useless in Euclidean geometry.");
|
||||||
else if(sphere)
|
else if(sphere)
|
||||||
addMessage("Not implemented for spherical geometry.");
|
addMessage("Not implemented for spherical geometry. Please tell me if you really want this.");
|
||||||
else
|
else
|
||||||
pushScreen(show);
|
pushScreen(show);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user