public void SpawnEnemy(UpdateContext context) { var enemy = EnemyFactory.GetEnemyFromPool(context.ObjectPool, enemySettings); enemy.Init(initContext, enemySettings, Path); enemy.CopyContentFrom(enemyTemplate); enemy.Start(); enemies.Add(enemy); logger.Info($"Enemy spawned for wave {settings.Id}"); }
public void Init(IInitContext context, Settings.EnemySet settings, Settings.Enemy enemySettings, Settings.Path pathSettings) { initContext = context; this.settings = settings; Path = context.ObjectPool.GetObject <Path>(); Path.Init(pathSettings); this.enemySettings = enemySettings; enemies = context.ObjectPool.GetObject <List <Enemy> >(); completedEnemies = context.ObjectPool.GetObject <List <Enemy> >(); enemyTemplate = EnemyFactory.GetEnemyFromPool(context.ObjectPool, enemySettings); logger.Info($"Wave {settings.Id} init"); Relative = TimeSpan.FromMilliseconds(settings.StartTimeOffset); Status = EnemySetStatus.Ready; }