paths in the vicinity of iron bars
if blind and no gloves, using 'm<dir>' to move and then 'e' could be used to
locate cockatrice corpse without fatal touching (by declining to eat)
+it's cannabilism for a were<foo> to eat a <foo> corpse
Fixes to Post-3.6.0 Problems that Were Exposed Via git Repository
pressing x or X when cursor positioning targets possibly unexplored location
(potentially useful when using '_' [not mouse] to invoke travel)
swallowers can't re-engulf hero immediately after spitting him/her out
+werejackals can summon foxes and coyotes; werewolves can summon wargs
Platform- and/or Interface-Specific New Features
and also shouldn't eat current species when polymorphed
(even if having the form of something which doesn't care
about cannibalism--hero's innate traits aren't altered) */
- && (your_race(fptr) || (Upolyd && same_race(youmonst.data, fptr)))) {
+ && (your_race(fptr)
+ || (Upolyd && same_race(youmonst.data, fptr))
+ || (u.ulycn >= LOW_PM && were_beastie(pm) == u.ulycn))) {
if (allowmsg) {
if (Upolyd && your_race(fptr))
You("have a bad feeling deep inside.");
{
switch (pm) {
case PM_WEREWOLF:
- return (PM_HUMAN_WEREWOLF);
+ return PM_HUMAN_WEREWOLF;
case PM_HUMAN_WEREWOLF:
- return (PM_WEREWOLF);
+ return PM_WEREWOLF;
case PM_WEREJACKAL:
- return (PM_HUMAN_WEREJACKAL);
+ return PM_HUMAN_WEREJACKAL;
case PM_HUMAN_WEREJACKAL:
- return (PM_WEREJACKAL);
+ return PM_WEREJACKAL;
case PM_WERERAT:
- return (PM_HUMAN_WERERAT);
+ return PM_HUMAN_WERERAT;
case PM_HUMAN_WERERAT:
- return (PM_WERERAT);
+ return PM_WERERAT;
default:
return NON_PM;
}
}
/* were-creature (even you) summons a horde */
-int were_summon(ptr, yours, visible, genbuf)
+int
+were_summon(ptr, yours, visible, genbuf)
struct permonst *ptr;
boolean yours;
int *visible; /* number of visible helpers created */
switch (pm) {
case PM_WERERAT:
case PM_HUMAN_WERERAT:
- typ =
- rn2(3) ? PM_SEWER_RAT : rn2(3) ? PM_GIANT_RAT : PM_RABID_RAT;
+ typ = rn2(3) ? PM_SEWER_RAT
+ : rn2(3) ? PM_GIANT_RAT : PM_RABID_RAT;
if (genbuf)
Strcpy(genbuf, "rat");
break;
case PM_WEREJACKAL:
case PM_HUMAN_WEREJACKAL:
- typ = PM_JACKAL;
+ typ = rn2(7) ? PM_JACKAL : rn2(3) ? PM_COYOTE : PM_FOX;
if (genbuf)
Strcpy(genbuf, "jackal");
break;
case PM_WEREWOLF:
case PM_HUMAN_WEREWOLF:
- typ = rn2(5) ? PM_WOLF : PM_WINTER_WOLF;
+ typ = rn2(5) ? PM_WOLF : rn2(2) ? PM_WARG : PM_WINTER_WOLF;
if (genbuf)
Strcpy(genbuf, "wolf");
break;
char qbuf[QBUFSZ];
boolean controllable_poly = Polymorph_control && !(Stunned || Unaware);
- if (Unchanging || (u.umonnum == u.ulycn))
+ if (Unchanging || u.umonnum == u.ulycn)
return;
if (controllable_poly) {
/* `+4' => skip "were" prefix to get name of beast */