示例#1
0
 public bool Ready(Team team)
 {
     if ((TeamHandler.GetCamps(team).Count == _maxCamps) && (TeamHandler.GetUnits(team).Count == _maxUnits))
     {
         team.Ready = true;
         return(true);
     }
     return(false);
 }
示例#2
0
        public bool StartGame()
        {
            if (_boardHandler.LowerTeam.Ready && _boardHandler.UpperTeam.Ready)
            {
                State        = GameState.Playing;
                _currentTeam = _boardHandler.LowerTeam;
                _currentTeam.ActionableUnits.AddRange(TeamHandler.GetUnits(_currentTeam));
                _currentTeam.CanMoveUnit = true;
                return(true);
            }

            return(false);
        }
示例#3
0
        public bool PlaceUnit(string teamName, IUnit unit, int row, int col)
        {
            var team = _boardHandler.GetTeamByName(teamName);

            if (team != null)
            {
                var availBlocks = _boardHandler.GetInitArea(team);
                if (availBlocks.Exists(b => b.Column == col && b.Row == row))
                {
                    if (((unit is Camp) && TeamHandler.GetCamps(team).Count < _maxCamps) ||
                        (!(unit is Camp) && TeamHandler.GetUnits(team).Count < _maxUnits))
                    {
                        unit.Row    = row;
                        unit.Column = col;
                        unit.Team   = team;
                        team.Units.Add(unit);
                        return(true);
                    }
                }
            }

            return(false);
        }