Core/Spells: Fix druid talent "Stampede"
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
DELETE FROM `spell_proc_event` WHERE `entry`IN (-78892,-81021);
|
||||
INSERT INTO `spell_proc_event` (`entry`, `SchoolMask`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `procFlags`, `procEx`, `ppmRate`, `CustomChance`, `Cooldown`) VALUES
|
||||
(-78892, 0, 7, 0, 0, 0x30, 0x1000, 0, 0, 100, 0),
|
||||
(-81021, 0, 0, 0, 0, 0, 0x10, 0, 0, 100, 0);
|
||||
|
||||
DELETE FROM `spell_script_names` WHERE `spell_id`=-78892;
|
||||
INSERT INTO `spell_script_names`(`spell_id`, `ScriptName`) VALUES
|
||||
(-78892,'spell_dru_stampede');
|
||||
|
||||
DELETE FROM `spell_ranks` WHERE `first_spell_id` IN (81016,81021);
|
||||
INSERT INTO `spell_ranks` (`first_spell_id`, `spell_id`, `rank`) VALUES
|
||||
-- Bär
|
||||
(81016, 81016, 1),
|
||||
(81016, 81017, 2),
|
||||
-- Cat
|
||||
(81021, 81021, 1),
|
||||
(81021, 81022, 2);
|
||||
@@ -3756,6 +3756,9 @@ void SpellMgr::LoadSpellInfoCorrections()
|
||||
case 5420: // Tree of Life (Passive)
|
||||
spellInfo->Stances = 1 << (FORM_TREE - 1);
|
||||
break;
|
||||
case 49376: // Feral Charge (Cat Form)
|
||||
spellInfo->AttributesEx3 &= ~SPELL_ATTR3_CANT_TRIGGER_PROC;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -39,12 +39,15 @@ enum DruidSpells
|
||||
SPELL_DRUID_SOLAR_ECLIPSE = 48517,
|
||||
SPELL_DRUID_LUNAR_ECLIPSE = 48518,
|
||||
SPELL_DRUID_ENRAGE_MOD_DAMAGE = 51185,
|
||||
SPELL_DRUID_FERAL_CHARGE_BEAR = 16979,
|
||||
SPELL_DRUID_FERAL_CHARGE_CAT = 49376,
|
||||
SPELL_DRUID_GLYPH_OF_INNERVATE = 54833,
|
||||
SPELL_DRUID_GLYPH_OF_STARFIRE = 54846,
|
||||
SPELL_DRUID_GLYPH_OF_TYPHOON = 62135,
|
||||
SPELL_DRUID_IDOL_OF_FERAL_SHADOWS = 34241,
|
||||
SPELL_DRUID_IDOL_OF_WORSHIP = 60774,
|
||||
SPELL_DRUID_INCREASED_MOONFIRE_DURATION = 38414,
|
||||
SPELL_DRUID_ITEM_T8_BALANCE_RELIC = 64950,
|
||||
SPELL_DRUID_KING_OF_THE_JUNGLE = 48492,
|
||||
SPELL_DRUID_LIFEBLOOM_ENERGIZE = 64372,
|
||||
SPELL_DRUID_LIFEBLOOM_FINAL_HEAL = 33778,
|
||||
@@ -52,8 +55,10 @@ enum DruidSpells
|
||||
SPELL_DRUID_LIVING_SEED_PROC = 48504,
|
||||
SPELL_DRUID_SURVIVAL_INSTINCTS = 50322,
|
||||
SPELL_DRUID_SAVAGE_ROAR = 62071,
|
||||
SPELL_DRUID_TIGER_S_FURY_ENERGIZE = 51178,
|
||||
SPELL_DRUID_ITEM_T8_BALANCE_RELIC = 64950
|
||||
SPELL_DRUID_STAMPEDE_BAER_RANK_1 = 81016,
|
||||
SPELL_DRUID_STAMPEDE_CAT_RANK_1 = 81021,
|
||||
SPELL_DRUID_STAMPEDE_CAT_STATE = 109881,
|
||||
SPELL_DRUID_TIGER_S_FURY_ENERGIZE = 51178
|
||||
};
|
||||
|
||||
// 2912, 5176, 78674 - Starfire, Wrath, and Starsurge
|
||||
@@ -834,6 +839,66 @@ class spell_dru_starfall_dummy : public SpellScriptLoader
|
||||
}
|
||||
};
|
||||
|
||||
// -78892 - Stampede
|
||||
class spell_dru_stampede : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
spell_dru_stampede() : SpellScriptLoader("spell_dru_stampede") { }
|
||||
|
||||
class spell_dru_stampede_AuraScript : public AuraScript
|
||||
{
|
||||
PrepareAuraScript(spell_dru_stampede_AuraScript);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_DRUID_STAMPEDE_BAER_RANK_1) ||
|
||||
!sSpellMgr->GetSpellInfo(SPELL_DRUID_STAMPEDE_CAT_RANK_1) ||
|
||||
!sSpellMgr->GetSpellInfo(SPELL_DRUID_STAMPEDE_CAT_STATE) ||
|
||||
!sSpellMgr->GetSpellInfo(SPELL_DRUID_FERAL_CHARGE_CAT) ||
|
||||
!sSpellMgr->GetSpellInfo(SPELL_DRUID_FERAL_CHARGE_BEAR))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CheckProc(ProcEventInfo& eventInfo)
|
||||
{
|
||||
TC_LOG_ERROR(LOG_FILTER_SPELLS_AURAS, "procSpell: %u", eventInfo.GetDamageInfo()->GetSpellInfo()->Id);
|
||||
return true;
|
||||
}
|
||||
|
||||
void HandleEffectCatProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo)
|
||||
{
|
||||
PreventDefaultAction();
|
||||
if (GetTarget()->GetShapeshiftForm() != FORM_CAT || eventInfo.GetDamageInfo()->GetSpellInfo()->Id != SPELL_DRUID_FERAL_CHARGE_CAT)
|
||||
return;
|
||||
|
||||
GetTarget()->CastSpell(GetTarget(), sSpellMgr->GetSpellWithRank(SPELL_DRUID_STAMPEDE_CAT_RANK_1, GetSpellInfo()->GetRank()), true, NULL, aurEff);
|
||||
GetTarget()->CastSpell(GetTarget(), SPELL_DRUID_STAMPEDE_CAT_STATE, true, NULL, aurEff);
|
||||
}
|
||||
|
||||
void HandleEffectBearProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo)
|
||||
{
|
||||
PreventDefaultAction();
|
||||
if (GetTarget()->GetShapeshiftForm() != FORM_BEAR || eventInfo.GetDamageInfo()->GetSpellInfo()->Id != SPELL_DRUID_FERAL_CHARGE_BEAR)
|
||||
return;
|
||||
|
||||
GetTarget()->CastSpell(GetTarget(), sSpellMgr->GetSpellWithRank(SPELL_DRUID_STAMPEDE_BAER_RANK_1, GetSpellInfo()->GetRank()), true, NULL, aurEff);
|
||||
}
|
||||
|
||||
void Register() OVERRIDE
|
||||
{
|
||||
DoCheckProc += AuraCheckProcFn(spell_dru_stampede_AuraScript::CheckProc);
|
||||
OnEffectProc += AuraEffectProcFn(spell_dru_stampede_AuraScript::HandleEffectCatProc, EFFECT_0, SPELL_AURA_DUMMY);
|
||||
OnEffectProc += AuraEffectProcFn(spell_dru_stampede_AuraScript::HandleEffectBearProc, EFFECT_1, SPELL_AURA_DUMMY);
|
||||
}
|
||||
};
|
||||
|
||||
AuraScript* GetAuraScript() const OVERRIDE
|
||||
{
|
||||
return new spell_dru_stampede_AuraScript();
|
||||
}
|
||||
};
|
||||
|
||||
// 61336 - Survival Instincts
|
||||
class spell_dru_survival_instincts : public SpellScriptLoader
|
||||
{
|
||||
@@ -1065,6 +1130,7 @@ void AddSC_druid_spell_scripts()
|
||||
new spell_dru_savage_defense();
|
||||
new spell_dru_savage_roar();
|
||||
new spell_dru_starfall_dummy();
|
||||
new spell_dru_stampede();
|
||||
new spell_dru_survival_instincts();
|
||||
new spell_dru_swift_flight_passive();
|
||||
new spell_dru_tiger_s_fury();
|
||||
|
||||
Reference in New Issue
Block a user