少年修仙传客户端代码仓库
client_linchunjie
2019-04-23 850bb3a90fe816ba7bab57cbf65478f2a34cd1f7
6586 【2.0】【前端】人族法宝界面优化
4个文件已添加
4个文件已修改
238 ■■■■ 已修改文件
Core/NetworkPackage/ClientPack/ClientToMapServer/CA5_Function/CA512_tagCMThinkMagicWeapon.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ClientPack/ClientToMapServer/CA5_Function/CA512_tagCMThinkMagicWeapon.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/DTCFile/ServerPack/H08_Event/DTC0823_tagDelMission.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Treasure/HumanInductionTaskCell.cs 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Treasure/HumanInductionTaskCell.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Treasure/HumanTreasureTaskCell.cs 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Treasure/HumanTreasureWin.cs 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Treasure/TreasureModel.cs 89 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/NetworkPackage/ClientPack/ClientToMapServer/CA5_Function/CA512_tagCMThinkMagicWeapon.cs
New file
@@ -0,0 +1,18 @@
using UnityEngine;
using System.Collections;
// A5 12 感应法宝 #tagCMThinkMagicWeapon
public class CA512_tagCMThinkMagicWeapon : GameNetPackBasic {
    public uint MWID;
    public CA512_tagCMThinkMagicWeapon () {
        combineCmd = (ushort)0x03FE;
        _cmd = (ushort)0xA512;
    }
    public override void WriteToBytes () {
        WriteBytes (MWID, NetDataType.DWORD);
    }
}
Core/NetworkPackage/ClientPack/ClientToMapServer/CA5_Function/CA512_tagCMThinkMagicWeapon.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 4a8f2189e3d0b7641bbcc1fee83f3930
timeCreated: 1555986406
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
Core/NetworkPackage/DTCFile/ServerPack/H08_Event/DTC0823_tagDelMission.cs
@@ -16,6 +16,9 @@
            return m_TaskModel ?? (m_TaskModel = ModelCenter.Instance.GetModel<TaskModel>());
        }
    }
    TreasureModel treasureModel { get { return ModelCenter.Instance.GetModel<TreasureModel>(); } }
    public override void Done(GameNetPackBasic vNetPack)
    {
@@ -25,6 +28,7 @@
        if (vNetData != null)
        {
            taskmodel.DelMission((int)vNetData.MissionID);
            treasureModel.ReceivePackage(vNetData);
        }
        //  PlayerDatas.Inst.missionDetail.DeleteMission((int)vNetData.MissionID);
    }
