mirror of
https://github.com/araxiaonline/TrinityCore.git
synced 2026-06-13 03:32:28 -04:00
Scripts/Spells: Use form-dependent bleed spells for druid spell Thrash (#31513)
This commit is contained in:
6
sql/updates/world/master/2026_02_01_05_world.sql
Normal file
6
sql/updates/world/master/2026_02_01_05_world.sql
Normal file
@@ -0,0 +1,6 @@
|
||||
DELETE FROM `spell_script_names` WHERE `ScriptName` IN ('spell_dru_thrash');
|
||||
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
|
||||
(77758, 'spell_dru_thrash'),
|
||||
(106830, 'spell_dru_thrash');
|
||||
|
||||
UPDATE `spell_script_names` SET `ScriptName` = 'spell_dru_thrash_bear_bleed' WHERE `spell_id` = 192090 AND `ScriptName` = 'spell_dru_thrash_aura';
|
||||
@@ -139,8 +139,9 @@ enum DruidSpells
|
||||
SPELL_DRUID_TRAVEL_FORM = 783,
|
||||
SPELL_DRUID_TREE_OF_LIFE = 33891,
|
||||
SPELL_DRUID_THRASH_BEAR = 77758,
|
||||
SPELL_DRUID_THRASH_BEAR_AURA = 192090,
|
||||
SPELL_DRUID_THRASH_BEAR_BLEED = 192090,
|
||||
SPELL_DRUID_THRASH_CAT = 106830,
|
||||
SPELL_DRUID_THRASH_CAT_BLEED = 405233,
|
||||
SPELL_DRUID_UMBRAL_EMBRACE = 393763,
|
||||
SPELL_DRUID_UMBRAL_INSPIRATION_TALENT = 450418,
|
||||
SPELL_DRUID_UMBRAL_INSPIRATION_AURA = 450419,
|
||||
@@ -2154,22 +2155,27 @@ class spell_dru_thorns_of_iron_damage : public SpellScript
|
||||
}
|
||||
};
|
||||
|
||||
// 77758 - Thrash
|
||||
// 77758 - Thrash (Bear Form)
|
||||
// 106830 - Thrash (Cat Form)
|
||||
class spell_dru_thrash : public SpellScript
|
||||
{
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return ValidateSpellInfo({ SPELL_DRUID_THRASH_BEAR_AURA });
|
||||
return ValidateSpellInfo
|
||||
({
|
||||
SPELL_DRUID_THRASH_BEAR_BLEED,
|
||||
SPELL_DRUID_THRASH_CAT_BLEED
|
||||
});
|
||||
}
|
||||
|
||||
void HandleOnHitTarget(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
if (Unit* hitUnit = GetHitUnit())
|
||||
{
|
||||
Unit* caster = GetCaster();
|
||||
uint32 bleedSpell = (GetSpellInfo()->Id == SPELL_DRUID_THRASH_CAT) ? SPELL_DRUID_THRASH_CAT_BLEED : SPELL_DRUID_THRASH_BEAR_BLEED;
|
||||
|
||||
caster->CastSpell(hitUnit, SPELL_DRUID_THRASH_BEAR_AURA, TRIGGERED_FULL_MASK);
|
||||
}
|
||||
GetCaster()->CastSpell(GetHitUnit(), bleedSpell, CastSpellExtraArgsInit{
|
||||
.TriggerFlags = TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR,
|
||||
.TriggeringSpell = GetSpell()
|
||||
});
|
||||
}
|
||||
|
||||
void Register() override
|
||||
@@ -2178,24 +2184,31 @@ class spell_dru_thrash : public SpellScript
|
||||
}
|
||||
};
|
||||
|
||||
// 192090 - Thrash (Aura) - SPELL_DRUID_THRASH_BEAR_AURA
|
||||
class spell_dru_thrash_aura : public AuraScript
|
||||
// 192090 - Thrash (Bear Bleed)
|
||||
class spell_dru_thrash_bear_bleed : public AuraScript
|
||||
{
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||
{
|
||||
return ValidateSpellInfo({ SPELL_DRUID_BLOOD_FRENZY_AURA, SPELL_DRUID_BLOOD_FRENZY_RAGE_GAIN });
|
||||
return ValidateSpellInfo
|
||||
({
|
||||
SPELL_DRUID_BLOOD_FRENZY_AURA,
|
||||
SPELL_DRUID_BLOOD_FRENZY_RAGE_GAIN
|
||||
});
|
||||
}
|
||||
|
||||
void HandlePeriodic(AuraEffect const* /*aurEff*/)
|
||||
{
|
||||
if (Unit* caster = GetCaster())
|
||||
if (caster->HasAura(SPELL_DRUID_BLOOD_FRENZY_AURA))
|
||||
caster->CastSpell(caster, SPELL_DRUID_BLOOD_FRENZY_RAGE_GAIN, true);
|
||||
Unit* caster = GetCaster();
|
||||
if (!caster)
|
||||
return;
|
||||
|
||||
if (caster->HasAura(SPELL_DRUID_BLOOD_FRENZY_AURA))
|
||||
caster->CastSpell(caster, SPELL_DRUID_BLOOD_FRENZY_RAGE_GAIN, true);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectPeriodic += AuraEffectPeriodicFn(spell_dru_thrash_aura::HandlePeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE);
|
||||
OnEffectPeriodic += AuraEffectPeriodicFn(spell_dru_thrash_bear_bleed::HandlePeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DAMAGE);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -2643,7 +2656,7 @@ void AddSC_druid_spell_scripts()
|
||||
RegisterSpellScript(spell_dru_t10_restoration_4p_bonus_dummy);
|
||||
RegisterSpellScript(spell_dru_thorns_of_iron_damage);
|
||||
RegisterSpellScript(spell_dru_thrash);
|
||||
RegisterSpellScript(spell_dru_thrash_aura);
|
||||
RegisterSpellScript(spell_dru_thrash_bear_bleed);
|
||||
RegisterSpellScript(spell_dru_travel_form);
|
||||
RegisterSpellAndAuraScriptPair(spell_dru_travel_form_dummy, spell_dru_travel_form_dummy_aura);
|
||||
RegisterSpellAndAuraScriptPair(spell_dru_tiger_dash, spell_dru_tiger_dash_aura);
|
||||
|
||||
Reference in New Issue
Block a user