pudding cloning (from beta-test)

This commit is contained in:
arromdee
2002-02-23 06:12:55 +00:00
parent 1b1532dbab
commit 6033bee646
3 changed files with 18 additions and 2 deletions

View File

@@ -274,9 +274,22 @@ mattackm(magr, mdef)
/* KMH -- don't accumulate to-hit bonuses */
if (otmp)
tmp -= hitval(otmp, mdef);
if (strike)
if (strike) {
res[i] = hitmm(magr, mdef, mattk);
else
if((mdef->data == &mons[PM_BLACK_PUDDING] || mdef->data == &mons[PM_BROWN_PUDDING])
&& otmp && objects[otmp->otyp].oc_material == IRON
&& mdef->mhp > 1 && !mdef->mcan)
{
if (clone_mon(mdef)) {
if (vis) {
char buf[BUFSZ];
Strcpy(buf, Monnam(mdef));
pline("%s divides as %s hits it!", buf, mon_nam(magr));
}
}
}
} else
missmm(magr, mdef, mattk);
break;

View File

@@ -883,6 +883,7 @@ hitmu(mtmp, mattk)
hitmsg(mtmp, mattk);
if (!dmg) break;
if (u.mh > 1 && u.mh > ((u.uac>0) ? dmg : dmg+u.uac) &&
objects[otmp->otyp].oc_material == IRON &&
(u.umonnum==PM_BLACK_PUDDING
|| u.umonnum==PM_BROWN_PUDDING)) {
/* This redundancy necessary because you have to