/// <summary> /// Constructs the PlayersForm from a PlayerList /// </summary> /// <param name="list">contains a list of the players</param> public PlayersForm(PlayerList list) { InitializeComponent(); playerList = list; source = new BindingSource(); // Because PlayerComponents do not encapsulate all of their data within fields, we must adapt them to // do so that the UI can bind itself to the data source. // The adapter merely places all of the relevant data in fields, and allows us to change the player list before // commiting the changes to the actual player list. foreach (PlayerComponent player in list.GetChildren()) { PlayerDataGridAdapter adapter = new PlayerDataGridAdapter(player, playerList); source.Add(adapter); } // Initialize Player List to bind data properly. uiPlayerList.AutoGenerateColumns = false; uiPlayerList.AutoSize = true; uiPlayerList.DataSource = source; name.DataPropertyName = "Player_Name"; race.DataPropertyName = "RaceMember"; gold.DataPropertyName = "GoldMember"; wood.DataPropertyName = "WoodMember"; metal.DataPropertyName = "MetalMember"; }
public void Init() { playerList = new PlayerList(); PlayerDataGridAdapter adapter = generateValidAdapter(); List<PlayerDataGridAdapter> adapters = new List<PlayerDataGridAdapter>(); adapters.Add(adapter); committer = new PlayerDataGridAdapterCommitter(adapters, playerList); }
public AlterPlayerCommand(PlayerComponent player, PlayerList list) { data = player; playerList = list; name = player.GetName(); race = player.GetRace(); gold = player.GetGold(); wood = player.GetWood(); metal = player.GetMetal(); added = false; }
public PlayerDataGridAdapter(PlayerComponent player, PlayerList list) { data = player; playerList = list; name = player.Name; race = player.Race; gold = player.Gold; wood = player.Wood; metal = player.Metal; added = false; }
public void Init() { playerList = new PlayerList(); adapter = new PlayerDataGridAdapter(new PlayerComponent(), playerList); adapter.Player_Name = "Player 1"; adapter.RaceMember = "Human"; adapter.GoldMember = 10; adapter.MetalMember = 20; adapter.WoodMember = 0; adapter.RemovedMember = false; adapter.AddedMember = true; }
/// <summary> /// Update all players' units /// </summary> /// <param name="players">List of all players</param> private void UpdateAllPlayersUnits(PlayerList players) { foreach (PlayerComponent player in players.GetChildren()) { UnitList units = player.GetUnitList(); // Make a copy of the list that will not be tampered with by the attack action. List<UnitComponent> unitList = new List<UnitComponent>(); foreach (UnitComponent unit in units.GetChildren()) { unitList.Add(unit); } foreach (UnitComponent unit in unitList) { if (unit.State != ZRTSModel.UnitComponent.UnitState.DEAD) unit.GetActionQueue().Work(); } List<ModelComponent> buildings = player.BuildingList.GetChildren(); foreach (Building b in buildings) { b.BuildingActionQueue.Work(); } } }
public void Visit(PlayerList list) { output.WriteStartElement("PlayerList"); VisitChildren(list); output.WriteEndElement(); }
public ScenarioComponent GenerateScenarioFromXML() { ScenarioComponent scenario = null; if (reader.Read()) { // Go to the Scenario (skip the XML line) reader.Read(); scenario = new ScenarioComponent(); ModelComponent currentComponent = scenario; while (reader.Read()) { switch (reader.NodeType) { case XmlNodeType.Element: switch (reader.Name) { case "Gameworld": Gameworld gameworld = new Gameworld(); currentComponent.AddChild(gameworld); if (!reader.IsEmptyElement) { currentComponent = gameworld; } break; case "Map": int width = Int32.Parse(reader.GetAttribute("Width")); int height = Int32.Parse(reader.GetAttribute("Height")); Map map = new Map(width, height); currentComponent.AddChild(map); if (!reader.IsEmptyElement) { currentComponent = map; } break; case "Cell": int x = Int32.Parse(reader.GetAttribute("X")); int y = Int32.Parse(reader.GetAttribute("Y")); CellComponent cell = new CellComponent(); cell.X = x; cell.Y = y; currentComponent.AddChild(cell); if (!reader.IsEmptyElement) { currentComponent = cell; } break; case "PlayerList": PlayerList playerList = new PlayerList(); currentComponent.AddChild(playerList); if (!reader.IsEmptyElement) { currentComponent = playerList; } break; case "Player": PlayerComponent player = new PlayerComponent(); player.Name = reader.GetAttribute("Name"); player.Race = reader.GetAttribute("Race"); player.Gold = Int32.Parse(reader.GetAttribute("Gold")); player.Metal = Int32.Parse(reader.GetAttribute("Metal")); player.Wood = Int32.Parse(reader.GetAttribute("Wood")); currentComponent.AddChild(player); if (!reader.IsEmptyElement) { currentComponent = player; } break; case "BuildingList": if (!reader.IsEmptyElement) { currentComponent = ((PlayerComponent)currentComponent).BuildingList; } break; case "UnitList": if (!reader.IsEmptyElement) { currentComponent = ((PlayerComponent)currentComponent).GetUnitList(); } break; case "Sand": Sand sand = new Sand(); currentComponent.AddChild(sand); if (!reader.IsEmptyElement) { currentComponent = sand; } break; case "Mountain": Mountain mountain = new Mountain(); currentComponent.AddChild(mountain); if (!reader.IsEmptyElement) { currentComponent = mountain; } break; case "Grass": Grass grass = new Grass(); currentComponent.AddChild(grass); if (!reader.IsEmptyElement) { currentComponent = grass; } break; case "Unit": UnitComponent unit = new UnitComponent(); currentComponent.AddChild(unit); float unitX = float.Parse(reader.GetAttribute("X")); float unitY = float.Parse(reader.GetAttribute("Y")); unit.PointLocation = new PointF(unitX, unitY); unit.Type = reader.GetAttribute("Type"); unit.MaxHealth = short.Parse(reader.GetAttribute("MaxHealth")); unit.CurrentHealth = short.Parse(reader.GetAttribute("CurrentHealth")); unit.CanHarvest = bool.Parse(reader.GetAttribute("CanHarvest")); unit.CanAttack = bool.Parse(reader.GetAttribute("CanAttack")); unit.Attack = short.Parse(reader.GetAttribute("Attack")); unit.AttackRange = float.Parse(reader.GetAttribute("AttackRange")); unit.AttackTicks = byte.Parse(reader.GetAttribute("AttackTicks")); unit.CanBuild = bool.Parse(reader.GetAttribute("CanBuild")); unit.BuildSpeed = byte.Parse(reader.GetAttribute("BuildSpeed")); unit.Speed = float.Parse(reader.GetAttribute("Speed")); /* * Type="zombie" CanAttack="True" * Attack="20" AttackRange="4" AttackTicks="10" * BuildSpeed="30" CanBuild="True" CanHarvest="False" * CurrentHealth="100" MaxHealth="100" X="12" Y="13" * Speed="0.1" */ if (!reader.IsEmptyElement) { currentComponent = unit; } break; case "Building": Building building = new Building(); currentComponent.AddChild(building); building.Width = Int32.Parse(reader.GetAttribute("Width")); building.Height = Int32.Parse(reader.GetAttribute("Height")); building.PointLocation = new PointF(float.Parse(reader.GetAttribute("X")), float.Parse(reader.GetAttribute("Y"))); building.Type = reader.GetAttribute("Type"); building.CanProduce = bool.Parse(reader.GetAttribute("CanProduce")); if (!reader.IsEmptyElement) { currentComponent = building; } break; default: break; } break; case XmlNodeType.EndElement: if (currentComponent != null) { currentComponent = currentComponent.Parent; } break; } } Console.WriteLine("XmlTextReader Properties Test"); Console.WriteLine("==================="); // Read this element's properties and display them on console Console.WriteLine("Name:" + reader.Name); Console.WriteLine("Base URI:" + reader.BaseURI); Console.WriteLine("Local Name:" + reader.LocalName); Console.WriteLine("Attribute Count:" + reader.AttributeCount.ToString()); Console.WriteLine("Depth:" + reader.Depth.ToString()); Console.WriteLine("Node Type:" + reader.NodeType.ToString()); Console.WriteLine("Attribute Count:" + reader.Value.ToString()); } return(scenario); }
public virtual void Visit(PlayerList list) { Visit((ModelComponent)list); }
public ScenarioComponent GenerateScenarioFromXML() { ScenarioComponent scenario = null; if (reader.Read()) { // Go to the Scenario (skip the XML line) reader.Read(); scenario = new ScenarioComponent(); ModelComponent currentComponent = scenario; while (reader.Read()) { switch (reader.NodeType) { case XmlNodeType.Element: switch (reader.Name) { case "Gameworld": Gameworld gameworld = new Gameworld(); currentComponent.AddChild(gameworld); if (!reader.IsEmptyElement) currentComponent = gameworld; break; case "Map": int width = Int32.Parse(reader.GetAttribute("Width")); int height = Int32.Parse(reader.GetAttribute("Height")); Map map = new Map(width, height); currentComponent.AddChild(map); if (!reader.IsEmptyElement) currentComponent = map; break; case "Cell": int x = Int32.Parse(reader.GetAttribute("X")); int y = Int32.Parse(reader.GetAttribute("Y")); CellComponent cell = new CellComponent(); cell.X = x; cell.Y = y; currentComponent.AddChild(cell); if (!reader.IsEmptyElement) currentComponent = cell; break; case "PlayerList": PlayerList playerList = new PlayerList(); currentComponent.AddChild(playerList); if (!reader.IsEmptyElement) currentComponent = playerList; break; case "Player": PlayerComponent player = new PlayerComponent(); player.Name = reader.GetAttribute("Name"); player.Race = reader.GetAttribute("Race"); player.Gold = Int32.Parse(reader.GetAttribute("Gold")); player.Metal = Int32.Parse(reader.GetAttribute("Metal")); player.Wood = Int32.Parse(reader.GetAttribute("Wood")); currentComponent.AddChild(player); if (!reader.IsEmptyElement) currentComponent = player; break; case "BuildingList": if (!reader.IsEmptyElement) currentComponent = ((PlayerComponent)currentComponent).BuildingList; break; case "UnitList": if (!reader.IsEmptyElement) currentComponent = ((PlayerComponent)currentComponent).GetUnitList(); break; case "Sand": Sand sand = new Sand(); currentComponent.AddChild(sand); if (!reader.IsEmptyElement) currentComponent = sand; break; case "Mountain": Mountain mountain = new Mountain(); currentComponent.AddChild(mountain); if (!reader.IsEmptyElement) currentComponent = mountain; break; case "Grass": Grass grass = new Grass(); currentComponent.AddChild(grass); if (!reader.IsEmptyElement) currentComponent = grass; break; case "Unit": UnitComponent unit = new UnitComponent(); currentComponent.AddChild(unit); float unitX = float.Parse(reader.GetAttribute("X")); float unitY = float.Parse(reader.GetAttribute("Y")); unit.PointLocation = new PointF(unitX, unitY); unit.Type = reader.GetAttribute("Type"); unit.MaxHealth = short.Parse(reader.GetAttribute("MaxHealth")); unit.CurrentHealth = short.Parse(reader.GetAttribute("CurrentHealth")); unit.CanHarvest = bool.Parse(reader.GetAttribute("CanHarvest")); unit.CanAttack = bool.Parse(reader.GetAttribute("CanAttack")); unit.Attack = short.Parse(reader.GetAttribute("Attack")); unit.AttackRange = float.Parse(reader.GetAttribute("AttackRange")); unit.AttackTicks = byte.Parse(reader.GetAttribute("AttackTicks")); unit.CanBuild = bool.Parse(reader.GetAttribute("CanBuild")); unit.BuildSpeed = byte.Parse(reader.GetAttribute("BuildSpeed")); unit.Speed = float.Parse(reader.GetAttribute("Speed")); /* * Type="zombie" CanAttack="True" * Attack="20" AttackRange="4" AttackTicks="10" * BuildSpeed="30" CanBuild="True" CanHarvest="False" * CurrentHealth="100" MaxHealth="100" X="12" Y="13" * Speed="0.1" */ if (!reader.IsEmptyElement) currentComponent = unit; break; case "Building": Building building = new Building(); currentComponent.AddChild(building); building.Width = Int32.Parse(reader.GetAttribute("Width")); building.Height = Int32.Parse(reader.GetAttribute("Height")); building.PointLocation = new PointF(float.Parse(reader.GetAttribute("X")), float.Parse(reader.GetAttribute("Y"))); building.Type = reader.GetAttribute("Type"); building.CanProduce = bool.Parse(reader.GetAttribute("CanProduce")); if (!reader.IsEmptyElement) currentComponent = building; break; default: break; } break; case XmlNodeType.EndElement: if (currentComponent != null) currentComponent = currentComponent.Parent; break; } } Console.WriteLine("XmlTextReader Properties Test"); Console.WriteLine("==================="); // Read this element's properties and display them on console Console.WriteLine("Name:" + reader.Name); Console.WriteLine("Base URI:" + reader.BaseURI); Console.WriteLine("Local Name:" + reader.LocalName); Console.WriteLine("Attribute Count:" + reader.AttributeCount.ToString()); Console.WriteLine("Depth:" + reader.Depth.ToString()); Console.WriteLine("Node Type:" + reader.NodeType.ToString()); Console.WriteLine("Attribute Count:" + reader.Value.ToString()); } return scenario; }
public PlayerDataGridAdapterCommitter(List<PlayerDataGridAdapter> adapters, PlayerList playerList) { this.adapters = adapters; this.playerList = playerList; }
public void Visit(PlayerList list) { if (PlayerListVisitor != null) list.Accept(PlayerListVisitor); }