1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2025-01-11 18:00:34 +00:00

some Euclidean lands are now available only in single land mode

This commit is contained in:
Zeno Rogue 2021-08-08 18:23:38 +02:00
parent 2f11237171
commit ae03bd5272
2 changed files with 8 additions and 2 deletions

View File

@ -204,7 +204,7 @@ EX void ge_land_selection() {
if(landvisited[l]) dialog::do_if_confirmed(dual::mayboth([l] { if(landvisited[l]) dialog::do_if_confirmed(dual::mayboth([l] {
stop_game_and_switch_mode(tactic::on ? rg::tactic : rg::nothing); stop_game_and_switch_mode(tactic::on ? rg::tactic : rg::nothing);
firstland = specialland = l; firstland = specialland = l;
if(l == laCanvas || l == laAsteroids) if(l == laCanvas || l == laAsteroids || (land_validity(l).flags & lv::switch_to_single))
land_structure = lsSingle; land_structure = lsSingle;
else if(among(l, laCrossroads, laCrossroads2)) else if(among(l, laCrossroads, laCrossroads2))
land_structure = lsNiceWalls; land_structure = lsNiceWalls;

View File

@ -598,6 +598,7 @@ namespace lv {
static const flagtype appears_in_ptm = 8; static const flagtype appears_in_ptm = 8;
static const flagtype display_in_help = 16; static const flagtype display_in_help = 16;
static const flagtype one_and_half = 32; static const flagtype one_and_half = 32;
static const flagtype switch_to_single = 64;
} }
struct land_validity_t { struct land_validity_t {
@ -693,6 +694,7 @@ namespace lv {
land_validity_t shmup_only = {0, q0, "This land works only in the shmup mode."}; land_validity_t shmup_only = {0, q0, "This land works only in the shmup mode."};
land_validity_t not_in_shmup = {0, q0, "This land is not available in the shmup mode."}; land_validity_t not_in_shmup = {0, q0, "This land is not available in the shmup mode."};
land_validity_t not_in_multi = {0, q0, "This land is not available in multiplayer."}; land_validity_t not_in_multi = {0, q0, "This land is not available in multiplayer."};
land_validity_t single_only = {2, q0 | switch_to_single, "Available in single land mode only." };
} }
// old Daily Challenges should keep their validity forever // old Daily Challenges should keep their validity forever
@ -952,13 +954,17 @@ EX land_validity_t& land_validity(eLand l) {
if(l == laEndorian && geometry) if(l == laEndorian && geometry)
return not_implemented; return not_implemented;
// special Euclidean implementations // special Euclidean implementations
if(euclid && (l == laIvoryTower || l == laMountain || l == laOcean || l == laMountain)) if(euclid && !ls::single() && old_daily_id > 9999) return single_only;
if(euclid && (l == laIvoryTower || l == laMountain || l == laOcean || l == laMountain)) {
return special_geo; return special_geo;
}
// in other geometries, it works // in other geometries, it works
if(geometry) if(geometry)
return ok; return ok;
} }
if(l == laCaribbean && !ls::single() && old_daily_id > 9999) return single_only;
if(l == laPrincessQuest && ls::any_chaos()) if(l == laPrincessQuest && ls::any_chaos())
return not_in_chaos; return not_in_chaos;