Double experience for fear-based attack methods
Posted: Wed Apr 07, 2010 1:15 am
While investigating some issues for DSB, I noticed that AdjustSkills is called both at the end of WarCryEtc, as well as in the main attack method handler function, _Attack. This means that fear-causing attack methods essentially give experience twice. Testing confirms there is indeed an issue as warcrying a screamer gives priest levels much faster in CSBwin than in DSB. I wonder if this was intentional, a bug in DM or what...
Other attack methods, like physical attack methods, also call AdjustSkills both in their own handler and in _Attack, but with a different purpose-- for physical attacks, the call inside of the attack filter gives experience based on the damage done to the monster (and gives nothing if you miss) where the main one in _Attack gives a fixed amount of experience for executing the attack method.
What makes the case of WarCryEtc curious is that there isn't this sort of thing going on, the values are essentially the same thing...
EDIT: Actually, they're not. Further investigation reveals one xp bonus is being pulled from the attack method table, the other one is hardcoded in the game engine, and the only fear-causing attack method that actually gives any xp just for executing the method is a war cry. I think this is intentional, and is a weird trick to make war cry give more experience if it fails than the other fear-causing methods. Maybe the designers had the warcrying screamers on level 2 trick in mind... the more I dig into it the more subtle, interesting things emerge that DM is actually doing under the surface.
Other attack methods, like physical attack methods, also call AdjustSkills both in their own handler and in _Attack, but with a different purpose-- for physical attacks, the call inside of the attack filter gives experience based on the damage done to the monster (and gives nothing if you miss) where the main one in _Attack gives a fixed amount of experience for executing the attack method.
What makes the case of WarCryEtc curious is that there isn't this sort of thing going on, the values are essentially the same thing...
EDIT: Actually, they're not. Further investigation reveals one xp bonus is being pulled from the attack method table, the other one is hardcoded in the game engine, and the only fear-causing attack method that actually gives any xp just for executing the method is a war cry. I think this is intentional, and is a weird trick to make war cry give more experience if it fails than the other fear-causing methods. Maybe the designers had the warcrying screamers on level 2 trick in mind... the more I dig into it the more subtle, interesting things emerge that DM is actually doing under the surface.