mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2025-03-26 05:17:03 +00:00
fixed generating treasure (Wetlands, Blizzard) and enemies (Wetland) in Safety; also made Wetlands easier to exit
This commit is contained in:
parent
4c20f29989
commit
ec2dedf678
13
landgen.cpp
13
landgen.cpp
@ -1175,7 +1175,8 @@ EX void giantLandSwitch(cell *c, int d, cell *from) {
|
||||
}
|
||||
if(windless) {
|
||||
c->wall = waIcewall;
|
||||
if(hrand(500) < PT(100 + 2 * kills[moVoidBeast] + 2 * kills[moIceGolem], 200) && notDippingFor(itBlizzard))
|
||||
if(safety) return;
|
||||
else if(hrand(500) < PT(100 + 2 * kills[moVoidBeast] + 2 * kills[moIceGolem], 200) && notDippingFor(itBlizzard))
|
||||
c->item = itBlizzard;
|
||||
else placeLocalSpecial(c, 100);
|
||||
}
|
||||
@ -2646,9 +2647,15 @@ EX void giantLandSwitch(cell *c, int d, cell *from) {
|
||||
eWall wetwalls[4] = { waNone, waShallow, waStone, waDeepWater };
|
||||
c->wall = wetwalls[a];
|
||||
}
|
||||
if(among(c->wall, waDeepWater, waShallow) && hrand_monster(4000) < 2 * (items[itWet] + yendor::hardness() + 5))
|
||||
bool border = false;
|
||||
if(!chaosmode) forCellEx(c1, c) if(c1->land != laWet) border = true;
|
||||
if(border) {
|
||||
if(pseudohept(c)) c->wall = waDeepWater;
|
||||
else c->wall = waShallow;
|
||||
}
|
||||
if(among(c->wall, waDeepWater, waShallow) && hrand_monster(4000) < 2 * (items[itWet] + yendor::hardness() + 5) && !safety)
|
||||
c->monst = hrand(100) >= 90 ? moRusalka : moPike;
|
||||
if(c->wall == waShallow && hrand(2000) < min(PT(100 + kills[moPike] + kills[moRusalka], 150), 150) && notDippingFor(itWet))
|
||||
if(c->wall == waShallow && hrand(2000) < min(PT(100 + kills[moPike] + kills[moRusalka], 150), 150) && notDippingFor(itWet) && !border && !safety)
|
||||
c->item = itWet;
|
||||
}
|
||||
break;
|
||||
|
Loading…
x
Reference in New Issue
Block a user