少年修仙传客户端代码仓库
client_Zxw
2018-08-22 7a6cf79f0c59ea0a080fac7313b4dcaab55ded6d
System/MainInterfacePanel/SideMission.cs
@@ -9,9 +9,11 @@
using TableConfig;
using System.Collections.Generic;
//任务面板的支线任务
namespace Snxxz.UI {
namespace Snxxz.UI
{
    public class SideMission:MonoBehaviour {
    public class SideMission : MonoBehaviour
    {
        [SerializeField] ScrollerController _TaskRamusList;
        //右侧面板
        [SerializeField] Text _Text_TaskName;//任务名
@@ -25,11 +27,15 @@
        PlayerTaskDatas taskmodel { get { return m_TaskModel ?? (m_TaskModel = ModelCenter.Instance.GetModel<PlayerTaskDatas>()); } }
        ItemTipsModel _itemTipsModel;
        ItemTipsModel itemTipsModel { get { return _itemTipsModel ?? (_itemTipsModel = ModelCenter.Instance.GetModel<ItemTipsModel>()); } }
        PlayerPackModel _playerPack;
        PlayerPackModel playerPack { get { return _playerPack ?? (_playerPack = ModelCenter.Instance.GetModel<PlayerPackModel>()); } }
        PlayerMainDate m_MainModel;
        PlayerMainDate mainModel { get { return m_MainModel ?? (m_MainModel = ModelCenter.Instance.GetModel<PlayerMainDate>()); } }
        private List<RewardAnalysis.RewardInfo> rewardList = new List<RewardAnalysis.RewardInfo>();
        private int TaskIdNow = 0;
        private void Awake()
        {
        }
        private void Start()
        {
@@ -39,25 +45,108 @@
        {
            TaskIdNow = 0;
            _TaskRamusList.OnRefreshCell += OnRefreshGridCell;
            playerPack.RefreshItemCountAct += RefreshItemCountAct;
            playerPack.ItemCntReduceAct += ItemCntReduceAct;
            OnCreateGridLineCell(_TaskRamusList);
        }
        private void OnDisable()
        {
            _TaskRamusList.OnRefreshCell -= OnRefreshGridCell;
            playerPack.RefreshItemCountAct -= RefreshItemCountAct;
            playerPack.ItemCntReduceAct -= ItemCntReduceAct;
        }
        private void ItemCntReduceAct(PackType arg1, int arg2, int arg3)
        {
            if (arg1 == PackType.rptItem && arg3 == mainModel.ItemID)
            {
                foreach (var key in taskmodel.SideQuestsDic.Keys)
                {
                    if (mainModel.TaskId_Skill1.Contains(key))
                    {
                        _TaskRamusList.m_Scorller.RefreshActiveCellViews();//刷新当前可见
                    }
                }
            }
        }
        private void RefreshItemCountAct(PackType arg1, int arg2, int arg3)
        {
            if (arg1 == PackType.rptItem && arg3 == mainModel.ItemID)
            {
                foreach (var key in taskmodel.SideQuestsDic.Keys)
                {
                    if (mainModel.TaskId_Skill1.Contains(key))
                    {
                        _TaskRamusList.m_Scorller.RefreshActiveCellViews();//刷新当前可见
                    }
                }
            }
        }
        private void ForwardButton()
        {
            if (mainModel.TaskId_Skill1.Contains(TaskIdNow))
            {
                int itemNumber = playerPack.GetItemCountByID(PackType.rptItem, mainModel.ItemID);//获取特殊物品
                if (itemNumber >= mainModel.ItemNumber)
                {
                    taskmodel.CompletionOfTask(TaskIdNow);
                    WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.SkillFunc2);
                }
                else
                {
                    int Gold = (int)UIHelper.GetMoneyCnt(1);//仙玉
                    int GoldPaper = (int)UIHelper.GetMoneyCnt(2);//绑玉
                    string strNull = string.Empty;
                    int needNumber = (mainModel.ItemNumber - itemNumber) * mainModel.UnitPrice;//所需金额
                    if (GoldPaper >= needNumber)
                    {
                        strNull = string.Format(Language.Get("PassiveSkillTask3"), needNumber);
                    }
                    else
                    {
                        strNull = string.Format(Language.Get("PassiveSkillTask4"), needNumber, GoldPaper, needNumber- GoldPaper);
                    }
                    ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), strNull, (bool isOk) =>
                    {
                        if (isOk)
                        {
                            if (Gold + GoldPaper >= needNumber)
                            {
                                taskmodel.CompletionOfTask(TaskIdNow);
                                WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.SkillFunc2);
                            }
                            else
                            {
                                if (VersionConfig.Get().isBanShu)
                                {
                                    SysNotifyMgr.Instance.ShowTip("GoldErr");
                                    return;
                                }
                                WindowCenter.Instance.Open<RechargeTipWin>();
                            }
                        }
                    });
                }
                return;
            }
            if ((int)taskmodel.GetTaskStatus(TaskIdNow) == 3)
            {
                taskmodel.CompletionOfTask(TaskIdNow);
                if (mainModel.TaskId_Skill.Contains(TaskIdNow))
                {
                    WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.SkillFunc2);
                }
            }
            else
            {
                _Text_TaskTarget.ExcuteHref();
            }
            WindowCenter.Instance.CloseImmediately<TaskWin>();
            WindowCenter.Instance.Open<MainInterfaceWin>();
        }
