//-------------------------------------------------------- 
 | 
//    [Author]:           第二世界 
 | 
//    [  Date ]:           Thursday, January 25, 2018 
 | 
//-------------------------------------------------------- 
 | 
using System; 
 | 
using System.Collections; 
 | 
using System.Collections.Generic; 
 | 
  
 | 
using UnityEngine; 
 | 
using System.Text.RegularExpressions; 
 | 
using System.Text; 
 | 
using vnxbqy.UI; 
 | 
  
 | 
  
 | 
namespace vnxbqy.UI 
 | 
{ 
 | 
    //接收剧情任务状态封包 
 | 
    public class TaskListType 
 | 
    { 
 | 
        public int TaskID; 
 | 
        public int TaskType;//(0,未完成,1,正在进行中) 
 | 
    } 
 | 
     
 | 
    public class StoryMissionsModel : Model, IBeforePlayerDataInitialize 
 | 
    { 
 | 
        public Dictionary<int, int> StoryMissionsDic = new Dictionary<int, int>();//(value,0未完成,1完成) 
 | 
        public Dictionary<int, List<TaskListConfig>> TaskCfgDict = new Dictionary<int, List<TaskListConfig>>(); 
 | 
        public Dictionary<int, int> TaskMainDic = new Dictionary<int, int>();//剧情编号,任务ID 
 | 
        public Dictionary<int, List<TaskListType>> taskListConfig = new Dictionary<int, List<TaskListType>>();//关于任务列表 
 | 
        TaskModel m_PlayerTaskDatas; 
 | 
        TaskModel onPlayerTask { get { return m_PlayerTaskDatas ?? (m_PlayerTaskDatas = ModelCenter.Instance.GetModel<TaskModel>()); } } 
 | 
        public override void Init() 
 | 
        { 
 | 
            var configTaskListValue = TaskListConfig.GetValues(); 
 | 
            foreach (var value in configTaskListValue) 
 | 
            { 
 | 
                List<TaskListConfig> _list = null; 
 | 
                if (!TaskCfgDict.TryGetValue(value.ChapterID, out _list)) 
 | 
                { 
 | 
                    _list = new List<TaskListConfig>(); 
 | 
                    TaskCfgDict.Add(value.ChapterID, _list); 
 | 
                } 
 | 
                _list.Add(value); 
 | 
            } 
 | 
        } 
 | 
  
 | 
        public void OnBeforePlayerDataInitialize() 
 | 
        { 
 | 
  
 | 
        } 
 | 
  
 | 
        public override void UnInit() 
 | 
        { 
 | 
  
 | 
        } 
 | 
        public void TaskMain() 
 | 
        { 
 | 
            TaskMainDic.Clear(); 
 | 
            taskListConfig.Clear(); 
 | 
            if (onPlayerTask.MainTaskDic.Count != 0) 
 | 
            { 
 | 
                foreach (int key in onPlayerTask.MainTaskDic.Keys) 
 | 
                { 
 | 
                    int chapterID = TaskListConfig.Get(key).ChapterID; 
 | 
                    if (TaskMainDic.ContainsKey(chapterID)) 
 | 
                    { 
 | 
                        TaskMainDic[chapterID] = key; 
 | 
                    } 
 | 
                    else 
 | 
                    { 
 | 
                        TaskMainDic.Add(chapterID, key); 
 | 
                    } 
 | 
                } 
 | 
            } 
 | 
            foreach (var key in TaskCfgDict.Keys) 
 | 
            { 
 | 
  
 | 
                if (TaskMainDic.ContainsKey(key))//身上的挂载任务 
 | 
                { 
 | 
                    int taskID = TaskMainDic[key]; 
 | 
                    int cout = TaskCfgDict[key].Count; 
 | 
                    if (!taskListConfig.ContainsKey(key)) 
 | 
                    { 
 | 
                        List<TaskListType> taskType = new List<TaskListType>(); 
 | 
                        for (int i = 0; i < cout; i++) 
 | 
                        { 
 | 
                            TaskListType taskList = new TaskListType(); 
 | 
                            taskList.TaskID = TaskCfgDict[key][i].TaskID; 
 | 
                            if (TaskCfgDict[key][i].TaskID < taskID) 
 | 
                            { 
 | 
                                taskList.TaskType = 0; 
 | 
                            } 
 | 
                            if (TaskCfgDict[key][i].TaskID == taskID) 
 | 
                            { 
 | 
                                taskList.TaskType = 1; 
 | 
                            } 
 | 
                            if (TaskCfgDict[key][i].TaskID > taskID) 
 | 
                            { 
 | 
                                taskList.TaskType = 2; 
 | 
                            } 
 | 
                            taskType.Add(taskList); 
 | 
                        } 
 | 
                        taskListConfig.Add(key, taskType); 
 | 
                    } 
 | 
                } 
 | 
                if (StoryMissionsDic.ContainsKey(key))//服务端任务表 
 | 
                { 
 | 
                    int cout = TaskCfgDict[key].Count; 
 | 
                    if (!taskListConfig.ContainsKey(key)) 
 | 
                    { 
 | 
                        List<TaskListType> taskType = new List<TaskListType>(); 
 | 
                        for (int i = 0; i < cout; i++) 
 | 
                        { 
 | 
                            TaskListType taskList = new TaskListType(); 
 | 
                            taskList.TaskID = TaskCfgDict[key][i].TaskID; 
 | 
                            taskList.TaskType = 0; 
 | 
                            taskType.Add(taskList); 
 | 
                        } 
 | 
                        taskListConfig.Add(key, taskType); 
 | 
                    } 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
        public void StoryMissionStateInfo(HB104_tagMCStoryMissionStateInfo vNetData) 
 | 
        { 
 | 
            for (int i = 0; i < vNetData.StoryMissionStateList.Length; i++) 
 | 
            { 
 | 
                int storyNum = vNetData.StoryMissionStateList[i].StoryNum; 
 | 
                int isAllFinish = vNetData.StoryMissionStateList[i].IsAllFinish; 
 | 
                if (StoryMissionsDic.ContainsKey(storyNum)) 
 | 
                { 
 | 
                    StoryMissionsDic[storyNum] = isAllFinish; 
 | 
                } 
 | 
                else 
 | 
                { 
 | 
                    StoryMissionsDic.Add(storyNum, isAllFinish); 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
    } 
 | 
} 
 |