Esempio n. 1
0
    protected override bool IsMissionCompleted()
    {
        AICommander_Terraformation commanderObjective = base.Commander as AICommander_Terraformation;

        if (!commanderObjective.IsPositionValidToTerraform(this.terraformPosition))
        {
            return(true);
        }
        EvaluableMessage_Terraform evaluableMessage_Terraform = commanderObjective.AIPlayer.Blackboard.FindFirst <EvaluableMessage_Terraform>(BlackboardLayerID.Empire, (EvaluableMessage_Terraform match) => match.RegionIndex == commanderObjective.RegionIndex && match.TerraformPosition == commanderObjective.TerraformPosition && match.DeviceDefinitionName == this.DeviceDefinitionName);

        return(evaluableMessage_Terraform == null || evaluableMessage_Terraform.State != BlackboardMessage.StateValue.Message_InProgress);
    }
    private void OrderTerraform_TicketRaised(object sender, TicketRaisedEventArgs e)
    {
        AICommander_Terraformation commanderObjective = this.aiBehaviorTree.AICommander as AICommander_Terraformation;

        if (commanderObjective != null && !string.IsNullOrEmpty(this.DeviceDefinitionName))
        {
            EvaluableMessage_Terraform evaluableMessage_Terraform = commanderObjective.AIPlayer.Blackboard.FindFirst <EvaluableMessage_Terraform>(BlackboardLayerID.Empire, (EvaluableMessage_Terraform match) => match.RegionIndex == commanderObjective.RegionIndex && match.TerraformPosition == commanderObjective.TerraformPosition);
            if (evaluableMessage_Terraform != null)
            {
                if (this.ticket.PostOrderResponse != PostOrderResponse.Processed)
                {
                    evaluableMessage_Terraform.SetFailedToObtain();
                    this.aiBehaviorTree.ErrorCode = 37;
                }
                else
                {
                    evaluableMessage_Terraform.SetObtained();
                }
            }
        }
        this.orderExecuted = true;
    }