Reported a really long time ago (June 2001) by <Someone>:
- stand on the upstairs and engrave Elbereth with a /oFire
- create Demogorgon and e.g. a tame dragon
- cause conflict
- Dragon will kill Demogorgon and Demogorgon will never ever attack Dragon.
All monsters could still attack Demogorgon without response via fightm().
Modified fightm() to include a bit of code in m_move and dog_move, allowing
response to an attack. Testing this in action, Demogorgon still usually
did things detrimental to the player, mostly summoning nasty monsters.
the water on a no teleport level and instinctively teleport
when polymorphed into a quantum mechanic on a no teleport level and swallowed,
no feedback was given when you teleported the swallower away
+allow Conflict-resistant monsters to respond to conflict attacks rather than
+ sitting there and taking the attacks until they die
Platform- and/or Interface-Specific Fixes
*/
if (has_u_swallowed) return 0;
+ /* Allow attacked monsters a chance to hit back. Primarily
+ * to allow monsters that resist conflict to respond.
+ */
+ if ((result & MM_HIT) && !(result & MM_DEF_DIED) &&
+ rn2(4) && mon->movement >= NORMAL_SPEED) {
+ mon->movement -= NORMAL_SPEED;
+ notonhead = 0;
+ (void) mattackm(mon, mtmp); /* return attack */
+ }
+
return ((result & MM_HIT) ? 1 : 0);
}
}