コード例 #1
0
    protected override void ExecuteNeeds(StaticString context, StaticString pass)
    {
        base.ExecuteNeeds(context, pass);
        ISynchronousJobRepositoryAIHelper service = AIScheduler.Services.GetService <ISynchronousJobRepositoryAIHelper>();

        if (this.availableNodes.Count > 0 && this.nodesPerPopulation > 0f)
        {
            service.RegisterSynchronousJob(new SynchronousJob(this.SyncrhronousJob_QueueNode));
        }
        List <CreepingNodeBuyoutMessage> list = new List <CreepingNodeBuyoutMessage>(base.AIEntity.AIPlayer.Blackboard.GetMessages <CreepingNodeBuyoutMessage>(BlackboardLayerID.Empire, (CreepingNodeBuyoutMessage match) => match.State != BlackboardMessage.StateValue.Message_Canceled));

        for (int i = list.Count - 1; i >= 0; i--)
        {
            CreepingNodeBuyoutMessage message = list[i];
            if (!this.IsMessageValid(message))
            {
                base.AIEntity.AIPlayer.Blackboard.CancelMessage(message);
                list.RemoveAt(i);
            }
        }
        if (list.Count > 0)
        {
            this.validatedBuyoutMessages = list;
            service.RegisterSynchronousJob(new SynchronousJob(this.SyncrhronousJob_BuyoutNode));
        }
    }
コード例 #2
0
    protected override void ExecuteNeeds(StaticString context, StaticString pass)
    {
        base.ExecuteNeeds(context, pass);
        if (!this.departmentOfPlanification.IsEmpirePlanChoiceTurn)
        {
            return;
        }
        ISynchronousJobRepositoryAIHelper service = AIScheduler.Services.GetService <ISynchronousJobRepositoryAIHelper>();

        service.RegisterSynchronousJob(new SynchronousJob(this.SynchronousJob_ChangeEmpirePlan));
    }
コード例 #3
0
ファイル: AILayer_Altar.cs プロジェクト: LeaderEnemyBoss/ELCP
    protected override void ExecuteNeeds(StaticString context, StaticString pass)
    {
        base.ExecuteNeeds(context, pass);
        int num = base.AIEntity.AIPlayer.Blackboard.GetMessages <EvaluableMessage_VoteForSeasonEffect>(BlackboardLayerID.Empire, (EvaluableMessage_VoteForSeasonEffect match) => match.State == BlackboardMessage.StateValue.Message_InProgress).Count <EvaluableMessage_VoteForSeasonEffect>();

        if (num > 0)
        {
            ISynchronousJobRepositoryAIHelper service = AIScheduler.Services.GetService <ISynchronousJobRepositoryAIHelper>();
            service.RegisterSynchronousJob(new SynchronousJob(this.SynchronousJob_VoteForSeasonEffect));
        }
    }