Beispiel #1
0
        public void Load(XElement element)
        {
            var tilesElement = element.Element("tiles");

            Tiles             = (tilesElement != null) ? Convert.ToInt32(tilesElement.Value) : (int?)null;
            CollisionBehavior = element.Element("collisionBehavior").Value;

            var gameTypeElement = element.Element("gameType");

            GameType = (gameTypeElement != null) ? gameTypeElement.Value : "Normal";

            // Load teams
            var teamsElement = element.Element("teams");

            Teams.Clear();

            if (teamsElement != null)
            {
                foreach (var teamElement in teamsElement.Elements("team"))
                {
                    var kindElement     = teamElement.Element("kind");
                    var wrapMoveElement = teamElement.Element("wrappedMovement");
                    var scoringElement  = teamElement.Element("scoringSystem");

                    Teams.Add(new FlatlandTeamInfo()
                    {
                        TeamIndex       = Convert.ToInt32(teamElement.Element("teamIndex").Value),
                        ThemeName       = teamElement.Element("themeName").Value,
                        MoveSeconds     = Convert.ToInt32(teamElement.Element("moveSeconds").Value),
                        Kind            = (kindElement != null) ? kindElement.Value : "Normal",
                        WrappedMovement = (wrapMoveElement != null) ? Convert.ToBoolean(wrapMoveElement.Value) : false,
                        ScoringSystem   = (scoringElement != null) ? scoringElement.Value : "None"
                    });
                }
            }

            var fixedTilesElement = element.Element("fixedTiles");

            FixedTiles.Clear();

            if (fixedTilesElement != null)
            {
                foreach (var tileElement in fixedTilesElement.Elements("tile"))
                {
                    FixedTiles.Add(new Point(Convert.ToInt32(tileElement.Element("x").Value),
                                             Convert.ToInt32(tileElement.Element("y").Value))
                                   );
                }
            }
        }
Beispiel #2
0
        public IDictionary <string, string> GetArguments()
        {
            var arguments = new Dictionary <string, string>();

            if (Tiles.HasValue)
            {
                arguments["tiles"] = Tiles.Value.ToString();
            }

            arguments["team-info"] = string.Join
                                         (string.Empty, Teams.Select(t => CLIObject.ToString(t, "TeamIndex", "ThemeName", "MoveSeconds", "Kind", "WrappedMovement", "ScoringSystem")).ToArray());

            arguments["collision-behavior"] = CollisionBehavior;
            arguments["game-type"]          = GameType;

            if (FixedTiles.Count > 0)
            {
                arguments["fixed-tiles"] = string.Join(string.Empty,
                                                       FixedTiles.Select(t => CLIObject.ToString(t, "X", "Y")).ToArray());
            }

            return(arguments);
        }