mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-02-06 17:08:23 +01:00
Core/Spells: Removed more deprecated spells code
This commit is contained in:
@@ -7220,6 +7220,7 @@ bool Unit::HandleDummyAuraProc(Unit* victim, uint32 damage, AuraEffect* triggere
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool Unit::HandleObsModEnergyAuraProc(Unit* victim, uint32 /*damage*/, AuraEffect* triggeredByAura, SpellInfo const* /*procSpell*/, uint32 /*procFlag*/, uint32 /*procEx*/, uint32 cooldown)
|
||||
{
|
||||
SpellInfo const* dummySpell = triggeredByAura->GetSpellInfo();
|
||||
@@ -7233,22 +7234,12 @@ bool Unit::HandleObsModEnergyAuraProc(Unit* victim, uint32 /*damage*/, AuraEffec
|
||||
Unit* target = victim;
|
||||
int32 basepoints0 = 0;
|
||||
|
||||
/*
|
||||
switch (dummySpell->SpellFamilyName)
|
||||
{
|
||||
case SPELLFAMILY_HUNTER:
|
||||
{
|
||||
// Aspect of the Viper
|
||||
if (dummySpell->SpellFamilyFlags[1] & 0x40000)
|
||||
{
|
||||
uint32 maxmana = GetMaxPower(POWER_MANA);
|
||||
basepoints0 = CalculatePctF(maxmana, GetAttackTime(RANGED_ATTACK) / 1000.0f);
|
||||
target = this;
|
||||
triggered_spell_id = 34075;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
*/
|
||||
// processed charge only counting case
|
||||
if (!triggered_spell_id)
|
||||
return true;
|
||||
@@ -7286,23 +7277,13 @@ bool Unit::HandleModDamagePctTakenAuraProc(Unit* victim, uint32 /*damage*/, Aura
|
||||
Unit* target = victim;
|
||||
int32 basepoints0 = 0;
|
||||
|
||||
/*
|
||||
switch (dummySpell->SpellFamilyName)
|
||||
{
|
||||
case SPELLFAMILY_PALADIN:
|
||||
{
|
||||
// Blessing of Sanctuary
|
||||
if (dummySpell->SpellFamilyFlags[0] & 0x10000000)
|
||||
{
|
||||
switch (getPowerType())
|
||||
{
|
||||
case POWER_MANA: triggered_spell_id = 57319; break;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
// processed charge only counting case
|
||||
if (!triggered_spell_id)
|
||||
return true;
|
||||
@@ -7389,30 +7370,8 @@ bool Unit::HandleAuraProc(Unit* victim, uint32 damage, Aura* triggeredByAura, Sp
|
||||
break;
|
||||
case SPELLFAMILY_PALADIN:
|
||||
{
|
||||
// Infusion of Light
|
||||
if (dummySpell->SpellIconID == 3021)
|
||||
{
|
||||
// Flash of Light HoT on Flash of Light when Sacred Shield active
|
||||
if (procSpell->SpellFamilyFlags[0] & 0x40000000 && procSpell->SpellIconID == 242)
|
||||
{
|
||||
*handled = true;
|
||||
if (victim && victim->HasAura(53601))
|
||||
{
|
||||
int32 bp0 = CalculatePctN(int32(damage / 12), dummySpell->Effects[EFFECT_2].CalcValue());
|
||||
// Item - Paladin T9 Holy 4P Bonus
|
||||
if (AuraEffect const* aurEff = GetAuraEffect(67191, 0))
|
||||
AddPctN(bp0, aurEff->GetAmount());
|
||||
CastCustomSpell(victim, 66922, &bp0, NULL, NULL, true);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
// but should not proc on non-critical Holy Shocks
|
||||
else if ((procSpell->SpellFamilyFlags[0] & 0x200000 || procSpell->SpellFamilyFlags[1] & 0x10000) && !(procEx & PROC_EX_CRITICAL_HIT))
|
||||
*handled = true;
|
||||
break;
|
||||
}
|
||||
// Judgements of the Just
|
||||
else if (dummySpell->SpellIconID == 3015)
|
||||
if (dummySpell->SpellIconID == 3015)
|
||||
{
|
||||
*handled = true;
|
||||
CastSpell(victim, 68055, true);
|
||||
@@ -7441,24 +7400,8 @@ bool Unit::HandleAuraProc(Unit* victim, uint32 damage, Aura* triggeredByAura, Sp
|
||||
}
|
||||
case SPELLFAMILY_MAGE:
|
||||
{
|
||||
// Combustion
|
||||
switch (dummySpell->Id)
|
||||
{
|
||||
case 11129:
|
||||
{
|
||||
*handled = true;
|
||||
Unit* caster = triggeredByAura->GetCaster();
|
||||
if (!caster || !damage)
|
||||
return false;
|
||||
|
||||
// last charge and crit
|
||||
if (triggeredByAura->GetCharges() <= 1 && (procEx & PROC_EX_CRITICAL_HIT))
|
||||
return true; // charge counting (will removed)
|
||||
|
||||
CastSpell(this, 28682, true);
|
||||
|
||||
return (procEx & PROC_EX_CRITICAL_HIT) ? true : false;
|
||||
}
|
||||
// Empowered Fire
|
||||
case 31656:
|
||||
case 31657:
|
||||
@@ -7686,6 +7629,13 @@ bool Unit::HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* trigg
|
||||
if (charge->ModStackAmount(-1, AURA_REMOVE_BY_ENEMY_SPELL))
|
||||
RemoveAurasDueToSpell(50240);
|
||||
}
|
||||
// Warrior - Vigilance, SPELLFAMILY_GENERIC
|
||||
if (auraSpellInfo->Id == 50720)
|
||||
{
|
||||
target = triggeredByAura->GetCaster();
|
||||
if (!target)
|
||||
return false;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case SPELLFAMILY_MAGE:
|
||||
@@ -7710,78 +7660,12 @@ bool Unit::HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* trigg
|
||||
RemoveAuraFromStack(auraSpellInfo->Id);
|
||||
return false;
|
||||
}
|
||||
if (auraSpellInfo->Id == 50720)
|
||||
{
|
||||
target = triggeredByAura->GetCaster();
|
||||
if (!target)
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case SPELLFAMILY_WARLOCK:
|
||||
{
|
||||
// Drain Soul
|
||||
if (auraSpellInfo->SpellFamilyFlags[0] & 0x4000)
|
||||
{
|
||||
// Improved Drain Soul
|
||||
Unit::AuraEffectList const& mAddFlatModifier = GetAuraEffectsByType(SPELL_AURA_DUMMY);
|
||||
for (Unit::AuraEffectList::const_iterator i = mAddFlatModifier.begin(); i != mAddFlatModifier.end(); ++i)
|
||||
{
|
||||
if ((*i)->GetMiscValue() == SPELLMOD_CHANCE_OF_SUCCESS && (*i)->GetSpellInfo()->SpellIconID == 113)
|
||||
{
|
||||
int32 value2 = CalculateSpellDamage(this, (*i)->GetSpellInfo(), 2);
|
||||
basepoints0 = int32(CalculatePctN(GetMaxPower(POWER_MANA), value2));
|
||||
// Drain Soul
|
||||
CastCustomSpell(this, 18371, &basepoints0, NULL, NULL, true, castItem, triggeredByAura);
|
||||
break;
|
||||
}
|
||||
}
|
||||
// Not remove charge (aura removed on death in any cases)
|
||||
// Need for correct work Drain Soul SPELL_AURA_CHANNEL_DEATH_ITEM aura
|
||||
return false;
|
||||
}
|
||||
// Nether Protection
|
||||
else if (auraSpellInfo->SpellIconID == 1985)
|
||||
{
|
||||
if (!procSpell)
|
||||
return false;
|
||||
switch (GetFirstSchoolInMask(procSpell->GetSchoolMask()))
|
||||
{
|
||||
case SPELL_SCHOOL_NORMAL:
|
||||
return false; // ignore
|
||||
case SPELL_SCHOOL_HOLY: trigger_spell_id = 54370; break;
|
||||
case SPELL_SCHOOL_FIRE: trigger_spell_id = 54371; break;
|
||||
case SPELL_SCHOOL_NATURE: trigger_spell_id = 54375; break;
|
||||
case SPELL_SCHOOL_FROST: trigger_spell_id = 54372; break;
|
||||
case SPELL_SCHOOL_SHADOW: trigger_spell_id = 54374; break;
|
||||
case SPELL_SCHOOL_ARCANE: trigger_spell_id = 54373; break;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case SPELLFAMILY_PRIEST:
|
||||
{
|
||||
// Greater Heal Refund
|
||||
if (auraSpellInfo->Id == 37594)
|
||||
trigger_spell_id = 37595;
|
||||
// Blessed Recovery
|
||||
else if (auraSpellInfo->SpellIconID == 1875)
|
||||
{
|
||||
switch (auraSpellInfo->Id)
|
||||
{
|
||||
case 27811: trigger_spell_id = 27813; break;
|
||||
case 27815: trigger_spell_id = 27817; break;
|
||||
case 27816: trigger_spell_id = 27818; break;
|
||||
default:
|
||||
sLog->outError(LOG_FILTER_UNITS, "Unit::HandleProcTriggerSpell: Spell %u not handled in BR", auraSpellInfo->Id);
|
||||
return false;
|
||||
}
|
||||
basepoints0 = CalculatePctN(int32(damage), triggerAmount) / 3;
|
||||
target = this;
|
||||
// Add remaining ticks to healing done
|
||||
basepoints0 += GetRemainingPeriodicAmount(GetGUID(), trigger_spell_id, SPELL_AURA_PERIODIC_HEAL);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case SPELLFAMILY_DRUID:
|
||||
@@ -7927,42 +7811,6 @@ bool Unit::HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* trigg
|
||||
break;
|
||||
}
|
||||
default:
|
||||
// Illumination
|
||||
if (auraSpellInfo->SpellIconID == 241)
|
||||
{
|
||||
if (!procSpell)
|
||||
return false;
|
||||
// procspell is triggered spell but we need mana cost of original casted spell
|
||||
uint32 originalSpellId = procSpell->Id;
|
||||
// Holy Shock heal
|
||||
if (procSpell->SpellFamilyFlags[1] & 0x00010000)
|
||||
{
|
||||
switch (procSpell->Id)
|
||||
{
|
||||
case 25914: originalSpellId = 20473; break;
|
||||
case 25913: originalSpellId = 20929; break;
|
||||
case 25903: originalSpellId = 20930; break;
|
||||
case 27175: originalSpellId = 27174; break;
|
||||
case 33074: originalSpellId = 33072; break;
|
||||
case 48820: originalSpellId = 48824; break;
|
||||
case 48821: originalSpellId = 48825; break;
|
||||
default:
|
||||
sLog->outError(LOG_FILTER_UNITS, "Unit::HandleProcTriggerSpell: Spell %u not handled in HShock", procSpell->Id);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
SpellInfo const* originalSpell = sSpellMgr->GetSpellInfo(originalSpellId);
|
||||
if (!originalSpell)
|
||||
{
|
||||
sLog->outError(LOG_FILTER_UNITS, "Unit::HandleProcTriggerSpell: Spell %u unknown but selected as original in Illu", originalSpellId);
|
||||
return false;
|
||||
}
|
||||
// percent stored in effect 1 (class scripts) base points
|
||||
int32 cost = int32(originalSpell->ManaCost + CalculatePctU(GetCreateMana(), originalSpell->ManaCostPercentage));
|
||||
basepoints0 = CalculatePctN(cost, auraSpellInfo->Effects[1].CalcValue());
|
||||
trigger_spell_id = 20272;
|
||||
target = this;
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
@@ -7997,75 +7845,24 @@ bool Unit::HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* trigg
|
||||
case 30881: // Nature's Guardian Rank 1
|
||||
case 30883: // Nature's Guardian Rank 2
|
||||
case 30884: // Nature's Guardian Rank 3
|
||||
case 30885: // Nature's Guardian Rank 4
|
||||
case 30886: // Nature's Guardian Rank 5
|
||||
{
|
||||
if (HealthBelowPct(30))
|
||||
if (!HealthBelowPctDamaged(30, damage))
|
||||
{
|
||||
basepoints0 = int32(auraSpellInfo->Effects[EFFECT_0].CalcValue() * GetMaxHealth() / 100.0f);
|
||||
basepoints0 = int32(CountPctFromMaxHealth(triggerAmount));
|
||||
target = this;
|
||||
trigger_spell_id = 31616;
|
||||
// TODO: Threat part
|
||||
if (victim && victim->isAlive())
|
||||
victim->getThreatManager().modifyThreatPercent(this, -10);
|
||||
}
|
||||
else
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
// Lightning Shield (overwrite non existing triggered spell call in spell.dbc
|
||||
if (auraSpellInfo->SpellFamilyFlags[0] & 0x400)
|
||||
{
|
||||
trigger_spell_id = sSpellMgr->GetSpellWithRank(26364, auraSpellInfo->GetRank());
|
||||
}
|
||||
// Nature's Guardian
|
||||
else if (auraSpellInfo->SpellIconID == 2013)
|
||||
{
|
||||
// Check health condition - should drop to less 30% (damage deal after this!)
|
||||
if (!HealthBelowPctDamaged(30, damage))
|
||||
return false;
|
||||
|
||||
if (victim && victim->isAlive())
|
||||
victim->getThreatManager().modifyThreatPercent(this, -10);
|
||||
|
||||
basepoints0 = int32(CountPctFromMaxHealth(triggerAmount));
|
||||
trigger_spell_id = 31616;
|
||||
target = this;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case SPELLFAMILY_DEATHKNIGHT:
|
||||
{
|
||||
// Acclimation
|
||||
if (auraSpellInfo->SpellIconID == 1930)
|
||||
{
|
||||
if (!procSpell)
|
||||
return false;
|
||||
switch (GetFirstSchoolInMask(procSpell->GetSchoolMask()))
|
||||
{
|
||||
case SPELL_SCHOOL_NORMAL:
|
||||
return false; // ignore
|
||||
case SPELL_SCHOOL_HOLY: trigger_spell_id = 50490; break;
|
||||
case SPELL_SCHOOL_FIRE: trigger_spell_id = 50362; break;
|
||||
case SPELL_SCHOOL_NATURE: trigger_spell_id = 50488; break;
|
||||
case SPELL_SCHOOL_FROST: trigger_spell_id = 50485; break;
|
||||
case SPELL_SCHOOL_SHADOW: trigger_spell_id = 50489; break;
|
||||
case SPELL_SCHOOL_ARCANE: trigger_spell_id = 50486; break;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// Blood Presence (Improved)
|
||||
else if (auraSpellInfo->Id == 63611)
|
||||
{
|
||||
if (GetTypeId() != TYPEID_PLAYER)
|
||||
return false;
|
||||
|
||||
trigger_spell_id = 50475;
|
||||
basepoints0 = CalculatePctN(int32(damage), triggerAmount);
|
||||
}
|
||||
// Item - Death Knight T10 Melee 4P Bonus
|
||||
else if (auraSpellInfo->Id == 70656)
|
||||
{
|
||||
@@ -8166,7 +7963,7 @@ bool Unit::HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* trigg
|
||||
// Deflection
|
||||
case 52420:
|
||||
{
|
||||
if (!HealthBelowPct(35))
|
||||
if (!HealthBelowPctDamaged(35, damage))
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
@@ -8179,16 +7976,6 @@ bool Unit::HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* trigg
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
// Deadly Swiftness (Rank 1)
|
||||
case 31255:
|
||||
{
|
||||
// whenever you deal damage to a target who is below 20% health.
|
||||
if (!victim || !victim->isAlive() || victim->HealthAbovePct(20))
|
||||
return false;
|
||||
|
||||
target = this;
|
||||
trigger_spell_id = 22588;
|
||||
}
|
||||
// Greater Heal Refund (Avatar Raiment set)
|
||||
case 37594:
|
||||
{
|
||||
@@ -8223,24 +8010,14 @@ bool Unit::HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* trigg
|
||||
// Decimation
|
||||
case 63156:
|
||||
case 63158:
|
||||
// Can proc only if target has hp below 35%
|
||||
if (!victim || !victim->HasAuraState(AURA_STATE_HEALTHLESS_35_PERCENT, procSpell, this))
|
||||
// Can proc only if target has hp below 25%
|
||||
if (!victim || !victim->HealthBelowPct(auraSpellInfo->Effects[EFFECT_1].CalcValue()))
|
||||
return false;
|
||||
break;
|
||||
// Deathbringer Saurfang - Blood Beast's Blood Link
|
||||
case 72176:
|
||||
basepoints0 = 3;
|
||||
break;
|
||||
case 15337: // Improved Spirit Tap (Rank 1)
|
||||
case 15338: // Improved Spirit Tap (Rank 2)
|
||||
{
|
||||
if (procSpell->SpellFamilyFlags[0] & 0x800000)
|
||||
if ((procSpell->Id != 58381) || !roll_chance_i(50))
|
||||
return false;
|
||||
|
||||
target = victim;
|
||||
break;
|
||||
}
|
||||
// Professor Putricide - Ooze Spell Tank Protection
|
||||
case 71770:
|
||||
if (victim)
|
||||
@@ -8261,52 +8038,11 @@ bool Unit::HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* trigg
|
||||
break;
|
||||
}
|
||||
|
||||
// Blade Barrier
|
||||
if (auraSpellInfo->SpellFamilyName == SPELLFAMILY_DEATHKNIGHT && auraSpellInfo->SpellIconID == 85 && procSpell)
|
||||
{
|
||||
Player* player = ToPlayer();
|
||||
if (!player || player->getClass() != CLASS_DEATH_KNIGHT)
|
||||
return false;
|
||||
|
||||
if (!player->IsBaseRuneSlotsOnCooldown(RUNE_BLOOD))
|
||||
return false;
|
||||
}
|
||||
|
||||
// Rime
|
||||
else if (auraSpellInfo->SpellFamilyName == SPELLFAMILY_DEATHKNIGHT && auraSpellInfo->SpellIconID == 56)
|
||||
{
|
||||
if (GetTypeId() != TYPEID_PLAYER)
|
||||
return false;
|
||||
|
||||
// Howling Blast
|
||||
ToPlayer()->RemoveSpellCategoryCooldown(1248, true);
|
||||
}
|
||||
|
||||
// Custom basepoints/target for exist spell
|
||||
// dummy basepoints or other customs
|
||||
switch (trigger_spell_id)
|
||||
{
|
||||
// Auras which should proc on area aura source (caster in this case):
|
||||
// Turn the Tables
|
||||
case 52914:
|
||||
case 52915:
|
||||
case 52910:
|
||||
// Honor Among Thieves
|
||||
case 52916:
|
||||
{
|
||||
target = triggeredByAura->GetBase()->GetCaster();
|
||||
if (!target)
|
||||
return false;
|
||||
|
||||
if (cooldown && target->GetTypeId() == TYPEID_PLAYER && target->ToPlayer()->HasSpellCooldown(trigger_spell_id))
|
||||
return false;
|
||||
|
||||
target->CastSpell(target, trigger_spell_id, true, castItem, triggeredByAura);
|
||||
|
||||
if (cooldown && GetTypeId() == TYPEID_PLAYER)
|
||||
ToPlayer()->AddSpellCooldown(trigger_spell_id, 0, time(NULL) + cooldown);
|
||||
return true;
|
||||
}
|
||||
// Cast positive spell on enemy target
|
||||
case 7099: // Curse of Mending
|
||||
case 39703: // Curse of Mending
|
||||
@@ -8316,14 +8052,6 @@ bool Unit::HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* trigg
|
||||
target = victim;
|
||||
break;
|
||||
}
|
||||
// Combo points add triggers (need add combopoint only for main target, and after possible combopoints reset)
|
||||
case 15250: // Rogue Setup
|
||||
{
|
||||
// applied only for main target
|
||||
if (!victim || (GetTypeId() == TYPEID_PLAYER && victim != ToPlayer()->GetSelectedUnit()))
|
||||
return false;
|
||||
break; // continue normal case
|
||||
}
|
||||
// Finish movies that add combo
|
||||
case 14189: // Seal Fate (Netherblade set)
|
||||
case 14157: // Ruthlessness
|
||||
@@ -8340,12 +8068,6 @@ bool Unit::HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* trigg
|
||||
CastSpell(this, 70721, true);
|
||||
break;
|
||||
}
|
||||
// Shamanistic Rage triggered spell
|
||||
case 30824:
|
||||
{
|
||||
basepoints0 = int32(CalculatePctN(GetTotalAttackPowerValue(BASE_ATTACK), triggerAmount));
|
||||
break;
|
||||
}
|
||||
// Enlightenment (trigger only from mana cost spells)
|
||||
case 35095:
|
||||
{
|
||||
@@ -8353,22 +8075,6 @@ bool Unit::HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* trigg
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
// Demonic Pact
|
||||
case 48090:
|
||||
{
|
||||
// Get talent aura from owner
|
||||
if (isPet())
|
||||
if (Unit* owner = GetOwner())
|
||||
{
|
||||
if (AuraEffect* aurEff = owner->GetDummyAuraEffect(SPELLFAMILY_WARLOCK, 3220, 0))
|
||||
{
|
||||
basepoints0 = int32((aurEff->GetAmount() * owner->SpellBaseDamageBonusDone(SpellSchoolMask(SPELL_SCHOOL_MASK_MAGIC)) + 100.0f) / 100.0f); // TODO: Is it right?
|
||||
CastCustomSpell(this, trigger_spell_id, &basepoints0, &basepoints0, NULL, true, castItem, triggeredByAura);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 46916: // Slam! (Bloodsurge proc)
|
||||
case 52437: // Sudden Death
|
||||
{
|
||||
@@ -8407,35 +8113,6 @@ bool Unit::HandleProcTriggerSpell(Unit* victim, uint32 damage, AuraEffect* trigg
|
||||
CastSpell(this, 70831, true, castItem, triggeredByAura);
|
||||
break;
|
||||
}
|
||||
// Astral Shift
|
||||
case 52179:
|
||||
{
|
||||
if (procSpell == 0 || !(procEx & (PROC_EX_NORMAL_HIT|PROC_EX_CRITICAL_HIT)) || this == victim)
|
||||
return false;
|
||||
|
||||
// Need stun, fear or silence mechanic
|
||||
if (!(procSpell->GetAllEffectsMechanicMask() & ((1<<MECHANIC_SILENCE)|(1<<MECHANIC_STUN)|(1<<MECHANIC_FEAR))))
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
// Burning Determination
|
||||
case 54748:
|
||||
{
|
||||
if (!procSpell)
|
||||
return false;
|
||||
// Need Interrupt or Silenced mechanic
|
||||
if (!(procSpell->GetAllEffectsMechanicMask() & ((1<<MECHANIC_INTERRUPT)|(1<<MECHANIC_SILENCE))))
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
// Lock and Load
|
||||
case 56453:
|
||||
{
|
||||
// Proc only from Frost/Freezing trap activation or from Freezing Arrow (the periodic dmg proc handled elsewhere)
|
||||
if (!(procFlags & PROC_FLAG_DONE_TRAP_ACTIVATION) || !procSpell || !(procSpell->SchoolMask & SPELL_SCHOOL_MASK_FROST) || !roll_chance_i(triggerAmount))
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
// Glyph of Death's Embrace
|
||||
case 58679:
|
||||
{
|
||||
@@ -8544,27 +8221,6 @@ bool Unit::HandleOverrideClassScriptAuraProc(Unit* victim, uint32 /*damage*/, Au
|
||||
|
||||
switch (scriptId)
|
||||
{
|
||||
case 836: // Improved Blizzard (Rank 1)
|
||||
{
|
||||
if (!procSpell || procSpell->SpellVisual[0] != 9487)
|
||||
return false;
|
||||
triggered_spell_id = 12484;
|
||||
break;
|
||||
}
|
||||
case 988: // Improved Blizzard (Rank 2)
|
||||
{
|
||||
if (!procSpell || procSpell->SpellVisual[0] != 9487)
|
||||
return false;
|
||||
triggered_spell_id = 12485;
|
||||
break;
|
||||
}
|
||||
case 989: // Improved Blizzard (Rank 3)
|
||||
{
|
||||
if (!procSpell || procSpell->SpellVisual[0] != 9487)
|
||||
return false;
|
||||
triggered_spell_id = 12486;
|
||||
break;
|
||||
}
|
||||
case 4533: // Dreamwalker Raiment 2 pieces bonus
|
||||
{
|
||||
// Chance 50%
|
||||
@@ -8584,26 +8240,6 @@ bool Unit::HandleOverrideClassScriptAuraProc(Unit* victim, uint32 /*damage*/, Au
|
||||
case 4537: // Dreamwalker Raiment 6 pieces bonus
|
||||
triggered_spell_id = 28750; // Blessing of the Claw
|
||||
break;
|
||||
case 5497: // Improved Mana Gems
|
||||
triggered_spell_id = 37445; // Mana Surge
|
||||
break;
|
||||
case 7010: // Revitalize - can proc on full hp target
|
||||
case 7011:
|
||||
case 7012:
|
||||
{
|
||||
if (!roll_chance_i(triggeredByAura->GetAmount()))
|
||||
return false;
|
||||
switch (victim->getPowerType())
|
||||
{
|
||||
case POWER_MANA: triggered_spell_id = 48542; break;
|
||||
case POWER_RAGE: triggered_spell_id = 48541; break;
|
||||
case POWER_ENERGY: triggered_spell_id = 48540; break;
|
||||
case POWER_RUNIC_POWER: triggered_spell_id = 48543; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user