diff options
-rw-r--r-- | src/game/SpellMgr.cpp | 5 | ||||
-rw-r--r-- | src/game/Unit.cpp | 18 |
2 files changed, 20 insertions, 3 deletions
diff --git a/src/game/SpellMgr.cpp b/src/game/SpellMgr.cpp index b24888c10f2..8260bc7293a 100644 --- a/src/game/SpellMgr.cpp +++ b/src/game/SpellMgr.cpp @@ -3651,7 +3651,7 @@ void SpellMgr::LoadSpellCustomAttr() case 20335: case 20336: case 20337: - // Entries were not updated after spell effect change, we have to do that manually:/ + // Entries were not updated after spell effect change, we have to do that manually :/ spellInfo->AttributesEx3 |= SPELL_ATTR_EX3_CAN_PROC_TRIGGERED; break; case 16007: // Draco-Incarcinatrix 900 @@ -3718,7 +3718,8 @@ void SpellMgr::LoadSpellCustomAttr() case 28542: // Life Drain - Sapphiron spellInfo->MaxAffectedTargets = 3; break; - case 38310: //Multi-Shot + case 38310: // Multi-Shot + case 53385: // Divine Storm (Damage) spellInfo->MaxAffectedTargets = 4; break; case 42005: // Bloodboil diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 3961e4601bf..260e3127011 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -650,6 +650,22 @@ void Unit::DealDamageMods(Unit *pVictim, uint32 &damage, uint32* absorb) uint32 Unit::DealDamage(Unit *pVictim, uint32 damage, CleanDamage const* cleanDamage, DamageEffectType damagetype, SpellSchoolMask damageSchoolMask, SpellEntry const *spellProto, bool durabilityLoss) { + // if attacker is a player and spell is not empty/fail + if (GetTypeId() == TYPEID_PLAYER && spellProto) + { + // on divine storm dealed damage - heal + if (spellProto->SpellFamilyName == SPELLFAMILY_PALADIN && spellProto->SpellFamilyFlags[1] & 0x20000) + { + Unit *pRaidGrpMember = GetNextRandomRaidMemberOrPet(30.0f); + int32 divineDmg = damage / 4; + + if (!pRaidGrpMember) + pRaidGrpMember = this; + + CastCustomSpell(pRaidGrpMember, 54172, &divineDmg, 0, 0, true); + } + } + if(pVictim->GetTypeId() == TYPEID_UNIT && ((Creature*)pVictim)->IsAIEnabled) ((Creature*)pVictim)->AI()->DamageTaken(this, damage); @@ -6256,7 +6272,7 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger triggered_spell_id = 54203; break; } - switch(dummySpell->Id) + switch (dummySpell->Id) { // Heart of the Crusader case 20335: // rank 1 |