mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-09-27 21:58:13 +00:00
ls:: Galapagos now works and is fun in H/V
This commit is contained in:
parent
2239d72bc8
commit
a74cdeeacc
23
landgen.cpp
23
landgen.cpp
@ -275,6 +275,11 @@ EX void place_random_gate_continuous(cell *c) {
|
|||||||
else toggleGates(c, waOpenPlate, 1);
|
else toggleGates(c, waOpenPlate, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EX void gen_baby_tortoise(cell *c) {
|
||||||
|
c->item = itBabyTortoise;
|
||||||
|
tortoise::babymap[c] = tortoise::getb(c) ^ tortoise::getRandomBits();
|
||||||
|
}
|
||||||
|
|
||||||
EX void giantLandSwitch(cell *c, int d, cell *from) {
|
EX void giantLandSwitch(cell *c, int d, cell *from) {
|
||||||
bool fargen = d == 9;
|
bool fargen = d == 9;
|
||||||
switch(c->land) {
|
switch(c->land) {
|
||||||
@ -1060,10 +1065,8 @@ EX void giantLandSwitch(cell *c, int d, cell *from) {
|
|||||||
else c2->mondir = NODIR;
|
else c2->mondir = NODIR;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(!c->monst && !ls::single() && !racing::on && !yendor::on && !randomPatternsMode && !peace::on && !euclid && hrand(4000) < 10 && !safety) {
|
if(!c->monst && !ls::single() && !racing::on && !yendor::on && !randomPatternsMode && !peace::on && !euclid && hrand(4000) < 10 && !safety)
|
||||||
c->item = itBabyTortoise;
|
gen_baby_tortoise(c);
|
||||||
tortoise::babymap[c] = tortoise::getb(c) ^ tortoise::getRandomBits();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -1786,12 +1789,18 @@ EX void giantLandSwitch(cell *c, int d, cell *from) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
ONEMPTY {
|
ONEMPTY {
|
||||||
if(hrand_monster(4000) < (peace::on ? 750 : 50 + items[itBabyTortoise]*2 + yendor::hardness() * 6) && !safety) {
|
if(hrand_monster(ls::hv_structure() ? 8000 : 4000) < (peace::on ? 750 : 50 + items[itBabyTortoise]*2 + yendor::hardness() * 6) && !safety) {
|
||||||
c->monst = moTortoise;
|
c->monst = moTortoise;
|
||||||
c->hitpoints = 3;
|
c->hitpoints = 3;
|
||||||
auto val = tortoise::getb(c);
|
auto val = tortoise::getb(c);
|
||||||
tortoise::emap[c] = val;
|
tortoise::emap[c] = val;
|
||||||
}
|
}
|
||||||
|
else if(ls::hv_structure() && hrand(10000) <= 250) {
|
||||||
|
c->item = itCompass;
|
||||||
|
}
|
||||||
|
else if(ls::hv_structure() && hrand_monster(10000) <= 15) {
|
||||||
|
c->monst = moPirate;
|
||||||
|
}
|
||||||
|
|
||||||
int chance = 50 + items[itBabyTortoise]*2;
|
int chance = 50 + items[itBabyTortoise]*2;
|
||||||
if(quickfind(laTortoise)) chance += 150;
|
if(quickfind(laTortoise)) chance += 150;
|
||||||
@ -2467,7 +2476,9 @@ EX void giantLandSwitch(cell *c, int d, cell *from) {
|
|||||||
int freq = 4000;
|
int freq = 4000;
|
||||||
if(ls::single() && specialland == laCrossroads5 && !racing::on)
|
if(ls::single() && specialland == laCrossroads5 && !racing::on)
|
||||||
freq = 250;
|
freq = 250;
|
||||||
if(ls::hv_structure() && hrand(10000) < 10) { c->monst = moPirate; }
|
if(ls::hv_structure() && hrand(10000) < 10 && !c->monst) { c->monst = moPirate; }
|
||||||
|
if(ls::horodisk_structure() && !c->item && hrand(10000) < 10 && !safety)
|
||||||
|
gen_baby_tortoise(c);
|
||||||
if(hrand_monster(freq) < items[itHyperstone] && !c->monst) {
|
if(hrand_monster(freq) < items[itHyperstone] && !c->monst) {
|
||||||
// only interesting monsters here!
|
// only interesting monsters here!
|
||||||
eMonster cm = crossroadsMonster();
|
eMonster cm = crossroadsMonster();
|
||||||
|
@ -591,6 +591,8 @@ EX eLand getNewLand(eLand old, eLand old2 IS(laBarrier)) {
|
|||||||
if(old == laOcean) tab[cnt++] = laCrossroads2;
|
if(old == laOcean) tab[cnt++] = laCrossroads2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(ls::horodisk_structure() && tortoise::seek()) LIKELY tab[cnt++] = laTortoise;
|
||||||
|
|
||||||
eLand n = old;
|
eLand n = old;
|
||||||
while(incompatible(n, old) || incompatible(n, old2) || !isLandIngame(n)) {
|
while(incompatible(n, old) || incompatible(n, old2) || !isLandIngame(n)) {
|
||||||
n = tab[hrand(cnt)];
|
n = tab[hrand(cnt)];
|
||||||
@ -861,7 +863,7 @@ EX land_validity_t& land_validity(eLand l) {
|
|||||||
if(l == laMirrorOld && !shmup::on) return not_implemented;
|
if(l == laMirrorOld && !shmup::on) return not_implemented;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(ls::hv_structure() && among(l, laPrairie, laIvoryTower, laDungeon, laEndorian, laBrownian, laTortoise, laElementalWall, laWarpCoast, laWarpSea, laHive, laPrincessQuest)) return not_in_hv;
|
if(ls::hv_structure() && among(l, laPrairie, laIvoryTower, laDungeon, laEndorian, laBrownian, laElementalWall, laWarpCoast, laWarpSea, laHive, laPrincessQuest)) return not_in_hv;
|
||||||
if(ls::voronoi_structure() && among(l, laCamelot, laWhirlpool, laClearing)) return not_in_hv;
|
if(ls::voronoi_structure() && among(l, laCamelot, laWhirlpool, laClearing)) return not_in_hv;
|
||||||
if(ls::horodisk_structure() && l != laCrossroads && isCrossroads(l)) return not_in_hv;
|
if(ls::horodisk_structure() && l != laCrossroads && isCrossroads(l)) return not_in_hv;
|
||||||
|
|
||||||
|
@ -1045,7 +1045,7 @@ bool pcmove::attack() {
|
|||||||
changes.ccell(c2);
|
changes.ccell(c2);
|
||||||
c2->stuntime = 2;
|
c2->stuntime = 2;
|
||||||
changes.at_commit([c2] {
|
changes.at_commit([c2] {
|
||||||
items[itBabyTortoise] += 4;
|
items[itBabyTortoise] += (ls::hv_structure() ? 9 : 4);
|
||||||
updateHi(itBabyTortoise, items[itBabyTortoise]);
|
updateHi(itBabyTortoise, items[itBabyTortoise]);
|
||||||
c2->item = itBabyTortoise;
|
c2->item = itBabyTortoise;
|
||||||
tortoise::babymap[c2] = tortoise::seekbits;
|
tortoise::babymap[c2] = tortoise::seekbits;
|
||||||
|
Loading…
Reference in New Issue
Block a user