| | |
| | | //-------------------------------------------------------- |
| | | // [Author]: 第二世界 |
| | | // [ Date ]: Friday, March 16, 2018 |
| | | //-------------------------------------------------------- |
| | | using UnityEngine; |
| | | using System.Collections; |
| | | using UnityEngine.UI; |
| | | using System; |
| | | using TableConfig; |
| | | using System.Collections.Generic; |
| | | //任务面板的支线任务 |
| | | namespace Snxxz.UI { |
| | | |
| | | public class SideMission:MonoBehaviour { |
| | | [SerializeField] ScrollerController _TaskRamusList; |
| | | //右侧面板 |
| | | [SerializeField] Text _Text_TaskName;//任务名 |
| | | [SerializeField] RichText _Text_TaskDescribe;//任务描述 |
| | | [SerializeField] RichText _Text_TaskTarget;//任务目标 |
| | | [SerializeField] Transform _Grid;//任务奖励生成的节点 |
| | | |
| | | [SerializeField] Button _Btn_Forward;//支线前往按钮 |
| | | [SerializeField] Text _Text_Forward;//按钮文字 |
| | | PlayerTaskDatas m_TaskModel; |
| | | PlayerTaskDatas taskmodel { get { return m_TaskModel ?? (m_TaskModel = ModelCenter.Instance.GetModel<PlayerTaskDatas>()); } } |
| | | ItemTipsModel _itemTipsModel; |
| | | ItemTipsModel itemTipsModel { get { return _itemTipsModel ?? (_itemTipsModel = ModelCenter.Instance.GetModel<ItemTipsModel>()); } } |
| | | private List<RewardAnalysis.RewardInfo> rewardList = new List<RewardAnalysis.RewardInfo>(); |
| | | private int TaskIdNow = 0; |
| | | private void Awake() |
| | | { |
| | | |
| | | } |
| | | private void Start() |
| | | { |
| | | _Btn_Forward.onClick.AddListener(ForwardButton); |
| | | } |
| | | private void OnEnable() |
| | | { |
| | | TaskIdNow = 0; |
| | | _TaskRamusList.OnRefreshCell += OnRefreshGridCell; |
| | | OnCreateGridLineCell(_TaskRamusList); |
| | | } |
| | | |
| | | private void OnDisable() |
| | | { |
| | | _TaskRamusList.OnRefreshCell -= OnRefreshGridCell; |
| | | } |
| | | |
| | | private void ForwardButton() |
| | | { |
| | | if ((int)taskmodel.GetTaskStatus(TaskIdNow) == 3) |
| | | { |
| | | taskmodel.CompletionOfTask(TaskIdNow); |
| | | } |
| | | else |
| | | { |
| | | _Text_TaskTarget.ExcuteHref(); |
| | | } |
| | | |
| | | WindowCenter.Instance.CloseImmediately<TaskWin>(); |
| | | WindowCenter.Instance.Open<MainInterfaceWin>(); |
| | | } |
| | | void OnCreateGridLineCell(ScrollerController gridCtrl)//任务预制体创建 |
| | | { |
| | | gridCtrl.Refresh(); |
| | | foreach (var key in taskmodel.SideQuestsDic.Keys) |
| | | { |
| | | if (TaskIdNow == 0) |
| | | { |
| | | TaskIdNow = key; |
| | | } |
| | | gridCtrl.AddCell(ScrollerDataType.Header, key); |
| | | } |
| | | gridCtrl.Restart(); |
| | | } |
| | | private void OnRefreshGridCell(ScrollerDataType type, CellView cell) |
| | | { |
| | | int TaskId = cell.index; |
| | | SideMissionTitleBtton sideMissionTitleBtton = cell.GetComponent<SideMissionTitleBtton>(); |
| | | if (taskmodel.SideQuestsDic.ContainsKey(TaskId)) |
| | | { |
| | | if (TaskId == TaskIdNow) |
| | | { |
| | | sideMissionTitleBtton.PitchOnImage.SetActive(true); |
| | | Information(TaskId); |
| | | } |
| | | else |
| | | { |
| | | sideMissionTitleBtton.PitchOnImage.SetActive(false); |
| | | } |
| | | sideMissionTitleBtton.TitleName.text= ConfigManager.Instance.GetTemplate<TASKINFOConfig>(taskmodel.SideQuestsDic[TaskId].Name).show_writing;//任务名 |
| | | sideMissionTitleBtton.Text_RamusState.text = GegionalTaskStatus(taskmodel.SideQuestsDic[TaskId].MissionState); |
| | | sideMissionTitleBtton.SideMissionTitleBtton1.RemoveAllListeners(); |
| | | sideMissionTitleBtton.SideMissionTitleBtton1.AddListener(()=> |
| | | { |
| | | if (TaskId != TaskIdNow) |
| | | { |
| | | TaskIdNow = TaskId; |
| | | _TaskRamusList.m_Scorller.RefreshActiveCellViews();//刷新当前可见 |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | void Information(int taskID) |
| | | { |
| | | _Text_TaskName.text = ConfigManager.Instance.GetTemplate<TASKINFOConfig>(taskmodel.SideQuestsDic[taskID].Name).show_writing;//任务名 |
| | | _Text_TaskDescribe.text = ConfigManager.Instance.GetTemplate<TASKINFOConfig>(taskmodel.SideQuestsDic[taskID].Desclist).show_writing;//任务描述 |
| | | string strINfor = taskmodel.SideQuestsDic[taskID].InforList; |
| | | string str = ConfigManager.Instance.GetTemplate<TASKINFOConfig>(strINfor).show_writing; |
| | | str = WordAnalysis.Color_Start_Regex.Replace(str, string.Empty); |
| | | str = WordAnalysis.Color_End_Regex.Replace(str, string.Empty); |
| | | _Text_TaskTarget.text = str;//任务目标 |
| | | if ((int)taskmodel.GetTaskStatus(TaskIdNow) == 3) |
| | | { |
| | | _Text_Forward.text = string.Format(Language.Get("FinishAtOnce_Z")) ; |
| | | } |
| | | else |
| | | { |
| | | _Text_Forward.text = TaskStatus(taskmodel.SideQuestsDic[taskID].MissionState); |
| | | } |
| | | |
| | | if (taskmodel._DicTaskInformation.ContainsKey(taskID)) |
| | | { |
| | | _Text_TaskTarget.SetReplaceInfo(taskmodel._DicTaskInformation[taskID]); |
| | | } |
| | | |
| | | if (taskmodel.SideQuestsDic[taskID].RewardList == null) |
| | | { |
| | | if (_Grid.childCount != 0) |
| | | { |
| | | for (int i = 0; i < _Grid.childCount; i++) |
| | | { |
| | | DestroyObject(_Grid.GetChild(i).gameObject); |
| | | } |
| | | } |
| | | DesignDebug.Log("没有任务奖励"); |
| | | return; |
| | | } |
| | | string _RewardStr = ConfigManager.Instance.GetTemplate<TASKINFOConfig>(taskmodel.SideQuestsDic[taskID].RewardList).show_writing; |
| | | RewardAnalysis.Inst.GetReward(_RewardStr, ref rewardList); |
| | | RewardInformationDisplay(rewardList); |
| | | } |
| | | void RewardInformationDisplay(List<RewardAnalysis.RewardInfo> rewardList)//奖励信息 |
| | | { |
| | | if (_Grid.childCount != 0) |
| | | { |
| | | for (int i = 0; i < _Grid.childCount; i++) |
| | | { |
| | | DestroyObject(_Grid.GetChild(i).gameObject); |
| | | } |
| | | } |
| | | if (rewardList.Count == 0) |
| | | return; |
| | | for (int i = 0; i < rewardList.Count; i++) |
| | | { |
| | | GameObject go = GameObject.Instantiate(UILoader.LoadPrefab("ItemCell")); |
| | | ItemCell itemcell = go.GetComponent<ItemCell>(); |
| | | go.transform.SetParent(_Grid); |
| | | go.transform.localScale = Vector3.one; |
| | | Vector3 pos = go.transform.localPosition; |
| | | go.transform.localPosition = pos.SetZ(0); |
| | | ItemCellModel cellModel = new ItemCellModel(rewardList[i].itemCfg.ID, true, (ulong)rewardList[i].num); |
| | | itemcell.Init(cellModel); |
| | | itemcell.cellBtn.RemoveAllListeners(); |
| | | int tab = i; |
| | | itemcell.cellBtn.AddListener(() => |
| | | { |
| | | ItemAttrData attrData = new ItemAttrData(rewardList[tab].itemCfg.ID, true, (ulong)rewardList[tab].num); |
| | | itemTipsModel.SetItemTipsModel(attrData); |
| | | }); |
| | | } |
| | | } |
| | | string TaskStatus(int _index)//获取支线任务状态 |
| | | { |
| | | _Btn_Forward.gameObject.SetActive(true); |
| | | switch (_index) |
| | | { |
| | | case 0: |
| | | _Btn_Forward.gameObject.SetActive(false); |
| | | return Language.Get("Z1075"); |
| | | case 1: |
| | | return Language.Get("Z1074"); |
| | | case 2: |
| | | return Language.Get("Z1076"); |
| | | } |
| | | return string.Empty; |
| | | } |
| | | |
| | | string GegionalTaskStatus(int _index)//任务状态 |
| | | { |
| | | switch (_index) |
| | | { |
| | | case 0: |
| | | return Language.Get("Z1072"); |
| | | case 1: |
| | | return Language.Get("Z1071"); |
| | | case 2: |
| | | return Language.Get("Z1073"); |
| | | } |
| | | return string.Empty; |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | //--------------------------------------------------------
|
| | | // [Author]: 第二世界
|
| | | // [ Date ]: Friday, March 16, 2018
|
| | | //--------------------------------------------------------
|
| | | using UnityEngine;
|
| | | using System.Collections;
|
| | | using UnityEngine.UI;
|
| | | using System;
|
| | | using TableConfig;
|
| | | using System.Collections.Generic;
|
| | | //任务面板的支线任务
|
| | | namespace Snxxz.UI {
|
| | |
|
| | | public class SideMission:MonoBehaviour {
|
| | | [SerializeField] ScrollerController _TaskRamusList;
|
| | | //右侧面板
|
| | | [SerializeField] Text _Text_TaskName;//任务名
|
| | | [SerializeField] RichText _Text_TaskDescribe;//任务描述
|
| | | [SerializeField] RichText _Text_TaskTarget;//任务目标
|
| | | [SerializeField] Transform _Grid;//任务奖励生成的节点
|
| | |
|
| | | [SerializeField] Button _Btn_Forward;//支线前往按钮
|
| | | [SerializeField] Text _Text_Forward;//按钮文字
|
| | | PlayerTaskDatas m_TaskModel;
|
| | | PlayerTaskDatas taskmodel { get { return m_TaskModel ?? (m_TaskModel = ModelCenter.Instance.GetModel<PlayerTaskDatas>()); } }
|
| | | ItemTipsModel _itemTipsModel;
|
| | | ItemTipsModel itemTipsModel { get { return _itemTipsModel ?? (_itemTipsModel = ModelCenter.Instance.GetModel<ItemTipsModel>()); } }
|
| | | private List<RewardAnalysis.RewardInfo> rewardList = new List<RewardAnalysis.RewardInfo>();
|
| | | private int TaskIdNow = 0;
|
| | | private void Awake()
|
| | | {
|
| | | |
| | | }
|
| | | private void Start()
|
| | | {
|
| | | _Btn_Forward.onClick.AddListener(ForwardButton);
|
| | | }
|
| | | private void OnEnable()
|
| | | {
|
| | | TaskIdNow = 0;
|
| | | _TaskRamusList.OnRefreshCell += OnRefreshGridCell;
|
| | | OnCreateGridLineCell(_TaskRamusList);
|
| | | }
|
| | |
|
| | | private void OnDisable()
|
| | | {
|
| | | _TaskRamusList.OnRefreshCell -= OnRefreshGridCell;
|
| | | }
|
| | |
|
| | | private void ForwardButton()
|
| | | {
|
| | | if ((int)taskmodel.GetTaskStatus(TaskIdNow) == 3)
|
| | | {
|
| | | taskmodel.CompletionOfTask(TaskIdNow);
|
| | | }
|
| | | else
|
| | | {
|
| | | _Text_TaskTarget.ExcuteHref();
|
| | | }
|
| | | |
| | | WindowCenter.Instance.CloseImmediately<TaskWin>();
|
| | | WindowCenter.Instance.Open<MainInterfaceWin>();
|
| | | }
|
| | | void OnCreateGridLineCell(ScrollerController gridCtrl)//任务预制体创建
|
| | | {
|
| | | gridCtrl.Refresh();
|
| | | foreach (var key in taskmodel.SideQuestsDic.Keys)
|
| | | {
|
| | | if (TaskIdNow == 0)
|
| | | {
|
| | | TaskIdNow = key;
|
| | | }
|
| | | gridCtrl.AddCell(ScrollerDataType.Header, key);
|
| | | }
|
| | | gridCtrl.Restart();
|
| | | }
|
| | | private void OnRefreshGridCell(ScrollerDataType type, CellView cell)
|
| | | {
|
| | | int TaskId = cell.index;
|
| | | SideMissionTitleBtton sideMissionTitleBtton = cell.GetComponent<SideMissionTitleBtton>();
|
| | | if (taskmodel.SideQuestsDic.ContainsKey(TaskId))
|
| | | {
|
| | | if (TaskId == TaskIdNow)
|
| | | {
|
| | | sideMissionTitleBtton.PitchOnImage.SetActive(true);
|
| | | Information(TaskId);
|
| | | }
|
| | | else
|
| | | {
|
| | | sideMissionTitleBtton.PitchOnImage.SetActive(false);
|
| | | }
|
| | | var taskname = taskmodel.SideQuestsDic[TaskId].Name;
|
| | | if (ConfigManager.Instance.GetTemplate<TASKINFOConfig>(taskname) == null)
|
| | | {
|
| | | DesignDebug.LogError("TASKINFO任务表格没有获取到该任务名称"+ taskname);
|
| | | return;
|
| | | }
|
| | | sideMissionTitleBtton.TitleName.text= ConfigManager.Instance.GetTemplate<TASKINFOConfig>(taskname).show_writing;//任务名
|
| | | if (!taskmodel.SideQuestsDic.ContainsKey(TaskId))
|
| | | {
|
| | | return;
|
| | | }
|
| | | sideMissionTitleBtton.Text_RamusState.text = GegionalTaskStatus(taskmodel.SideQuestsDic[TaskId].MissionState);
|
| | | sideMissionTitleBtton.SideMissionTitleBtton1.RemoveAllListeners();
|
| | | sideMissionTitleBtton.SideMissionTitleBtton1.AddListener(()=> |
| | | {
|
| | | if (TaskId != TaskIdNow)
|
| | | {
|
| | | TaskIdNow = TaskId;
|
| | | _TaskRamusList.m_Scorller.RefreshActiveCellViews();//刷新当前可见
|
| | | }
|
| | | });
|
| | | }
|
| | | }
|
| | |
|
| | | void Information(int taskID)
|
| | | {
|
| | | if (!taskmodel.SideQuestsDic.ContainsKey(taskID))
|
| | | {
|
| | | return;
|
| | | }
|
| | | _Text_TaskName.text = ConfigManager.Instance.GetTemplate<TASKINFOConfig>(taskmodel.SideQuestsDic[taskID].Name).show_writing;//任务名
|
| | | _Text_TaskDescribe.text = ConfigManager.Instance.GetTemplate<TASKINFOConfig>(taskmodel.SideQuestsDic[taskID].Desclist).show_writing;//任务描述
|
| | | string strINfor = taskmodel.SideQuestsDic[taskID].InforList;
|
| | | string str = ConfigManager.Instance.GetTemplate<TASKINFOConfig>(strINfor).show_writing;
|
| | | str = WordAnalysis.Color_Start_Regex.Replace(str, string.Empty);
|
| | | str = WordAnalysis.Color_End_Regex.Replace(str, string.Empty);
|
| | | _Text_TaskTarget.text = str;//任务目标
|
| | | if ((int)taskmodel.GetTaskStatus(TaskIdNow) == 3)
|
| | | {
|
| | | _Text_Forward.text = string.Format(Language.Get("FinishAtOnce_Z")) ;
|
| | | }
|
| | | else
|
| | | {
|
| | | _Text_Forward.text = TaskStatus(taskmodel.SideQuestsDic[taskID].MissionState);
|
| | | }
|
| | | |
| | | if (taskmodel._DicTaskInformation.ContainsKey(taskID))
|
| | | {
|
| | | _Text_TaskTarget.SetReplaceInfo(taskmodel._DicTaskInformation[taskID]);
|
| | | }
|
| | | |
| | | if (taskmodel.SideQuestsDic[taskID].RewardList == null)
|
| | | {
|
| | | if (_Grid.childCount != 0)
|
| | | {
|
| | | for (int i = 0; i < _Grid.childCount; i++)
|
| | | {
|
| | | DestroyObject(_Grid.GetChild(i).gameObject);
|
| | | }
|
| | | }
|
| | | DesignDebug.Log("没有任务奖励");
|
| | | return;
|
| | | }
|
| | | string _RewardStr = ConfigManager.Instance.GetTemplate<TASKINFOConfig>(taskmodel.SideQuestsDic[taskID].RewardList).show_writing;
|
| | | RewardAnalysis.Inst.GetReward(_RewardStr, ref rewardList);
|
| | | RewardInformationDisplay(rewardList);
|
| | | }
|
| | | void RewardInformationDisplay(List<RewardAnalysis.RewardInfo> rewardList)//奖励信息
|
| | | {
|
| | | if (_Grid.childCount != 0)
|
| | | {
|
| | | for (int i = 0; i < _Grid.childCount; i++)
|
| | | {
|
| | | DestroyObject(_Grid.GetChild(i).gameObject);
|
| | | }
|
| | | }
|
| | | if (rewardList.Count == 0)
|
| | | return;
|
| | | for (int i = 0; i < rewardList.Count; i++)
|
| | | {
|
| | | GameObject go = GameObject.Instantiate(UILoader.LoadPrefab("ItemCell"));
|
| | | ItemCell itemcell = go.GetComponent<ItemCell>();
|
| | | go.transform.SetParent(_Grid);
|
| | | go.transform.localScale = Vector3.one;
|
| | | Vector3 pos = go.transform.localPosition;
|
| | | go.transform.localPosition = pos.SetZ(0);
|
| | | ItemCellModel cellModel = new ItemCellModel(rewardList[i].itemCfg.ID, true, (ulong)rewardList[i].num);
|
| | | itemcell.Init(cellModel);
|
| | | itemcell.cellBtn.RemoveAllListeners();
|
| | | int tab = i;
|
| | | itemcell.cellBtn.AddListener(() =>
|
| | | {
|
| | | ItemAttrData attrData = new ItemAttrData(rewardList[tab].itemCfg.ID, true, (ulong)rewardList[tab].num);
|
| | | itemTipsModel.SetItemTipsModel(attrData);
|
| | | });
|
| | | }
|
| | | }
|
| | | string TaskStatus(int _index)//获取支线任务状态
|
| | | {
|
| | | _Btn_Forward.gameObject.SetActive(true);
|
| | | switch (_index)
|
| | | {
|
| | | case 0:
|
| | | _Btn_Forward.gameObject.SetActive(false);
|
| | | return Language.Get("Z1075");
|
| | | case 1:
|
| | | return Language.Get("Z1074");
|
| | | case 2:
|
| | | return Language.Get("Z1076");
|
| | | }
|
| | | return string.Empty;
|
| | | }
|
| | |
|
| | | string GegionalTaskStatus(int _index)//任务状态
|
| | | {
|
| | | switch (_index)
|
| | | {
|
| | | case 0:
|
| | | return Language.Get("Z1072");
|
| | | case 1:
|
| | | return Language.Get("Z1071");
|
| | | case 2:
|
| | | return Language.Get("Z1073");
|
| | | }
|
| | | return string.Empty;
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | |
|
| | |
|