Looking at spells1.c, there seems to be some incoherence regarding how object flags are "known" when the character is hit by various elements. For example:
- base elements (GF_FIRE/COLD/ELEC/ACID): immunity, resistance and susceptibility are always noticed in the xxx_dam() functions
- poison (GF_POIS) and other elements: resistance is only noticed if the character actually resists poison (same for other elements)
Some other incoherences of the same type seem to occur for other object flags: for example, sustain flag is always noticed when a character is subject to stat drain; flags are always noticed when triggering a trap from the floor (feather falling, resist poison, ...), but only when the character actually resists the effect when triggering a trap from a chest; drain life is always noticed when a character is attacked in melee by a monster that can drain life, but only when the character actually resists life drain when hit by chaos/nether attacks.
I think the calls to wieldeds_notice_flag() should be more consistent. Any thought?
- base elements (GF_FIRE/COLD/ELEC/ACID): immunity, resistance and susceptibility are always noticed in the xxx_dam() functions
- poison (GF_POIS) and other elements: resistance is only noticed if the character actually resists poison (same for other elements)
Some other incoherences of the same type seem to occur for other object flags: for example, sustain flag is always noticed when a character is subject to stat drain; flags are always noticed when triggering a trap from the floor (feather falling, resist poison, ...), but only when the character actually resists the effect when triggering a trap from a chest; drain life is always noticed when a character is attacked in melee by a monster that can drain life, but only when the character actually resists life drain when hit by chaos/nether attacks.
I think the calls to wieldeds_notice_flag() should be more consistent. Any thought?
Comment