1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2024-11-10 15:59:53 +00:00

Hyperstone-optional lands are now clearly marked in the Overview, and the Hunting Grounds and Galapagos are now optional in Euclidean

This commit is contained in:
Zeno Rogue 2019-11-28 00:39:27 +01:00
parent 2acf7b572c
commit beb3a06461
3 changed files with 21 additions and 7 deletions

View File

@ -289,6 +289,8 @@ string forbidden_unmarked() {
return XLAT("When the 'mark heptagons' option (hotkey '7') is on, moves between unmarked cells are forbidden."); return XLAT("When the 'mark heptagons' option (hotkey '7') is on, moves between unmarked cells are forbidden.");
} }
string hyperstone_optional = "Completing the quest in this land is not necessary for the Hyperstone Quest.";
EX string generateHelpForItem(eItem it) { EX string generateHelpForItem(eItem it) {
string help = helptitle(XLATN(iinf[it].name), iinf[it].color); string help = helptitle(XLATN(iinf[it].name), iinf[it].color);
@ -465,6 +467,9 @@ EX string generateHelpForItem(eItem it) {
help += "\n\n" + XLAT(inv::helptext); help += "\n\n" + XLAT(inv::helptext);
#endif #endif
if(in_full_game() && !required_for_hyperstones(it) && it != itHyperstone)
help += "\n\n" + XLAT(hyperstone_optional);
#if CAP_DAILY #if CAP_DAILY
if(daily::on && it == itOrbLove) if(daily::on && it == itOrbLove)
help += "\n\n" + XLAT("The Orb of Love gives no bonus score in the Strange Challenge."); help += "\n\n" + XLAT("The Orb of Love gives no bonus score in the Strange Challenge.");
@ -642,8 +647,8 @@ string generateHelpForLand(eLand l) {
if(isPureSealand(l)) if(isPureSealand(l))
s += XLAT("Aquatic region -- accessible only from coastal regions and other aquatic regions.\n"); s += XLAT("Aquatic region -- accessible only from coastal regions and other aquatic regions.\n");
if(l == laCamelot || l == laPrincessQuest) if(in_full_game() && !required_for_hyperstones(treasureType(l)) && !isCrossroads(l))
s += XLAT("Completing the quest in this land is not necessary for the Hyperstone Quest."); s += XLAT(hyperstone_optional);
int rl = isRandland(l); int rl = isRandland(l);
if(rl == 2) if(rl == 2)

View File

@ -120,14 +120,23 @@ EX bool landUnlocked(eLand l) {
return false; return false;
} }
EX bool required_for_hyperstones(eItem ttype) {
if(ttype == itHyperstone)
return false;
if(among(ttype, itHolyGrail, itSavedPrincess))
return false;
if(euclid && among(ttype, itBabyTortoise, itHunting))
return false;
return true;
}
EX void countHyperstoneQuest(int& i1, int& i2) { EX void countHyperstoneQuest(int& i1, int& i2) {
i1 = 0; i2 = 0; i1 = 0; i2 = 0;
generateLandList(isLandIngame); generateLandList(isLandIngame);
for(eLand l: landlist) if(l != laCamelot && l != laPrincessQuest) { for(eLand l: landlist) {
eItem ttype = treasureType(l); eItem ttype = treasureType(l);
if(ttype != itHyperstone) { if(!required_for_hyperstones(ttype)) continue;
i2++; if(items[ttype] >= R10) i1++; i2++; if(items[ttype] >= R10) i1++;
}
} }
} }

View File

@ -109,7 +109,7 @@ EX void showOverview() {
else if(items[it]) col = 0xC0C0C0; else if(items[it]) col = 0xC0C0C0;
else col = BLACKISH; else col = BLACKISH;
int c8 = (vf+2)/3; int c8 = (vf+2)/3;
if(displayfrZH(xr*24-c8*6, i0, 1, vf-4, its(items[it]), col, 16)) if(displayfrZH(xr*24-c8*6, i0, 1, vf-4, (required_for_hyperstones(it) ? "" : "*") + its(items[it]), col, 16))
getcstat = 2000+it; getcstat = 2000+it;
if(!cheater) if(!cheater)
if(displayfrZH(xr*24, i0, 1, vf-4, its(hiitems[modecode()][it]), col, 16)) if(displayfrZH(xr*24, i0, 1, vf-4, its(hiitems[modecode()][it]), col, 16))