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 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(); effectHandler.ApplyEffect(this, user, target, source, defaultNumberOfStacks); } } if (applyToSelf) { effectHandler = user.GetComponent(); effectHandler.ApplyEffect(this, user, user, source, defaultNumberOfStacks); } } public override RuntimeEffectInstance CreateEffectInstance() { DamageIncomeModifierRuntimeEffectInstance instance = CObjectPool.Get(); instance.damageIncomeModifierPercentage = damageIncomeModifierPercentage; return instance; } }