コード例 #1
0
        public void GenerateNewScene(ISceneForSceneGenerator scene, IEnumerable <IPlayer> players, int seed)
        {
            Tile[][] sceneTiles = scene.SetupEmptyTileSet(20, 20);
            for (int x = 0; x < sceneTiles.Length; x++)
            {
                for (int y = 0; y < sceneTiles[x].Length; y++)
                {
                    scene.CreateTile(tileSet[x, y], x, y, null);
                }
            }

            List <IPlayer> tempPlayers = players.ToList();

            if (tempPlayers.Count != 2)
            {
                throw new ArgumentException("Players count should be 2", "players");
            }

            for (int i = 0; i < 2; i++)
            {
                if (tempPlayers[i].KeyActorsGen.Count > 5)
                {
                    throw new ArgumentException("Actors count should be less than 5. Thrown on player " + tempPlayers[i].Id, "players.keyActors");
                }

                Player tempScenePlayer = GeneratorHelper.ConvertExternalPlayerFromGeneration(scene, tempPlayers[i], i);
                for (int j = 0; j < tempPlayers[i].KeyActorsGen.Count; j++)
                {
                    tempScenePlayer.KeyActors.Add(GeneratorHelper.ConvertExternalActorFromGeneration(scene, tempScenePlayer, sceneTiles[1 + (i * 17)][2 + (j * 2)], tempPlayers[i].KeyActorsGen[j], null));
                }
            }
        }
コード例 #2
0
        public void GenerateNewScene(ISceneForSceneGenerator scene, IEnumerable <IPlayer> players, int seed)
        {
            var positions = DefaultSceneForDuel.FillScene(scene, out Tile[][] sceneTiles);

            List <IPlayer> tempPlayers = players.ToList();

            if (tempPlayers.Count != 2)
            {
                throw new ArgumentException("Players count should be 2", "players");
            }

            var iterator            = 0;
            var tempPlayersForScene = tempPlayers.Select(player =>
            {
                iterator++;
                if (player.KeyActorsGen.Count != 3)
                {
                    throw new ArgumentException("Actors count should be 3. Thrown on player " + player.Id, "players.keyActors");
                }

                return(GeneratorHelper.ConvertExternalPlayerFromGeneration(scene, player, iterator));
            }).ToList();

            tempPlayersForScene[0].KeyActors.Add(
                GeneratorHelper.ConvertExternalActorFromGeneration(scene, tempPlayersForScene[0], sceneTiles[positions[0].x][positions[0].y], tempPlayers[0].KeyActorsGen[0], null));
            tempPlayersForScene[0].KeyActors.Add(
                GeneratorHelper.ConvertExternalActorFromGeneration(scene, tempPlayersForScene[0], sceneTiles[positions[1].x][positions[1].y], tempPlayers[0].KeyActorsGen[1], null));
            tempPlayersForScene[0].KeyActors.Add(
                GeneratorHelper.ConvertExternalActorFromGeneration(scene, tempPlayersForScene[0], sceneTiles[positions[2].x][positions[2].y], tempPlayers[0].KeyActorsGen[2], null));

            tempPlayersForScene[1].KeyActors.Add(
                GeneratorHelper.ConvertExternalActorFromGeneration(scene, tempPlayersForScene[1], sceneTiles[positions[3].x][positions[3].y], tempPlayers[1].KeyActorsGen[0], null));
            tempPlayersForScene[1].KeyActors.Add(
                GeneratorHelper.ConvertExternalActorFromGeneration(scene, tempPlayersForScene[1], sceneTiles[positions[4].x][positions[4].y], tempPlayers[1].KeyActorsGen[1], null));
            tempPlayersForScene[1].KeyActors.Add(
                GeneratorHelper.ConvertExternalActorFromGeneration(scene, tempPlayersForScene[1], sceneTiles[positions[5].x][positions[5].y], tempPlayers[1].KeyActorsGen[2], null));
        }