private void OnDestroyCityImprovementResult(object sender, MessagePanelResultEventArgs e) { MessagePanelResult result = e.Result; if (result == MessagePanelResult.Ok) { List <ConstructedBuildingGuiItem> children = this.CityImprovementsTable.GetChildren <ConstructedBuildingGuiItem>(true); for (int i = 0; i < children.Count; i++) { if (children[i].Toggle.State && this.playerControllerRepository != null) { base.AgeTransform.Enable = false; OrderDestroyCityImprovement order = new OrderDestroyCityImprovement(this.City.Empire.Index, children[i].CityImprovement); Ticket ticket; this.playerControllerRepository.ActivePlayerController.PostOrder(order, out ticket, new EventHandler <TicketRaisedEventArgs>(this.OnOrderResponse)); } } List <ConstructedBuildingGuiItem> children2 = this.RegionBuildingsTable.GetChildren <ConstructedBuildingGuiItem>(true); for (int j = 0; j < children2.Count; j++) { if (children2[j].Toggle.State && this.playerControllerRepository != null) { base.AgeTransform.Enable = false; OrderDestroyPointOfInterestImprovement order2 = new OrderDestroyPointOfInterestImprovement(this.City.Empire.Index, children2[j].PointOfInterest); Ticket ticket2; this.playerControllerRepository.ActivePlayerController.PostOrder(order2, out ticket2, new EventHandler <TicketRaisedEventArgs>(this.OnOrderResponse)); } } } this.RefreshContent(); }
public override void Execute(Army army, global::PlayerController playerController, out Ticket ticket, EventHandler <TicketRaisedEventArgs> ticketRaisedEventHandler, params object[] parameters) { ticket = null; ArmyAction.FailureFlags.Clear(); if (this is IArmyActionWithTargetSelection) { PointOfInterest pointOfInterest = null; if (parameters != null && parameters.Length != 0 && parameters[0] is PointOfInterest) { pointOfInterest = (parameters[0] as PointOfInterest); } if (pointOfInterest != null) { OrderDestroyPointOfInterestImprovement orderDestroyPointOfInterestImprovement = new OrderDestroyPointOfInterestImprovement(army.Empire.Index, pointOfInterest.GUID); orderDestroyPointOfInterestImprovement.ArmyGUID = army.GUID; orderDestroyPointOfInterestImprovement.ArmyActionName = this.Name; orderDestroyPointOfInterestImprovement.NumberOfActionPointsToSpend = base.GetCostInActionPoints(); orderDestroyPointOfInterestImprovement.ArmyActionCooldownDuration = base.ComputeCooldownDuration(army); Diagnostics.Assert(playerController != null); playerController.PostOrder(orderDestroyPointOfInterestImprovement, out ticket, ticketRaisedEventHandler); return; } } else { this.ListNearbyPointsOfInterest(army); this.FilterPointsOfInterest(army, ref ArmyAction.FailureFlags); if (ArmyAction.FailureFlags.Count == 0 && this.PointsOfInterest.Count > 0) { GameEntityGUID[] array = (from enumerator in this.PointsOfInterest where enumerator.PointOfInterestImprovement != null && enumerator.CreepingNodeGUID == GameEntityGUID.Zero select enumerator.GUID).ToArray <GameEntityGUID>(); GameEntityGUID[] array2 = (from enumerator in this.PointsOfInterest where enumerator.CreepingNodeGUID != GameEntityGUID.Zero select enumerator.CreepingNodeGUID).ToArray <GameEntityGUID>(); for (int i = 0; i < array2.Length; i++) { StaticString armyActionName = new StaticString(); if (i == 0 && array.Length == 0) { armyActionName = this.Name; } OrderDismantleCreepingNodeSucceed order = new OrderDismantleCreepingNodeSucceed(army.Empire.Index, army.GUID, array2[i], armyActionName); playerController.PostOrder(order); } if (array.Length != 0) { OrderDestroyPointOfInterestImprovement orderDestroyPointOfInterestImprovement2 = new OrderDestroyPointOfInterestImprovement(army.Empire.Index, array); orderDestroyPointOfInterestImprovement2.ArmyGUID = army.GUID; orderDestroyPointOfInterestImprovement2.ArmyActionName = this.Name; orderDestroyPointOfInterestImprovement2.NumberOfActionPointsToSpend = base.GetCostInActionPoints(); orderDestroyPointOfInterestImprovement2.ArmyActionCooldownDuration = base.ComputeCooldownDuration(army); Diagnostics.Assert(playerController != null); playerController.PostOrder(orderDestroyPointOfInterestImprovement2, out ticket, ticketRaisedEventHandler); } } } }