mirror of
https://github.com/araxiaonline/TrinityCore.git
synced 2026-06-13 03:32:28 -04:00
Scripts/Spells: Implement Feral Lunge (#31746)
This commit is contained in:
committed by
GitHub
parent
068c21528c
commit
88268721c8
8
sql/updates/world/master/2026_03_29_00_world.sql
Normal file
8
sql/updates/world/master/2026_03_29_00_world.sql
Normal file
@@ -0,0 +1,8 @@
|
||||
DELETE FROM `spell_script_names` WHERE `spell_id` IN (196884, 215802);
|
||||
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
|
||||
(196884, 'spell_sha_feral_lunge'),
|
||||
(215802, 'spell_sha_feral_lunge_damage');
|
||||
|
||||
DELETE FROM `jump_charge_params` WHERE `id` = 1211;
|
||||
INSERT INTO `jump_charge_params` (`id`, `speed`, `treatSpeedAsMoveTimeSeconds`, `unlimitedSpeed`, `minHeight`, `maxHeight`, `spellVisualId`, `progressCurveId`, `parabolicCurveId`, `triggerSpellId`) VALUES
|
||||
(1211, 42, 0, 0, 2, NULL, NULL, NULL, 79789, 215802);
|
||||
@@ -77,6 +77,8 @@ enum ShamanSpells
|
||||
SPELL_SHAMAN_ELEMENTAL_WEAPONS_BUFF = 408390,
|
||||
SPELL_SHAMAN_ENERGY_SURGE = 40465,
|
||||
SPELL_SHAMAN_ENHANCED_ELEMENTS = 77223,
|
||||
SPELL_SHAMAN_FERAL_LUNGE = 196884,
|
||||
SPELL_SHAMAN_FERAL_LUNGE_DAMAGE = 215802,
|
||||
SPELL_SHAMAN_FIRE_NOVA_DAMAGE = 333977,
|
||||
SPELL_SHAMAN_FIRE_NOVA_ENABLER = 466622,
|
||||
SPELL_SHAMAN_FLAME_SHOCK = 188389,
|
||||
@@ -1140,6 +1142,52 @@ class spell_sha_elemental_weapons : public AuraScript
|
||||
}
|
||||
};
|
||||
|
||||
// 196884 - Feral Lunge
|
||||
class spell_sha_feral_lunge : public SpellScript
|
||||
{
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return ValidateSpellInfo({ SPELL_SHAMAN_GHOST_WOLF });
|
||||
}
|
||||
|
||||
bool Load() override
|
||||
{
|
||||
return !GetCaster()->HasAura(SPELL_SHAMAN_GHOST_WOLF);
|
||||
}
|
||||
|
||||
void OnPrecast() override
|
||||
{
|
||||
Unit* caster = GetCaster();
|
||||
caster->CastSpell(caster, SPELL_SHAMAN_GHOST_WOLF, CastSpellExtraArgsInit{
|
||||
.TriggerFlags = TRIGGERED_IGNORE_GCD | TRIGGERED_IGNORE_POWER_COST | TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR,
|
||||
.TriggeringSpell = GetSpell()
|
||||
});
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
// 215802 - Feral Lunge Damage
|
||||
class spell_sha_feral_lunge_damage : public SpellScript
|
||||
{
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return ValidateSpellInfo({ SPELL_SHAMAN_GHOST_WOLF });
|
||||
}
|
||||
|
||||
void HandleHit(SpellEffIndex /*effIndex*/) const
|
||||
{
|
||||
GetCaster()->RemoveAurasDueToSpell(SPELL_SHAMAN_GHOST_WOLF);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectHitTarget += SpellEffectFn(spell_sha_feral_lunge_damage::HandleHit, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE);
|
||||
}
|
||||
};
|
||||
|
||||
struct FireNovaTargetCheck
|
||||
{
|
||||
float MaxSearchRange = 40.0f;
|
||||
@@ -3459,6 +3507,8 @@ void AddSC_shaman_spell_scripts()
|
||||
RegisterSpellScript(spell_sha_earthquake_tick);
|
||||
RegisterSpellScript(spell_sha_elemental_blast);
|
||||
RegisterSpellScript(spell_sha_elemental_weapons);
|
||||
RegisterSpellScript(spell_sha_feral_lunge);
|
||||
RegisterSpellScript(spell_sha_feral_lunge_damage);
|
||||
RegisterSpellScript(spell_sha_fire_nova);
|
||||
RegisterSpellScript(spell_sha_flame_shock_fire_nova_enabler);
|
||||
RegisterSpellScript(spell_sha_flametongue_weapon);
|
||||
|
||||
Reference in New Issue
Block a user