Skip to content

Commit

Permalink
Merge pull request #401 from TrinityCore/master
Browse files Browse the repository at this point in the history
Update 12.31.24
  • Loading branch information
KamiliaBlow authored Dec 31, 2024
2 parents 07d01dc + 5436a6a commit 8ba267e
Show file tree
Hide file tree
Showing 16 changed files with 142,228 additions and 22 deletions.
91,988 changes: 91,988 additions & 0 deletions sql/updates/hotfixes/master/2024_12_30_00_hotfixes.sql

Large diffs are not rendered by default.

5,633 changes: 5,633 additions & 0 deletions sql/updates/hotfixes/master/2024_12_30_01_hotfixes_enUS.sql

Large diffs are not rendered by default.

4,447 changes: 4,447 additions & 0 deletions sql/updates/hotfixes/master/2024_12_30_02_hotfixes_deDE.sql

Large diffs are not rendered by default.

4,448 changes: 4,448 additions & 0 deletions sql/updates/hotfixes/master/2024_12_30_03_hotfixes_esES.sql

Large diffs are not rendered by default.

4,447 changes: 4,447 additions & 0 deletions sql/updates/hotfixes/master/2024_12_30_04_hotfixes_esMX.sql

Large diffs are not rendered by default.

4,447 changes: 4,447 additions & 0 deletions sql/updates/hotfixes/master/2024_12_30_05_hotfixes_frFR.sql

Large diffs are not rendered by default.

4,447 changes: 4,447 additions & 0 deletions sql/updates/hotfixes/master/2024_12_30_06_hotfixes_itIT.sql

Large diffs are not rendered by default.

4,447 changes: 4,447 additions & 0 deletions sql/updates/hotfixes/master/2024_12_30_07_hotfixes_koKR.sql

Large diffs are not rendered by default.

4,447 changes: 4,447 additions & 0 deletions sql/updates/hotfixes/master/2024_12_30_08_hotfixes_ptBR.sql

Large diffs are not rendered by default.

4,447 changes: 4,447 additions & 0 deletions sql/updates/hotfixes/master/2024_12_30_09_hotfixes_ruRU.sql

Large diffs are not rendered by default.

4,447 changes: 4,447 additions & 0 deletions sql/updates/hotfixes/master/2024_12_30_10_hotfixes_zhCN.sql

Large diffs are not rendered by default.

4,447 changes: 4,447 additions & 0 deletions sql/updates/hotfixes/master/2024_12_30_11_hotfixes_zhTW.sql

Large diffs are not rendered by default.

4 changes: 4 additions & 0 deletions sql/updates/world/master/2024_12_30_00_world.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
DELETE FROM `spell_script_names` WHERE `ScriptName` IN ('spell_dh_calcified_spikes', 'spell_dh_calcified_spikes_periodic');
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(203819, 'spell_dh_calcified_spikes'),
(391171, 'spell_dh_calcified_spikes_periodic');
7 changes: 7 additions & 0 deletions sql/updates/world/master/2024_12_30_01_world.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
DELETE FROM `spell_proc` WHERE `SpellId` IN (390212);
INSERT INTO `spell_proc` (`SpellId`,`SchoolMask`,`SpellFamilyName`,`SpellFamilyMask0`,`SpellFamilyMask1`,`SpellFamilyMask2`,`SpellFamilyMask3`,`ProcFlags`,`ProcFlags2`,`SpellTypeMask`,`SpellPhaseMask`,`HitMask`,`AttributesMask`,`DisableEffectsMask`,`ProcsPerMinute`,`Chance`,`Cooldown`,`Charges`) VALUES
(390212,0x00,107,0x00001000,0x00000040,0x00000000,0x00000000,0x0,0x0,0x1,0x1,0x0,0x12,0x0,0,0,0,0); -- Restless Hunter

DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_dh_restless_hunter';
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(162264, 'spell_dh_restless_hunter');
3 changes: 3 additions & 0 deletions sql/updates/world/master/2024_12_30_02_world.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_dh_fiery_brand';
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(204021, 'spell_dh_fiery_brand');
144 changes: 122 additions & 22 deletions src/server/scripts/Spells/spell_dh.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,8 @@ enum DemonHunterSpells
SPELL_DH_BLUR_TRIGGER = 198589,
SPELL_DH_BURNING_ALIVE = 207739,
SPELL_DH_BURNING_ALIVE_TARGET_SELECTOR = 207760,
SPELL_DH_CALCIFIED_SPIKES_TALENT = 389720,
SPELL_DH_CALCIFIED_SPIKES_MOD_DAMAGE = 391171,
SPELL_DH_CHAOS_NOVA = 179057,
SPELL_DH_CHAOS_STRIKE = 162794,
SPELL_DH_CHAOS_STRIKE_ENERGIZE = 193840,
Expand Down Expand Up @@ -120,8 +122,9 @@ enum DemonHunterSpells
SPELL_DH_FELBLADE_COOLDOWN_RESET_PROC_VISUAL = 204497,
SPELL_DH_FELBLADE_DAMAGE = 213243,
SPELL_DH_FIERY_BRAND = 204021,
SPELL_DH_FIERY_BRAND_DMG_REDUCTION_DEBUFF = 207744,
SPELL_DH_FIERY_BRAND_DOT = 207771,
SPELL_DH_FIERY_BRAND_RANK_2 = 320962,
SPELL_DH_FIERY_BRAND_DEBUFF_RANK_1 = 207744,
SPELL_DH_FIERY_BRAND_DEBUFF_RANK_2 = 207771,
SPELL_DH_FIRST_BLOOD = 206416,
SPELL_DH_FLAME_CRASH = 227322,
SPELL_DH_FRAILTY = 224509,
Expand Down Expand Up @@ -163,6 +166,8 @@ enum DemonHunterSpells
SPELL_DH_RAIN_OF_CHAOS = 205628,
SPELL_DH_RAIN_OF_CHAOS_IMPACT = 232538,
SPELL_DH_RAZOR_SPIKES = 210003,
SPELL_DH_RESTLESS_HUNTER_TALENT = 390142,
SPELL_DH_RESTLESS_HUNTER_BUFF = 390212,
SPELL_DH_SEVER = 235964,
SPELL_DH_SHATTER_SOUL = 209980,
SPELL_DH_SHATTER_SOUL_1 = 209981,
Expand Down Expand Up @@ -245,6 +250,54 @@ enum DemonHunterSpellCategories
SPELL_CATEGORY_DH_BLADE_DANCE = 1640
};

// Called by 203819 - Demon Spikes
class spell_dh_calcified_spikes : public AuraScript
{
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_DH_CALCIFIED_SPIKES_TALENT, SPELL_DH_CALCIFIED_SPIKES_MOD_DAMAGE });
}

bool Load() override
{
return GetUnitOwner()->HasAura(SPELL_DH_CALCIFIED_SPIKES_TALENT);
}

void HandleAfterRemove(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/) const
{
Unit* target = GetTarget();
target->CastSpell(target, SPELL_DH_CALCIFIED_SPIKES_MOD_DAMAGE, CastSpellExtraArgsInit{
.TriggerFlags = TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR,
.TriggeringAura = aurEff
});
}

void Register() override
{
AfterEffectRemove += AuraEffectRemoveFn(spell_dh_calcified_spikes::HandleAfterRemove, EFFECT_1, SPELL_AURA_MOD_ARMOR_PCT_FROM_STAT, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
}
};

// 391171 - Calcified Spikes
class spell_dh_calcified_spikes_periodic : public AuraScript
{
bool Validate(SpellInfo const* spellInfo) override
{
return ValidateSpellEffect({ { spellInfo->Id, EFFECT_1 } });
}

void HandlePeriodic(AuraEffect const* /*aurEff*/) const
{
if (AuraEffect* damagePctTaken = GetEffect(EFFECT_0))
damagePctTaken->ChangeAmount(damagePctTaken->GetAmount() + 1);
}

void Register() override
{
OnEffectPeriodic += AuraEffectPeriodicFn(spell_dh_calcified_spikes_periodic::HandlePeriodic, EFFECT_1, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
}
};

// 197125 - Chaos Strike
class spell_dh_chaos_strike : public AuraScript
{
Expand Down Expand Up @@ -728,6 +781,29 @@ class spell_dh_felblade_cooldown_reset_proc : public AuraScript
}
};

// 204021 - Fiery Brand
class spell_dh_fiery_brand : public SpellScript
{
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_DH_FIERY_BRAND_DEBUFF_RANK_1, SPELL_DH_FIERY_BRAND_DEBUFF_RANK_2, SPELL_DH_FIERY_BRAND_RANK_2 });
}

void HandleDamage(SpellEffIndex /*effIndex*/) const
{
GetCaster()->CastSpell(GetHitUnit(), GetCaster()->HasAura(SPELL_DH_FIERY_BRAND_RANK_2) ? SPELL_DH_FIERY_BRAND_DEBUFF_RANK_2 : SPELL_DH_FIERY_BRAND_DEBUFF_RANK_1,
CastSpellExtraArgsInit{
.TriggerFlags = TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR,
.TriggeringSpell = GetSpell()
});
}

void Register() override
{
OnEffectHitTarget += SpellEffectFn(spell_dh_fiery_brand::HandleDamage, EFFECT_1, SPELL_EFFECT_SCHOOL_DAMAGE);
}
};

// 206416 - First Blood
class spell_dh_first_blood : public AuraScript
{
Expand Down Expand Up @@ -961,6 +1037,38 @@ class spell_dh_glide_timer : public AuraScript
}
};

// Called by 162264 - Metamorphosis
class spell_dh_restless_hunter : public AuraScript
{
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_DH_RESTLESS_HUNTER_TALENT, SPELL_DH_RESTLESS_HUNTER_BUFF, SPELL_DH_FEL_RUSH })
&& sSpellCategoryStore.HasRecord(sSpellMgr->AssertSpellInfo(SPELL_DH_FEL_RUSH, DIFFICULTY_NONE)->ChargeCategoryId);
}

