aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/master/2021_04_12_00_world_draenei_racial_spell.sql10
-rw-r--r--src/server/scripts/Spells/spell_generic.cpp36
2 files changed, 23 insertions, 23 deletions
diff --git a/sql/updates/world/master/2021_04_12_00_world_draenei_racial_spell.sql b/sql/updates/world/master/2021_04_12_00_world_draenei_racial_spell.sql
new file mode 100644
index 00000000000..3cfefaebb3b
--- /dev/null
+++ b/sql/updates/world/master/2021_04_12_00_world_draenei_racial_spell.sql
@@ -0,0 +1,10 @@
+DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_gen_gift_of_naaru';
+INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
+(28880, 'spell_gen_gift_of_naaru'), -- Warrior
+(59542, 'spell_gen_gift_of_naaru'), -- Paladin
+(59543, 'spell_gen_gift_of_naaru'), -- Hunter
+(59544, 'spell_gen_gift_of_naaru'), -- Priest
+(59545, 'spell_gen_gift_of_naaru'), -- Death Knight
+(59547, 'spell_gen_gift_of_naaru'), -- Shaman
+(59548, 'spell_gen_gift_of_naaru'), -- Mage
+(121093, 'spell_gen_gift_of_naaru'); -- Monk
diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp
index 44ffcc694d2..7ac8911f369 100644
--- a/src/server/scripts/Spells/spell_generic.cpp
+++ b/src/server/scripts/Spells/spell_generic.cpp
@@ -1436,7 +1436,14 @@ class spell_gen_gadgetzan_transporter_backfire : public SpellScript
}
};
-
+// 28880 - Warrior
+// 59542 - Paladin
+// 59543 - Hunter
+// 59544 - Priest
+// 59545 - Death Knight
+// 59547 - Shaman
+// 59548 - Mage
+// 121093 - Monk
class spell_gen_gift_of_naaru : public AuraScript
{
PrepareAuraScript(spell_gen_gift_of_naaru);
@@ -1446,30 +1453,13 @@ class spell_gen_gift_of_naaru : public AuraScript
if (!GetCaster() || !aurEff->GetTotalTicks())
return;
- float heal = 0.0f;
- switch (GetSpellInfo()->SpellFamilyName)
+ if (SpellEffectInfo const* eff1 = GetSpellInfo()->GetEffect(EFFECT_1))
{
- case SPELLFAMILY_MAGE:
- case SPELLFAMILY_WARLOCK:
- case SPELLFAMILY_PRIEST:
- heal = 1.885f * float(GetCaster()->SpellBaseDamageBonusDone(GetSpellInfo()->GetSchoolMask()));
- break;
- case SPELLFAMILY_PALADIN:
- case SPELLFAMILY_SHAMAN:
- heal = std::max(1.885f * float(GetCaster()->SpellBaseDamageBonusDone(GetSpellInfo()->GetSchoolMask())), 1.1f * float(GetCaster()->GetTotalAttackPowerValue(BASE_ATTACK)));
- break;
- case SPELLFAMILY_WARRIOR:
- case SPELLFAMILY_HUNTER:
- case SPELLFAMILY_DEATHKNIGHT:
- heal = 1.1f * float(std::max(GetCaster()->GetTotalAttackPowerValue(BASE_ATTACK), GetCaster()->GetTotalAttackPowerValue(RANGED_ATTACK)));
- break;
- case SPELLFAMILY_GENERIC:
- default:
- break;
+ float healPct = eff1->CalcValue() / 100.0f;
+ float heal = healPct * GetCaster()->GetMaxHealth();
+ int32 healTick = std::floor(heal / aurEff->GetTotalTicks());
+ amount += healTick;
}
-
- int32 healTick = std::floor(heal / aurEff->GetTotalTicks());
- amount += int32(std::max(healTick, 0));
}
void Register() override