Scripts/Spells: Converted some damage calculating scripts to use new hooks as examples

Port From (https://github.com/TrinityCore/TrinityCore/commit/8594fcfe8a0085a087bce510e3b4cb14f632434f)
This commit is contained in:
hondacrx
2023-09-13 18:23:20 -04:00
parent d7c2fa52f4
commit f89df8dca8
3 changed files with 12 additions and 36 deletions
+3 -3
View File
@@ -423,11 +423,11 @@ namespace Scripts.Spells.Azerite
&& ValidateSpellEffect(SpellIds.EchoingBladesTrait, 2);
}
void CalculateDamage(uint effIndex)
void CalculateDamage(Unit victim, ref int damage, ref int flatMod, ref float pctMod)
{
AuraEffect trait = GetCaster().GetAuraEffect(SpellIds.EchoingBladesTrait, 2);
if (trait != null)
SetHitDamage(trait.GetAmount() * 2);
damage = trait.GetAmount() * 2;
}
void ForceCritical(Unit victim, ref float critChance)
@@ -437,7 +437,7 @@ namespace Scripts.Spells.Azerite
public override void Register()
{
OnEffectLaunchTarget.Add(new EffectHandler(CalculateDamage, 0, SpellEffectName.SchoolDamage));
CalcDamage.Add(new DamageAndHealingCalcHandler(CalculateDamage));
OnCalcCritChance.Add(new OnCalcCritChanceHandler(ForceCritical));
}
}
+3 -11
View File
@@ -1398,24 +1398,16 @@ namespace Scripts.Spells.Generic
[Script] // 64208 - Consumption
class spell_gen_consumption : SpellScript
{
void HandleDamageCalc(uint effIndex)
void CalculateDamage(Unit victim, ref int damage, ref int flatMod, ref float pctMod)
{
Creature caster = GetCaster().ToCreature();
if (caster == null)
return;
int damage = 0;
SpellInfo createdBySpell = Global.SpellMgr.GetSpellInfo(caster.m_unitData.CreatedBySpell, GetCastDifficulty());
SpellInfo createdBySpell = Global.SpellMgr.GetSpellInfo(GetCaster().m_unitData.CreatedBySpell, GetCastDifficulty());
if (createdBySpell != null)
damage = createdBySpell.GetEffect(2).CalcValue();
if (damage != 0)
SetEffectValue(damage);
}
public override void Register()
{
OnEffectLaunchTarget.Add(new EffectHandler(HandleDamageCalc, 0, SpellEffectName.SchoolDamage));
CalcDamage.Add(new DamageAndHealingCalcHandler(CalculateDamage));
}
}
+6 -22
View File
@@ -935,24 +935,16 @@ namespace Scripts.Spells.Priest
return ValidateSpellInfo(SpellIds.PowerOfTheDarkSide);
}
void HandleLaunchTarget(uint effIndex)
void CalculateDamageBonus(Unit victim, ref int damage, ref int flatMod, ref float pctMod)
{
AuraEffect powerOfTheDarkSide = GetCaster().GetAuraEffect(SpellIds.PowerOfTheDarkSide, 0);
if (powerOfTheDarkSide != null)
{
PreventHitDefaultEffect(effIndex);
float damageBonus = GetCaster().SpellDamageBonusDone(GetHitUnit(), GetSpellInfo(), GetEffectValue(), DamageEffectType.SpellDirect, GetEffectInfo());
float value = damageBonus + damageBonus * GetEffectVariance();
value *= 1.0f + (powerOfTheDarkSide.GetAmount() / 100.0f);
value = GetHitUnit().SpellDamageBonusTaken(GetCaster(), GetSpellInfo(), (int)value, DamageEffectType.SpellDirect);
SetHitDamage((int)value);
}
MathFunctions.AddPct(ref pctMod, powerOfTheDarkSide.GetAmount());
}
public override void Register()
{
OnEffectLaunchTarget.Add(new EffectHandler(HandleLaunchTarget, 0, SpellEffectName.SchoolDamage));
CalcDamage.Add(new DamageAndHealingCalcHandler(CalculateDamageBonus));
}
}
@@ -965,24 +957,16 @@ namespace Scripts.Spells.Priest
return ValidateSpellInfo(SpellIds.PowerOfTheDarkSide);
}
void HandleLaunchTarget(uint effIndex)
void CalculateHealingBonus(Unit victim, ref int damage, ref int flatMod, ref float pctMod)
{
AuraEffect powerOfTheDarkSide = GetCaster().GetAuraEffect(SpellIds.PowerOfTheDarkSide, 0);
if (powerOfTheDarkSide != null)
{
PreventHitDefaultEffect(effIndex);
float healingBonus = GetCaster().SpellHealingBonusDone(GetHitUnit(), GetSpellInfo(), GetEffectValue(), DamageEffectType.Heal, GetEffectInfo());
float value = healingBonus + healingBonus * GetEffectVariance();
value *= 1.0f + (powerOfTheDarkSide.GetAmount() / 100.0f);
value = GetHitUnit().SpellHealingBonusTaken(GetCaster(), GetSpellInfo(), (int)value, DamageEffectType.Heal);
SetHitHeal((int)value);
}
MathFunctions.AddPct(ref pctMod, powerOfTheDarkSide.GetAmount());
}
public override void Register()
{
OnEffectLaunchTarget.Add(new EffectHandler(HandleLaunchTarget, 0, SpellEffectName.Heal));
CalcHealing.Add(new DamageAndHealingCalcHandler(CalculateHealingBonus));
}
}