sliming ghosts
From a bug report. Green slime would slime noncorporeals. Added missing checks.
This commit is contained in:
@@ -1213,6 +1213,7 @@ mdamagem(magr, mdef, mattk)
|
||||
case AD_SLIM:
|
||||
if (cancelled) break; /* physical damage only */
|
||||
if (!rn2(4) && !flaming(mdef->data) &&
|
||||
!noncorporeal(mdef->data) &&
|
||||
mdef->data != &mons[PM_GREEN_SLIME]) {
|
||||
(void) newcham(mdef, &mons[PM_GREEN_SLIME], FALSE, vis);
|
||||
mdef->mstrategy &= ~STRAT_WAITFORU;
|
||||
|
||||
@@ -1512,6 +1512,7 @@ dopois:
|
||||
pline_The("slime burns away!");
|
||||
dmg = 0;
|
||||
} else if (Unchanging ||
|
||||
noncorporeal(youmonst.data) ||
|
||||
youmonst.data == &mons[PM_GREEN_SLIME]) {
|
||||
You("are unaffected.");
|
||||
dmg = 0;
|
||||
|
||||
@@ -1642,6 +1642,7 @@ register struct attack *mattk;
|
||||
case AD_SLIM:
|
||||
if (negated) break; /* physical damage only */
|
||||
if (!rn2(4) && !flaming(mdef->data) &&
|
||||
!noncorporeal(mdef->data) &&
|
||||
mdef->data != &mons[PM_GREEN_SLIME]) {
|
||||
You("turn %s into slime.", mon_nam(mdef));
|
||||
(void) newcham(mdef, &mons[PM_GREEN_SLIME], FALSE, FALSE);
|
||||
|
||||
Reference in New Issue
Block a user