System/Treasure/HumanInductionTaskCell.cs
New file
@@ -0,0 +1,28 @@
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
namespace Snxxz.UI
{
    public class HumanInductionTaskCell : CellView
    {
        [SerializeField] Button m_Induction;
        TreasureModel model { get { return ModelCenter.Instance.GetModel<TreasureModel>(); } }
        private void Awake()
        {
            m_Induction.SetListener(OnInduction);
        }
        private void OnInduction()
        {
            var pak = new CA512_tagCMThinkMagicWeapon();
            pak.MWID = (uint)model.selectedTreasure;
            GameNetSystem.Instance.SendInfo(pak);
        }
    }
}
System/Treasure/HumanInductionTaskCell.cs.meta
New file
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: e873caffd7d027149a5aa6277ba5bfcf
timeCreated: 1555986232
licenseType: Pro
MonoImporter:
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant:
System/Treasure/HumanTreasureTaskCell.cs
@@ -9,12 +9,15 @@
{
    public class HumanTreasureTaskCell : CellView
    {
        [SerializeField] UIAlphaTween m_AlphaTween;
        [SerializeField] Text m_TreasureName;
        [SerializeField] Text m_ClueName;
        [SerializeField] Transform m_ContainerCollected;
        [SerializeField] Transform m_ContainerCollecting;
        [SerializeField] Button m_Goto;
        [SerializeField] Transform m_ContainerCutline;
        public static int lastClue = 0;
        TreasureModel model { get { return ModelCenter.Instance.GetModel<TreasureModel>(); } }
        TaskModel taskModel { get { return ModelCenter.Instance.GetModel<TaskModel>(); } }
@@ -24,7 +27,7 @@
            m_Goto.AddListener(Goto);
        }
        public void Display(int clue)
        public void Display(int clue, bool animationStep = false)
        {
            var config = TreasureConfig.Get(model.selectedTreasure);
            m_TreasureName.text = StringUtility.Contact("【", config.Name, "】");
@@ -74,8 +77,20 @@
            m_ContainerCollected.gameObject.SetActive(clueState == 2);
            m_ContainerCollecting.gameObject.SetActive(clueState == 1);
            var lastClue = clues.Keys.Last();
            m_TreasureName.color = clueState == 0 ? UIHelper.s_Gray : UIHelper.s_LightYellow;
            m_ClueName.color = clueState == 0 ? UIHelper.s_Gray : UIHelper.s_LightYellow;
            m_ContainerCutline.gameObject.SetActive(lastClue != clue);
            if (!animationStep)
            {
                m_AlphaTween.SetEndState();
            }
            else
            {
                m_AlphaTween.SetStartState();
                m_AlphaTween.Play();
            }
        }
        private void Goto()
System/Treasure/HumanTreasureWin.cs
@@ -35,6 +35,8 @@
        bool animationStep = false;
        List<int> animationClues = new List<int>();
        TreasureModel model
        {
            get { return ModelCenter.Instance.GetModel<TreasureModel>(); }
@@ -62,6 +64,7 @@
            TreasureBaseWin.allowSelectTreasure += AllowSelectTreasure;
            model.treasureSelectedEvent += TreasureSelectedEvent;
            model.onInductionTaskComplete += OnInductionTaskComplete;
        }
        protected override void OnActived()
@@ -78,6 +81,9 @@
        {
            TreasureBaseWin.allowSelectTreasure -= AllowSelectTreasure;
            model.treasureSelectedEvent -= TreasureSelectedEvent;
            model.onInductionTaskComplete -= OnInductionTaskComplete;
            StopAllCoroutines();
        }
        protected override void OnAfterClose()
@@ -138,17 +144,20 @@
            }
        }
        void DisplayTasks()
        void DisplayTasks(bool taskAnimation = false)
        {
            var inductionTaskId = 0;
            model.TryGetInductionTask(model.selectedTreasure, out inductionTaskId);
            model.TryGetLatestInductionTask(model.selectedTreasure, out inductionTaskId);
            var inductionState = model.GetTreasureInductionState(model.selectedTreasure);
            animationClues.Clear();
            m_TaskController.Refresh();
            Dictionary<int, List<int>> clues;
            if (model.TryGetTreasureClues(model.selectedTreasure, out clues))
            {
                var lastClue = 0;
                foreach (var clue in clues.Keys)
                {
                    var display = false;
@@ -163,17 +172,30 @@
                            display = true;
                            break;
                    }
                    if (display)
                    {
                        if (taskAnimation)
                        {
                            if (inductionTaskId < tasks[tasks.Count - 1])
                            {
                                animationClues.Add(clue);
                            }
                        }
                        m_TaskController.AddCell(ScrollerDataType.Header, clue);
                        lastClue = clue;
                    }
                }
                HumanTreasureTaskCell.lastClue = lastClue;
                if (inductionState == 0)
                {
                    HumanTreasureTaskCell.lastClue = -1;
                    m_TaskController.AddCell(ScrollerDataType.Normal, inductionTaskId);
                }
            }
            m_TaskController.Restart();
            animationClues.Clear();
        }
        void DisplayAnimation()
@@ -196,6 +218,8 @@
        private void TreasureSelectedEvent(int obj)
        {
            StopAllCoroutines();
            m_PositionTween1.Stop();
            m_PositionTween2.Stop();
            m_PositionTween1.SetEndState();
@@ -203,6 +227,22 @@
            m_Container.gameObject.SetActive(true);
            UI3DTreasureSelectStage.Instance.SetEndState();
            Display();
        }
        private void OnInductionTaskComplete(int id)
        {
            if (id == model.selectedTreasure)
            {
                var count = m_TaskController.GetNumberOfCells(m_TaskController.m_Scorller);
                m_TaskController.JumpIndex(count - 1);
                StartCoroutine(Co_DelayShowTask());
            }
        }
        IEnumerator Co_DelayShowTask()
        {
            yield return new WaitForSeconds(3f);
            DisplayTasks(true);
        }
        private void Challenge()
@@ -229,8 +269,16 @@
        private void OnRefreshCell(ScrollerDataType type, CellView cell)
        {
            var taskCell = cell as HumanTreasureTaskCell;
            taskCell.Display(cell.index);
            if (type == ScrollerDataType.Header)
            {
                var taskCell = cell as HumanTreasureTaskCell;
                var animation = false;
                if (animationClues.Contains(cell.index))
                {
                    animation = true;
                }
                taskCell.Display(cell.index, animation);
            }
        }
        private void Preview()
