Esempio n. 1
0
        private static async Task <IActor> CreateSectorAsync()
        {
            if (_sectorServiceContainer != null && !_sectorServiceContainer.IsDisposed)
            {
                DropActorEventSubscriptions();

                _sectorServiceContainer.Dispose();
            }

            _sectorServiceContainer = _globalServiceContainer.BeginScope();

            _startUp.ConfigureAux(_sectorServiceContainer);

            var schemeService        = _globalServiceContainer.GetInstance <ISchemeService>();
            var humanPlayer          = _globalServiceContainer.GetInstance <HumanPlayer>();
            var survivalRandomSource = _globalServiceContainer.GetInstance <ISurvivalRandomSource>();
            var propFactory          = _globalServiceContainer.GetInstance <IPropFactory>();
            var scoreManager         = _globalServiceContainer.GetInstance <IScoreManager>();

            var gameLoop               = _sectorServiceContainer.GetInstance <IGameLoop>();
            var sectorManager          = _sectorServiceContainer.GetInstance <ISectorManager>();
            var botActorTaskSource     = _sectorServiceContainer.GetInstance <ISectorActorTaskSource>("bot");
            var actorManager           = _sectorServiceContainer.GetInstance <IActorManager>();
            var monsterActorTaskSource = _sectorServiceContainer.GetInstance <IActorTaskSource>("monster");

            await sectorManager.CreateSectorAsync();

            sectorManager.CurrentSector.ScoreManager    = scoreManager;
            sectorManager.CurrentSector.HumanGroupExit += CurrentSector_HumanGroupExit;

            gameLoop.ActorTaskSources = new[] {
                botActorTaskSource,
                monsterActorTaskSource
            };

            var humanActor = CreateHumanActor(humanPlayer,
                                              schemeService,
                                              survivalRandomSource,
                                              propFactory,
                                              sectorManager,
                                              actorManager);

            CreateActorEventSubscriptions();

            return(humanActor);
        }
Esempio n. 2
0
 protected override void ConfigBotAux()
 {
     _startup.ConfigureAux(ServiceScope.ServiceProvider);
 }