mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-29 05:11:55 +01:00
Core/Spells: fixed all remaining T11 bonus effects for all classes
This commit is contained in:
43
sql/updates/world/4.3.4/2020_03_25_00_world.sql
Normal file
43
sql/updates/world/4.3.4/2020_03_25_00_world.sql
Normal file
@@ -0,0 +1,43 @@
|
||||
DELETE FROM `spell_script_names` WHERE `ScriptName` IN
|
||||
('spell_dk_killing_machine',
|
||||
'spell_dru_astral_alignment',
|
||||
'spell_dru_harmony_triggered',
|
||||
'spell_dru_item_t11_feral_4p_bonus',
|
||||
'spell_pri_chakra_flow_removal');
|
||||
|
||||
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
|
||||
(51124, 'spell_dk_killing_machine'),
|
||||
(90164, 'spell_dru_astral_alignment'),
|
||||
(100977, 'spell_dru_harmony_triggered'),
|
||||
(90165, 'spell_dru_item_t11_feral_4p_bonus'),
|
||||
(81208, 'spell_pri_chakra_flow_removal'),
|
||||
(81209, 'spell_pri_chakra_flow_removal');
|
||||
|
||||
DELETE FROM `spell_proc` WHERE `SpellId`= 90164;
|
||||
INSERT INTO `spell_proc` (`SpellId`, `SpellTypeMask`, `SpellPhaseMask`, `HitMask`, `Charges`) VALUES
|
||||
(90164, 3, 2, 2, 3);
|
||||
|
||||
DELETE FROM `spell_proc` WHERE `SpellId`= 90158;
|
||||
INSERT INTO `spell_proc` (`SpellId`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `ProcFlags`, `SpellTypeMask`, `SpellPhaseMask`, `HitMask`, `AttributesMask`, `ProcsPerMinute`, `Chance`, `Cooldown`, `Charges`) VALUES
|
||||
(90158, 0, 7, 0x00000020 | 0x00000040 , 0x02000000 | 0x00000002, 0x0, 0x00004000, 2, 1, 0, 0, 0, 0, 0, 0);
|
||||
|
||||
DELETE FROM `spell_proc` WHERE `SpellId`= 90165;
|
||||
INSERT INTO `spell_proc` (`SpellId`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `ProcFlags`, `SpellTypeMask`, `SpellPhaseMask`, `HitMask`, `AttributesMask`, `ProcsPerMinute`, `Chance`, `Cooldown`, `Charges`) VALUES
|
||||
(90165, 0, 7, 0 ,0x400, 0, 0, 1, 2, 0, 0, 0, 100, 0, 0);
|
||||
|
||||
DELETE FROM `spell_proc` WHERE `SpellId`= 90313;
|
||||
INSERT INTO `spell_proc` (`SpellId`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `ProcFlags`, `SpellTypeMask`, `SpellPhaseMask`, `HitMask`, `AttributesMask`, `ProcsPerMinute`, `Chance`, `Cooldown`, `Charges`) VALUES
|
||||
(90313, 2, 10, 0x200000 ,0, 0, 0, 3, 2, 0, 2, 0, 0, 0, 0);
|
||||
|
||||
DELETE FROM `spell_proc` WHERE `SpellId`= 90499;
|
||||
INSERT INTO `spell_proc` (`SpellId`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `ProcFlags`, `SpellTypeMask`, `SpellPhaseMask`, `HitMask`, `AttributesMask`, `ProcsPerMinute`, `Chance`, `Cooldown`, `Charges`) VALUES
|
||||
(90499, 8, 11, 0, 0, 0x10, 0, 2, 2, 0, 0, 0, 0, 0, 0);
|
||||
|
||||
DELETE FROM `spell_proc` WHERE `SpellId`= 90472;
|
||||
INSERT INTO `spell_proc` (`SpellId`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `ProcFlags`, `SpellTypeMask`, `SpellPhaseMask`, `HitMask`, `AttributesMask`, `ProcsPerMinute`, `Chance`, `Cooldown`, `Charges`) VALUES
|
||||
(90472, 0, 8, 0, 0, 0, 0, 1, 1, 0, 8, 0, 0, 0, 0);
|
||||
|
||||
DELETE FROM `spell_proc` WHERE `SpellId` IN (89935, 89937);
|
||||
INSERT INTO `spell_proc` (`SpellId`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `ProcFlags`, `SpellTypeMask`, `SpellPhaseMask`, `HitMask`, `AttributesMask`, `ProcsPerMinute`, `Chance`, `Cooldown`, `Charges`) VALUES
|
||||
(89935, 0, 5, 0x4, 0x100, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0),
|
||||
(89937, 0, 5, 0, 0, 0, 0, 1, 1, 0, 8, 0, 0, 0, 0);
|
||||
@@ -54,6 +54,7 @@ enum DeathKnightSpells
|
||||
SPELL_DK_DEATH_COIL = 47541,
|
||||
SPELL_DK_DEATH_COIL_DAMAGE = 47632,
|
||||
SPELL_DK_DEATH_COIL_HEAL = 47633,
|
||||
SPELL_DK_DEATH_EATER = 90507,
|
||||
SPELL_DK_DEATH_GRIP = 49560,
|
||||
SPELL_DK_DEATH_GRIP_INITIAL = 49576,
|
||||
SPELL_DK_DEATH_STRIKE = 49998,
|
||||
@@ -76,6 +77,7 @@ enum DeathKnightSpells
|
||||
SPELL_DK_IMPROVED_UNHOLY_PRESENCE = 63622,
|
||||
SPELL_DK_ITEM_SIGIL_VENGEFUL_HEART = 64962,
|
||||
SPELL_DK_ITEM_T8_MELEE_4P_BONUS = 64736,
|
||||
SPELL_DK_ITEM_T11_DPS_4P_BONUS = 90459,
|
||||
SPELL_DK_MASTER_OF_GHOULS = 52143,
|
||||
SPELL_DK_OBLITERATE = 49020,
|
||||
SPELL_DK_OBLITERATE_OFFHAND = 66198,
|
||||
@@ -1340,18 +1342,30 @@ class spell_dk_threat_of_thassarian : public AuraScript
|
||||
}
|
||||
};
|
||||
|
||||
// 56835 - Reaping (Passive)
|
||||
class spell_dk_reaping : public AuraScript
|
||||
{
|
||||
PrepareAuraScript(spell_dk_reaping);
|
||||
|
||||
bool Load() override
|
||||
{
|
||||
return GetCaster()->IsPlayer();
|
||||
}
|
||||
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return ValidateSpellInfo(
|
||||
{
|
||||
SPELL_DK_ITEM_T11_DPS_4P_BONUS,
|
||||
SPELL_DK_DEATH_EATER
|
||||
});
|
||||
}
|
||||
|
||||
void HandleProc(AuraEffect const* aurEff, ProcEventInfo& /*eventInfo*/)
|
||||
{
|
||||
PreventDefaultAction();
|
||||
|
||||
Player* player = GetTarget()->ToPlayer();
|
||||
if (!player)
|
||||
return;
|
||||
|
||||
uint8 runeMask = player->GetLastUsedRuneMask();
|
||||
|
||||
for (uint8 i = 0; i < MAX_RUNES; i++)
|
||||
@@ -1361,6 +1375,10 @@ class spell_dk_reaping : public AuraScript
|
||||
}
|
||||
|
||||
GetEffect(EFFECT_0)->ResetPeriodic(true);
|
||||
|
||||
// T11 set bonus effect
|
||||
if (AuraEffect const* aurEff = player->GetAuraEffect(SPELL_DK_ITEM_T11_DPS_4P_BONUS, EFFECT_0))
|
||||
player->CastSpell(player, SPELL_DK_DEATH_EATER, true, nullptr, aurEff);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
@@ -1721,6 +1739,33 @@ class spell_dk_festering_strike : public SpellScript
|
||||
}
|
||||
};
|
||||
|
||||
// 51124 - Killing Machine
|
||||
class spell_dk_killing_machine : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_dk_killing_machine);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return ValidateSpellInfo(
|
||||
{
|
||||
SPELL_DK_ITEM_T11_DPS_4P_BONUS,
|
||||
SPELL_DK_DEATH_EATER
|
||||
});
|
||||
}
|
||||
|
||||
void HandleT11Bonus(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
Unit* target = GetHitUnit();
|
||||
if (AuraEffect const* aurEff = target->GetAuraEffect(SPELL_DK_ITEM_T11_DPS_4P_BONUS, EFFECT_0))
|
||||
target->CastSpell(target, SPELL_DK_DEATH_EATER, true, nullptr, aurEff);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectHitTarget += SpellEffectFn(spell_dk_killing_machine::HandleT11Bonus, EFFECT_0, SPELL_EFFECT_APPLY_AURA);
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_deathknight_spell_scripts()
|
||||
{
|
||||
RegisterAuraScript(spell_dk_anti_magic_shell);
|
||||
@@ -1752,6 +1797,7 @@ void AddSC_deathknight_spell_scripts()
|
||||
RegisterSpellScript(spell_dk_howling_blast);
|
||||
RegisterAuraScript(spell_dk_icebound_fortitude);
|
||||
RegisterAuraScript(spell_dk_improved_presence);
|
||||
RegisterSpellScript(spell_dk_killing_machine);
|
||||
RegisterAuraScript(spell_dk_necrotic_strike);
|
||||
RegisterSpellScript(spell_dk_pestilence);
|
||||
RegisterAuraScript(spell_dk_presence);
|
||||
|
||||
@@ -35,7 +35,9 @@
|
||||
|
||||
enum DruidSpells
|
||||
{
|
||||
SPELL_DRUID_ASTRAL_ALIGNMENT = 90164,
|
||||
SPELL_DRUID_BLOOD_IN_THE_WATER_SCRIPT = 80863,
|
||||
SPELL_DRUID_BLOOM = 90159,
|
||||
SPELL_DRUID_WRATH = 5176,
|
||||
SPELL_DRUID_STARFIRE = 2912,
|
||||
SPELL_DRUID_STARSURGE = 78674,
|
||||
@@ -78,6 +80,7 @@ enum DruidSpells
|
||||
SPELL_DRUID_INNERVATE_TRIGGERED = 54833,
|
||||
SPELL_DRUID_ITEM_T8_BALANCE_RELIC = 64950,
|
||||
SPELL_DRUID_ITEM_T10_FERAL_4P_BONUS = 70726,
|
||||
SPELL_DRUID_ITEM_T11_BALANCE_4P_BONUS = 90163,
|
||||
SPELL_DRUID_KING_OF_THE_JUNGLE = 48492,
|
||||
SPELL_DRUID_LACERATE = 33745,
|
||||
SPELL_DRUID_LEADER_OF_THE_PACK_HEAL = 34299,
|
||||
@@ -99,6 +102,7 @@ enum DruidSpells
|
||||
SPELL_DRUID_STAMPEDE_CAT_RANK_1 = 81021,
|
||||
SPELL_DRUID_STAMPEDE_CAT_STATE = 109881,
|
||||
SPELL_DRUID_SOLAR_BEAM_SILENCE = 81261,
|
||||
SPELL_DRUID_STRENGTH_OF_THE_PANTHER = 90166,
|
||||
SPELL_DRUID_SUNFIRE = 93402,
|
||||
SPELL_DRUID_SUNFIRE_TALENT = 93401,
|
||||
SPELL_DRUID_TIGER_S_FURY_ENERGIZE = 51178,
|
||||
@@ -248,6 +252,10 @@ class spell_dru_eclipse : public AuraScript
|
||||
caster->RemoveAurasDueToSpell(SPELL_DRUID_LUNAR_ECLIPSE_MARKER);
|
||||
caster->CastSpell(caster, SPELL_DRUID_SOLAR_ECLIPSE_MARKER, true);
|
||||
}
|
||||
|
||||
// T11 Bonus
|
||||
if (AuraEffect const* aurEff = caster->GetAuraEffect(SPELL_DRUID_ITEM_T11_BALANCE_4P_BONUS, EFFECT_0))
|
||||
caster->CastCustomSpell(SPELL_DRUID_ASTRAL_ALIGNMENT, SPELLVALUE_AURA_STACK, 3, caster, true, nullptr, aurEff);
|
||||
}
|
||||
|
||||
void RemoveEffect(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
||||
@@ -1948,8 +1956,69 @@ class spell_dru_blood_in_the_water_script : public SpellScript
|
||||
}
|
||||
};
|
||||
|
||||
// 90164 - Astral Alignment
|
||||
class spell_dru_astral_alignment : public AuraScript
|
||||
{
|
||||
PrepareAuraScript(spell_dru_astral_alignment);
|
||||
|
||||
void HandleProc(AuraEffect const* /*aurEff*/, ProcEventInfo& /*eventInfo*/)
|
||||
{
|
||||
PreventDefaultAction();
|
||||
GetAura()->ModStackAmount(-1);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectProc += AuraEffectProcFn(spell_dru_astral_alignment::HandleProc, EFFECT_0, SPELL_AURA_MOD_SPELL_CRIT_CHANCE);
|
||||
}
|
||||
};
|
||||
|
||||
// 100977 - Harmony
|
||||
class spell_dru_harmony_triggered : public AuraScript
|
||||
{
|
||||
PrepareAuraScript(spell_dru_harmony_triggered);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return ValidateSpellInfo({ SPELL_DRUID_BLOOM });
|
||||
}
|
||||
|
||||
void RemoveEffect(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
||||
{
|
||||
GetTarget()->RemoveAurasDueToSpell(SPELL_DRUID_BLOOM);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
AfterEffectRemove += AuraEffectRemoveFn(spell_dru_harmony_triggered::RemoveEffect, EFFECT_0, SPELL_AURA_ADD_PCT_MODIFIER, AURA_EFFECT_HANDLE_REAL);
|
||||
}
|
||||
};
|
||||
|
||||
// 90165 - Item - Druid T11 Feral 4P Bonus
|
||||
class spell_dru_item_t11_feral_4p_bonus : public AuraScript
|
||||
{
|
||||
PrepareAuraScript(spell_dru_item_t11_feral_4p_bonus);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return ValidateSpellInfo({ SPELL_DRUID_STRENGTH_OF_THE_PANTHER });
|
||||
}
|
||||
|
||||
void HandleProc(AuraEffect const* aurEff, ProcEventInfo& /*eventInfo*/)
|
||||
{
|
||||
PreventDefaultAction();
|
||||
GetTarget()->CastSpell(GetTarget(), SPELL_DRUID_STRENGTH_OF_THE_PANTHER, true, nullptr, aurEff);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectProc += AuraEffectProcFn(spell_dru_item_t11_feral_4p_bonus::HandleProc, EFFECT_0, SPELL_AURA_ADD_PCT_MODIFIER);
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_druid_spell_scripts()
|
||||
{
|
||||
RegisterAuraScript(spell_dru_astral_alignment);
|
||||
RegisterAuraScript(spell_dru_berserk);
|
||||
RegisterAuraScript(spell_dru_blood_in_the_water);
|
||||
RegisterSpellScript(spell_dru_blood_in_the_water_script);
|
||||
@@ -1969,6 +2038,7 @@ void AddSC_druid_spell_scripts()
|
||||
RegisterSpellScript(spell_dru_glyph_of_starfire);
|
||||
RegisterAuraScript(spell_dru_glyph_of_starfire_proc);
|
||||
RegisterAuraScript(spell_dru_harmony);
|
||||
RegisterAuraScript(spell_dru_harmony_triggered);
|
||||
RegisterAuraScript(spell_dru_idol_lifebloom);
|
||||
RegisterAuraScript(spell_dru_innervate);
|
||||
RegisterAuraScript(spell_dru_insect_swarm);
|
||||
@@ -1993,6 +2063,7 @@ void AddSC_druid_spell_scripts()
|
||||
RegisterAuraScript(spell_dru_tree_of_life);
|
||||
RegisterSpellScript(spell_dru_typhoon);
|
||||
RegisterSpellScript(spell_dru_t10_restoration_4p_bonus);
|
||||
RegisterAuraScript(spell_dru_item_t11_feral_4p_bonus);
|
||||
RegisterSpellScript(spell_dru_wild_growth);
|
||||
RegisterSpellScript(spell_dru_wild_mushroom);
|
||||
RegisterSpellScript(spell_dru_wild_mushroom_detonate);
|
||||
|
||||
@@ -76,6 +76,7 @@ enum PaladinSpells
|
||||
SPELL_PALADIN_IMPROVED_CONCENTRACTION_AURA = 63510,
|
||||
SPELL_PALADIN_IMPROVED_DEVOTION_AURA = 63514,
|
||||
SPELL_PALADIN_ITEM_HEALING_TRANCE = 37706,
|
||||
SPELL_PALADIN_ITEM_T11_RETRIBUTION_4P_BONUS = 90299,
|
||||
SPELL_PALADIN_JUDGEMENT_DAMAGE = 54158,
|
||||
SPELL_PALADIN_JUDGEMENTS_OF_THE_BOLD = 89906,
|
||||
SPELL_PALADIN_JUDGEMENTS_OF_THE_WISE_PASSIVE = 31878,
|
||||
@@ -1632,7 +1633,11 @@ class spell_pal_inquisition : public SpellScript
|
||||
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return ValidateSpellInfo({ SPELL_PALADIN_DIVINE_PURPOSE_PROC });
|
||||
return ValidateSpellInfo(
|
||||
{
|
||||
SPELL_PALADIN_DIVINE_PURPOSE_PROC,
|
||||
SPELL_PALADIN_ITEM_T11_RETRIBUTION_4P_BONUS
|
||||
});
|
||||
}
|
||||
|
||||
void ChangeDuration()
|
||||
@@ -1644,6 +1649,11 @@ class spell_pal_inquisition : public SpellScript
|
||||
if (Aura* aura = caster->GetAura(GetSpellInfo()->Id))
|
||||
{
|
||||
uint8 power = caster->HasAura(SPELL_PALADIN_DIVINE_PURPOSE_PROC) ? 2 : caster->GetPower(POWER_HOLY_POWER);
|
||||
|
||||
// T11 bonus
|
||||
if (caster->GetAuraEffect(SPELL_PALADIN_ITEM_T11_RETRIBUTION_4P_BONUS, EFFECT_0, caster->GetGUID()))
|
||||
power = std::min<uint8>(caster->GetPower(POWER_HOLY_POWER) + 1, caster->GetMaxPower(POWER_HOLY_POWER));
|
||||
|
||||
int32 duration = aura->GetDuration();
|
||||
duration += duration * power;
|
||||
aura->SetDuration(duration);
|
||||
|
||||
@@ -43,6 +43,7 @@ enum PriestSpells
|
||||
SPELL_PRIEST_CHAKRA_SANCTUARY = 81206,
|
||||
SPELL_PRIEST_CHAKRA_SANCTUARY_LINKED = 81207,
|
||||
SPELL_PRIEST_CHAKRA_CHASTISE = 81209,
|
||||
SPELL_PRIEST_CHAKRA_FLOW = 89912,
|
||||
SPELL_PRIEST_CURE_DISEASE = 528,
|
||||
SPELL_PRIEST_DARK_ARCHANGEL_TRIGGERED = 87153,
|
||||
SPELL_PRIEST_DARK_EVANGELISM_TRIGGERED_1 = 87117,
|
||||
@@ -67,8 +68,10 @@ enum PriestSpells
|
||||
SPELL_PRIEST_GUARDIAN_SPIRIT_HEAL = 48153,
|
||||
SPELL_PRIEST_HOLY_WORD_CHASTISE = 88625,
|
||||
SPELL_PRIEST_HOLY_WORD_SANCTUARY = 88686,
|
||||
SPELL_PRIEST_INDULGENCE_OF_THE_PENITENT = 89913,
|
||||
SPELL_PRIEST_INNER_FOCUS = 89485,
|
||||
SPELL_PRIEST_ITEM_EFFICIENCY = 37595,
|
||||
SPELL_PRIEST_ITEM_T11_HEALER_4P_BONUS = 89911,
|
||||
SPELL_PRIEST_LEAP_OF_FAITH = 73325,
|
||||
SPELL_PRIEST_LEAP_OF_FAITH_EFFECT = 92832,
|
||||
SPELL_PRIEST_LEAP_OF_FAITH_EFFECT_TRIGGER = 92833,
|
||||
@@ -76,9 +79,8 @@ enum PriestSpells
|
||||
SPELL_PRIEST_MANA_LEECH_PROC = 34650,
|
||||
SPELL_PRIEST_MIND_FLAY = 15407,
|
||||
SPELL_PRIEST_MIND_TRAUMA = 48301,
|
||||
SPELL_PRIEST_PENANCE_R1 = 47540,
|
||||
SPELL_PRIEST_PENANCE_R1_DAMAGE = 47758,
|
||||
SPELL_PRIEST_PENANCE_R1_HEAL = 47757,
|
||||
SPELL_PRIEST_PENANCE_DAMAGE = 47758,
|
||||
SPELL_PRIEST_PENANCE_HEAL = 47757,
|
||||
SPELL_PRIEST_REFLECTIVE_SHIELD_R1 = 33201,
|
||||
SPELL_PRIEST_REFLECTIVE_SHIELD_TRIGGERED = 33619,
|
||||
SPELL_PRIEST_RENEW = 139,
|
||||
@@ -602,23 +604,15 @@ class spell_pri_penance : public SpellScript
|
||||
return GetCaster()->GetTypeId() == TYPEID_PLAYER;
|
||||
}
|
||||
|
||||
bool Validate(SpellInfo const* spellInfo) override
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
SpellInfo const* firstRankSpellInfo = sSpellMgr->GetSpellInfo(SPELL_PRIEST_PENANCE_R1);
|
||||
if (!firstRankSpellInfo)
|
||||
return false;
|
||||
|
||||
// can't use other spell than this penance due to spell_ranks dependency
|
||||
if (!spellInfo->IsRankOf(firstRankSpellInfo))
|
||||
return false;
|
||||
|
||||
uint8 rank = spellInfo->GetRank();
|
||||
if (!sSpellMgr->GetSpellWithRank(SPELL_PRIEST_PENANCE_R1_DAMAGE, rank, true))
|
||||
return false;
|
||||
if (!sSpellMgr->GetSpellWithRank(SPELL_PRIEST_PENANCE_R1_HEAL, rank, true))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
return ValidateSpellInfo(
|
||||
{
|
||||
SPELL_PRIEST_PENANCE_DAMAGE,
|
||||
SPELL_PRIEST_PENANCE_HEAL,
|
||||
SPELL_PRIEST_ITEM_T11_HEALER_4P_BONUS,
|
||||
SPELL_PRIEST_INDULGENCE_OF_THE_PENITENT
|
||||
});
|
||||
}
|
||||
|
||||
void HandleDummy(SpellEffIndex /*effIndex*/)
|
||||
@@ -629,12 +623,16 @@ class spell_pri_penance : public SpellScript
|
||||
if (!unitTarget->IsAlive())
|
||||
return;
|
||||
|
||||
uint8 rank = GetSpellInfo()->GetRank();
|
||||
|
||||
if (caster->IsFriendlyTo(unitTarget))
|
||||
caster->CastSpell(unitTarget, sSpellMgr->GetSpellWithRank(SPELL_PRIEST_PENANCE_R1_HEAL, rank), TRIGGERED_DISALLOW_PROC_EVENTS);
|
||||
{
|
||||
caster->CastSpell(unitTarget, SPELL_PRIEST_PENANCE_HEAL, TRIGGERED_DISALLOW_PROC_EVENTS);
|
||||
|
||||
// T11 Bonus
|
||||
if (caster->GetAuraEffect(SPELL_PRIEST_ITEM_T11_HEALER_4P_BONUS, EFFECT_0))
|
||||
caster->CastSpell(caster, SPELL_PRIEST_INDULGENCE_OF_THE_PENITENT, true);
|
||||
}
|
||||
else
|
||||
caster->CastSpell(unitTarget, sSpellMgr->GetSpellWithRank(SPELL_PRIEST_PENANCE_R1_DAMAGE, rank), TRIGGERED_DISALLOW_PROC_EVENTS);
|
||||
caster->CastSpell(unitTarget, SPELL_PRIEST_PENANCE_DAMAGE, TRIGGERED_DISALLOW_PROC_EVENTS);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1160,6 +1158,7 @@ class spell_pri_chakra : public AuraScript
|
||||
SPELL_PRIEST_CHAKRA_SANCTUARY,
|
||||
SPELL_PRIEST_CHAKRA_SANCTUARY_LINKED,
|
||||
SPELL_PRIEST_CHAKRA_CHASTISE,
|
||||
SPELL_PRIEST_CHAKRA_FLOW,
|
||||
SPELL_PRIEST_REVELATIONS,
|
||||
SPELL_PRIEST_HOLY_WORD_CHASTISE
|
||||
});
|
||||
@@ -1205,6 +1204,10 @@ class spell_pri_chakra : public AuraScript
|
||||
// Chakra: Chastise
|
||||
if (spell->SpellFamilyFlags.HasFlag(0x00000080) || spell->SpellFamilyFlags.HasFlag(0, 0x00010000))
|
||||
caster->CastSpell(caster, SPELL_PRIEST_CHAKRA_CHASTISE, true, nullptr, aurEff);
|
||||
|
||||
// T11 Bonus
|
||||
if (caster->GetAuraEffect(SPELL_PRIEST_ITEM_T11_HEALER_4P_BONUS, EFFECT_0))
|
||||
caster->CastSpell(caster, SPELL_PRIEST_CHAKRA_FLOW);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1222,12 +1225,18 @@ class spell_pri_chakra_sanctuary : public AuraScript
|
||||
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return ValidateSpellInfo({ SPELL_PRIEST_CHAKRA_SANCTUARY_LINKED });
|
||||
return ValidateSpellInfo(
|
||||
{
|
||||
SPELL_PRIEST_CHAKRA_SANCTUARY_LINKED,
|
||||
SPELL_PRIEST_CHAKRA_FLOW
|
||||
});
|
||||
}
|
||||
|
||||
void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
||||
{
|
||||
GetTarget()->RemoveAurasDueToSpell(SPELL_PRIEST_CHAKRA_SANCTUARY_LINKED);
|
||||
Unit* target = GetTarget();
|
||||
target->RemoveAurasDueToSpell(SPELL_PRIEST_CHAKRA_SANCTUARY_LINKED);
|
||||
target->RemoveAurasDueToSpell(SPELL_PRIEST_CHAKRA_FLOW);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
@@ -1236,6 +1245,36 @@ class spell_pri_chakra_sanctuary : public AuraScript
|
||||
}
|
||||
};
|
||||
|
||||
// 81208 - Chakra: Serenety
|
||||
// 81209 - Chakra: Chastise
|
||||
class spell_pri_chakra_flow_removal: public AuraScript
|
||||
{
|
||||
PrepareAuraScript(spell_pri_chakra_flow_removal);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return ValidateSpellInfo(
|
||||
{
|
||||
SPELL_PRIEST_CHAKRA_CHASTISE,
|
||||
SPELL_PRIEST_CHAKRA_SERENITY,
|
||||
SPELL_PRIEST_CHAKRA_FLOW
|
||||
});
|
||||
}
|
||||
|
||||
void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
||||
{
|
||||
GetTarget()->RemoveAurasDueToSpell(SPELL_PRIEST_CHAKRA_FLOW);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
if (m_scriptSpellId == SPELL_PRIEST_CHAKRA_SERENITY)
|
||||
AfterEffectRemove += AuraEffectRemoveFn(spell_pri_chakra_flow_removal::HandleEffectRemove, EFFECT_0, SPELL_AURA_ADD_FLAT_MODIFIER, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
|
||||
else if (m_scriptSpellId == SPELL_PRIEST_CHAKRA_CHASTISE)
|
||||
AfterEffectRemove += AuraEffectRemoveFn(spell_pri_chakra_flow_removal::HandleEffectRemove, EFFECT_0, SPELL_AURA_MOD_DAMAGE_PERCENT_DONE, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
|
||||
}
|
||||
};
|
||||
|
||||
// 81585 - Chakra: Serenity
|
||||
class spell_pri_chakra_serenity_script : public SpellScript
|
||||
{
|
||||
@@ -1788,6 +1827,7 @@ void AddSC_priest_spell_scripts()
|
||||
RegisterAuraScript(spell_pri_chakra);
|
||||
RegisterAuraScript(spell_pri_chakra_sanctuary);
|
||||
RegisterSpellScript(spell_pri_chakra_serenity_script);
|
||||
RegisterAuraScript(spell_pri_chakra_flow_removal);
|
||||
RegisterSpellScript(spell_pri_circle_of_healing);
|
||||
RegisterSpellScript(spell_pri_dispel_magic);
|
||||
RegisterAuraScript(spell_pri_divine_aegis);
|
||||
|
||||
Reference in New Issue
Block a user