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)); }