aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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);
}