diff options
Diffstat (limited to 'src/server/game')
| -rw-r--r-- | src/server/game/Entities/Unit/Unit.cpp | 37 | ||||
| -rw-r--r-- | src/server/game/Spells/SpellMgr.cpp | 1 |
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++; |