System/Treasure/TreasureModel.cs
@@ -24,7 +24,7 @@
        Dictionary<TreasureCategory, int> treasureUnlockShowDict = new Dictionary<TreasureCategory, int>();
        Dictionary<int, int> treasureTaskCompletedCounts = new Dictionary<int, int>();
        Dictionary<int, int> treasureSignInPropertys = new Dictionary<int, int>();
        Dictionary<int, int> treasureInductionTasks = new Dictionary<int, int>();
        Dictionary<int, List<int>> treasureInductionTasks = new Dictionary<int, List<int>>();
        List<int> eightFurnacesAchievements = new List<int>();
        List<int> treasureUnOpens = new List<int>();
@@ -53,6 +53,7 @@
        public event Action<int> treasureStageUpEvent;
        public event Action<int> demonTreasureDungeonUpdate;
        public event Action demonDungeonChallengeNext;
        public event Action<int> onInductionTaskComplete;
        int m_SelectedTreasure = 0;
        public int selectedTreasure
@@ -325,30 +326,38 @@
                    continue;
                }
                Dictionary<int, List<int>> clues = null;
                if (!treasureClues.TryGetValue(config.FabaoID, out clues))
                if (config.clue != 0)
                {
                    clues = new Dictionary<int, List<int>>();
                    treasureClues.Add(config.FabaoID, clues);
                }
                List<int> tasks = null;
                if (!clues.TryGetValue(config.clue, out tasks))
                {
                    tasks = new List<int>();
                    clues.Add(config.clue, tasks);
                }
                tasks.Add(config.TaskID);
                    Dictionary<int, List<int>> clues = null;
                    if (!treasureClues.TryGetValue(config.FabaoID, out clues))
                    {
                        clues = new Dictionary<int, List<int>>();
                        treasureClues.Add(config.FabaoID, clues);
                    }
                    List<int> tasks = null;
                    if (!clues.TryGetValue(config.clue, out tasks))
                    {
                        tasks = new List<int>();
                        clues.Add(config.clue, tasks);
                    }
                    tasks.Add(config.TaskID);
                if (!treasureTasks.TryGetValue(config.FabaoID, out tasks))
                {
                    tasks = new List<int>();
                    treasureTasks.Add(config.FabaoID, tasks);
                    if (!treasureTasks.TryGetValue(config.FabaoID, out tasks))
                    {
                        tasks = new List<int>();
                        treasureTasks.Add(config.FabaoID, tasks);
                    }
                    tasks.Add(config.TaskID);
                }
                tasks.Add(config.TaskID);
                if (config.induction == 1)
                {
                    treasureInductionTasks.Add(config.FabaoID, config.TaskID);
                    if (!treasureInductionTasks.ContainsKey(config.FabaoID))
                    {
                        treasureInductionTasks.Add(config.FabaoID, new List<int>());
                    }
                    treasureInductionTasks[config.FabaoID].Add(config.TaskID);
                }
            }
@@ -994,9 +1003,43 @@
            }
        }
        public bool TryGetInductionTask(int id, out int taskId)
        public void ReceivePackage(H0823_tagDelMission package)
        {
            return treasureInductionTasks.TryGetValue(id, out taskId);
            if (isServerReady)
            {
                foreach (var id in treasureInductionTasks.Keys)
                {
                    if (treasureInductionTasks[id].Contains((int)package.MissionID))
                    {
                        if (onInductionTaskComplete != null)
                        {
                            onInductionTaskComplete(id);
                        }
                        break;
                    }
                }
            }
        }
        public bool TryGetLatestInductionTask(int id, out int taskId)
        {
            taskId = 0;
            var latestTask = taskModel.GetLatestMainTaskId();
            if (treasureInductionTasks.ContainsKey(id))
            {
                var count = treasureInductionTasks[id].Count;
                foreach (var _taskId in treasureInductionTasks[id])
                {
                    if (latestTask <= _taskId)
                    {
                        taskId = _taskId;
                        return true;
                    }
                }
                taskId = treasureInductionTasks[id][count - 1];
                return true;
            }
            return false;
        }
        public int GetTreasureInductionState(int treasurId)
@@ -1006,9 +1049,9 @@
                return 1;
            }
            var latestTask = taskModel.GetLatestMainTaskId();
            if (treasureInductionTasks.ContainsKey(treasurId))
            var inductionTask = 0;
            if (TryGetLatestInductionTask(treasurId, out inductionTask))
            {
                var inductionTask = treasureInductionTasks[treasurId];
                return latestTask.CompareTo(inductionTask);
            }
            return 1;