CapersProject/Assets/02.Scripts/Character/Enemy/Boss/SandMole/SandMoleStatus.cs
Nam Tae Gun 0cdf1aa3a8 전투플레이어 로직 전체 수정
+ 이벤트 구독 방식에서 인터페이스 형식으로 변경
2024-06-17 06:29:06 +09:00

49 lines
1.2 KiB
C#

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;
}
}
}