fix #H9118 - stoning a sandestin
causes "dmonsfree: N removed doesn't match N+1 pending" warning. The sandestin monster definition flags it as MR_STONE, immune to being turned to stone. If the hero hit it with a cockatrice while it was shape-changed into something which isn't MR_STONE, it had its mon->mhp set to 0, so died, and its form (mon->data) was set back to sandestin. known_hitum() decided that it didn't turn to stone because of MR_STONE for that form so proceeded to kill it off due to lack of hit points, causing it to die twice. I started to change that so that it didn't kill off the critter a second time, bit it really shouldn't be able to kill it by stoning in the first place. So sandestin how shares some vampire code to revert to innate form and not turn to stone when "killed" by stoning. It only yields the normal visible polymorph message: "the <foo> turns into a <bar>" without any attempt to explain why. Once in sandestin form, smacking it with a cockatrice corpse doesn't do anything special (due to MR_STONE now being unambiguously in effect). It will soon shape-change to some other form and then become subject to being forced back to innate shape by stoning again.
This commit is contained in:
+6
-1
@@ -1,4 +1,4 @@
|
||||
$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.102 $ $NHDT-Date: 1565574993 2019/08/12 01:56:33 $
|
||||
$NHDT-Branch: NetHack-3.6 $:$NHDT-Revision: 1.103 $ $NHDT-Date: 1565833748 2019/08/15 01:49:08 $
|
||||
|
||||
This fixes36.3 file is here to capture information about updates in the 3.6.x
|
||||
lineage following the release of 3.6.2 in May 2019. Please note, however,
|
||||
@@ -120,6 +120,11 @@ fix typo in end_of_input() present since 3.6.0 that would prevent compilation
|
||||
for NOSAVEONHANGUP+INSURANCE configuration
|
||||
when a status condition becomes fatal, keep it listed as an active condition
|
||||
during disclosure and/or dumplog rather than having it already reset
|
||||
when a shape-shifted sandestin was turned to stone, it died and reverted to
|
||||
sandestin form with 0 HP; that confused known_hitum() because
|
||||
sandestins are immune to stoning; net result was monster dying twice,
|
||||
triggering "dmonsfree: N removed doesn't match N+1 pending" warning;
|
||||
instead of dying, make it revert to sandestin form with full health
|
||||
|
||||
|
||||
Fixes to Post-3.6.2 Problems that Were Exposed Via git Repository
|
||||
|
||||
Reference in New Issue
Block a user