mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2025-01-11 09:50:34 +00:00
some Euclidean lands are now available only in single land mode
This commit is contained in:
parent
2f11237171
commit
ae03bd5272
@ -204,7 +204,7 @@ EX void ge_land_selection() {
|
||||
if(landvisited[l]) dialog::do_if_confirmed(dual::mayboth([l] {
|
||||
stop_game_and_switch_mode(tactic::on ? rg::tactic : rg::nothing);
|
||||
firstland = specialland = l;
|
||||
if(l == laCanvas || l == laAsteroids)
|
||||
if(l == laCanvas || l == laAsteroids || (land_validity(l).flags & lv::switch_to_single))
|
||||
land_structure = lsSingle;
|
||||
else if(among(l, laCrossroads, laCrossroads2))
|
||||
land_structure = lsNiceWalls;
|
||||
|
@ -598,6 +598,7 @@ namespace lv {
|
||||
static const flagtype appears_in_ptm = 8;
|
||||
static const flagtype display_in_help = 16;
|
||||
static const flagtype one_and_half = 32;
|
||||
static const flagtype switch_to_single = 64;
|
||||
}
|
||||
|
||||
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 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 single_only = {2, q0 | switch_to_single, "Available in single land mode only." };
|
||||
}
|
||||
|
||||
// old Daily Challenges should keep their validity forever
|
||||
@ -952,13 +954,17 @@ EX land_validity_t& land_validity(eLand l) {
|
||||
if(l == laEndorian && geometry)
|
||||
return not_implemented;
|
||||
// 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;
|
||||
}
|
||||
// in other geometries, it works
|
||||
if(geometry)
|
||||
return ok;
|
||||
}
|
||||
|
||||
if(l == laCaribbean && !ls::single() && old_daily_id > 9999) return single_only;
|
||||
|
||||
if(l == laPrincessQuest && ls::any_chaos())
|
||||
return not_in_chaos;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user