github issue #1312 - prot from shape changers

Issue reported by youkan700:  shape change anomalies.  Shapechangers
could change shape despite active protection-from-shape-changers if
hero wore two rings of protection from shape changers and took one
off.  Shapechangers who migrated to a not-yet-visited level that
eventually got visited with protection from shape changers in effect
would be stuck in their current shape, even if the PfSC attribute
got toggled off and back on.

The issue included suggested fixes and those are what I've used.  I
noticed a third case that only applies to wizard mode:  if player
used #wizintrinsic to set a timed value for PfSC, monsters wouldn't
resume changing shape after it timed out, unless/until it got toggled
on and back off via a PfSC ring or hero left the level and returned.

Fixes #1312
This commit is contained in:
PatR
2024-11-28 11:33:26 -08:00
parent 755b70de69
commit cbc93a0555
4 changed files with 18 additions and 5 deletions

View File

@@ -930,6 +930,12 @@ nh_timeout(void)
case GLIB:
make_glib(0); /* might update persistent inventory */
break;
case PROT_FROM_SHAPE_CHANGERS:
/* timed Protection_from_shape_changers is via
#wizintrinsic only */
if (!Protection_from_shape_changers)
restartcham();
break;
}
}