mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2025-10-22 09:27:40 +00:00
new land structure: excessive crossing walls
This commit is contained in:
25
landlock.cpp
25
landlock.cpp
@@ -81,7 +81,7 @@ EX eLand firstland = laIce;
|
||||
EX eLand specialland = laIce;
|
||||
|
||||
#if HDR
|
||||
enum eLandStructure { lsNiceWalls, lsChaos, lsPatchedChaos, lsTotalChaos, lsChaosRW, lsWallChaos, lsSingle, lsNoWalls, lsHorodisks, lsVoronoi, lsLandscape, lsGUARD };
|
||||
enum eLandStructure { lsNiceWalls, lsChaos, lsPatchedChaos, lsTotalChaos, lsChaosRW, lsWallChaos, lsSingle, lsNoWalls, lsHorodisks, lsVoronoi, lsLandscape, lsCrossWalls, lsGUARD };
|
||||
#endif
|
||||
|
||||
EX eLandStructure land_structure;
|
||||
@@ -90,9 +90,9 @@ EX namespace ls {
|
||||
|
||||
EX bool single() { return land_structure == lsSingle; }
|
||||
|
||||
EX bool any_chaos() { return among(land_structure, lsChaos, lsPatchedChaos, lsWallChaos, lsTotalChaos, lsChaosRW, lsLandscape); }
|
||||
EX bool any_chaos() { return among(land_structure, lsChaos, lsPatchedChaos, lsWallChaos, lsTotalChaos, lsChaosRW, lsCrossWalls, lsLandscape); }
|
||||
EX bool std_chaos() { return land_structure == lsChaos; }
|
||||
EX bool wall_chaos() { return land_structure == lsWallChaos; }
|
||||
EX bool wall_chaos() { return among(land_structure, lsWallChaos, lsCrossWalls); }
|
||||
EX bool patched_chaos() { return land_structure == lsPatchedChaos; }
|
||||
|
||||
EX bool any_order() { return among(land_structure, lsNiceWalls, lsNoWalls, lsHorodisks, lsVoronoi); }
|
||||
@@ -112,11 +112,26 @@ EX int chaoticity() {
|
||||
if(land_structure == lsChaos) return 40;
|
||||
if(land_structure == lsLandscape) return 35;
|
||||
if(land_structure == lsWallChaos) return 30;
|
||||
if(land_structure == lsCrossWalls) return 32;
|
||||
if(land_structure == lsVoronoi) return 20;
|
||||
if(land_structure == lsSingle) return 0;
|
||||
return 10;
|
||||
}
|
||||
|
||||
/** a multiplier to make stuff more frequent in Wall Chaos and Cross Wall Chaos: treasure */
|
||||
EX int ls_mul() {
|
||||
if(land_structure == lsWallChaos) return 2;
|
||||
if(land_structure == lsCrossWalls) return 3;
|
||||
return 1;
|
||||
}
|
||||
|
||||
/** a multiplier to make stuff more frequent in Wall Chaos and Cross Wall Chaos: even bigger */
|
||||
EX int ls_mul_big() {
|
||||
if(land_structure == lsWallChaos) return 5;
|
||||
if(land_structure == lsCrossWalls) return 10;
|
||||
return 1;
|
||||
}
|
||||
|
||||
EX bool tame_chaos() { return any_chaos() && chaoticity() < 35; }
|
||||
EX }
|
||||
|
||||
@@ -144,6 +159,8 @@ EX string land_structure_name(bool which) {
|
||||
return XLAT("landscape");
|
||||
case lsNoWalls:
|
||||
return XLAT("wall-less");
|
||||
case lsCrossWalls:
|
||||
return XLAT("excessive crossing walls");
|
||||
default:
|
||||
return "error structure";
|
||||
}
|
||||
@@ -164,6 +181,8 @@ EX void fix_land_structure_choice() {
|
||||
land_structure = lsNoWalls;
|
||||
if(!nice_walls_available() && land_structure == lsWallChaos)
|
||||
land_structure = lsChaos;
|
||||
if(!nice_walls_available() && land_structure == lsCrossWalls)
|
||||
land_structure = lsChaos;
|
||||
if(ls::hv_structure() && (!hyperbolic || bt::in() || quotient))
|
||||
land_structure = lsSingle;
|
||||
if(walls_not_implemented() && among(land_structure, lsChaos, lsNoWalls))
|
||||
|
||||
Reference in New Issue
Block a user