Exemple #1
0
 private void OrderSplitUnit(object sender, TicketRaisedEventArgs e)
 {
     if (e.Result == PostOrderResponse.Processed)
     {
         DepartmentOfEducation agency = base.Commander.Empire.GetAgency <DepartmentOfEducation>();
         if (agency.Heroes.Count > 0)
         {
             OrderChangeHeroAssignment order = new OrderChangeHeroAssignment(base.Commander.Empire.Index, agency.Heroes[0].GUID, (e.Order as OrderTransferGarrisonToNewArmy).ArmyGuid);
             base.Commander.Empire.PlayerControllers.AI.PostOrder(order);
         }
         AILayer_ArmyManagement layer = base.Commander.AIPlayer.GetEntity <AIEntity_Empire>().GetLayer <AILayer_ArmyManagement>();
         if (layer != null)
         {
             layer.AssignJoblessArmies();
         }
     }
 }
Exemple #2
0
 private void OrderSpawnArmy_TicketRaised(object sender, TicketRaisedEventArgs e)
 {
     if (e.Result == PostOrderResponse.Processed)
     {
         OrderSpawnArmy orderSpawnArmy = e.Order as OrderSpawnArmy;
         IGameEntity    gameEntity;
         if (this.gameEntityRepositoryService != null && this.gameEntityRepositoryService.TryGetValue(orderSpawnArmy.GameEntityGUID, out gameEntity) && gameEntity != null)
         {
             Army army = gameEntity as Army;
             if (army != null && army.StandardUnits.Count > 0)
             {
                 OrderTransferResources order = new OrderTransferResources(this.EmpireArmyOwner.Index, this.TransferResourceName, (float)this.TransferResourceAmount, army.StandardUnits[0].GUID);
                 this.EmpireArmyOwner.PlayerControllers.Server.PostOrder(order);
             }
         }
     }
 }
    private void OrderChangeEmpirePlan_TicketRaised(object sender, TicketRaisedEventArgs e)
    {
        OrderChangeEmpirePlan       orderEmpirePlan             = e.Order as OrderChangeEmpirePlan;
        EvaluableMessage_EmpirePlan evaluableMessage_EmpirePlan = base.AIEntity.AIPlayer.Blackboard.FindFirst <EvaluableMessage_EmpirePlan>(BlackboardLayerID.Empire, (EvaluableMessage_EmpirePlan match) => match.EvaluationState == EvaluableMessage.EvaluableMessageState.Validate && match.EmpirePlanClass == orderEmpirePlan.EmpirePlanClass);

        if (evaluableMessage_EmpirePlan != null)
        {
            if (e.Result == PostOrderResponse.Processed)
            {
                evaluableMessage_EmpirePlan.SetObtained();
            }
            else
            {
                evaluableMessage_EmpirePlan.SetFailedToObtain();
            }
        }
    }
    private void OnPostOrderGetAIDiplomaticTermsEvaluationResponse(object sender, TicketRaisedEventArgs ticketRaisedEventArgs)
    {
        OrderGetAIDiplomaticTermEvaluation orderGetAIDiplomaticTermEvaluation = ticketRaisedEventArgs.Order as OrderGetAIDiplomaticTermEvaluation;

        if (orderGetAIDiplomaticTermEvaluation == null)
        {
            Diagnostics.LogError("Invalid ticket raised event args.");
            return;
        }
        if (ticketRaisedEventArgs.Result == PostOrderResponse.Processed)
        {
            Diagnostics.Assert(orderGetAIDiplomaticTermEvaluation.DiplomaticTerms.Length == orderGetAIDiplomaticTermEvaluation.DiplomaticTermEvaluations.Length);
            this.diplomaticTermsAndEvalutations.Clear();
            for (int i = 0; i < orderGetAIDiplomaticTermEvaluation.DiplomaticTerms.Length; i++)
            {
                this.diplomaticTermsAndEvalutations.Add(orderGetAIDiplomaticTermEvaluation.DiplomaticTerms[i], orderGetAIDiplomaticTermEvaluation.DiplomaticTermEvaluations[i]);
            }
        }
    }
    private void OnOrderResponse(object sender, TicketRaisedEventArgs args)
    {
        this.AgeTransform.Enable = true;
        DepartmentOfScience agency = this.empire.GetAgency <DepartmentOfScience>();

        DepartmentOfScience.ConstructibleElement.State technologyState = agency.GetTechnologyState(this.TechnologyDefinition);
        if (this.TechnologyDefinition.HasTechnologyFlag(DepartmentOfScience.ConstructibleElement.TechnologyFlag.KaijuUnlock))
        {
            IGameService service = Services.GetService <IGameService>();
            if (service == null || service.Game == null)
            {
                Diagnostics.LogError("GameService or GameService.Game is null");
                return;
            }
            IKaijuTechsService service2 = service.Game.Services.GetService <IKaijuTechsService>();
            technologyState = service2.GetTechnologyState(this.TechnologyDefinition, this.empire);
        }
        this.Refresh(this.empire, technologyState);
    }
    private void OrderBribeVillage_TicketRaised(object sender, TicketRaisedEventArgs e)
    {
        AICommanderWithObjective commanderObjective = this.aiBehaviorTree.AICommander as AICommanderWithObjective;

        if (commanderObjective != null)
        {
            EvaluableMessage_VillageAction evaluableMessage_VillageAction = this.aiBehaviorTree.AICommander.AIPlayer.Blackboard.FindFirst <EvaluableMessage_VillageAction>(BlackboardLayerID.Empire, (EvaluableMessage_VillageAction match) => match.RegionIndex == commanderObjective.RegionIndex && match.VillageGUID == commanderObjective.SubObjectiveGuid && match.AccountTag == AILayer_AccountManager.MilitaryAccountName);
            if (evaluableMessage_VillageAction == null)
            {
                if (this.ticket.PostOrderResponse != PostOrderResponse.Processed)
                {
                    evaluableMessage_VillageAction.SetFailedToObtain();
                    this.aiBehaviorTree.ErrorCode = 31;
                }
                else
                {
                    evaluableMessage_VillageAction.SetObtained();
                }
            }
        }
        this.ticket = null;
    }
    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;
    }
    private void BuyOutPopulation_TicketRaised(object sender, TicketRaisedEventArgs e)
    {
        List <EvaluableMessage_PopulationBuyout> list = new List <EvaluableMessage_PopulationBuyout>(this.aiEntityCity.Blackboard.GetMessages <EvaluableMessage_PopulationBuyout>(BlackboardLayerID.City, (EvaluableMessage_PopulationBuyout message) => message.CityGuid == this.aiEntityCity.City.GUID));

        if (list.Count == 0)
        {
            return;
        }
        if (list.Count > 1)
        {
            AILayer.LogWarning("There should not be several PopulationBuyout EvaluableMessages for the same city");
        }
        EvaluableMessage_PopulationBuyout evaluableMessage_PopulationBuyout = list[0];

        if (e.Result == PostOrderResponse.Processed)
        {
            evaluableMessage_PopulationBuyout.SetObtained();
        }
        else
        {
            evaluableMessage_PopulationBuyout.SetFailedToObtain();
        }
    }
    private void PillarOrder_TicketRaised(object sender, TicketRaisedEventArgs e)
    {
        OrderBuyoutAndActivatePillar order = e.Order as OrderBuyoutAndActivatePillar;
        IEnumerable <EvaluableMessage_PillarNeed> messages = base.AIEntity.AIPlayer.Blackboard.GetMessages <EvaluableMessage_PillarNeed>(BlackboardLayerID.Empire, (EvaluableMessage_PillarNeed match) => match.EvaluationState == EvaluableMessage.EvaluableMessageState.Validate && match.WorldPosition == order.TargetPosition && match.PillarDefinition.Name == order.PillarDefinitionName);

        if (messages.Any <EvaluableMessage_PillarNeed>())
        {
            using (IEnumerator <EvaluableMessage_PillarNeed> enumerator = messages.GetEnumerator())
            {
                if (enumerator.MoveNext())
                {
                    EvaluableMessage_PillarNeed evaluableMessage_PillarNeed = enumerator.Current;
                    if (e.Result != PostOrderResponse.Processed)
                    {
                        evaluableMessage_PillarNeed.SetFailedToObtain();
                    }
                    else
                    {
                        evaluableMessage_PillarNeed.SetObtained();
                    }
                }
            }
        }
    }
 private void OnOrderResponse(object sender, TicketRaisedEventArgs args)
 {
     this.WorkerGroupsTable.Enable = true;
     base.NeedRefresh = true;
 }
 private void OnOrderResponse(object sender, TicketRaisedEventArgs args)
 {
     base.AgeTransform.Enable = true;
     this.RefreshContent();
     this.RefreshButtons();
 }
 private void Order_TicketRaised(object sender, TicketRaisedEventArgs e)
 {
     this.orderExecuted = true;
 }
 private void OnOrderChangeDiplomaticContractTermsCollectionResponse(object sender, TicketRaisedEventArgs ticketRaisedEventArgs)
 {
     if (!(ticketRaisedEventArgs.Order is OrderChangeDiplomaticContractTermsCollection))
     {
         Diagnostics.LogError("Invalid ticket raised event args.");
         return;
     }
     base.NeedRefresh = true;
     if (ticketRaisedEventArgs.Result == PostOrderResponse.Processed && this.SelectedEmpire.IsControlledByAI)
     {
         this.PostOrderGetAIDiplomaticContractEvaluation();
     }
 }
 private void OnOrderResponse(object sender, TicketRaisedEventArgs args)
 {
 }
 private void ArmyAction_TicketRaised(object sender, TicketRaisedEventArgs e)
 {
     this.RefreshCanExecute();
 }
 private void BuyoutAndActivateBooster_TicketRaised(object sender, TicketRaisedEventArgs e)
 {
 }
 private void OnOrderResponse(object sender, TicketRaisedEventArgs args)
 {
     base.NeedRefresh = true;
 }