TempusMUD / Tempuscode

Codebase for TempusMUD
http://tempusmud.com/
Other
7 stars 6 forks source link

Properly show electrostatic fail msg in do_alter, not do_trigger #430

Closed mikeclemson closed 10 years ago

mikeclemson commented 10 years ago

Fixes issue #327.

dlowe-net commented 10 years ago

Is this symptomatic of a more general problem?

mikeclemson commented 10 years ago

I suppose it's possible, if other spells/triggers/songs/alters target self via find_spell_targets and have a skill_message for miss that is not defined and damage is 0 and ch is vict. Essentially skill_message() in combat_messages.c is not handling being passed damage 0 and ch=vict at all, which only happens from spell_parser.c. What I can't understand is why every other ability does this properly -- I suppose it's the presence of electrostatic field in lib/messages while having null miss values. But even if I put miss values there, the issue is not remedied -- because of damage=0 and ch=vict never being processed by skill_message.

Ah, another example of this would be mage fire shield. It correctly says 'You lost your concentration' but doesn't follow up with the intended miss message, which should be sending a NOEFFECT message. Psychic feedback might also suffer the same problem.

Is the right way to handle this by updating skill_message to return false if damage = 0 and ch=tch and it's not violent?