diff --git a/doc/fixes35.0 b/doc/fixes35.0 index 815628b62..1c136f1f6 100644 --- a/doc/fixes35.0 +++ b/doc/fixes35.0 @@ -209,6 +209,7 @@ effect of negative AC on damage received was calculated differently than unicorn horn produced by revived monster will polymorph as if non-magic stone-to-flesh on any golem statue or golem figurine creates flesh golem stone-to-flesh which activates shop-owned figurine entails shop charges +make giants be less likely to be randomly generated in Sokoban Platform- and/or Interface-Specific Fixes diff --git a/src/makemon.c b/src/makemon.c index f8d416451..6499298eb 100644 --- a/src/makemon.c +++ b/src/makemon.c @@ -938,6 +938,7 @@ register int mmflags; */ int tryct = 0; /* maybe there are no good choices */ struct monst fakemon; + do { if(!(ptr = rndmonst())) { #ifdef DEBUG @@ -946,7 +947,11 @@ register int mmflags; return((struct monst *) 0); /* no more monsters! */ } fakemon.data = ptr; /* set up for goodpos */ - } while(!goodpos(x, y, &fakemon, gpflags) && tryct++ < 50); + } while (++tryct <= 50 && + /* in Sokoban, don't accept a giant on first try; + after that, boulder carriers are fair game */ + ((tryct == 1 && throws_rocks(ptr) && In_sokoban(&u.uz)) || + !goodpos(x, y, &fakemon, gpflags))); mndx = monsndx(ptr); } (void) propagate(mndx, countbirth, FALSE);