* Allow spells with multiple procEx flags to trigger also with 0 dmg, if current
procExtra is no normal hit (e.g. block and normal hit as flags -> all dmg blocked).
* Also allow proc at hit as result partly block. This fix case from unknown author
prepered by KAPATEJIb.
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
* Implement way ignore some redundent data for triggered spells base at cast cost exist.
Reason: some triggered spells inherited data from main spells
just for porper client show spell attributes, we not need this data.
* Use check for ignore inherited cast time.
All non generic spells expected to be cancellable and part of buff abilities.
(based on commit 7f5310b from insider42/mangos).
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
* Allow stacking caster effect with target effect at same player for 53736. Provided by KAPATEJIb.
* Allow proc 53736/31801 at melee hits or melee like spell hits
Signed-off-by: VladimirMangos <vladimir@getmangos.com>
* Many spell effects that have A target mode SELF2 expected applied to enemy
target selected by targetmode B so we need skip SELF2 target mode.
* remove SEFL2 from explicit positive target modes.
* Add constructores for spellmode creating instead explcit fields init
* Use uint32 for family mask 2 instead unneded uint64
Also drop one from manual applies for uno-existed now spell.
* Enable server side recheck clear negative to friend or positive to enemy casts that already checks at client side
* Use more fast way check in similar cases for non-players, and fall back to old way in unclear (for while at least)
Please report if some spell stop propertly casted at friends/enemies.
* Also, some minor things:
- Remove duplicate sWorldLog define.
- Add sRealmList macro for RealmList::Instance().
- Use sLog macro in scripting log functions.
* Removed my too script check on data load.
* Allow looking up fo DB target also if spell has required focus set.
* Makes DB targets optional not required.
Signed-off-by: ApoC <apoc@nymfe.net>
* Always use machanic masks in form (1 << (mech-1)), fix all cases.
* Imppement SPELL_AURA_MECHANIC_IMMUNITY_MASK (mostly boss/elite spells).
Note: db stored mechannic masks already stored in proper format so not affected.
* calculation depends on the damageClass now
->SPELL_DAMAGE_CLASS_RANGED & SPELL_DAMAGE_CLASS_MELEE use MeleeDamageBonus()
->SPELL_DAMAGE_CLASS_MAGIC & SPELL_DAMAGE_CLASS_RANGED use SpellDamageBonus()
* changes/improvements in MeleeDamageBonus:
-> improved criterions to apply bonuses
-> implemented scaling of FLAT damage Bonus for non weapon damage based spells
-> support of DOT's
-> added pet's bonus damage for non weapon based spells
* general cleanup in CalculateSpellDamage() and MeleeDamageBonus()
* implemented global helper functions GetWeaponAttackType() and GetAuraTicks() in SpellMgr
Signed-off-by: ApoC <apoc@nymfe.net>