public List <Mission> GetSolvableRandomMissionsAtLocation() { int[] missionIdsByAgent; if (!_missionDataCache.GetMissionIdsByAgent(Agent, out missionIdsByAgent)) { //no random mission defined for this agent return(new List <Mission>()); } var safeToResolveIds = _missionDataCache.GetAllResolveInfos.Where(i => i.locationId == id && i.IsSafeToResolve).Select(m => m.missionId).ToList(); return(_missionDataCache.GetAllMissions .Where(m => m.behaviourType == MissionBehaviourType.Random && missionIdsByAgent.Contains(m.id) && m.listable && safeToResolveIds.Contains(m.id) ).ToList()); }
private List <Mission> CollectMyMissions() { var missionList = new List <Mission>(); int[] missionIds; if (!_missionDataCache.GetMissionIdsByAgent(this, out missionIds)) { return(missionList); } foreach (var missionId in missionIds) { Mission mission; if (_missionDataCache.TryGetMissionById(missionId, out mission)) { missionList.Add(mission); } } return(missionList); }