public override void Execute(Army army, PlayerController playerController, out Ticket ticket, EventHandler <TicketRaisedEventArgs> ticketRaisedEventHandler, params object[] parameters) { ticket = null; OrderBuyoutAndPlaceTerraformationDevice order = new OrderBuyoutAndPlaceTerraformationDevice(army.Empire.Index, army.GUID, this.Name, "TerraformDevice1"); Diagnostics.Assert(playerController != null); playerController.PostOrder(order, out ticket, ticketRaisedEventHandler); }
protected override State Execute(AIBehaviorTree aiBehaviorTree, params object[] parameters) { this.aiBehaviorTree = aiBehaviorTree; if (this.ticket != null) { if (!this.orderExecuted) { return(State.Running); } this.orderExecuted = false; if (this.ticket.PostOrderResponse == PostOrderResponse.Processed) { this.ticket = null; return(State.Success); } this.ticket = null; return(State.Failure); } else { Army army; if (base.GetArmyUnlessLocked(aiBehaviorTree, "$Army", out army) != AIArmyMission.AIArmyMissionErrorCode.None) { return(State.Failure); } string text = string.Empty; if (string.IsNullOrEmpty(this.DeviceDefinitionName)) { text = "TerraformDevice2"; } else { text = (aiBehaviorTree.Variables[this.DeviceDefinitionName] as string); if (string.IsNullOrEmpty(text)) { return(State.Failure); } } OrderBuyoutAndPlaceTerraformationDevice order = new OrderBuyoutAndPlaceTerraformationDevice(army.Empire.Index, army.GUID, "ArmyActionTerraform", text); aiBehaviorTree.AICommander.Empire.PlayerControllers.AI.PostOrder(order, out this.ticket, new EventHandler <TicketRaisedEventArgs>(this.OrderTerraform_TicketRaised)); return(State.Running); } }