CapersProject/Assets/02.Scripts/Character/Enemy/Boss/SandMole/SandMoleStatus.cs

49 lines
1.2 KiB
C#
Raw Normal View History

using BlueWater.Interfaces;
using BlueWater.Utility;
using Sirenix.OdinInspector;
using UnityEngine;
namespace BlueWater.Enemies.Bosses.SandMole
{
public class SandMoleStatus : MonoBehaviour, IStunnable
{
// Variables
#region Variables
// Stun
[Title("기절 효과")]
[SerializeField]
private ParticleSystem _stunParticle;
public bool IsStunEnabled { get; private set; } = true;
public bool IsStunned { get; private set; }
private Coroutine _stunCoolDownCoroutine;
#endregion
// Stun
public bool CanStun() => IsStunEnabled;
public void Stun(float duration)
{
if (!CanStun()) return;
IsStunned = true;
if (_stunParticle)
{
_stunParticle.Play();
}
Utils.StartUniqueCoroutine(this, ref _stunCoolDownCoroutine, Utils.CoolDownCoroutine(duration, EndStun));
}
public void EndStun()
{
Utils.EndUniqueCoroutine(this, ref _stunCoolDownCoroutine);
_stunParticle.Stop();
_stunParticle.Clear();
IsStunned = false;
}
}
}