bool Load() override
{
return GetCaster()->HasAura(SPELL_DH_RESTLESS_HUNTER_TALENT);
}

void OnRemove(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/) const
{
Unit* target = GetTarget();

target->CastSpell(target, SPELL_DH_RESTLESS_HUNTER_BUFF, CastSpellExtraArgsInit{
.TriggerFlags = TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR,
.TriggeringAura = aurEff
});

target->GetSpellHistory()->RestoreCharge(sSpellMgr->AssertSpellInfo(SPELL_DH_FEL_RUSH, GetCastDifficulty())->ChargeCategoryId);
}

void Register() override
{
AfterEffectRemove += AuraEffectRemoveFn(spell_dh_restless_hunter::OnRemove, EFFECT_0, SPELL_AURA_TRANSFORM, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
}
};

// 388116 - Shattered Destiny
class spell_dh_shattered_destiny : public AuraScript
{
Expand Down Expand Up @@ -1058,26 +1166,14 @@ class spell_dh_soul_furnace_conduit : public AuraScript
// 207684 - Sigil of Misery
// 202137 - Sigil of Silence
template<uint32 TriggerSpellId>
class areatrigger_dh_generic_sigil : public AreaTriggerEntityScript
struct areatrigger_dh_generic_sigil : AreaTriggerAI
{
public:
areatrigger_dh_generic_sigil(char const* script) : AreaTriggerEntityScript(script) { }

template<uint32 Trigger>
struct areatrigger_dh_generic_sigilAI : AreaTriggerAI
{
areatrigger_dh_generic_sigilAI(AreaTrigger* at) : AreaTriggerAI(at) { }

void OnRemove() override
{
if (Unit* caster = at->GetCaster())
caster->CastSpell(at->GetPosition(), Trigger);
}
};
using AreaTriggerAI::AreaTriggerAI;

AreaTriggerAI* GetAI(AreaTrigger* at) const override
void OnRemove() override
{
return new areatrigger_dh_generic_sigilAI<TriggerSpellId>(at);
if (Unit* caster = at->GetCaster())
caster->CastSpell(at->GetPosition(), TriggerSpellId);
}
};

Expand Down Expand Up @@ -3920,6 +4016,8 @@ class DemonHunterAllowSpec : public PlayerScript

void AddSC_demon_hunter_spell_scripts()
{
RegisterSpellScript(spell_dh_calcified_spikes);
RegisterSpellScript(spell_dh_calcified_spikes_periodic);
RegisterSpellScript(spell_dh_chaos_strike);
RegisterSpellScript(spell_dh_chaotic_transformation);
RegisterSpellScript(spell_dh_charred_warblades);
Expand All @@ -3936,17 +4034,19 @@ void AddSC_demon_hunter_spell_scripts()
RegisterSpellScript(spell_dh_felblade);
RegisterSpellScript(spell_dh_felblade_charge);
RegisterSpellScript(spell_dh_felblade_cooldown_reset_proc);
RegisterSpellScript(spell_dh_fiery_brand);
RegisterSpellScript(spell_dh_furious_gaze);
RegisterSpellScript(spell_dh_last_resort);
RegisterSpellScript(spell_dh_restless_hunter);
RegisterSpellScript(spell_dh_shattered_destiny);
RegisterSpellScript(spell_dh_sigil_of_chains);
RegisterSpellScript(spell_dh_tactical_retreat);
RegisterSpellScript(spell_dh_vengeful_retreat_damage);

RegisterAreaTriggerAI(areatrigger_dh_darkness);
new areatrigger_dh_generic_sigil<SPELL_DH_SIGIL_OF_SILENCE_AOE>("areatrigger_dh_sigil_of_silence");
new areatrigger_dh_generic_sigil<SPELL_DH_SIGIL_OF_MISERY_AOE>("areatrigger_dh_sigil_of_misery");
new areatrigger_dh_generic_sigil<SPELL_DH_SIGIL_OF_FLAME_AOE>("areatrigger_dh_sigil_of_flame");
new GenericAreaTriggerEntityScript<areatrigger_dh_generic_sigil<SPELL_DH_SIGIL_OF_SILENCE_AOE>>("areatrigger_dh_sigil_of_silence");
new GenericAreaTriggerEntityScript<areatrigger_dh_generic_sigil<SPELL_DH_SIGIL_OF_MISERY_AOE>>("areatrigger_dh_sigil_of_misery");
new GenericAreaTriggerEntityScript<areatrigger_dh_generic_sigil<SPELL_DH_SIGIL_OF_FLAME_AOE>>("areatrigger_dh_sigil_of_flame");
RegisterAreaTriggerAI(areatrigger_dh_sigil_of_chains);

// Havoc
Expand Down

0 comments on commit 8ba267e

Please sign in to comment.