少年修仙传客户端代码仓库
client_linchunjie
2018-12-26 48e759c7b38c3d762d558a3ffbd1085112a0d0ee
5504 【前端】【1.4】法宝标签页新增一个系列(王者法宝),王者法宝的功能开发
4个文件已修改
142 ■■■■■ 已修改文件
System/Treasure/KingTreasureModel.cs 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Treasure/KingTreasureWin.cs 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Treasure/TreasureBaseWin.cs 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Treasure/UI3DTreasureSelectStage.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Treasure/KingTreasureModel.cs
@@ -15,6 +15,11 @@
        public int wearCountLimit { get; private set; }
        TreasureModel treasureModel
        {
            get { return ModelCenter.Instance.GetModel<TreasureModel>(); }
        }
        public override void Init()
        {
            ParseConfig();
@@ -37,7 +42,7 @@
        void ParseConfig()
        {
            var config = Config.Instance.Get<FuncConfigConfig>("KingTreasure");
            var config = Config.Instance.Get<FuncConfigConfig>("MagicWeaponOfKing");
            if (config != null)
            {
                treasureSeasonDict = ConfigParse.GetDic<int, int>(config.Numerical1);
@@ -83,6 +88,26 @@
            return treasureSeasonDict.TryGetValue(treasureId, out season);
        }
        public List<int> GetDisplayList()
        {
            var displays = new List<int>();
            var list = treasureModel.GetTreasureCategory(TreasureCategory.King);
            for (int i = 0; i < list.Count; i++)
            {
                var season = 0;
                if (TryGetSeason(list[i], out season))
                {
                    if (season <= CrossServerOneVsOnePKSeason.Instance.SeasonID
                        || season == CrossServerOneVsOnePKSeason.Instance.SeasonID + 1)
                    {
                        displays.Add(list[i]);
                    }
                }
            }
            return displays;
        }
        public void OnReceivePackage(HA352_tagMCMagicWeaponLVInfo package)
        {
            for (int i = 0; i < package.Count; i++)
System/Treasure/KingTreasureWin.cs
@@ -17,7 +17,6 @@
    {
        [SerializeField] PositionTween m_PositionTween;
        [SerializeField] Image m_TreasureNameIcon;
        [SerializeField] Text m_TreasureStory;
        [SerializeField] RectTransform m_ContainerOnGoing;
        [SerializeField] Text m_SeasonOnGoingRemind;
        [SerializeField] RectTransform m_ContainerEnd;
@@ -62,9 +61,20 @@
        {
            UI3DTreasureSelectStage.Instance.SetStartState();
            model.treasureSelectedEvent += TreasureSelectedEvent;
            TreasureBaseWin.allowSelectTreasure += AllowSelectTreasure;
            Display();
            m_Remind.text = Language.Get("KingTreasureLimitRemind", kingTreasureModel.wearCountLimit);
            var countDisplay = string.Empty;
            if (kingTreasureModel.wearCountLimit == 2)
            {
                countDisplay = Language.Get("Num_CHS_Two");
            }
            else
            {
                countDisplay = Language.Get(StringUtility.Contact("Num_CHS_", kingTreasureModel.wearCountLimit));
            }
            m_Remind.text = Language.Get("KingTreasureLimitRemind", countDisplay);
        }
        protected override void OnActived()
@@ -80,6 +90,7 @@
        protected override void OnPreClose()
        {
            model.treasureSelectedEvent -= TreasureSelectedEvent;
            TreasureBaseWin.allowSelectTreasure -= AllowSelectTreasure;
        }
        protected override void OnAfterClose()
@@ -91,6 +102,7 @@
        {
            DisplayBase();
            DisplayState();
            DisplayGoto();
        }
        void DisplayBase()
@@ -99,7 +111,6 @@
            if (config != null)
            {
                m_TreasureNameIcon.SetSprite(config.NameIcon);
                m_TreasureStory.text = config.Story;
            }
        }
@@ -111,13 +122,19 @@
            m_ContainerOnGoing.gameObject.SetActive(false);
            if (model.TryGetTreasure(model.selectedTreasure, out treasure))
            {
                var season = 0;
                kingTreasureModel.TryGetSeason(model.selectedTreasure, out season);
                if (treasure.state == TreasureState.Collected)
                {
                    DisplayGot();
                }
                else if (season < CrossServerOneVsOnePKSeason.Instance.SeasonID)
                {
                    DisplayEnd();
                }
                else
                {
                    DisplayOnGoing();
                }
            }
        }
@@ -132,7 +149,12 @@
            if (kingTreasureModel.TryGetSeason(model.selectedTreasure, out session)
                && crossServerOneVsOneModel.TryGetOneVsOneHistory(session, out history))
            {
                //--todo 显示段位等级
                var divisionConfig = Config.Instance.Get<CrossServerArenaConfig>(history.division);
                if (divisionConfig != null)
                {
                    m_DivisionIcon.SetSprite(divisionConfig.IconKey);
                    m_Division.text = divisionConfig.Name;
                }
                KingTreasureModel.Division division;
                if (kingTreasureModel.TryGetDivision(model.selectedTreasure, history.division, out division))
                {
@@ -182,11 +204,20 @@
        void DisplayEnd()
        {
            m_ContainerEnd.gameObject.SetActive(true);
            m_SeasonEndRemind.text = UIHelper.ReplaceNewLine(Language.Get("KingTreasureEndRemind"));
        }
        void DisplayOnGoing()
        {
            m_ContainerOnGoing.gameObject.SetActive(true);
            m_SeasonOnGoingRemind.text = Language.Get("KingTreasureOnGoingRemind");
        }
        void DisplayGoto()
        {
            var season = 0;
            kingTreasureModel.TryGetSeason(model.selectedTreasure, out season);
            m_Goto.gameObject.SetActive(CrossServerOneVsOnePKSeason.Instance.SeasonID == season);
        }
        void DisplayTween()
@@ -200,6 +231,21 @@
            Display();
        }
        private bool AllowSelectTreasure(int id)
        {
            var list = kingTreasureModel.GetDisplayList();
            var season = 0;
            if (kingTreasureModel.TryGetSeason(id, out season))
            {
                if (season == CrossServerOneVsOnePKSeason.Instance.SeasonID + 1)
                {
                    SysNotifyMgr.Instance.ShowTip("TreasureOneVsOneSeasonNotStart");
                    return false;
                }
            }
            return list.Contains(id);
        }
        private void Goto()
        {
            //--todo 跳转至赛季目标
System/Treasure/TreasureBaseWin.cs
@@ -33,6 +33,11 @@
        {
            get { return ModelCenter.Instance.GetModel<TreasureModel>(); }
        }
        KingTreasureModel kingTreasureModel
        {
            get { return ModelCenter.Instance.GetModel<KingTreasureModel>(); }
        }
        #region Built-in
        protected override void BindController()
        {
@@ -151,9 +156,9 @@
                    WindowCenter.Instance.Open<FairyTreasureWin>();
                    break;
                case TreasureCategory.King:
                    m_TreasureTitle.SetSprite("XT_FB_46");
                    m_Left.image.SetSprite("XT_FB_35");
                    m_Right.image.SetSprite("XT_FB_36");
                    m_TreasureTitle.SetSprite("KingTreasureTitle");
                    m_Left.image.SetSprite("KingTreasureLeftSelect");
                    m_Right.image.SetSprite("KingTreasureRightSelect");
                    WindowCenter.Instance.Open<KingTreasureWin>();
                    break;
            }
@@ -162,10 +167,26 @@
        private void DisplaySelects()
        {
            var leftRifht = Config.Instance.Get<TreasureConfig>(model.selectedTreasure + 1);
            m_Right.gameObject.SetActive(leftRifht != null);
            leftRifht = Config.Instance.Get<TreasureConfig>(model.selectedTreasure - 1);
            m_Left.gameObject.SetActive(leftRifht != null);
            switch (model.currentCategory)
            {
                case TreasureCategory.King:
                    {
                        var list = kingTreasureModel.GetDisplayList();
                        var leftRifht = list.Contains(model.selectedTreasure + 1);
                        m_Right.gameObject.SetActive(leftRifht);
                        leftRifht = list.Contains(model.selectedTreasure - 1);
                        m_Left.gameObject.SetActive(leftRifht);
                    }
                    break;
                default:
                    {
                        var leftRifht = Config.Instance.Get<TreasureConfig>(model.selectedTreasure + 1);
                        m_Right.gameObject.SetActive(leftRifht != null);
                        leftRifht = Config.Instance.Get<TreasureConfig>(model.selectedTreasure - 1);
                        m_Left.gameObject.SetActive(leftRifht != null);
                    }
                    break;
            }
        }
        private void OnCameraBackComplete()
System/Treasure/UI3DTreasureSelectStage.cs
@@ -704,6 +704,23 @@
            {
                return;
            }
            switch (currentCategory)
            {
                case TreasureCategory.King:
                    {
                        var model = ModelCenter.Instance.GetModel<KingTreasureModel>();
                        var season = 0;
                        if (model.TryGetSeason(_treasureId, out season))
                        {
                            if (season == CrossServerOneVsOnePKSeason.Instance.SeasonID + 1)
                            {
                                SysNotifyMgr.Instance.ShowTip("TreasureOneVsOneSeasonNotStart");
                                return;
                            }
                        }
                    }
                    break;
            }
            var _list = m_Treasures[currentCategory];
            var _index = _list.FindIndex((x) =>
            {
@@ -1185,6 +1202,13 @@
            var list = model.GetTreasureCategory(category);
            switch (category)
            {
                case TreasureCategory.King:
                    {
                        var model = ModelCenter.Instance.GetModel<KingTreasureModel>();
                        var displays = model.GetDisplayList();
                        displayTreasures.AddRange(displays);
                    }
                    break;
                default:
                    displayTreasures.AddRange(list);
                    break;