mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-02-02 15:17:27 +01:00
Core/Spells: fixed Savage Defender aura script and fixed mastery bonus
* fixed some startup errors
This commit is contained in:
9
sql/updates/world/custom/custom_2018_07_22_00_world.sql
Normal file
9
sql/updates/world/custom/custom_2018_07_22_00_world.sql
Normal file
@@ -0,0 +1,9 @@
|
||||
DELETE FROM `spell_script_names` WHERE `ScriptName` IN
|
||||
('spell_flame_warden_lava_eruption',
|
||||
'spell_omega_stance_spider_effect');
|
||||
|
||||
DELETE FROM `achievement_criteria_data` WHERE `ScriptName`= 'achievement_hate_that_song';
|
||||
|
||||
DELETE FROM `spell_proc` WHERE `SpellId` IN (62600);
|
||||
INSERT INTO `spell_proc` (`SpellId`, `SpellFamilyName`, `SpellFamilyMask0`, `SpellFamilyMask1`, `SpellFamilyMask2`, `ProcFlags`, `SpellTypeMask`, `SpellPhaseMask`, `HitMask`, `AttributesMask`, `Cooldown`, `Charges`, `Chance`) VALUES
|
||||
(62600, 0, 0, 0, 0, 0, 1, 2, 2, 32, 0, 0, 50);
|
||||
@@ -90,9 +90,6 @@ enum Events
|
||||
|
||||
enum Spells
|
||||
{
|
||||
// Flame Warden
|
||||
SPELL_LAVA_ERUPTION_VISUAL = 97317,
|
||||
|
||||
// Anraphet
|
||||
SPELL_DESTRUCTION_PROTOCOL = 77437,
|
||||
SPELL_ALPHA_BEAMS = 76184,
|
||||
@@ -103,7 +100,10 @@ enum Spells
|
||||
// Omega Stance
|
||||
SPELL_OMEGA_STANCE_SUMMON = 77106,
|
||||
SPELL_OMEGA_STANCE = 75622,
|
||||
SPELL_OMEGA_STANCE_SPIDER_TRIGGER = 77121
|
||||
SPELL_OMEGA_STANCE_SPIDER_TRIGGER = 77121,
|
||||
|
||||
// Flame Warden
|
||||
SPELL_LAVA_ERUPTION_VISUAL = 97317
|
||||
};
|
||||
|
||||
enum Actions
|
||||
@@ -592,39 +592,6 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
// 77273 Lava Eruption
|
||||
class spell_flame_warden_lava_eruption : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
spell_flame_warden_lava_eruption() : SpellScriptLoader("spell_flame_warden_lava_eruption") { }
|
||||
|
||||
class spell_flame_warden_lava_eruption_SpellScript : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_flame_warden_lava_eruption_SpellScript);
|
||||
|
||||
void HandleScript(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
GetHitUnit()->RemoveAurasDueToSpell(GetEffectValue());
|
||||
}
|
||||
|
||||
void OnTargetSelect(WorldObject*& target)
|
||||
{
|
||||
if (Unit* unit = target->ToUnit())
|
||||
unit->CastSpell(nullptr, SPELL_LAVA_ERUPTION_VISUAL);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnObjectTargetSelect += SpellObjectTargetSelectFn(spell_flame_warden_lava_eruption_SpellScript::OnTargetSelect, EFFECT_0, TARGET_DEST_TARGET_ENEMY);
|
||||
}
|
||||
};
|
||||
|
||||
SpellScript* GetSpellScript() const override
|
||||
{
|
||||
return new spell_flame_warden_lava_eruption_SpellScript();
|
||||
}
|
||||
};
|
||||
|
||||
// 77333 Whirling Winds: This script handles Whirling Wind's movement.
|
||||
class spell_whirling_winds_movement : public SpellScriptLoader
|
||||
{
|
||||
@@ -897,7 +864,6 @@ void AddSC_boss_anraphet()
|
||||
new npc_brann_bronzebeard_anraphet();
|
||||
new npc_alpha_beam();
|
||||
new npc_omega_stance();
|
||||
new spell_flame_warden_lava_eruption();
|
||||
new spell_whirling_winds_movement();
|
||||
new spell_anraphet_destruction_protocol();
|
||||
new spell_anraphet_alpha_beams();
|
||||
|
||||
@@ -103,7 +103,8 @@ enum DruidSpellIconIds
|
||||
SPELL_ICON_ID_NATURES_BOUNTY = 197,
|
||||
SPELL_ICON_ID_DREAMSTATE = 2255,
|
||||
SPELL_ICON_ID_GLYPH_OF_INNERVATE = 62,
|
||||
SPELL_ICON_ID_EUPHORIA = 4431
|
||||
SPELL_ICON_ID_EUPHORIA = 4431,
|
||||
SPELL_ICON_ID_SAVAGE_DEFENDER = 146,
|
||||
};
|
||||
|
||||
enum MiscSpells
|
||||
@@ -128,7 +129,7 @@ class spell_dru_berserk : public AuraScript
|
||||
|
||||
void Register() override
|
||||
{
|
||||
AfterEffectApply += AuraEffectApplyFn(spell_dru_berserk::HandleEffectApply, EFFECT_1, SPELL_AURA_ADD_FLAT_MODIFIER, AURA_EFFECT_HANDLE_REAL);
|
||||
AfterEffectApply += AuraEffectApplyFn(spell_dru_berserk::HandleEffectApply, EFFECT_1, SPELL_AURA_ADD_PCT_MODIFIER, AURA_EFFECT_HANDLE_REAL);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -892,53 +893,27 @@ class spell_dru_rip : public SpellScriptLoader
|
||||
};
|
||||
|
||||
// 62606 - Savage Defense
|
||||
class spell_dru_savage_defense : public SpellScriptLoader
|
||||
class spell_dru_savage_defense : public AuraScript
|
||||
{
|
||||
public:
|
||||
spell_dru_savage_defense() : SpellScriptLoader("spell_dru_savage_defense") { }
|
||||
PrepareAuraScript(spell_dru_savage_defense);
|
||||
|
||||
class spell_dru_savage_defense_AuraScript : public AuraScript
|
||||
{
|
||||
PrepareAuraScript(spell_dru_savage_defense_AuraScript);
|
||||
void HandleProc(AuraEffect const* aurEff, ProcEventInfo& /*eventInfo*/)
|
||||
{
|
||||
PreventDefaultAction();
|
||||
Unit* target = GetTarget();
|
||||
|
||||
public:
|
||||
spell_dru_savage_defense_AuraScript()
|
||||
{
|
||||
absorbPct = 0;
|
||||
}
|
||||
uint32 absorbPct = GetSpellInfo()->Effects[EFFECT_0].CalcValue(target);
|
||||
if (AuraEffect* masteryAurEff = target->GetDummyAuraEffect(SPELLFAMILY_HUNTER, SPELL_ICON_ID_SAVAGE_DEFENDER, EFFECT_0)) // no idea why hunter...
|
||||
absorbPct += masteryAurEff->GetAmount();
|
||||
|
||||
private:
|
||||
uint32 absorbPct;
|
||||
int32 amount = uint32(CalculatePct(GetTarget()->GetTotalAttackPowerValue(BASE_ATTACK), absorbPct));
|
||||
target->CastCustomSpell(GetSpellInfo()->Effects[aurEff->GetEffIndex()].TriggerSpell, SPELLVALUE_BASE_POINT0, amount, target, true);
|
||||
}
|
||||
|
||||
bool Load() override
|
||||
{
|
||||
absorbPct = GetSpellInfo()->Effects[EFFECT_0].CalcValue(GetCaster());
|
||||
return true;
|
||||
}
|
||||
|
||||
void CalculateAmount(AuraEffect const* /*aurEff*/, int32 & amount, bool & /*canBeRecalculated*/)
|
||||
{
|
||||
// Set absorbtion amount to unlimited
|
||||
amount = -1;
|
||||
}
|
||||
|
||||
void Absorb(AuraEffect* aurEff, DamageInfo & /*dmgInfo*/, uint32 & absorbAmount)
|
||||
{
|
||||
absorbAmount = uint32(CalculatePct(GetTarget()->GetTotalAttackPowerValue(BASE_ATTACK), absorbPct));
|
||||
aurEff->SetAmount(0);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_dru_savage_defense_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_SCHOOL_ABSORB);
|
||||
OnEffectAbsorb += AuraEffectAbsorbFn(spell_dru_savage_defense_AuraScript::Absorb, EFFECT_0);
|
||||
}
|
||||
};
|
||||
|
||||
AuraScript* GetAuraScript() const override
|
||||
{
|
||||
return new spell_dru_savage_defense_AuraScript();
|
||||
}
|
||||
void Register() override
|
||||
{
|
||||
OnEffectProc += AuraEffectProcFn(spell_dru_savage_defense::HandleProc, EFFECT_0, SPELL_AURA_PROC_TRIGGER_SPELL);
|
||||
}
|
||||
};
|
||||
|
||||
// 52610 - Savage Roar
|
||||
@@ -1906,7 +1881,7 @@ void AddSC_druid_spell_scripts()
|
||||
new spell_dru_predatory_strikes();
|
||||
new spell_dru_rejuvenation();
|
||||
new spell_dru_rip();
|
||||
new spell_dru_savage_defense();
|
||||
RegisterAuraScript(spell_dru_savage_defense);
|
||||
new spell_dru_savage_roar();
|
||||
new spell_dru_starfall_dummy();
|
||||
new spell_dru_stampede();
|
||||
|
||||
Reference in New Issue
Block a user