예제 #1
0
        public void CreateGame(NewGameController controller)
        {
            if (controller == null)
            {
                throw new ArgumentNullException(nameof(controller));
            }

            if (State != GameState.NoGame)
#pragma warning disable CA1303 // Do not pass literals as localized parameters
            {
                throw new InvalidOperationException("Game is already created.");
            }
#pragma warning restore CA1303 // Do not pass literals as localized parameters

            var rng     = new Random();
            var players = controller.PlayerList.Select(info =>
                                                       new Player(info.Name, info.Color, NewGameController.Resolve(info.Organization, rng), info.ControlType)
                                                       ).ToArray();
            var organellePlayer = new Player(
                "no name",
                System.Drawing.Color.Gray,
                null,
                new PlayerType(PlayerControlType.Neutral, new OrganellePlayerFactory())
                );

            this.gameObj = GameBuilder.CreateGame(rng, players, organellePlayer, controller);
            this.endedTurnPlayers.Clear();
            makePlayers();
        }
예제 #2
0
        public void CreateGame(NewGameController controller, IEnumerable <TracableStream> staticDataSources)
        {
            if (State != GameState.NoGame)
            {
                throw new InvalidOperationException("Game is already created.");
            }

            //TODO(later): Pass organization to player
            var players = controller.PlayerList.Select(info =>
                                                       new Player(info.Name, info.Color, /*info.Organization, */ info.ControlType)
                                                       ).ToArray();
            var organellePlayer = new Player("no name", System.Drawing.Color.Gray, new PlayerType(PlayerControlType.Neutral, new OrganellePlayerFactory()));

            var rng = new Random();

            this.gameObj = GameBuilder.CreateGame(rng, players, organellePlayer, controller, staticDataSources);
            makePlayers();
        }
예제 #3
0
        public void CreateGame(NewGameController controller)
        {
            if (State != GameState.NoGame)
            {
                throw new InvalidOperationException("Game is already created.");
            }

            var rng     = new Random();
            var players = controller.PlayerList.Select(info =>
                                                       new Player(info.Name, info.Color, NewGameController.Resolve(info.Organization, rng), info.ControlType)
                                                       ).ToArray();
            var organellePlayer = new Player(
                "no name",
                System.Drawing.Color.Gray,
                null,
                new PlayerType(PlayerControlType.Neutral, new OrganellePlayerFactory())
                );

            this.gameObj = GameBuilder.CreateGame(rng, players, organellePlayer, controller);
            this.endedTurnPlayers.Clear();
            makePlayers();
        }