Example #1
0
 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]);
     }
 }
Example #2
0
        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);
        }