public FightControllersContainer(SettingsStorage setingsStorage, UserFightQueue.Entry[] fighters, int fightIndex)
        {
            if (fighters == null)
            {
                throw new ArgumentNullException(nameof(fighters));
            }

            _setingsStorage = setingsStorage ?? throw new ArgumentNullException(nameof(setingsStorage));
            FightIndex      = fightIndex;
            _controllers    = new List <IFighterController>();


            _knifesInfo = fighters.Select(f => new Fight.KnifeInfo(f.knifeName, f.knifeMode)).ToArray();

            fight = new Fight(_knifesInfo, _setingsStorage, fightIndex);

            for (int i = 0; i < fighters.Length; i++)
            {
                UserFightQueue.Entry f = fighters[i];

                IFighterController controller = f.controllersFactory.CreateFighterController(fight, i);

                _controllers.Add(controller);
            }
        }
        //---msg readrs

        void FightQueueMessage_Reader(ReceivedMsg receivedMsg, FightQueueMessage msg)
        {
            // TODO проверку чтобы 2 раза в очередь нельзя было вставать
            UserFightQueue.Entry entry = new UserFightQueue.Entry(_controllersFactory, msg.KnifeName, msg.KnifeMode);
            _userFightQueue.Enqueue(entry);
        }
示例#3
0
 void UserFightQueue_UserEnqueue(UserFightQueue sender, UserFightQueue.Entry entry)
 {
     Console.WriteLine(typeof(BotTestServer).Name + $" Login={entry.controllersFactory.Login} FightQueue_UserEnqueue");
     _test.Step_AllUsers_EnqueueInFightQueue.IncrimentCounter(entry.controllersFactory.Login);
 }
示例#4
0
 public void GoToFightQueue()
 {
     UserFightQueue.Entry entry = new UserFightQueue.Entry(_testBotControllerFactory, "knife00", KnifeMode.Medium);
     _userFightQueue.Enqueue(entry);
 }