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

40 lines
1.4 KiB
C#

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