using Kryz.CharacterStats; using Kryz.CharacterStats.Examples; using System.Collections; using System.Collections.Generic; using UnityEngine; [CreateAssetMenu(fileName = "DamageOutputModifierEffect", menuName = "RiftMayhem/AbilitySystem/Effects/DamageOutputModifier Effect", order = 1)] public class DamageOutputModifierEffect : StatusEffect { public float damageOutputModifierPercentage; 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() { DamageOutputModifierRuntimeEffectInstance instance = CObjectPool.Get(); instance.damageOutputModifierPercentage = damageOutputModifierPercentage; return instance; } }