aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOvahlord <dreadkiller@gmx.de>2024-07-09 11:43:30 +0200
committerOvahlord <dreadkiller@gmx.de>2024-07-09 11:43:30 +0200
commita0de631a8a85ddcdf26bc84df851c558e4a5d3e8 (patch)
treeca8159a35fae4da5bd9edcf700a9271234bffa63
parent9c67bdf329ad1fb82ad7d7a9af0a5735dbf9fdf9 (diff)
Core/Spells: fixed Heroic Strike damage calculation
-rw-r--r--sql/updates/world/cata_classic/2024_07_09_00_world.sql3
-rw-r--r--src/server/scripts/Spells/spell_warrior.cpp18
2 files changed, 21 insertions, 0 deletions
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<int32>(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);
}