//--------------------------------------------------------
|
// [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 Snxxz.UI;
|
|
|
namespace Snxxz.UI
|
{
|
//接收剧情任务状态封包
|
public class TaskListType
|
{
|
public int TaskID;
|
public int TaskType;//(0,未完成,1,正在进行中)
|
}
|
[XLua.LuaCallCSharp]
|
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);
|
}
|
}
|
}
|
}
|
}
|