fixed the Hyperstone Quest listing

This commit is contained in:
Zeno Rogue 2017-11-03 23:55:20 +01:00
parent e3b3347479
commit 499ac498f0
2 changed files with 9 additions and 8 deletions

View File

@ -518,7 +518,7 @@ bool landUnlocked(eLand l) {
void countHyperstoneQuest(int& i1, int& i2) { void countHyperstoneQuest(int& i1, int& i2) {
i1 = 0; i2 = 0; i1 = 0; i2 = 0;
generateLandList(isLandValid); generateLandList(isLandValid);
for(eLand l: landlist) { for(eLand l: landlist) if(l != laCamelot && l != laPrincessQuest) {
eItem ttype = treasureType(l); eItem ttype = treasureType(l);
if(ttype != itHyperstone) { if(ttype != itHyperstone) {
i2++; if(items[ttype] >= R10) i1++; i2++; if(items[ttype] >= R10) i1++;
@ -756,7 +756,7 @@ eLand getNewLand(eLand old) {
tab[cnt++] = laHunting; tab[cnt++] = laHunting;
tab[cnt++] = laAlchemist; tab[cnt++] = laAlchemist;
if(old != laDeadCaves) tab[cnt++] = laCaves; if(old != laDeadCaves) tab[cnt++] = laCaves;
// the intermediate lands // the intermediate lands
if(gold() >= R30) { if(gold() >= R30) {
tab[cnt++] = laCrossroads; tab[cnt++] = laCrossroads;
@ -836,6 +836,7 @@ eLand getNewLand(eLand old) {
if(old == laBull && !chaosmode) LIKELY tab[cnt++] = laPrairie; if(old == laBull && !chaosmode) LIKELY tab[cnt++] = laPrairie;
tab[cnt++] = laTerracotta; tab[cnt++] = laTerracotta;
tab[cnt++] = laRose; tab[cnt++] = laRose;
if(chaosmode && geometry) tab[cnt++] = laDual;
} }
if(gold() >= R300) if(gold() >= R300)
@ -914,10 +915,10 @@ vector<eLand> land_over = {
laDryForest, laWineyard, laDeadCaves, laGraveyard, laHaunted, laHive, laDryForest, laWineyard, laDeadCaves, laGraveyard, laHaunted, laHive,
laRedRock, laVolcano, laRedRock, laVolcano,
laDragon, laTortoise, laDragon, laTortoise,
laOvergrown, laClearing, laStorms, laRose, laBurial, laWhirlwind, laOvergrown, laClearing, laStorms, laBurial, laWhirlwind,
laBlizzard, laBlizzard,
laEmerald, laCamelot, laEmerald, laCamelot,
laPrairie, laBull, laTerracotta, laPrairie, laBull, laTerracotta, laRose,
laElementalWall, laTrollheim, laElementalWall, laTrollheim,
laHell, laCrossroads3, laCocytus, laPower, laCrossroads4, laHell, laCrossroads3, laCocytus, laPower, laCrossroads4,
laCrossroads5, laCrossroads5,
@ -1025,7 +1026,7 @@ int isLandValid(eLand l) {
if(quotient || elliptic || smallsphere || torus) if(quotient || elliptic || smallsphere || torus)
return 0; return 0;
// Yendorian only implemented in standard // Yendorian only implemented in standard
if(l == laEndorian) if(l == laEndorian && geometry)
return 0; return 0;
// special Euclidean implementations // special Euclidean implementations
if(euclid && (l == laIvoryTower || l == laMountain || l == laOcean)) if(euclid && (l == laIvoryTower || l == laMountain || l == laOcean))
@ -1068,7 +1069,7 @@ int isLandValid(eLand l) {
return 0; return 0;
// this pattern does not work on elliptic and small spheres // this pattern does not work on elliptic and small spheres
if((l == laBlizzard || l == laVolcano) || elliptic || S7 < 5) if((l == laBlizzard || l == laVolcano) && elliptic && S7 < 5)
return 0; return 0;
// Kraken does not really work in odd non-truncated geometries // Kraken does not really work in odd non-truncated geometries
@ -1142,7 +1143,7 @@ int isLandValid(eLand l) {
return 0; return 0;
// OK in small bounded worlds, and in Euclidean // OK in small bounded worlds, and in Euclidean
if(l == laCrossroads4 && !(euclid || smallbounded)) if(l == laCrossroads4 && !(stdeuc || smallbounded))
return 0; return 0;
if(l == laZebra && !(stdeuc || (a4 && nontruncated) || a46 || quotient == 1)) if(l == laZebra && !(stdeuc || (a4 && nontruncated) || a46 || quotient == 1))

View File

@ -296,7 +296,7 @@ string contstr() {
eLand nextHyperstone() { eLand nextHyperstone() {
generateLandList(isLandValid); generateLandList(isLandValid);
for(eLand l: landlist) for(eLand l: landlist)
if(items[treasureType(l)] < R10 && !isCrossroads(l)) if(items[treasureType(l)] < R10 && !isCrossroads(l) && l != laPrincessQuest && l != laCamelot)
return l; return l;
if(items[itHyperstone] >= 10) return laNone; if(items[itHyperstone] >= 10) return laNone;
return laCrossroads; return laCrossroads;