1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2026-01-30 22:40:17 +00:00

Merge pull request #481 from josephcsible/landcounts

Fix edge cases in Hell/CR3 unlock
This commit is contained in:
Zeno Rogue
2025-10-30 09:23:49 +01:00
committed by GitHub

View File

@@ -222,13 +222,15 @@ EX bool landUnlockedRPM(eLand n) {
EX int lands_for_hell() {
int desired = casual ? 40 : 9;
int available = std::count_if(land_over.begin(), land_over.end(), [] (eLand l) { return !among(l, laHell, laCocytus, laPower) && !isCrossroads(l) && isLandIngame(l); });
int available = std::count_if(land_over.begin(), land_over.end(), [] (eLand l) { return !among(l, laHell, laCocytus, laPower) && !isCrossroads(l) && iinf[linf[l].treasure].itemclass == IC_TREASURE && isLandIngame(l); });
if(isLandIngame(laMirror) && isLandIngame(laMirrorOld)) --available;
return min(desired, available);
}
EX int lands_for_cr3() {
int desired = casual ? 20 : 9;
int available = std::count_if(land_over.begin(), land_over.end(), [] (eLand l) { return !isCrossroads(l) && isLandIngame(l); });
int available = std::count_if(land_over.begin(), land_over.end(), [] (eLand l) { return !isCrossroads(l) && iinf[linf[l].treasure].itemclass == IC_TREASURE && isLandIngame(l); });
if(isLandIngame(laMirror) && isLandIngame(laMirrorOld)) --available;
return min(desired, available);
}