1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2025-08-04 21:04:02 +00:00

added build_barrier_good, and also fixed equidistant lands in single

This commit is contained in:
Zeno Rogue 2021-04-23 19:54:12 +02:00
parent 21d5187039
commit 1276f87b71

View File

@ -1436,6 +1436,12 @@ EX bool nice_walls_available() {
return (geometry == gNormal && (PURE || BITRUNCATED)) || (geometry == gEuclid && !(INVERSE | IRREGULAR)); return (geometry == gNormal && (PURE || BITRUNCATED)) || (geometry == gEuclid && !(INVERSE | IRREGULAR));
} }
EX void build_barrier_good(cell *c, eLand l IS(laNone)) {
int bd = 2 + hrand(2) * 3;
buildBarrier(c, bd, l);
return;
}
EX void build_walls(cell *c, cell *from) { EX void build_walls(cell *c, cell *from) {
bool deepOcean = deep_ocean_at(c, from); bool deepOcean = deep_ocean_at(c, from);
@ -1451,39 +1457,35 @@ EX void build_walls(cell *c, cell *from) {
if(nice_walls_available()) { if(nice_walls_available()) {
if(ctof(c) && c->land == laMirror && !yendor::generating && hrand(I10000) < 6000) { if(ctof(c) && c->land == laMirror && !yendor::generating && hrand(I10000) < 6000) {
int bd = 2 + hrand(2) * 3; build_barrier_good(c, laMirrored);
buildBarrier(c, bd, laMirrored);
return; return;
} }
if(ctof(c) && c->land == laTerracotta && hrand(I10000) < 200) { if(ctof(c) && c->land == laTerracotta && hrand(I10000) < 200) {
int bd = 2 + hrand(2) * 3; build_barrier_good(c, laTerracotta);
buildBarrier(c, bd, laTerracotta);
return; return;
} }
if(ctof(c) && ls::single() && specialland == laCrossroads && hrand(I10000) < 5000) { if(ctof(c) && ls::single()) {
int bd = 2 + hrand(2) * 3; if(specialland == laCrossroads && hrand(I10000) < 5000) {
buildBarrier(c, bd, laCrossroads); build_barrier_good(c, laCrossroads);
return; return;
} }
if(ctof(c) && ls::single() && specialland == laCrossroads3) { if(specialland == laCrossroads3) {
int bd = 2 + hrand(2) * 3; build_barrier_good(c, laCrossroads3);
buildBarrier(c, bd, laCrossroads3); return;
return; }
}
if(ctof(c) && ls::single() && specialland == laCrossroads5) { if(specialland == laCrossroads5) {
int bd = 2 + hrand(2) * 3; build_barrier_good(c, laCrossroads5);
buildBarrier(c, bd, laCrossroads5); return;
return; }
}
if(ctof(c) && ls::single() && specialland == laCrossroads2 && false) { if(c->land == laCrossroads && isEquidLand(specialland)) {
int bd = 2 + hrand(2) * 3; build_barrier_good(c, specialland);
buildBarrier(c, bd, laCrossroads2); return;
return; }
} }
} }
@ -1503,8 +1505,7 @@ EX void build_walls(cell *c, cell *from) {
else if(ls::wall_chaos()) { else if(ls::wall_chaos()) {
if(good_for_wall(c) && hrand(10000) < 9000 && c->land && !inmirror(c)) { if(good_for_wall(c) && hrand(10000) < 9000 && c->land && !inmirror(c)) {
int bd = 2 + hrand(2) * 3; build_barrier_good(c);
buildBarrier(c, bd);
return; return;
} }
} }
@ -1559,15 +1560,7 @@ EX void build_walls(cell *c, cell *from) {
#endif #endif
else if(ctof(c) && c->land && ls::nice_walls() && hrand(I10000) < wallchance(c, deepOcean)) else if(ctof(c) && c->land && ls::nice_walls() && hrand(I10000) < wallchance(c, deepOcean))
{ build_barrier_good(c);
int bd = 2 + hrand(2) * 3;
buildBarrier(c, bd);
/* int bd = 2;
buildBarrier4(c, bd, 0, getNewLand(c->land), c->land); */
}
} }
EX void start_camelot(cell *c) { EX void start_camelot(cell *c) {