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:
@@ -423,11 +423,11 @@ namespace Scripts.Spells.Azerite
|
|||||||
&& ValidateSpellEffect(SpellIds.EchoingBladesTrait, 2);
|
&& 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);
|
AuraEffect trait = GetCaster().GetAuraEffect(SpellIds.EchoingBladesTrait, 2);
|
||||||
if (trait != null)
|
if (trait != null)
|
||||||
SetHitDamage(trait.GetAmount() * 2);
|
damage = trait.GetAmount() * 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ForceCritical(Unit victim, ref float critChance)
|
void ForceCritical(Unit victim, ref float critChance)
|
||||||
@@ -437,7 +437,7 @@ namespace Scripts.Spells.Azerite
|
|||||||
|
|
||||||
public override void Register()
|
public override void Register()
|
||||||
{
|
{
|
||||||
OnEffectLaunchTarget.Add(new EffectHandler(CalculateDamage, 0, SpellEffectName.SchoolDamage));
|
CalcDamage.Add(new DamageAndHealingCalcHandler(CalculateDamage));
|
||||||
OnCalcCritChance.Add(new OnCalcCritChanceHandler(ForceCritical));
|
OnCalcCritChance.Add(new OnCalcCritChanceHandler(ForceCritical));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1398,24 +1398,16 @@ namespace Scripts.Spells.Generic
|
|||||||
[Script] // 64208 - Consumption
|
[Script] // 64208 - Consumption
|
||||||
class spell_gen_consumption : SpellScript
|
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();
|
SpellInfo createdBySpell = Global.SpellMgr.GetSpellInfo(GetCaster().m_unitData.CreatedBySpell, GetCastDifficulty());
|
||||||
if (caster == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
int damage = 0;
|
|
||||||
SpellInfo createdBySpell = Global.SpellMgr.GetSpellInfo(caster.m_unitData.CreatedBySpell, GetCastDifficulty());
|
|
||||||
if (createdBySpell != null)
|
if (createdBySpell != null)
|
||||||
damage = createdBySpell.GetEffect(2).CalcValue();
|
damage = createdBySpell.GetEffect(2).CalcValue();
|
||||||
|
|
||||||
if (damage != 0)
|
|
||||||
SetEffectValue(damage);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Register()
|
public override void Register()
|
||||||
{
|
{
|
||||||
OnEffectLaunchTarget.Add(new EffectHandler(HandleDamageCalc, 0, SpellEffectName.SchoolDamage));
|
CalcDamage.Add(new DamageAndHealingCalcHandler(CalculateDamage));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -935,24 +935,16 @@ namespace Scripts.Spells.Priest
|
|||||||
return ValidateSpellInfo(SpellIds.PowerOfTheDarkSide);
|
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);
|
AuraEffect powerOfTheDarkSide = GetCaster().GetAuraEffect(SpellIds.PowerOfTheDarkSide, 0);
|
||||||
if (powerOfTheDarkSide != null)
|
if (powerOfTheDarkSide != null)
|
||||||
{
|
MathFunctions.AddPct(ref pctMod, powerOfTheDarkSide.GetAmount());
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Register()
|
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);
|
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);
|
AuraEffect powerOfTheDarkSide = GetCaster().GetAuraEffect(SpellIds.PowerOfTheDarkSide, 0);
|
||||||
if (powerOfTheDarkSide != null)
|
if (powerOfTheDarkSide != null)
|
||||||
{
|
MathFunctions.AddPct(ref pctMod, powerOfTheDarkSide.GetAmount());
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Register()
|
public override void Register()
|
||||||
{
|
{
|
||||||
OnEffectLaunchTarget.Add(new EffectHandler(HandleLaunchTarget, 0, SpellEffectName.Heal));
|
CalcHealing.Add(new DamageAndHealingCalcHandler(CalculateHealingBonus));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user