protected override bool IsMissionCompleted()
 {
     if (base.Commander.Empire != null && base.Commander.Empire is MajorEmpire && this.ailayer_QuestSolver == null)
     {
         GameServer gameServer = (Services.GetService <ISessionService>().Session as global::Session).GameServer as GameServer;
         try
         {
             AIPlayer_MajorEmpire aiplayer_MajorEmpire;
             if (gameServer.AIScheduler != null && gameServer.AIScheduler.TryGetMajorEmpireAIPlayer(base.Commander.Empire as MajorEmpire, out aiplayer_MajorEmpire))
             {
                 AIEntity entity = aiplayer_MajorEmpire.GetEntity <AIEntity_Empire>();
                 if (entity != null)
                 {
                     this.ailayer_QuestSolver = entity.GetLayer <AILayer_QuestSolver>();
                 }
             }
         }
         catch (Exception ex)
         {
             Diagnostics.LogError("Exceptions caught: {0}", new object[]
             {
                 ex
             });
             return(false);
         }
     }
     return(!(base.Commander is AICommander_Victory) && !AILayer_Patrol.IsPatrolValid(base.Commander.Empire, this.RegionTarget, this.ailayer_QuestSolver));
 }
 protected override bool IsObjectiveValid(StaticString objectiveType, int regionIndex, bool checkLocalPriority = false)
 {
     if (objectiveType == AICommanderMissionDefinition.AICommanderCategory.WarPatrol.ToString())
     {
         if (!this.departmentOfForeignAffairs.IsInWarWithSomeone())
         {
             return(false);
         }
     }
     else
     {
         objectiveType == AICommanderMissionDefinition.AICommanderCategory.Patrol.ToString();
     }
     return(AILayer_Patrol.IsPatrolValid(base.AIEntity.Empire, this.worldPositionningService.GetRegion(regionIndex), this.questSolverLayer));
 }