Exploding spheres cause real explosions
Despite active explosion attacks being called explosions in-game, they only affected a single target, and were handled differently from actual explosions. Make them do an actual explosion instead. This should make spheres more interesting and inspire different tactics handling them. Because spheres deal more damage on average and can destroy items in their explosions, their difficulty has been increased slightly. Polyselfed hero exploding won't cause elemental damage to their own gear. Originally from xNetHack by copperwater <aosdict@gmail.com>.
This commit is contained in:
10
src/mhitm.c
10
src/mhitm.c
@@ -827,7 +827,15 @@ explmm(struct monst *magr, struct monst *mdef, struct attack *mattk)
|
||||
else
|
||||
noises(magr, mattk);
|
||||
|
||||
result = mdamagem(magr, mdef, mattk, (struct obj *) 0, 0);
|
||||
/* monster explosion types which actually create an explosion */
|
||||
if (mattk->adtyp == AD_FIRE || mattk->adtyp == AD_COLD
|
||||
|| mattk->adtyp == AD_ELEC) {
|
||||
mon_explodes(magr, mattk);
|
||||
/* unconditionally set AGR_DIED here; lifesaving is accounted below */
|
||||
result = MM_AGR_DIED | (DEADMONSTER(mdef) ? MM_DEF_DIED : 0);
|
||||
} else {
|
||||
result = mdamagem(magr, mdef, mattk, (struct obj *) 0, 0);
|
||||
}
|
||||
|
||||
/* Kill off aggressor if it didn't die. */
|
||||
if (!(result & MM_AGR_DIED)) {
|
||||
|
||||
Reference in New Issue
Block a user