コード例 #1
0
        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());
        }
コード例 #2
0
        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);
        }