mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
Scripts/Spells: Fixed Divine Purpose (#27719)
Co-authored-by: Shauren <shauren.trinity@gmail.com>
This commit is contained in:
8
sql/updates/world/master/2022_02_10_00_world.sql
Normal file
8
sql/updates/world/master/2022_02_10_00_world.sql
Normal file
@@ -0,0 +1,8 @@
|
||||
DELETE FROM `spell_proc` WHERE `SpellId` IN (223817,223819);
|
||||
INSERT INTO `spell_proc` (`SpellId`,`SchoolMask`,`SpellFamilyName`,`SpellFamilyMask0`,`SpellFamilyMask1`,`SpellFamilyMask2`,`SpellFamilyMask3`,`ProcFlags`,`ProcFlags2`,`SpellTypeMask`,`SpellPhaseMask`,`HitMask`,`AttributesMask`,`DisableEffectsMask`,`ProcsPerMinute`,`Chance`,`Cooldown`,`Charges`) VALUES
|
||||
(223817,0x00,10,0x00000000,0x00000000,0x00000000,0x00000000,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0,0,0,0), -- Divine Purpose
|
||||
(223819,0x00,10,0x00000000,0x00000000,0x00000000,0x00000000,0x0,0x0,0x0,0x1,0x0,0x8,0x0,0,0,0,0); -- Divine Purpose (buff)
|
||||
|
||||
DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_pal_divine_purpose';
|
||||
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
|
||||
(223817,'spell_pal_divine_purpose');
|
||||
@@ -51,7 +51,7 @@ enum PaladinSpells
|
||||
SPELL_PALADIN_CONSECRATION = 26573,
|
||||
SPELL_PALADIN_CONSECRATION_DAMAGE = 81297,
|
||||
SPELL_PALADIN_CONSECRATION_PROTECTION_AURA = 188370,
|
||||
SPELL_PALADIN_DIVINE_PURPOSE_PROC = 90174,
|
||||
SPELL_PALADIN_DIVINE_PURPOSE_TRIGGERED = 223819,
|
||||
SPELL_PALADIN_DIVINE_STEED_HUMAN = 221883,
|
||||
SPELL_PALADIN_DIVINE_STEED_DWARF = 276111,
|
||||
SPELL_PALADIN_DIVINE_STEED_DRAENEI = 221887,
|
||||
@@ -427,6 +427,41 @@ class spell_pal_crusader_might : public AuraScript
|
||||
}
|
||||
};
|
||||
|
||||
// 223817 - Divine Purpose
|
||||
class spell_pal_divine_purpose : public AuraScript
|
||||
{
|
||||
PrepareAuraScript(spell_pal_divine_purpose);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return ValidateSpellInfo({ SPELL_PALADIN_DIVINE_PURPOSE_TRIGGERED });
|
||||
}
|
||||
|
||||
bool CheckProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo)
|
||||
{
|
||||
Spell const* procSpell = eventInfo.GetProcSpell();
|
||||
if (!procSpell)
|
||||
return false;
|
||||
|
||||
if (!procSpell->HasPowerTypeCost(POWER_HOLY_POWER))
|
||||
return false;
|
||||
|
||||
return roll_chance_i(aurEff->GetAmount());
|
||||
}
|
||||
|
||||
void HandleProc(AuraEffect* /*aurEff*/, ProcEventInfo& eventInfo)
|
||||
{
|
||||
eventInfo.GetActor()->CastSpell(eventInfo.GetActor(), SPELL_PALADIN_DIVINE_PURPOSE_TRIGGERED,
|
||||
CastSpellExtraArgs(TRIGGERED_IGNORE_CAST_IN_PROGRESS).SetTriggeringSpell(eventInfo.GetProcSpell()));
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
DoCheckEffectProc += AuraCheckEffectProcFn(spell_pal_divine_purpose::CheckProc, EFFECT_0, SPELL_AURA_DUMMY);
|
||||
OnEffectProc += AuraEffectProcFn(spell_pal_divine_purpose::HandleProc, EFFECT_0, SPELL_AURA_DUMMY);
|
||||
}
|
||||
};
|
||||
|
||||
// 642 - Divine Shield
|
||||
class spell_pal_divine_shield : public SpellScript
|
||||
{
|
||||
@@ -1476,6 +1511,7 @@ void AddSC_paladin_spell_scripts()
|
||||
RegisterSpellScript(spell_pal_crusader_might);
|
||||
RegisterSpellScript(spell_pal_consecration);
|
||||
RegisterAreaTriggerAI(areatrigger_pal_consecration);
|
||||
RegisterSpellScript(spell_pal_divine_purpose);
|
||||
RegisterSpellScript(spell_pal_divine_shield);
|
||||
RegisterSpellScript(spell_pal_divine_steed);
|
||||
RegisterSpellScript(spell_pal_divine_storm);
|
||||
|
||||
Reference in New Issue
Block a user