public MapView(Game game) : base(game) { PlayerList players = ((XnaUITestGame)game).Model.GetScenario().GetGameWorld().GetPlayerList(); foreach (PlayerComponent player in players.GetChildren()) { UnitList unitList = player.GetUnitList(); unitList.UnitAddedEvent += onUnitAdded; unitList.UnitRemovedEvent += onUnitRemoved; ZRTSCompositeViewUIFactory factory = ZRTSCompositeViewUIFactory.Instance; foreach (UnitComponent unit in unitList.GetChildren()) { UnitUI unitUI = factory.BuildUnitUI(unit); unitUI.DrawBox = new Rectangle((int)(unit.PointLocation.X * cellDimension), (int)(unit.PointLocation.Y * cellDimension), unitUI.DrawBox.Width, unitUI.DrawBox.Height); AddChild(unitUI); componentToUI.Add(unit, unitUI); unit.MovedEventHandlers += updateLocationOfUnit; unit.HPChangedEventHandlers += killUnit; } BuildingList buildingList = player.BuildingList; foreach (Building b in buildingList.GetChildren()) { BuildingUI buildingUI = factory.BuildBuildingUI(b); buildingUI.DrawBox = new Rectangle((int)b.PointLocation.X * cellDimension, (int)b.PointLocation.Y * cellDimension, buildingUI.DrawBox.Width, buildingUI.DrawBox.Height); AddChild(buildingUI); } buildingList.BuildingAddedEventHandlers += this.onBuildingAdded; } leftButtonStrategy = new DrawSelectionBoxStrategy(this); OnClick += moveSelectedUnits; }
/// <summary> /// Constructor /// </summary> /// <param name="game">game object</param> public MapView(Game game) : base(game) { PlayerList players = ((XnaUITestGame)game).Model.GetScenario().GetGameWorld().GetPlayerList(); foreach (PlayerComponent player in players.GetChildren()) { UnitList unitList = player.GetUnitList(); unitList.UnitAddedEvent += onUnitAdded; unitList.UnitRemovedEvent += onUnitRemoved; ZRTSCompositeViewUIFactory factory = ZRTSCompositeViewUIFactory.Instance; foreach (UnitComponent unit in unitList.GetChildren()) { UnitUI unitUI = factory.BuildUnitUI(unit); unitUI.DrawBox = new Rectangle((int)(unit.PointLocation.X * cellDimension), (int)(unit.PointLocation.Y * cellDimension), unitUI.DrawBox.Width, unitUI.DrawBox.Height); AddChild(unitUI); componentToUI.Add(unit, unitUI); unit.MovedEventHandlers += updateLocationOfUnit; unit.HPChangedEventHandlers += killUnit; } BuildingList buildingList = player.BuildingList; foreach (Building b in buildingList.GetChildren()) { BuildingUI buildingUI = factory.BuildBuildingUI(b); buildingUI.DrawBox = new Rectangle((int)b.PointLocation.X * cellDimension, (int)b.PointLocation.Y * cellDimension, buildingUI.DrawBox.Width, buildingUI.DrawBox.Height); AddChild(buildingUI); } buildingList.BuildingAddedEventHandlers += this.onBuildingAdded; } leftButtonStrategy = new DrawSelectionBoxStrategy(this); OnClick += moveSelectedUnits; }