RiftMayhem/Assets/Scripts/AbilitySystem/Effects/DamageIncomeModifierEffect.cs

48 lines
1.6 KiB
C#

using Kryz.CharacterStats;
using Kryz.CharacterStats.Examples;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[CreateAssetMenu(fileName = "DamageIncomeModifierEffect", menuName = "RiftMayhem/AbilitySystem/Effects/DamageIncomeModifier Effect", order = 1)]
public class DamageIncomeModifierEffect : StatusEffect
{
public float damageIncomeModifierPercentage;
public bool avoidEnemies = false;
StatusEffectHandler effectHandler;
public override void ApplyEffect(Taggable user, List<Taggable> targets, BaseAbility source)
{
base.ApplyEffect(user, targets, source);
if (applyToTargetsHit)
{
foreach (Taggable target in targets)
{
if (avoidEnemies)
{
if (!user.AlliedTagsContains(target.targetTag)) continue;
}
effectHandler = target.GetComponent<StatusEffectHandler>();
effectHandler.ApplyEffect(this, user, target, source, defaultNumberOfStacks);
}
}
if (applyToSelf)
{
effectHandler = user.GetComponent<StatusEffectHandler>();
effectHandler.ApplyEffect(this, user, user, source, defaultNumberOfStacks);
}
}
public override RuntimeEffectInstance CreateEffectInstance()
{
DamageIncomeModifierRuntimeEffectInstance instance = CObjectPool<DamageIncomeModifierRuntimeEffectInstance>.Get();
instance.damageIncomeModifierPercentage = damageIncomeModifierPercentage;
return instance;
}
}