Files
MobileShooter/Assets/Darkmatter/Code/Domain/Enemy/EnemyStateMachine.cs
2025-12-31 17:14:20 -08:00

45 lines
1.1 KiB
C#

using Darkmatter.Core;
using System.Threading.Tasks;
using UnityEngine;
using VContainer;
namespace Darkmatter.Domain
{
public class EnemyStateMachine:StateMachine
{
[Inject] public readonly IEnemyPawn enemyPawn;
[Inject] public readonly IEnemyAnimController enemyAnimController;
[Inject] public readonly EnemyConfigSO enemyConfig;
public void SetSpeed(float speed)
{
enemyPawn.EnemyAI.speed = speed;
}
public bool PlayerInChasingRange()
{
if(Vector3.Distance(enemyPawn.PlayerTarget.position,enemyPawn.ReturnMyPos()) < enemyConfig.visionRange)
{
return true;
}
return false;
}
public bool PlayerInAttackRange()
{
if(Vector3.Distance(enemyPawn.PlayerTarget.position,enemyPawn.ReturnMyPos())<enemyConfig.attackRange)
{
return true;
}
return false;
}
public void Die()
{
enemyAnimController.PlayDeadAnim();
enemyPawn.Die();
}
}
}