started adding enemy factory

This commit is contained in:
Mausham
2025-12-31 17:14:20 -08:00
parent 3aabc42bf8
commit 8eafd8bb60
130 changed files with 49524 additions and 46086 deletions

View File

@@ -0,0 +1,66 @@
using Darkmatter.Core;
using System;
using UnityEngine;
namespace Darkmatter.Domain
{
public class ChaseState : State<EnemyStateMachine>
{
public ChaseState(EnemyStateMachine runner) : base(runner) { }
private EnemyConfigSO enemyConfig => runner.enemyConfig;
private IEnemyAnimController enemyAnimController => runner.enemyAnimController;
private IEnemyPawn enemyPawn => runner.enemyPawn;
public override void Enter()
{
base.Enter();
Debug.Log("Entered Chase State");
runner.SetSpeed(enemyConfig.chaseSpeed);
enemyAnimController.PlayeChaseAnim(true);
enemyPawn.OnHealthDecreased += HandleHealth;
}
private void HandleHealth(float health)
{
if (health <= 0)
{
runner.Die();
}
}
public override void Update()
{
if (enemyPawn.isDead) return;
base.Update();
HandleChase();
CheckForStateBreak();
Debug.Log("Updated Chase State");
}
private void CheckForStateBreak()
{
if (!runner.PlayerInChasingRange())
{
runner.ChangeState(new PatrolState(runner));
}
else if(runner.PlayerInAttackRange())
{
runner.ChangeState(new AttackState(runner));
}
}
private void HandleChase()
{
enemyPawn.SetDestination(enemyPawn.PlayerTarget.position);
}
public override void Exit()
{
base.Exit();
Debug.Log("Exiting Chase State");
enemyAnimController.PlayeChaseAnim(false);
enemyPawn.OnHealthDecreased -= HandleHealth;
}
}
}