Core/Spells: corrected some spelling mistakes in Chakra spellscript

* fixed Holy Word: Sanctuary
* Holy Word: Chastise will now only get overriden by Chakras if the player has learned Revelations
This commit is contained in:
Ovahlord
2018-07-09 23:16:48 +02:00
parent f881bb2f25
commit eb952968c6
2 changed files with 63 additions and 25 deletions

View File

@@ -1,17 +1,20 @@
DELETE FROM `spell_script_names` WHERE `ScriptName` IN
('spell_pri_charkra',
'spell_pri_charkra_sanctuary',
'spell_pri_chakra_serenity');
('spell_pri_chakra',
'spell_pri_chakra_sanctuary',
'spell_pri_chakra_serenity_script',
'spell_pri_holy_word_sanctuary');
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(14751, 'spell_pri_charkra'),
(81206, 'spell_pri_charkra_sanctuary'),
(81585, 'spell_pri_chakra_serenity');
(14751, 'spell_pri_chakra'),
(81206, 'spell_pri_chakra_sanctuary'),
(81585, 'spell_pri_chakra_serenity_script'),
(88685, 'spell_pri_holy_word_sanctuary');
SET @FAMILYMASK0 := 0x00000400 | 0x00000800 | 0x00001000 | 0x00000200 | 0x00000080;
SET @FAMILYMASK1 := 0x00000004 | 0x00000020;
SET @FAMILYMASK2 := 0x00010000 | 0x00000000;
DELETE FROM `spell_proc` WHERE `SpellId`= 14751;
DELETE FROM `spell_proc` WHERE `SpellId` IN (14751, 88627);
INSERT INTO `spell_proc` (`SpellId`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `ProcFlags`, `SpellTypeMask`, `SpellPhaseMask`, `HitMask`, `AttributesMask`, `Cooldown`, `Charges`, `Chance`) VALUES
(14751, 6, @FAMILYMASK0, @FAMILYMASK1, @FAMILYMASK2, 0, 2, 1, 0, 0, 0, 1, 100);
(14751, 6, @FAMILYMASK0, @FAMILYMASK1, @FAMILYMASK2, 0, 2, 1, 0, 0, 0, 1, 100),
(88627, 0, 0x0, 0x0, 0x0, 0, 0, 0, 0, 16, 0, 0, 0);

View File

