internal void OnStageClear(UserInfo user, StageClearInfo info, ref List <int> completedMissions) { // 任务完成,新任务解锁 foreach (MissionInfo missionInfo in user.Mission.UnCompletedMissions.Values) { if (null != missionInfo && null != missionInfo.Config) { if (user.Level >= missionInfo.Config.LevelLimit) { UpdateMissionDelegate handler = GetHandlerById(missionInfo.FinishType); if (null != handler) { bool result = handler(user, missionInfo, info); if (result) { completedMissions.Add(missionInfo.MissionId); } } } } } for (int i = 0; i < completedMissions.Count; ++i) { CompleteMission(user, completedMissions[i]); } }
internal bool IsMissionFinish(UserInfo user, int missionId) { MissionInfo mi = user.Mission.GetMissionInfoById(missionId); if (null != mi) { if (MissionStateType.COMPLETED == mi.State) { return(true); } else { UpdateMissionDelegate handler = GetHandlerById(mi.FinishType); if (null != handler) { return(handler(user, mi)); } } } return(false); }