1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2025-11-10 02:33:00 +00:00

new Crossroads variant: Crossroads VI (Cursed Crossroads)

This commit is contained in:
Zeno Rogue
2025-07-07 11:49:25 +02:00
parent fc63e540f0
commit 26d99c1423
7 changed files with 31 additions and 8 deletions

View File

@@ -616,13 +616,19 @@ EX void extendBarrier(cell *c) {
}
if(buildBarrier6(cw, 2)) return;
}
if(land_structure == lsCursedWalls && c->barleft != laMirror && c->barright != laMirror && hrand(100) < 80 && !among(laCrossroads2, c->barleft, c->barright)) {
cellwalker cw(c, c->bardir);
cw = cw + wstep + 3 + wstep - 1;
if(buildBarrier6(cw, c->barright, c->barleft)) return;
}
if(among(laCrossroads6, c->barleft, c->barright) && hrand(100) < 80) {
cellwalker cw(c, c->bardir);
cw = cw + wstep + 3 + wstep - 1;
if(buildBarrier6(cw, c->barright, c->barleft)) return;
}
if(barrier_cross(c->barleft, c->barright) || (firstmirror && hrand(100) < 60)) {
cellwalker cw(c, c->bardir);
@@ -839,7 +845,12 @@ EX bool buildBarrier6(cellwalker cw, eLand m0, eLand m1) {
setland((b[d+1]-2).cpeek(), m1);
setland((b[d+1]+2).cpeek(), m0);
}
if(hrand(100) < curse_percentage) {
int cp = curse_percentage;
if(m0 == laCrossroads6 || m1 == laCrossroads6) {
cp = 25;
if(m0 == laCursed || m1 == laCursed) cp = 100;
}
if(hrand(100) < cp) {
setland(cw.at, laCursed);
cw.at->wall = waRubble;
cw.at->monst = moHexer;