mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2025-08-27 16:02:19 +00:00
new crossroads variant: Master Crossroads
This commit is contained in:
parent
f2bad487a0
commit
09272b7608
@ -1565,6 +1565,7 @@ EX int wallchance(cell *c, bool deepOcean) {
|
||||
l == laCrossroads5 ? 10000 :
|
||||
l == laCrossroads4 ? 5000 :
|
||||
l == laCrossroads6 ? 5000 :
|
||||
l == laMasterCrossroads ? 10000 :
|
||||
(l == laMirror && !yendor::generating) ? 2500 :
|
||||
tactic::on ? 0 :
|
||||
racing::on ? 0 :
|
||||
@ -1831,6 +1832,9 @@ EX void build_walls(cell *c, cell *from) {
|
||||
else if(good_for_wall(c) && ls::any_wall() && c->land == laCrossroads4 && hrand(10000) < 7000 && c->land && !c->master->alt && !tactic::on && !racing::on &&
|
||||
buildBarrierNowall(c, getNewLand(laCrossroads4))) ;
|
||||
|
||||
else if(good_for_wall(c) && ls::any_wall() && c->land == laMasterCrossroads && hrand(10000) < 500 && c->land && !c->master->alt && !tactic::on && !racing::on &&
|
||||
landUnlockedIngame(laCrossroads4) && buildBarrierNowall(c, laCrossroads4)) ;
|
||||
|
||||
else if(good_for_wall(c) && ls::any_wall() && hrand(I10000) < 20 && !generatingEquidistant && !yendor::on && !tactic::on && !racing::on && !isCrossroads(c->land) &&
|
||||
landUnlockedIngame(laCrossroads4) && !weirdhyperbolic && !c->master->alt && c->bardir != NOBARRIERS &&
|
||||
!inmirror(c) && !isSealand(c->land) && !isHaunted(c->land) && !isGravityLand(c->land) &&
|
||||
|
@ -183,7 +183,7 @@ void celldrawer::setcolors() {
|
||||
// floor colors for all the lands
|
||||
else switch(c->land) {
|
||||
case laBurial: case laTrollheim: case laBarrier: case laOceanWall:
|
||||
case laCrossroads2: case laCrossroads3: case laCrossroads4: case laCrossroads5: case laCrossroads6:
|
||||
case laCrossroads2: case laCrossroads3: case laCrossroads4: case laCrossroads5: case laCrossroads6: case laMasterCrossroads:
|
||||
case laRose: case laPower: case laWildWest: case laHalloween: case laRedRock:
|
||||
case laDragon: case laStorms: case laTerracotta: case laMercuryRiver:
|
||||
case laDesert: case laKraken: case laDocks:
|
||||
|
@ -1754,6 +1754,9 @@ LAND( 0x7030A0, "Crossroads VI", laCrossroads6, ZERO, itHyperstone, RESERVED, "A
|
||||
NATIVE(0)
|
||||
REQ(ITEMS(itCursed, 5))
|
||||
|
||||
LAND( 0xC0B090, "Master Crossroads", laMasterCrossroads, ZERO, itHyperstone, RESERVED, "A crossroads that connects only to other crossroads.")
|
||||
NATIVE(0) REQ(GOLD(R500))
|
||||
|
||||
ITEM('}', 0xFFFF80, "Crossbow", itCrossbow, IC_NAI, ZERO, RESERVED, osNone,
|
||||
"Your crossbow. Press 'f' or click it in the inventory to toggle firing mode. In firing mode, select a tile to see the trajectory, then "
|
||||
"click again to fire. After firing, the crossbow takes some time to reload."
|
||||
|
@ -2520,6 +2520,7 @@ EX void giantLandSwitch(cell *c, int d, cell *from) {
|
||||
case laCrossroads4:
|
||||
case laCrossroads5:
|
||||
case laCrossroads6:
|
||||
case laMasterCrossroads:
|
||||
if(c->wall == waTower) c->land = laCamelot;
|
||||
ONEMPTY {
|
||||
if(!BITRUNCATED && c->land == laCrossroads5 && hrand(100) < 60)
|
||||
|
15
landlock.cpp
15
landlock.cpp
@ -53,11 +53,15 @@ EX int landMultiplier(eLand l) {
|
||||
}
|
||||
|
||||
EX bool isCrossroads(eLand l) {
|
||||
return among(l, laCrossroads, laCrossroads2, laCrossroads3, laCrossroads4, laCrossroads5, laCrossroads6);
|
||||
return among(l, laCrossroads, laCrossroads2, laCrossroads3, laCrossroads4, laCrossroads5, laCrossroads6, laMasterCrossroads);
|
||||
}
|
||||
|
||||
EX bool isCrossroadsNM(eLand l) {
|
||||
return isCrossroads(l) && l != laMasterCrossroads;
|
||||
}
|
||||
|
||||
EX bool bearsCamelot(eLand l) {
|
||||
return isCrossroads(l) && l != laCrossroads2 && l != laCrossroads5;
|
||||
return isCrossroads(l) && !among(l, laCrossroads2, laCrossroads5, laMasterCrossroads);
|
||||
}
|
||||
|
||||
EX bool inmirror(const cellwalker& cw) {
|
||||
@ -333,7 +337,8 @@ EX bool voronoi_sea_incompatible(eLand l1, eLand l2) {
|
||||
}
|
||||
|
||||
EX bool incompatible1(eLand l1, eLand l2) {
|
||||
if(isCrossroads(l1) && isCrossroads(l2)) return true;
|
||||
if(l1 == laMasterCrossroads && !isCrossroads(l2)) return true;
|
||||
if(isCrossroadsNM(l1) && isCrossroadsNM(l2)) return true;
|
||||
if(l1 == laJungle && l2 == laMotion) return true;
|
||||
if(l1 == laMirrorOld && l2 == laMotion) return true;
|
||||
if(l1 == laPower && l2 == laWineyard) return true;
|
||||
@ -566,7 +571,7 @@ EX eLand getNewLand(eLand old) {
|
||||
laDeadCaves, laRedRock, laVariant, laHell, laCocytus, laPower,
|
||||
laBull, laTerracotta, laRose, laGraveyard, laHive, laDragon, laTrollheim,
|
||||
laWet, laFrog, laEclectic, laCursed, laDice,
|
||||
laCrossroads5, laCrossroads6
|
||||
laCrossroads5, laCrossroads6, laMasterCrossroads
|
||||
})
|
||||
if(landUnlocked(l)) tab[cnt++] = l;
|
||||
|
||||
@ -737,7 +742,7 @@ EX vector<eLand> land_over = {
|
||||
laPrairie, laBull, laTerracotta, laRose,
|
||||
laElementalWall, laTrollheim,
|
||||
laHell, laCrossroads3, laCocytus, laPower, laCrossroads4,
|
||||
laCrossroads5, laCrossroads6,
|
||||
laCrossroads5, laCrossroads6, laMasterCrossroads,
|
||||
// EXTRA
|
||||
laWildWest, laHalloween, laDual, laSnakeNest, laMagnetic, laCA, laAsteroids
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user