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)) ); } } }
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); }