mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2025-02-02 12:19:18 +00:00
Zebra, Palace, Power, and Vineyard are now OK in gp
This commit is contained in:
parent
e6a5c41c9b
commit
f375ac498a
2
game.cpp
2
game.cpp
@ -3166,7 +3166,7 @@ void toggleGates(cell *ct, eWall type) {
|
|||||||
if(type == waClosePlate && nonbitrunc && !gp::on)
|
if(type == waClosePlate && nonbitrunc && !gp::on)
|
||||||
toggleGates(ct, type, 2);
|
toggleGates(ct, type, 2);
|
||||||
else
|
else
|
||||||
toggleGates(ct, type, 3);
|
toggleGates(ct, type, gp::on ? gp::dist_3() : 3);
|
||||||
if(numgates && type == waClosePlate)
|
if(numgates && type == waClosePlate)
|
||||||
playSound(ct, "closegate");
|
playSound(ct, "closegate");
|
||||||
if(numgates && type == waOpenPlate)
|
if(numgates && type == waOpenPlate)
|
||||||
|
12
landgen.cpp
12
landgen.cpp
@ -164,7 +164,7 @@ void giantLandSwitch(cell *c, int d, cell *from) {
|
|||||||
|
|
||||||
case laPalace: // -------------------------------------------------------------
|
case laPalace: // -------------------------------------------------------------
|
||||||
|
|
||||||
if(weirdhyperbolic || torus || S7 < 5) {
|
if(hyperbolic_not37 || torus || S7 < 5) {
|
||||||
if(d == 9) {
|
if(d == 9) {
|
||||||
int i = hrand(100);
|
int i = hrand(100);
|
||||||
if(i < 10)
|
if(i < 10)
|
||||||
@ -213,6 +213,14 @@ void giantLandSwitch(cell *c, int d, cell *from) {
|
|||||||
if(nonbitrunc) {
|
if(nonbitrunc) {
|
||||||
int i = fiftyval049(c);
|
int i = fiftyval049(c);
|
||||||
if(i >= 8 && i <= 14 && !polarb50(c)) pgate = true;
|
if(i >= 8 && i <= 14 && !polarb50(c)) pgate = true;
|
||||||
|
if(gp::on) {
|
||||||
|
bool good = false;
|
||||||
|
forCellEx(c2, c) {
|
||||||
|
int i2 = fiftyval049(c2);
|
||||||
|
if((i2 < 8) && polarb50(c2)) good = true;
|
||||||
|
}
|
||||||
|
pgate = pgate && good;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(pgate) {
|
if(pgate) {
|
||||||
@ -425,7 +433,7 @@ void giantLandSwitch(cell *c, int d, cell *from) {
|
|||||||
else
|
else
|
||||||
v = 6;
|
v = 6;
|
||||||
}
|
}
|
||||||
else if(torus || weirdhyperbolic || quotient) {
|
else if(torus || hyperbolic_not37 || quotient) {
|
||||||
v = hrand(100) < 25 ? 24 : 16;
|
v = hrand(100) < 25 ? 24 : 16;
|
||||||
}
|
}
|
||||||
else if(euclid) {
|
else if(euclid) {
|
||||||
|
@ -1215,9 +1215,6 @@ int isLandValid(eLand l) {
|
|||||||
if((l == laPower || l == laEmerald || l == laPalace) && !stdeuc && !bigsphere)
|
if((l == laPower || l == laEmerald || l == laPalace) && !stdeuc && !bigsphere)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
if((l == laPower || l == laEmerald || l == laPalace) && gp::on)
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
if(l == laDragon && !stdeuc)
|
if(l == laDragon && !stdeuc)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
@ -1253,9 +1250,6 @@ int isLandValid(eLand l) {
|
|||||||
if(l == laZebra && !(stdeuc || (a4 && nonbitrunc) || a46 || quotient == 1))
|
if(l == laZebra && !(stdeuc || (a4 && nonbitrunc) || a46 || quotient == 1))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if(l == laZebra && gp::on)
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
if(l == laCrossroads3 && euclid)
|
if(l == laCrossroads3 && euclid)
|
||||||
return 1; // because it is not accurate
|
return 1; // because it is not accurate
|
||||||
|
|
||||||
|
@ -128,6 +128,7 @@ int land50(cell *c) {
|
|||||||
int polara50(cell *c) {
|
int polara50(cell *c) {
|
||||||
if(c->type != 6) return polara50(fiftyval(c));
|
if(c->type != 6) return polara50(fiftyval(c));
|
||||||
else if(sphere || euclid || S7>7 || S6>6) return 0;
|
else if(sphere || euclid || S7>7 || S6>6) return 0;
|
||||||
|
else if(gp::on) return polara50(fiftyval(c->master->c7));
|
||||||
else {
|
else {
|
||||||
if(cdist50(createMov(c,0)) < 3) return polara50(createMov(c,0));
|
if(cdist50(createMov(c,0)) < 3) return polara50(createMov(c,0));
|
||||||
if(cdist50(createMov(c,2)) < 3) return polara50(createMov(c,2));
|
if(cdist50(createMov(c,2)) < 3) return polara50(createMov(c,2));
|
||||||
@ -140,6 +141,7 @@ int polarb50(cell *c) {
|
|||||||
if(euclid) return true;
|
if(euclid) return true;
|
||||||
if(c->type != 6) return polarb50(fiftyval(c));
|
if(c->type != 6) return polarb50(fiftyval(c));
|
||||||
else if(sphere || euclid || S7>7 || S6>6) return true;
|
else if(sphere || euclid || S7>7 || S6>6) return true;
|
||||||
|
else if(gp::on) return polarb50(fiftyval(c->master->c7));
|
||||||
else {
|
else {
|
||||||
if(cdist50(createMov(c,0)) < 3) return polarb50(createMov(c,0));
|
if(cdist50(createMov(c,0)) < 3) return polarb50(createMov(c,0));
|
||||||
if(cdist50(createMov(c,2)) < 3) return polarb50(createMov(c,2));
|
if(cdist50(createMov(c,2)) < 3) return polarb50(createMov(c,2));
|
||||||
@ -248,6 +250,7 @@ int zebra40(cell *c) {
|
|||||||
else return 4+(v-4)/2;
|
else return 4+(v-4)/2;
|
||||||
}
|
}
|
||||||
else if(ctof(c)) return (c->master->zebraval/10);
|
else if(ctof(c)) return (c->master->zebraval/10);
|
||||||
|
else if(gp::on) return zebra40(c->master->c7);
|
||||||
else if(a4) {
|
else if(a4) {
|
||||||
int ws = dir_bitrunc457(c);
|
int ws = dir_bitrunc457(c);
|
||||||
if(ws < 0) return -ws;
|
if(ws < 0) return -ws;
|
||||||
@ -298,6 +301,7 @@ int zebra40(cell *c) {
|
|||||||
int zebra3(cell *c) {
|
int zebra3(cell *c) {
|
||||||
if(c->type != 6) return (c->master->zebraval/10)/4;
|
if(c->type != 6) return (c->master->zebraval/10)/4;
|
||||||
else if(sphere || S7>7 || S6>6) return 0;
|
else if(sphere || S7>7 || S6>6) return 0;
|
||||||
|
else if(gp::on) return zebra40(c->master->c7);
|
||||||
else {
|
else {
|
||||||
int ii[3];
|
int ii[3];
|
||||||
ii[0] = (c->mov[0]->master->zebraval/10)/4;
|
ii[0] = (c->mov[0]->master->zebraval/10)/4;
|
||||||
|
Loading…
Reference in New Issue
Block a user