sliming ghosts

From a bug report.  Green slime would slime noncorporeals.
Added missing checks.
This commit is contained in:
cohrs
2005-03-14 16:27:35 +00:00
parent f1bf488367
commit 59cc0d221b
4 changed files with 4 additions and 0 deletions
+1
View File
@@ -94,6 +94,7 @@ succubi will remove hero's gloves before taking worn ring; incubi will do
mbodypart should return forehoof, not foreclaw, for horselike monsters mbodypart should return forehoof, not foreclaw, for horselike monsters
further digging of an existing hole finishes in a single turn further digging of an existing hole finishes in a single turn
only prefix shopkeeper names with "Mr." or "Ms." when not a personal name only prefix shopkeeper names with "Mr." or "Ms." when not a personal name
green slime should not affect noncorporeal monsters
Platform- and/or Interface-Specific Fixes Platform- and/or Interface-Specific Fixes
+1
View File
@@ -1213,6 +1213,7 @@ mdamagem(magr, mdef, mattk)
case AD_SLIM: case AD_SLIM:
if (cancelled) break; /* physical damage only */ if (cancelled) break; /* physical damage only */
if (!rn2(4) && !flaming(mdef->data) && if (!rn2(4) && !flaming(mdef->data) &&
!noncorporeal(mdef->data) &&
mdef->data != &mons[PM_GREEN_SLIME]) { mdef->data != &mons[PM_GREEN_SLIME]) {
(void) newcham(mdef, &mons[PM_GREEN_SLIME], FALSE, vis); (void) newcham(mdef, &mons[PM_GREEN_SLIME], FALSE, vis);
mdef->mstrategy &= ~STRAT_WAITFORU; mdef->mstrategy &= ~STRAT_WAITFORU;
+1
View File
@@ -1512,6 +1512,7 @@ dopois:
pline_The("slime burns away!"); pline_The("slime burns away!");
dmg = 0; dmg = 0;
} else if (Unchanging || } else if (Unchanging ||
noncorporeal(youmonst.data) ||
youmonst.data == &mons[PM_GREEN_SLIME]) { youmonst.data == &mons[PM_GREEN_SLIME]) {
You("are unaffected."); You("are unaffected.");
dmg = 0; dmg = 0;
+1
View File
@@ -1642,6 +1642,7 @@ register struct attack *mattk;
case AD_SLIM: case AD_SLIM:
if (negated) break; /* physical damage only */ if (negated) break; /* physical damage only */
if (!rn2(4) && !flaming(mdef->data) && if (!rn2(4) && !flaming(mdef->data) &&
!noncorporeal(mdef->data) &&
mdef->data != &mons[PM_GREEN_SLIME]) { mdef->data != &mons[PM_GREEN_SLIME]) {
You("turn %s into slime.", mon_nam(mdef)); You("turn %s into slime.", mon_nam(mdef));
(void) newcham(mdef, &mons[PM_GREEN_SLIME], FALSE, FALSE); (void) newcham(mdef, &mons[PM_GREEN_SLIME], FALSE, FALSE);