mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2025-08-28 08:22:18 +00:00
removed thematic -- could not make it cool
This commit is contained in:
parent
48dd34baaf
commit
69840c6716
@ -1566,7 +1566,6 @@ EX int wallchance(cell *c, bool deepOcean) {
|
|||||||
l == laCrossroads4 ? 5000 :
|
l == laCrossroads4 ? 5000 :
|
||||||
l == laCrossroads6 ? 5000 :
|
l == laCrossroads6 ? 5000 :
|
||||||
l == laMasterCrossroads ? 10000 :
|
l == laMasterCrossroads ? 10000 :
|
||||||
isThematic(l) ? 10000 :
|
|
||||||
(l == laMirror && !yendor::generating) ? 2500 :
|
(l == laMirror && !yendor::generating) ? 2500 :
|
||||||
tactic::on ? 0 :
|
tactic::on ? 0 :
|
||||||
racing::on ? 0 :
|
racing::on ? 0 :
|
||||||
@ -1767,9 +1766,6 @@ EX void build_walls(cell *c, cell *from) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(specialland == laThematic && good_for_wall(c) && hrand(10000) < 5000)
|
|
||||||
buildBarrierNowall(c, getNewThematic(c->land));
|
|
||||||
|
|
||||||
if(specialland == laMasterCrossroads && c->land == laMasterCrossroads && good_for_wall(c) && hrand(10000) < 100)
|
if(specialland == laMasterCrossroads && c->land == laMasterCrossroads && good_for_wall(c) && hrand(10000) < 100)
|
||||||
buildBarrierNowall(c, laCrossroads4);
|
buildBarrierNowall(c, laCrossroads4);
|
||||||
|
|
||||||
@ -1847,9 +1843,6 @@ EX void build_walls(cell *c, cell *from) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
else if(good_for_wall(c) && ls::any_wall() && isThematic(c->land) && hrand(10000) < 1500 && !c->master->alt && !racing::on &&
|
|
||||||
buildBarrierNowall(c, getNewThematic(c->land))) ;
|
|
||||||
|
|
||||||
else if(good_for_wall(c) && ls::any_wall() && c->land == laCrossroads4 && hrand(10000) < 7000 && c->land && !c->master->alt && !tactic::on && !racing::on &&
|
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))) ;
|
buildBarrierNowall(c, getNewLand(laCrossroads4))) ;
|
||||||
|
|
||||||
|
@ -97,11 +97,6 @@ EX colortable endorian_colors = { 0x202010, 0x404030, 0x0000D0 };
|
|||||||
EX colortable canopy_colors = { 0x60C060, 0x489048 };
|
EX colortable canopy_colors = { 0x60C060, 0x489048 };
|
||||||
EX colortable camelot_cheat_colors = { 0x606060, 0xC0C0C0 };
|
EX colortable camelot_cheat_colors = { 0x606060, 0xC0C0C0 };
|
||||||
|
|
||||||
bool thembound(cell *c) {
|
|
||||||
forCellEx(c1, c) if(c1->land != c->land && c1->land != laBarrier) return true;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** return the special colortable for the given cell -- color menu uses this to know that a colortable should be edited */
|
/** return the special colortable for the given cell -- color menu uses this to know that a colortable should be edited */
|
||||||
EX colortable* special_colortable_for(cell *c) {
|
EX colortable* special_colortable_for(cell *c) {
|
||||||
if(c->land == laPrairie && prairie::isriver(c)) return &prairie_colors;
|
if(c->land == laPrairie && prairie::isriver(c)) return &prairie_colors;
|
||||||
@ -197,9 +192,6 @@ void celldrawer::setcolors() {
|
|||||||
case laAlchemist: case laFrog: case laCursed: case laDice:
|
case laAlchemist: case laFrog: case laCursed: case laDice:
|
||||||
fcol = floorcolors[c->land]; break;
|
fcol = floorcolors[c->land]; break;
|
||||||
|
|
||||||
case laThematic: case laThematicNature: case laThematicUrban: case laThematicDeath: case laThematicAbstract: case laThematicWater: case laThematicEarth: case laThematicHeat:
|
|
||||||
fcol = floorcolors[laThematic]; break;
|
|
||||||
|
|
||||||
case laCA:
|
case laCA:
|
||||||
fcol = floorcolors[c->land];
|
fcol = floorcolors[c->land];
|
||||||
if(geosupport_chessboard()) {
|
if(geosupport_chessboard()) {
|
||||||
@ -1241,61 +1233,6 @@ void celldrawer::set_land_floor(const shiftmatrix& Vf) {
|
|||||||
queuepoly(Vf * ddspin(c, i, M_PI/S7) * xpush(cgi.rhexf), cgi.shSwitchDisk, darkena(minf[active_switch()].color, fd, 0xFF));
|
queuepoly(Vf * ddspin(c, i, M_PI/S7) * xpush(cgi.rhexf), cgi.shSwitchDisk, darkena(minf[active_switch()].color, fd, 0xFF));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case laThematicNature:
|
|
||||||
if(c->wall == waNone) {
|
|
||||||
dynamicval<color_t> p(poly_outline, OUTLINE_TRANS);
|
|
||||||
queuepolyat(Vf, cgi.shTreeIcon, darkena(linf[laThematicNature].color, 0, thembound(c) ? 0xFF : 0x10), PPR::FLOOR_DRAGON);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case laThematicUrban:
|
|
||||||
if(c->wall == waNone) {
|
|
||||||
dynamicval<color_t> p(poly_outline, OUTLINE_TRANS);
|
|
||||||
queuepolyat(Vf, cgi.shHumanoid, darkena(linf[laThematicUrban].color, 0, thembound(c) ? 0xFF : 0x10), PPR::FLOOR_DRAGON);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case laThematicEarth:
|
|
||||||
if(c->wall == waNone) {
|
|
||||||
dynamicval<color_t> p(poly_outline, OUTLINE_TRANS);
|
|
||||||
queuepolyat(Vf, cgi.shLightningBolt, darkena(linf[laThematicEarth].color, 0, thembound(c) ? 0xFF : 0x10), PPR::FLOOR_DRAGON);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case laThematicWater:
|
|
||||||
if(c->wall == waNone) {
|
|
||||||
dynamicval<color_t> p(poly_outline, OUTLINE_TRANS);
|
|
||||||
queuepolyat(Vf, cgi.shSmallPike, darkena(linf[laThematicWater].color, 0, thembound(c) ? 0xFF : 0x10), PPR::FLOOR_DRAGON);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case laThematicAbstract:
|
|
||||||
if(c->wall == waNone) {
|
|
||||||
dynamicval<color_t> p(poly_outline, OUTLINE_TRANS);
|
|
||||||
queuepolyat(Vf, cgi.shDodeca, darkena(linf[laThematicAbstract].color, 0, thembound(c) ? 0xFF : 0x10), PPR::FLOOR_DRAGON);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case laThematicDeath:
|
|
||||||
if(c->wall == waNone) {
|
|
||||||
dynamicval<color_t> p(poly_outline, OUTLINE_TRANS);
|
|
||||||
queuepolyat(Vf, cgi.shMiniGhost, darkena(linf[laThematicDeath].color, 0, thembound(c) ? 0xFF : 0x10), PPR::FLOOR_DRAGON);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case laThematicHeat:
|
|
||||||
if(c->wall == waNone) {
|
|
||||||
dynamicval<color_t> p(poly_outline, OUTLINE_TRANS);
|
|
||||||
float h = HEAT(c);
|
|
||||||
color_t col;
|
|
||||||
if(h < -1) col = 0xFF;
|
|
||||||
else if(h < 0) col = gradient(0xFFFFFF, 0xFF, 0, h, -1);
|
|
||||||
else if(h < 1) col = gradient(0xFFFFFF, 0xFFFF00, 0, h, 1);
|
|
||||||
else col = 0xFFFF00;
|
|
||||||
queuepolyat(Vf, cgi.shGem[0], darkena(col, 0, thembound(c) ? 0xFF : 0x10), PPR::FLOOR_DRAGON);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case laStorms:
|
case laStorms:
|
||||||
set_floor(cgi.shChargedFloor);
|
set_floor(cgi.shChargedFloor);
|
||||||
break;
|
break;
|
||||||
|
@ -420,9 +420,6 @@ const char *ruindesc =
|
|||||||
const char *rock_description =
|
const char *rock_description =
|
||||||
"Shoot the Space Rocks for score. Large Rocks will split into two smaller rocks.";
|
"Shoot the Space Rocks for score. Large Rocks will split into two smaller rocks.";
|
||||||
|
|
||||||
const char *thematic_crossroads =
|
|
||||||
"The Thematic Crossroads has various sections that connect to lands with specific theme.";
|
|
||||||
|
|
||||||
#if HDR
|
#if HDR
|
||||||
enum eSlimegroup { sgNone, sgCave, sgWater, sgFloorA, sgFloorB, sgVine, sgTree };
|
enum eSlimegroup { sgNone, sgCave, sgWater, sgFloorA, sgFloorB, sgVine, sgTree };
|
||||||
#endif
|
#endif
|
||||||
|
@ -2064,7 +2064,6 @@ EX namespace heat {
|
|||||||
EX double absheat(cell *c) {
|
EX double absheat(cell *c) {
|
||||||
if(c->land == laCocytus) return HEAT(c) -.6;
|
if(c->land == laCocytus) return HEAT(c) -.6;
|
||||||
if(c->land == laIce || c->land == laBlizzard || c->land == laEclectic) return HEAT(c) -.4;
|
if(c->land == laIce || c->land == laBlizzard || c->land == laEclectic) return HEAT(c) -.4;
|
||||||
if(c->land == laThematicHeat) return HEAT(c) - 0.2;
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2168,8 +2167,6 @@ EX namespace heat {
|
|||||||
hmod += xrate*.1;
|
hmod += xrate*.1;
|
||||||
if(ct->land == laVolcano)
|
if(ct->land == laVolcano)
|
||||||
hmod += xrate * (ct->wall == waMagma ? .4 : .2);
|
hmod += xrate * (ct->wall == waMagma ? .4 : .2);
|
||||||
else if(c->land == laThematicHeat && !isThematic(ct->land) && !isIcyLand(ct->land) && ct->land != laBarrier)
|
|
||||||
hmod += xrate * .3;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for(cell* ct: ls) {
|
for(cell* ct: ls) {
|
||||||
@ -2218,7 +2215,7 @@ EX namespace heat {
|
|||||||
addMessage(XLAT("%The1 melts away!", c->monst));
|
addMessage(XLAT("%The1 melts away!", c->monst));
|
||||||
fallMonster(c);
|
fallMonster(c);
|
||||||
}
|
}
|
||||||
if(c->wall == waIcewall && HEAT(c) > (c->land == laThematicHeat ? .2 : .4))
|
if(c->wall == waIcewall && HEAT(c) > .4)
|
||||||
drawParticles(c, MELTCOLOR, 4, 60),
|
drawParticles(c, MELTCOLOR, 4, 60),
|
||||||
c->wall = waNone, kills[0]++;
|
c->wall = waNone, kills[0]++;
|
||||||
if(c->wall == waFrozenLake && HEAT(c) > (c->land == laCocytus ? .6 : .4))
|
if(c->wall == waFrozenLake && HEAT(c) > (c->land == laCocytus ? .6 : .4))
|
||||||
|
24
content.cpp
24
content.cpp
@ -1754,30 +1754,6 @@ LAND( 0x7030A0, "Crossroads VI", laCrossroads6, ZERO, itHyperstone, RESERVED, "A
|
|||||||
NATIVE(0)
|
NATIVE(0)
|
||||||
REQ(ITEMS(itCursed, 5))
|
REQ(ITEMS(itCursed, 5))
|
||||||
|
|
||||||
LAND( 0xFF0060, "Crossroads VII", laThematic, ZERO, itHyperstone, RESERVED, thematic_crossroads)
|
|
||||||
NATIVE(0) REQ(GOLD(R400))
|
|
||||||
|
|
||||||
LAND( 0x308030, "Crossroads VII (Nature)", laThematicNature, ZERO, itHyperstone, RESERVED, thematic_crossroads)
|
|
||||||
NATIVE(0) REQ(GOLD(R400))
|
|
||||||
|
|
||||||
LAND( 0x60C0C0, "Crossroads VII (Urban)", laThematicUrban, ZERO, itHyperstone, RESERVED, thematic_crossroads)
|
|
||||||
NATIVE(0) REQ(GOLD(R400))
|
|
||||||
|
|
||||||
LAND( 0x606060, "Crossroads VII (Death)", laThematicDeath, ZERO, itHyperstone, RESERVED, thematic_crossroads)
|
|
||||||
NATIVE(0) REQ(GOLD(R400))
|
|
||||||
|
|
||||||
LAND( 0xC060C0, "Crossroads VII (Abstract)", laThematicAbstract, ZERO, itHyperstone, RESERVED, thematic_crossroads)
|
|
||||||
NATIVE(0) REQ(GOLD(R400))
|
|
||||||
|
|
||||||
LAND( 0x6060C0, "Crossroads VII (Water)", laThematicWater, ZERO, itHyperstone, RESERVED, thematic_crossroads)
|
|
||||||
NATIVE(0) REQ(GOLD(R400))
|
|
||||||
|
|
||||||
LAND( 0x1030F0, "Crossroads VII (Fire/Ice)", laThematicHeat, LF_ICY, itHyperstone, RESERVED, thematic_crossroads)
|
|
||||||
NATIVE(0) REQ(GOLD(R400))
|
|
||||||
|
|
||||||
LAND( 0xFFFF00, "Crossroads VII (Earth/Air)", laThematicEarth, ZERO, itHyperstone, RESERVED, thematic_crossroads)
|
|
||||||
NATIVE(0) REQ(GOLD(R400))
|
|
||||||
|
|
||||||
LAND( 0xC0B090, "Master Crossroads", laMasterCrossroads, ZERO, itHyperstone, RESERVED, "A crossroads that connects only to other crossroads.")
|
LAND( 0xC0B090, "Master Crossroads", laMasterCrossroads, ZERO, itHyperstone, RESERVED, "A crossroads that connects only to other crossroads.")
|
||||||
NATIVE(0) REQ(GOLD(R500))
|
NATIVE(0) REQ(GOLD(R500))
|
||||||
|
|
||||||
|
7
help.cpp
7
help.cpp
@ -855,13 +855,6 @@ EX string generateHelpForLand(eLand l) {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if(isThematic(l)) {
|
|
||||||
s += XLAT("\n\nThe following lands connect to this part: ");
|
|
||||||
|
|
||||||
int qty = 0;
|
|
||||||
for(eLand l1: land_over) if(isLandIngame(l1) && which_thematic(l1) == l) { if(qty) s += ", "; qty++; s += XLATN(linf[l1].name); }
|
|
||||||
}
|
|
||||||
|
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -166,10 +166,8 @@
|
|||||||
[92] */music/hr3-laboratory.ogg
|
[92] */music/hr3-laboratory.ogg
|
||||||
# Crossroads VI
|
# Crossroads VI
|
||||||
[93] */music/hr3-crossroads.ogg
|
[93] */music/hr3-crossroads.ogg
|
||||||
# Crossroads VII
|
|
||||||
[94] */music/hr3-crossroads.ogg
|
|
||||||
# Master Crossroads
|
# Master Crossroads
|
||||||
[:2] */music/hr3-crossroads.ogg
|
[94] */music/hr3-crossroads.ogg
|
||||||
|
|
||||||
# None [00] (used when the window is out of focus)
|
# None [00] (used when the window is out of focus)
|
||||||
|
|
||||||
|
20
landgen.cpp
20
landgen.cpp
@ -2521,27 +2521,13 @@ EX void giantLandSwitch(cell *c, int d, cell *from) {
|
|||||||
case laCrossroads5:
|
case laCrossroads5:
|
||||||
case laCrossroads6:
|
case laCrossroads6:
|
||||||
case laMasterCrossroads:
|
case laMasterCrossroads:
|
||||||
|
|
||||||
case laThematic: case laThematicNature: case laThematicUrban: case laThematicDeath: case laThematicAbstract: case laThematicWater: case laThematicEarth: case laThematicHeat:
|
|
||||||
if(c->wall == waTower) c->land = laCamelot;
|
if(c->wall == waTower) c->land = laCamelot;
|
||||||
ONEMPTY {
|
ONEMPTY {
|
||||||
if(isThematic(c->land) && hrand(100) < 10) switch(c->land) {
|
|
||||||
case laThematicNature: c->wall = pick(waSmallTree, waBigTree); break;
|
|
||||||
case laThematicUrban: c->wall = pick(waRuinWall, waPalace); break;
|
|
||||||
case laThematicDeath: c->wall = pick(waAncientGrave, waFreshGrave); break;
|
|
||||||
case laThematicAbstract: c->wall = pick(waFloorA, waFloorB, waTrapdoor); break;
|
|
||||||
case laThematicWater: { c->wall = waShallow; forCellCM(c1, c) if(c1->land == c->land) c1->wall = waShallow; } break;
|
|
||||||
case laThematicEarth: c->wall = waStone; break;
|
|
||||||
case laThematicHeat: c->wall = pick(waBonfireOff, waIcewall); break;
|
|
||||||
default: ;
|
|
||||||
}
|
|
||||||
int them_abstract = c->land == laThematicAbstract ? 3 : isThematic(c->land) ? 0 : 1;
|
|
||||||
|
|
||||||
if(!BITRUNCATED && c->land == laCrossroads5 && hrand(100) < 60)
|
if(!BITRUNCATED && c->land == laCrossroads5 && hrand(100) < 60)
|
||||||
c->wall = waBarrier;
|
c->wall = waBarrier;
|
||||||
else if(!inv::on && items[itShard] >= 10 && hrand(8000) < 120*orbcrossfun(items[itShard]) && mirror::build(c)) ;
|
else if(!inv::on && items[itShard] >= 10 && hrand(8000) < 120*orbcrossfun(items[itShard]) && mirror::build(c)) ;
|
||||||
else if(hyperstonesUnlocked() && !racing::on && hrand(8000) < 100 * them_abstract && mirror::build(c)) ;
|
else if(hyperstonesUnlocked() && !racing::on && hrand(8000) < 100 && mirror::build(c)) ;
|
||||||
else if(tactic::on && isCrossroads(specialland) && hrand(8000) < 120 * them_abstract && mirror::build(c)) ;
|
else if(tactic::on && isCrossroads(specialland) && hrand(8000) < 120 && mirror::build(c)) ;
|
||||||
else if(c->land == laCrossroads4 && hrand(24000) < 10 && tactic::on)
|
else if(c->land == laCrossroads4 && hrand(24000) < 10 && tactic::on)
|
||||||
c->wall = waRose;
|
c->wall = waRose;
|
||||||
else {
|
else {
|
||||||
@ -2877,7 +2863,7 @@ EX void repairLandgen(cell *c) {
|
|||||||
if(c->land == laAlchemist && c->wall != waFloorA && c->wall != waFloorB)
|
if(c->land == laAlchemist && c->wall != waFloorA && c->wall != waFloorB)
|
||||||
c->wall = waFloorA;
|
c->wall = waFloorA;
|
||||||
|
|
||||||
if(c->wall == waIcewall && !among(c->land, laIce, laCocytus, laBlizzard, laEclectic, laThematicHeat))
|
if(c->wall == waIcewall && !among(c->land, laIce, laCocytus, laBlizzard, laEclectic))
|
||||||
c->wall = waNone;
|
c->wall = waNone;
|
||||||
|
|
||||||
if(c->wall == waRed3 && c->land != laRedRock && c->land != laSnakeNest && c->land != laBrownian && c->land != laEclectic)
|
if(c->wall == waRed3 && c->land != laRedRock && c->land != laSnakeNest && c->land != laBrownian && c->land != laEclectic)
|
||||||
|
140
landlock.cpp
140
landlock.cpp
@ -53,7 +53,7 @@ EX int landMultiplier(eLand l) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
EX bool isCrossroads(eLand l) {
|
EX bool isCrossroads(eLand l) {
|
||||||
return among(l, laCrossroads, laCrossroads2, laCrossroads3, laCrossroads4, laCrossroads5, laCrossroads6, laMasterCrossroads) || isThematic(l);
|
return among(l, laCrossroads, laCrossroads2, laCrossroads3, laCrossroads4, laCrossroads5, laCrossroads6, laMasterCrossroads);
|
||||||
}
|
}
|
||||||
|
|
||||||
EX bool isCrossroadsNM(eLand l) {
|
EX bool isCrossroadsNM(eLand l) {
|
||||||
@ -61,7 +61,7 @@ EX bool isCrossroadsNM(eLand l) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
EX bool bearsCamelot(eLand l) {
|
EX bool bearsCamelot(eLand l) {
|
||||||
return isCrossroads(l) && !among(l, laCrossroads2, laCrossroads5, laMasterCrossroads) && (l == laThematicUrban || !isThematic(l));
|
return isCrossroads(l) && !among(l, laCrossroads2, laCrossroads5, laMasterCrossroads);
|
||||||
}
|
}
|
||||||
|
|
||||||
EX bool inmirror(const cellwalker& cw) {
|
EX bool inmirror(const cellwalker& cw) {
|
||||||
@ -339,8 +339,6 @@ EX bool voronoi_sea_incompatible(eLand l1, eLand l2) {
|
|||||||
EX bool incompatible1(eLand l1, eLand l2) {
|
EX bool incompatible1(eLand l1, eLand l2) {
|
||||||
if(l1 == laMasterCrossroads && !isCrossroads(l2)) return true;
|
if(l1 == laMasterCrossroads && !isCrossroads(l2)) return true;
|
||||||
|
|
||||||
if(isThematic(l1) && which_thematic(l2) != l1) return true;
|
|
||||||
|
|
||||||
if(isCrossroadsNM(l1) && isCrossroadsNM(l2)) return true;
|
if(isCrossroadsNM(l1) && isCrossroadsNM(l2)) return true;
|
||||||
if(l1 == laJungle && l2 == laMotion) return true;
|
if(l1 == laJungle && l2 == laMotion) return true;
|
||||||
if(l1 == laMirrorOld && l2 == laMotion) return true;
|
if(l1 == laMirrorOld && l2 == laMotion) return true;
|
||||||
@ -463,14 +461,6 @@ EX bool all_unlocked = false;
|
|||||||
|
|
||||||
EX vector<eLand> cheatdest_list;
|
EX vector<eLand> cheatdest_list;
|
||||||
|
|
||||||
EX eLand getNewThematic(eLand l) {
|
|
||||||
for(int it=0; it<100; it++) {
|
|
||||||
eLand l1 = pick(laThematicNature, laThematicUrban, laThematicDeath, laThematicAbstract, laThematicHeat, laThematicWater, laThematicEarth);
|
|
||||||
if(l1 != l) return l1;
|
|
||||||
}
|
|
||||||
return l;
|
|
||||||
}
|
|
||||||
|
|
||||||
EX eLand getNewLand(eLand old) {
|
EX eLand getNewLand(eLand old) {
|
||||||
|
|
||||||
#if CAP_LEGACY
|
#if CAP_LEGACY
|
||||||
@ -583,8 +573,7 @@ EX eLand getNewLand(eLand old) {
|
|||||||
laDeadCaves, laRedRock, laVariant, laHell, laCocytus, laPower,
|
laDeadCaves, laRedRock, laVariant, laHell, laCocytus, laPower,
|
||||||
laBull, laTerracotta, laRose, laGraveyard, laHive, laDragon, laTrollheim,
|
laBull, laTerracotta, laRose, laGraveyard, laHive, laDragon, laTrollheim,
|
||||||
laWet, laFrog, laEclectic, laCursed, laDice,
|
laWet, laFrog, laEclectic, laCursed, laDice,
|
||||||
laCrossroads5, laCrossroads6, laMasterCrossroads,
|
laCrossroads5, laCrossroads6, laMasterCrossroads
|
||||||
laThematicNature, laThematicUrban, laThematicDeath, laThematicAbstract, laThematicHeat, laThematicWater, laThematicEarth
|
|
||||||
})
|
})
|
||||||
if(landUnlocked(l)) tab[cnt++] = l;
|
if(landUnlocked(l)) tab[cnt++] = l;
|
||||||
|
|
||||||
@ -755,132 +744,11 @@ EX vector<eLand> land_over = {
|
|||||||
laPrairie, laBull, laTerracotta, laRose,
|
laPrairie, laBull, laTerracotta, laRose,
|
||||||
laElementalWall, laTrollheim,
|
laElementalWall, laTrollheim,
|
||||||
laHell, laCrossroads3, laCocytus, laPower, laCrossroads4,
|
laHell, laCrossroads3, laCocytus, laPower, laCrossroads4,
|
||||||
laCrossroads5, laCrossroads6, laMasterCrossroads, laThematic,
|
laCrossroads5, laCrossroads6, laMasterCrossroads,
|
||||||
// EXTRA
|
// EXTRA
|
||||||
laWildWest, laHalloween, laDual, laSnakeNest, laMagnetic, laCA, laAsteroids
|
laWildWest, laHalloween, laDual, laSnakeNest, laMagnetic, laCA, laAsteroids
|
||||||
};
|
};
|
||||||
|
|
||||||
EX bool isThematic(eLand l) {
|
|
||||||
return among(l, laThematic, laThematicNature, laThematicUrban, laThematicDeath, laThematicAbstract, laThematicHeat, laThematicWater, laThematicEarth);
|
|
||||||
}
|
|
||||||
|
|
||||||
EX eLand which_thematic(eLand l) {
|
|
||||||
// note: even if some lands are not directly accessible from Thematic, they still affect orb generation in it
|
|
||||||
switch(l) {
|
|
||||||
case laJungle:
|
|
||||||
case laEndorian:
|
|
||||||
case laWineyard:
|
|
||||||
case laOvergrown:
|
|
||||||
case laFrog:
|
|
||||||
case laRose:
|
|
||||||
case laDryForest:
|
|
||||||
case laPrairie:
|
|
||||||
case laBull:
|
|
||||||
case laMountain: // not via crossroads
|
|
||||||
case laClearing: // not via crossroads
|
|
||||||
case laTortoise: // not via crossroads
|
|
||||||
return laThematicNature;
|
|
||||||
case laAlchemist:
|
|
||||||
case laMotion:
|
|
||||||
case laMirror:
|
|
||||||
case laMirrorOld:
|
|
||||||
case laMinefield:
|
|
||||||
case laSwitch:
|
|
||||||
case laReptile:
|
|
||||||
case laZebra:
|
|
||||||
case laDice:
|
|
||||||
case laWestWall:
|
|
||||||
case laHalloween: // not standard
|
|
||||||
case laDual: // not standard
|
|
||||||
return laThematicAbstract;
|
|
||||||
case laIvoryTower:
|
|
||||||
case laPalace:
|
|
||||||
case laDungeon:
|
|
||||||
case laRuins:
|
|
||||||
case laEclectic:
|
|
||||||
case laRlyeh:
|
|
||||||
case laVariant:
|
|
||||||
case laMasterCrossroads:
|
|
||||||
case laCamelot: // in
|
|
||||||
case laTemple: // not via crossroads
|
|
||||||
case laPrincessQuest: // not via crossroads
|
|
||||||
case laWildWest: // not standard
|
|
||||||
return laThematicUrban;
|
|
||||||
case laHunting:
|
|
||||||
case laGraveyard:
|
|
||||||
case laBurial:
|
|
||||||
case laCursed:
|
|
||||||
case laDeadCaves:
|
|
||||||
case laTerracotta:
|
|
||||||
case laHive:
|
|
||||||
case laHaunted: case laHauntedWall: case laHauntedBorder: // not via crossroads
|
|
||||||
return laThematicDeath;
|
|
||||||
case laIce:
|
|
||||||
case laVolcano:
|
|
||||||
case laDragon:
|
|
||||||
case laHell:
|
|
||||||
case laCocytus:
|
|
||||||
case laPower:
|
|
||||||
case laBlizzard:
|
|
||||||
case laEFire:
|
|
||||||
return laThematicHeat;
|
|
||||||
case laNone:
|
|
||||||
case laBarrier:
|
|
||||||
case laOceanWall:
|
|
||||||
case laCA:
|
|
||||||
case laCanvas:
|
|
||||||
case laElementalWall:
|
|
||||||
case laMercuryRiver:
|
|
||||||
case laMirrorWall:
|
|
||||||
case laMirrorWall2:
|
|
||||||
case laMirrored:
|
|
||||||
case laMirrored2:
|
|
||||||
case laMemory:
|
|
||||||
case landtypes:
|
|
||||||
return laNone;
|
|
||||||
case laCrossroads:
|
|
||||||
case laCrossroads2:
|
|
||||||
case laCrossroads3:
|
|
||||||
case laCrossroads4:
|
|
||||||
case laCrossroads5:
|
|
||||||
case laCrossroads6:
|
|
||||||
case laThematic:
|
|
||||||
case laThematicAbstract:
|
|
||||||
case laThematicNature:
|
|
||||||
case laThematicUrban:
|
|
||||||
case laThematicDeath:
|
|
||||||
case laThematicHeat:
|
|
||||||
case laThematicWater:
|
|
||||||
case laThematicEarth:
|
|
||||||
case laMagnetic:
|
|
||||||
case laAsteroids:
|
|
||||||
return laThematic;
|
|
||||||
case laOcean:
|
|
||||||
case laDocks:
|
|
||||||
case laWet:
|
|
||||||
case laWarpCoast: case laWarpSea:
|
|
||||||
case laLivefjord:
|
|
||||||
case laKraken: // not direct
|
|
||||||
case laCaribbean: // not direct
|
|
||||||
case laBrownian: // not direct
|
|
||||||
case laWhirlpool: // not direct
|
|
||||||
case laEWater:
|
|
||||||
return laThematicWater;
|
|
||||||
case laRedRock:
|
|
||||||
case laDesert:
|
|
||||||
case laCaves:
|
|
||||||
case laStorms:
|
|
||||||
case laWhirlwind:
|
|
||||||
case laEmerald:
|
|
||||||
case laEEarth:
|
|
||||||
case laEAir:
|
|
||||||
case laTrollheim:
|
|
||||||
case laSnakeNest: // not standard
|
|
||||||
return laThematicEarth;
|
|
||||||
}
|
|
||||||
return laThematic;
|
|
||||||
}
|
|
||||||
|
|
||||||
EX vector<eLand> landlist;
|
EX vector<eLand> landlist;
|
||||||
|
|
||||||
#if HDR
|
#if HDR
|
||||||
|
@ -600,12 +600,6 @@ EX void placeCrossroadOrbs(cell *c) {
|
|||||||
int gch = oi.gchance;
|
int gch = oi.gchance;
|
||||||
if(!inv::on) gch /= orbcrossfun(treas); else gch /= 2;
|
if(!inv::on) gch /= orbcrossfun(treas); else gch /= 2;
|
||||||
|
|
||||||
if(isThematic(c->land)) {
|
|
||||||
bool local = which_thematic(oi.l) == c->land;
|
|
||||||
if(!local) continue;
|
|
||||||
mul *= 7;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(hrand(gch) >= mul) continue;
|
if(hrand(gch) >= mul) continue;
|
||||||
if(hrand(50+items[itHyperstone]) >= 50) continue;
|
if(hrand(50+items[itHyperstone]) >= 50) continue;
|
||||||
|
|
||||||
|
@ -32,7 +32,6 @@ EX eLand getCurrentLandForMusic() {
|
|||||||
if(isHaunted(id)) id = laHaunted;
|
if(isHaunted(id)) id = laHaunted;
|
||||||
if(id == laWarpSea) id = laWarpCoast;
|
if(id == laWarpSea) id = laWarpCoast;
|
||||||
if(id == laMercuryRiver) id = laTerracotta;
|
if(id == laMercuryRiver) id = laTerracotta;
|
||||||
if(isThematic(id)) id = laThematic;
|
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -241,7 +241,6 @@ EX void initgame() {
|
|||||||
splitrocks = 0;
|
splitrocks = 0;
|
||||||
|
|
||||||
if(firstland == laElementalWall) cwt.at->land = randomElementalLand();
|
if(firstland == laElementalWall) cwt.at->land = randomElementalLand();
|
||||||
if(firstland == laThematic) cwt.at->land = getNewThematic(firstland);
|
|
||||||
|
|
||||||
resetview();
|
resetview();
|
||||||
createMov(cwt.at, 0);
|
createMov(cwt.at, 0);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user