Core/Spells: fix Ancient Hysteria and Time Warp thx @yousefscof and @gigatotem
Closes #11018
This commit is contained in:
1 parent
a7c15e7368
commit
57181aca56
4 files changed
+127
-7
No files matched your search
@@ -37,6 +37,7 @@ enum HunterSpells
|
||||
SPELL_HUNTER_FIRE = 82926,
|
||||
SPELL_HUNTER_GENERIC_ENERGIZE_FOCUS = 91954,
|
||||
SPELL_HUNTER_IMPROVED_MEND_PET = 24406,
|
||||
SPELL_HUNTER_INSANITY = 95809,
|
||||
SPELL_HUNTER_INVIGORATION_TRIGGERED = 53398,
|
||||
SPELL_HUNTER_LOCK_AND_LOAD = 56453,
|
||||
SPELL_HUNTER_MASTERS_CALL_TRIGGERED = 62305,
|
||||
@@ -52,8 +53,62 @@ enum HunterSpells
|
||||
SPELL_HUNTER_SNIPER_TRAINING_R1 = 53302,
|
||||
SPELL_HUNTER_SNIPER_TRAINING_BUFF_R1 = 64418,
|
||||
SPELL_HUNTER_STEADY_SHOT_FOCUS = 77443,
|
||||
SPELL_HUNTER_THRILL_OF_THE_HUNT = 34720,
|
||||
SPELL_HUNTER_THRILL_OF_THE_HUNT = 34720
|
||||
};
|
||||
|
||||
enum MiscSpells
|
||||
{
|
||||
SPELL_DRAENEI_GIFT_OF_THE_NAARU = 59543,
|
||||
SPELL_MAGE_TEMPORAL_DISPLACEMENT = 80354,
|
||||
SPELL_SHAMAN_EXHAUSTION = 57723,
|
||||
SPELL_SHAMAN_SATED = 57724
|
||||
};
|
||||
|
||||
// 90355 - Ancient Hysteria
|
||||
class spell_hun_ancient_hysteria : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
spell_hun_ancient_hysteria() : SpellScriptLoader("spell_hun_ancient_hysteria") { }
|
||||
|
||||
class spell_hun_ancient_hysteria_SpellScript : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_hun_ancient_hysteria_SpellScript);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_HUNTER_INSANITY)
|
||||
|| !sSpellMgr->GetSpellInfo(SPELL_MAGE_TEMPORAL_DISPLACEMENT)
|
||||
|| !sSpellMgr->GetSpellInfo(SPELL_SHAMAN_EXHAUSTION)
|
||||
|| !sSpellMgr->GetSpellInfo(SPELL_SHAMAN_SATED))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
void RemoveInvalidTargets(std::list<WorldObject*>& targets)
|
||||
{
|
||||
targets.remove_if(Trinity::UnitAuraCheck(true, SPELL_HUNTER_INSANITY));
|
||||
targets.remove_if(Trinity::UnitAuraCheck(true, SPELL_MAGE_TEMPORAL_DISPLACEMENT));
|
||||
targets.remove_if(Trinity::UnitAuraCheck(true, SPELL_SHAMAN_EXHAUSTION));
|
||||
targets.remove_if(Trinity::UnitAuraCheck(true, SPELL_SHAMAN_SATED));
|
||||
}
|
||||
|
||||
void ApplyDebuff()
|
||||
{
|
||||
if (Unit* target = GetHitUnit())
|
||||
target->CastSpell(target, SPELL_HUNTER_INSANITY, true);
|
||||
}
|
||||
|
||||
void Register() OVERRIDE
|
||||
{
|
||||
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_hun_ancient_hysteria_SpellScript::RemoveInvalidTargets, EFFECT_ALL, TARGET_UNIT_CASTER_AREA_RAID);
|
||||
AfterHit += SpellHitFn(spell_hun_ancient_hysteria_SpellScript::ApplyDebuff);
|
||||
}
|
||||
};
|
||||
|
||||
SpellScript* GetSpellScript() const OVERRIDE
|
||||
{
|
||||
return new spell_hun_ancient_hysteria_SpellScript();
|
||||
}
|
||||
};
|
||||
|
||||
// 53209 - Chimera Shot
|
||||
@@ -1027,6 +1082,7 @@ class spell_hun_tnt : public SpellScriptLoader
|
||||
|
||||
void AddSC_hunter_spell_scripts()
|
||||
{
|
||||
new spell_hun_ancient_hysteria();
|
||||
new spell_hun_chimera_shot();
|
||||
new spell_hun_cobra_shot();
|
||||
new spell_hun_disengage();
|
||||
|
||||
Reference in new issue
Block a user