added enemy factory and pool
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user