I'm not sure I like the solution to #4 quite yet, but it does get it partially in there. I realize that you want to view Rage Volley and other melee discs as spells, but not wanting to send it down the same path as a melee/ranged attack doesn't work out unless you want to repeat tons of code and make it even more ugly than it already is.
If you go to goberserker.com and ask if base damage bonuses, aa bonuses, item bonuses and spell bonuses apply to Rage Volley, you will get a very load yes. The current way this is set up, you get none of those bonuses period. Discs are Spells that cause modified physical attacks, thus they should always go down the physical attack pipeline and pick up bonuses along the way.
Also, the way it is set up, the min dmg is always 1 for discs that cause attacks. This isn't right either as Volley never hits for 1 on live.
The way this should work (at least for Rage Volley instance) is in SE_SkillAttack, if it is throwing skill, spells[spell_id].base[i] should be added to the mobs throwing skill and spells[spell_id].base2[i] should be added to the mobs throwing skill accuracy. After that, the 4 attacks should take place and then the modifications to the mobs throwing skill and throwing accuracy should be undone.
I thought about pilling all the damage bonuses for all physical attacks into ApplyMeleeDamageBonus function, but that still leaves the issue of min dmg on discs being 1.
I'm going to work on a better solution for #4, but I can tell you now that it is going to go down that same pipeline as a normal melee/ranged attack b/c that is what it does on live.
|