From a0de631a8a85ddcdf26bc84df851c558e4a5d3e8 Mon Sep 17 00:00:00 2001 From: Ovahlord Date: Tue, 9 Jul 2024 11:43:30 +0200 Subject: Core/Spells: fixed Heroic Strike damage calculation --- sql/updates/world/cata_classic/2024_07_09_00_world.sql | 3 +++ src/server/scripts/Spells/spell_warrior.cpp | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 sql/updates/world/cata_classic/2024_07_09_00_world.sql diff --git a/sql/updates/world/cata_classic/2024_07_09_00_world.sql b/sql/updates/world/cata_classic/2024_07_09_00_world.sql new file mode 100644 index 00000000000..40073a876e2 --- /dev/null +++ b/sql/updates/world/cata_classic/2024_07_09_00_world.sql @@ -0,0 +1,3 @@ +DELETE FROM `spell_script_names` WHERE `ScriptName`= 'spell_warr_heroic_strike'; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(78, 'spell_warr_heroic_strike'); diff --git a/src/server/scripts/Spells/spell_warrior.cpp b/src/server/scripts/Spells/spell_warrior.cpp index 998964732ff..bcae298cfde 100644 --- a/src/server/scripts/Spells/spell_warrior.cpp +++ b/src/server/scripts/Spells/spell_warrior.cpp @@ -22,7 +22,25 @@ */ #include "ScriptMgr.h" +#include "SpellScript.h" +#include "Unit.h" + +// 78 - Heroic Strike +class spell_warr_heroic_strike : public SpellScript +{ + // Damage = {8+$ap*60/100} + void CalculateDamage(Unit* /*victim*/, int32& damage, int32& /*flatMod*/, float& /*pctMod*/) + { + damage = static_cast(8 + GetCaster()->GetTotalAttackPowerValue(BASE_ATTACK) * 0.6f); + } + + void Register() override + { + CalcDamage += SpellCalcDamageFn(spell_warr_heroic_strike::CalculateDamage); + } +}; void AddSC_warrior_spell_scripts() { + RegisterSpellScript(spell_warr_heroic_strike); } -- cgit v1.2.3