OldBlueWater/BlueWater/Assets/02.Scripts/Character/CombatPlayer2D/CombatStatus.cs

50 lines
1.5 KiB
C#
Raw Normal View History

using UnityEngine;
// ReSharper disable once CheckNamespace
namespace BlueWaterProject
{
public class CombatStatus : MonoBehaviour
{
[field: SerializeField] public bool IsStunned { get; private set; }
[field: SerializeField] public bool IsSlowedMoveSpeed { get; private set; }
[field: SerializeField] public float MoveSpeedCoefficient { get; private set; }
private Coroutine stunCoolDownCoroutine;
private Coroutine slowMoveSpeedCoolDownCoroutine;
public void Stun(float duration)
{
IsStunned = true;
if (stunCoolDownCoroutine != null)
{
StopCoroutine(stunCoolDownCoroutine);
}
stunCoolDownCoroutine = StartCoroutine(Utils.CoolDown(duration, EndStun));
}
private void EndStun()
{
IsStunned = false;
stunCoolDownCoroutine = null;
}
public void SlowMoveSpeed(float duration, float moveSpeedCoefficient)
{
IsSlowedMoveSpeed = true;
MoveSpeedCoefficient = moveSpeedCoefficient;
if (slowMoveSpeedCoolDownCoroutine != null)
{
StopCoroutine(slowMoveSpeedCoolDownCoroutine);
}
slowMoveSpeedCoolDownCoroutine = StartCoroutine(Utils.CoolDown(duration, EndSlowMoveSpeed));
}
private void EndSlowMoveSpeed()
{
IsSlowedMoveSpeed = false;
slowMoveSpeedCoolDownCoroutine = null;
}
}
}