aboutsummaryrefslogtreecommitdiff
path: root/src/server/game
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game')
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp37
-rw-r--r--src/server/game/Spells/SpellMgr.cpp1
2 files changed, 38 insertions, 0 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 79e31d3e76e..834fdd84bd3 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -5676,6 +5676,31 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger
}
break;
}
+ // Item - Shadowmourne Legendary
+ case 71903:
+ {
+ if (!pVictim || !pVictim->isAlive() || HasAura(73422)) // cant collect shards while under effect of Chaos Bane buff
+ return false;
+
+ CastSpell(this, 71905, true, NULL, triggeredByAura);
+
+ // this can't be handled in AuraScript because we need to know pVictim
+ Aura const* dummy = GetAura(71905);
+ if (!dummy || dummy->GetStackAmount() < 10)
+ return false;
+
+ RemoveAurasDueToSpell(71905);
+ triggered_spell_id = 71904;
+ target = pVictim;
+ break;
+ }
+ // Shadow's Fate (Shadowmourne questline)
+ case 71169:
+ {
+ triggered_spell_id = 71203;
+ target = triggeredByAura->GetCaster();
+ break;
+ }
}
break;
}
@@ -8754,6 +8779,18 @@ bool Unit::HandleProcTriggerSpell(Unit *pVictim, uint32 damage, AuraEffect* trig
case 72202:
target = FindNearestCreature(37813, 75.0f); // NPC_DEATHBRINGER_SAURFANG = 37813
break;
+ // Shadow's Fate (Shadowmourne questline)
+ case 71169:
+ if (GetTypeId() != TYPEID_PLAYER)
+ return false;
+ if (ToPlayer()->GetQuestStatus(24547) != QUEST_STATUS_INCOMPLETE) // A Feast of Souls
+ return false;
+ if (pVictim->GetTypeId() != TYPEID_UNIT)
+ return false;
+ // critters are not allowed
+ if (pVictim->GetCreatureType() == CREATURE_TYPE_CRITTER)
+ return false;
+ break;
}
if (cooldown && GetTypeId() == TYPEID_PLAYER && ToPlayer()->HasSpellCooldown(trigger_spell_id))
diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp
index 6c415278ee8..926f9ff952b 100644
--- a/src/server/game/Spells/SpellMgr.cpp
+++ b/src/server/game/Spells/SpellMgr.cpp
@@ -3606,6 +3606,7 @@ void SpellMgr::LoadSpellCustomAttr()
case 45150: // Meteor Slash
case 64422: case 64688: // Sonic Screech
case 72373: // Shared Suffering
+ case 71904: // Chaos Bane
// ONLY SPELLS WITH SPELLFAMILY_GENERIC and EFFECT_SCHOOL_DAMAGE
mSpellCustomAttr[i] |= SPELL_ATTR_CU_SHARE_DAMAGE;
count++;