@@ -92,17 +181,17 @@
                var taskname = taskmodel.SideQuestsDic[TaskId].Name;
                if (Config.Instance.Get<TASKINFOConfig>(taskname) == null)
                {
                    DebugEx.LogError("TASKINFO任务表格没有获取到该任务名称"+ taskname);
                    DebugEx.LogError("TASKINFO任务表格没有获取到该任务名称" + taskname);
                    return;
                }
                sideMissionTitleBtton.TitleName.text= Config.Instance.Get<TASKINFOConfig>(taskname).show_writing;//任务名
                sideMissionTitleBtton.TitleName.text = Config.Instance.Get<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(()=>
                sideMissionTitleBtton.SideMissionTitleBtton1.AddListener(() =>
                {
                    if (TaskId != TaskIdNow)
                    {
@@ -122,24 +211,43 @@
            _Text_TaskName.text = Config.Instance.Get<TASKINFOConfig>(taskmodel.SideQuestsDic[taskID].Name).show_writing;//任务名
            _Text_TaskDescribe.text = Config.Instance.Get<TASKINFOConfig>(taskmodel.SideQuestsDic[taskID].Desclist).show_writing;//任务描述
            string strINfor = taskmodel.SideQuestsDic[taskID].InforList;
            string str = Config.Instance.Get<TASKINFOConfig>(strINfor).show_writing;
            string str = string.Empty;
            if (mainModel.TaskId_Skill1.Contains(taskID))
            {
                int itemNumber = playerPack.GetItemCountByID(PackType.rptItem, mainModel.ItemID);//获取特殊物品
                if (itemNumber >= mainModel.ItemNumber)
                {
                    string Str_A = string.Format(Language.Get("PassiveSkillTask1"), mainModel.ItemID, mainModel.ItemNumber);
                    str = Str_A;
                }
                else
                {
                    string Str_A = string.Format(Language.Get("PassiveSkillTask1"), mainModel.ItemID, itemNumber);
                    str = Str_A;
                }
            }
            else
            {
                str = Config.Instance.Get<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)
            if ((int)taskmodel.GetTaskStatus(TaskIdNow) == 3 || mainModel.TaskId_Skill1.Contains(taskID))//能够进行立即完成的支线任务
            {
                _Text_Forward.text = string.Format(Language.Get("FinishAtOnce_Z")) ;
                _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)