@@ -51,6 +51,8 @@ enum PriestSpells
SPELL_PRIEST_GLYPH_OF_PRAYER_OF_HEALING_HEAL = 56161,
SPELL_PRIEST_GLYPH_OF_SHADOW = 107906,
SPELL_PRIEST_GUARDIAN_SPIRIT_HEAL = 48153,
SPELL_PRIEST_HOLY_WORD_CHASTISE = 88625,
SPELL_PRIEST_HOLY_WORD_SANCTUARY = 88686,
SPELL_PRIEST_ITEM_EFFICIENCY = 37595,
SPELL_PRIEST_LEAP_OF_FAITH = 73325,
SPELL_PRIEST_LEAP_OF_FAITH_EFFECT = 92832,
@@ -63,6 +65,7 @@ enum PriestSpells
SPELL_PRIEST_REFLECTIVE_SHIELD_R1 = 33201,
SPELL_PRIEST_REFLECTIVE_SHIELD_TRIGGERED = 33619,
SPELL_PRIEST_RENEW = 139,
SPELL_PRIEST_REVELATIONS = 88627,
SPELL_PRIEST_SHADOW_ORB_MARKER = 93683,
SPELL_PRIEST_SHADOW_ORB_POWER = 77486,
SPELL_PRIEST_SHADOWFORM_VISUAL_WITHOUT_GLYPH = 107903,
@@ -1340,9 +1343,9 @@ class spell_pri_shadow_orb : public AuraScript
};
// 14751 - Chakra
class spell_pri_charkra : public AuraScript
class spell_pri_chakra : public AuraScript
{
PrepareAuraScript(spell_pri_charkra);
PrepareAuraScript(spell_pri_chakra);
bool Validate(SpellInfo const* spellInfo) override
{
@@ -1351,7 +1354,9 @@ class spell_pri_charkra : public AuraScript
SPELL_PRIEST_CHAKRA_SERENITY,
SPELL_PRIEST_CHAKRA_SANCTUARY,
SPELL_PRIEST_CHAKRA_SANCTUARY_LINKED,
SPELL_PRIEST_CHAKRA_CHASTISE
SPELL_PRIEST_CHAKRA_CHASTISE,
SPELL_PRIEST_REVELATIONS,
SPELL_PRIEST_HOLY_WORD_CHASTISE
});
}
@@ -1376,12 +1381,20 @@ class spell_pri_charkra : public AuraScript
// Chakra: Serenity
if (spell->SpellFamilyFlags.HasFlag(0x00000400) || spell->SpellFamilyFlags.HasFlag(0x00001000)
|| spell->SpellFamilyFlags.HasFlag(0x00000800) || spell->SpellFamilyFlags.HasFlag(0, 0x00000004))
caster->CastSpell(caster, SPELL_PRIEST_CHAKRA_SERENITY, true, nullptr, aurEff);
{
SpellInfo const* spell = sSpellMgr->AssertSpellInfo(SPELL_PRIEST_CHAKRA_SERENITY);
int32 bp = caster->HasAura(SPELL_PRIEST_REVELATIONS) ? spell->Effects[EFFECT_2].BasePoints : SPELL_PRIEST_HOLY_WORD_CHASTISE;
caster->CastCustomSpell(SPELL_PRIEST_CHAKRA_SERENITY, SPELLVALUE_BASE_POINT2, bp, caster, true, nullptr, aurEff);
}
// Chakra: Sanctuary
if (spell->SpellFamilyFlags.HasFlag(0x00000200) || spell->SpellFamilyFlags.HasFlag(0, 0x00000020))
{
caster->CastSpell(caster, SPELL_PRIEST_CHAKRA_SANCTUARY, true, nullptr, aurEff);
SpellInfo const* spell = sSpellMgr->AssertSpellInfo(SPELL_PRIEST_CHAKRA_SANCTUARY);
int32 bp = caster->HasAura(SPELL_PRIEST_REVELATIONS) ? spell->Effects[EFFECT_2].BasePoints : SPELL_PRIEST_HOLY_WORD_CHASTISE;
caster->CastCustomSpell(SPELL_PRIEST_CHAKRA_SANCTUARY, SPELLVALUE_BASE_POINT2, bp, caster, true, nullptr, aurEff);
caster->CastSpell(caster, SPELL_PRIEST_CHAKRA_SANCTUARY_LINKED, true, nullptr, aurEff);
}
@@ -1393,34 +1406,34 @@ class spell_pri_charkra : public AuraScript
void Register() override
{
AfterEffectApply += AuraEffectApplyFn(spell_pri_charkra::HandleEffectApply, EFFECT_0, SPELL_AURA_ADD_FLAT_MODIFIER, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
OnEffectProc += AuraEffectProcFn(spell_pri_charkra::HandleProc, EFFECT_0, SPELL_AURA_ADD_FLAT_MODIFIER);
AfterEffectApply += AuraEffectApplyFn(spell_pri_chakra::HandleEffectApply, EFFECT_0, SPELL_AURA_ADD_FLAT_MODIFIER, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
OnEffectProc += AuraEffectProcFn(spell_pri_chakra::HandleProc, EFFECT_0, SPELL_AURA_ADD_FLAT_MODIFIER);
}
};
class spell_pri_charkra_sanctuary : public AuraScript
class spell_pri_chakra_sanctuary : public AuraScript
{
PrepareAuraScript(spell_pri_charkra_sanctuary);
PrepareAuraScript(spell_pri_chakra_sanctuary);
bool Validate(SpellInfo const* spellInfo) override
{
return ValidateSpellInfo({ SPELL_PRIEST_CHAKRA_SANCTUARY_LINKED });
}
void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
void HandleEffectRemove(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/)
{
GetTarget()->RemoveAurasDueToSpell(SPELL_PRIEST_CHAKRA_SANCTUARY_LINKED);
}
void Register() override
{
AfterEffectRemove += AuraEffectRemoveFn(spell_pri_charkra_sanctuary::HandleEffectRemove, EFFECT_0, SPELL_AURA_ADD_PCT_MODIFIER, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
AfterEffectRemove += AuraEffectRemoveFn(spell_pri_chakra_sanctuary::HandleEffectRemove, EFFECT_0, SPELL_AURA_ADD_PCT_MODIFIER, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
}
};
class spell_pri_chakra_serenity : public SpellScript
class spell_pri_chakra_serenity_script : public SpellScript
{
PrepareSpellScript(spell_pri_chakra_serenity);
PrepareSpellScript(spell_pri_chakra_serenity_script);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
@@ -1435,16 +1448,37 @@ class spell_pri_chakra_serenity : public SpellScript
void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_pri_chakra_serenity::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
OnEffectHitTarget += SpellEffectFn(spell_pri_chakra_serenity_script::HandleScriptEffect, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
}
};
class spell_pri_holy_word_sanctuary : public AuraScript
{
PrepareAuraScript(spell_pri_holy_word_sanctuary);
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_PRIEST_HOLY_WORD_SANCTUARY });
}
void HandleDummyTick(AuraEffect const* aurEff)
{
if (DynamicObject* dyn = GetTarget()->GetDynObject(aurEff->GetId()))
GetTarget()->CastSpell(dyn->GetPositionX(), dyn->GetPositionY(), dyn->GetPositionZ(), SPELL_PRIEST_HOLY_WORD_SANCTUARY, true, nullptr, aurEff);
}
void Register() override
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_pri_holy_word_sanctuary::HandleDummyTick, EFFECT_1, SPELL_AURA_PERIODIC_DUMMY);
}
};
void AddSC_priest_spell_scripts()
{
new spell_pri_body_and_soul();
RegisterAuraScript(spell_pri_charkra);
RegisterAuraScript(spell_pri_charkra_sanctuary);
RegisterSpellScript(spell_pri_chakra_serenity);
RegisterAuraScript(spell_pri_chakra);
RegisterAuraScript(spell_pri_chakra_sanctuary);
RegisterSpellScript(spell_pri_chakra_serenity_script);
new spell_pri_circle_of_healing();
new spell_pri_dispel_magic();
new spell_pri_divine_aegis();
@@ -1455,6 +1489,7 @@ void AddSC_priest_spell_scripts()
new spell_pri_improved_power_word_shield();
new spell_pri_item_greater_heal_refund();
new spell_pri_guardian_spirit();
RegisterAuraScript(spell_pri_holy_word_sanctuary);
new spell_pri_leap_of_faith_effect_trigger();
new spell_pri_lightwell_renew();
new spell_pri_mana_leech();