RiftMayhem/Assets/Scripts/AbilitySystem/Effects/RefactoredStatusEffectHandler/DamageOutputModifierRuntimeEffectInstance.cs

36 lines
923 B
C#

using UnityEngine;
public class DamageOutputModifierRuntimeEffectInstance : RuntimeEffectInstance
{
public float damageOutputModifierPercentage;
public override void OnEffectFirstApplied(int numberOfStacksApplied)
{
base.OnEffectFirstApplied(numberOfStacksApplied);
//apply damage amp buff
user.Broker.OnOutgoingDamage.Subscribe(ModifyOutgoingDamage, GameConstants.BrokerEventPriority.TemporaryAmplificationMods);
}
public override void OnEffectRemoved()
{
base.OnEffectRemoved();
//remove damage amp buff
user.Broker.OnOutgoingDamage.Unsubscribe(ModifyOutgoingDamage);
}
private void ModifyOutgoingDamage(DamageArgs args)
{
args.currentValue = args.currentValue * (1 + damageOutputModifierPercentage);
}
public new void Reset()
{
base.Reset();
damageOutputModifierPercentage = 0f;
}
}