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

35 lines
915 B
C#

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