Example #1
0
    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);
     }
 }