diff --git a/complex.cpp b/complex.cpp index edddfb14..467aeb02 100644 --- a/complex.cpp +++ b/complex.cpp @@ -2513,6 +2513,7 @@ EX namespace tortoise { EX map emap; EX map babymap; EX int last; + EX int last21tort; #if HDR enum tflag { diff --git a/landgen.cpp b/landgen.cpp index ee0512b7..f5180614 100644 --- a/landgen.cpp +++ b/landgen.cpp @@ -1791,11 +1791,13 @@ EX void giantLandSwitch(cell *c, int d, cell *from) { } } ONEMPTY { - if(hrand_monster(ls::hv_structure() ? 8000 : 4000) < (peace::on ? 750 : 50 + items[itBabyTortoise]*2 + yendor::hardness() * 6) && !safety) { + bool mk21tor = (tortoise::seek() && !((tortoise::getb(c) ^ tortoise::seekbits) & tortoise::mask) && (turncount > tortoise::last21tort + 100)); + if((mk21tor || hrand_monster(ls::hv_structure() ? 8000 : 4000) < (peace::on ? 750 : 50 + items[itBabyTortoise]*2 + yendor::hardness() * 6)) && !safety) { c->monst = moTortoise; c->hitpoints = 3; auto val = tortoise::getb(c); tortoise::emap[c] = val; + if (mk21tor) tortoise::last21tort = turncount; } else if(ls::hv_structure() && hrand(10000) <= 250) { c->item = itCompass; diff --git a/system.cpp b/system.cpp index 2f683303..1e203f1e 100644 --- a/system.cpp +++ b/system.cpp @@ -375,6 +375,7 @@ EX void initgame() { sagephase = 0; hardcoreAt = 0; timerstopped = false; savecount = 0; savetime = 0; + tortoise::last21tort = 0; cheater = 0; if(autocheat) cheater = 1; if(!wfc::use_eclectic) cheater = 1;