added enemy factory and pool

This commit is contained in:
Mausham
2025-12-31 22:09:12 +05:45
parent 3470ca4dc6
commit d258428496
10 changed files with 94 additions and 31 deletions

View File

@@ -13,13 +13,15 @@ namespace Darkmatter.Domain
private readonly GameObject fatZombiePrefab;
private readonly GameObject slimZombiePrefab;
private readonly IObjectResolver objectResolver;
public EnemyFactory(Transform playerTransform, List<Transform> patrolPoints, GameObject fatZombiePrefab, GameObject slimZombiePrefab, IObjectResolver resolver)
private readonly EnemyConfigSO enemyConfig;
public EnemyFactory(Transform playerTransform, List<Transform> patrolPoints, GameObject fatZombiePrefab, GameObject slimZombiePrefab, IObjectResolver resolver , EnemyConfigSO enemyConfig)
{
this.playerTransform = playerTransform;
this.patrolPoints = patrolPoints;
this.fatZombiePrefab = fatZombiePrefab;
this.slimZombiePrefab = slimZombiePrefab;
this.objectResolver = resolver;
this.enemyConfig = enemyConfig;
}
public IEnemyPawn GetEnemy(ZombieType type)
{
@@ -39,8 +41,18 @@ namespace Darkmatter.Domain
break;
}
objectResolver.Inject(enemyObj);
IEnemyPawn enemyPawn = enemyObj.GetComponent<IEnemyPawn>();
IEnemyAnimController animController = enemyObj.GetComponent<IEnemyAnimController>();
EnemyStateMachine esm = new EnemyStateMachine(enemyPawn, animController,enemyConfig);
EnemyController controller = enemyObj.GetComponent<EnemyController>();
controller.Initialize(esm);
enemyPawn.InitializeFromFactory(playerTransform, GetRandomPatrolPoints(Random.Range(4, patrolPoints.Count)));
return enemyPawn;
}