예제 #1
0
 public void ChatFewPlayersMessageIfFewPlayers()
 {
     if (_observation.GetPlayerCount() - _bots.NumBots < 3)
     {
         ChatFewerPlayersMessage();
     }
 }
예제 #2
0
    public void HandleBots()
    {
        //Remove bots if there are more than there should be.
        if (NumBots > _cfg.GetNumTotalBots())
        {
            Console.WriteLine($"Bot count {NumBots} > {_cfg.GetNumTotalBots()}. Removing bots.");
            RemoveBotsIfAny();
        }

        //Remove bots if many players
        int humanCount = _observation.GetPlayerCount() - NumBots;

        if (humanCount >= _cfg.NumberPlayersWhenBotsAreRemoved && NumBots > 0)
        {
            Console.WriteLine($"Human count {humanCount} >= {_cfg.NumberPlayersWhenBotsAreRemoved}. Removing bots.");
            RemoveBotsIfAny();
        }

        //Add bots if few players
        if (humanCount < _cfg.NumberPlayersWhenBotsAreRemoved &&
            NumBots < _cfg.GetNumTotalBots() &&
            _observation.GetTeamsAreBalanced())
        {
            Console.WriteLine($"Human count {humanCount} < {_cfg.NumberPlayersWhenBotsAreRemoved} and BotCount {NumBots} < 4. Adding bots.");
            foreach (var bot in _cfg.Bots)
            {
                _ai.AddAI(bot.Item1, bot.Item2, Team.Blue, 1);
                _ai.AddAI(bot.Item1, bot.Item2, Team.Red, 1);
            }
            NumBots += _cfg.GetNumTotalBots();
        }
        _resetter.Reset();
    }