sliming ghosts
From a bug report. Green slime would slime noncorporeals. Added missing checks.
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user