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:
parent
2f11237171
commit
ae03bd5272
@ -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;
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user