少年修仙传客户端代码仓库
client_linchunjie
2018-12-06 bb467acc0530af8fde391ebd89e9146a0af5cb89
5280 【前端】【1.3.100】法宝列表界面按钮二次点击优化
3个文件已修改
95 ■■■■■ 已修改文件
System/Treasure/TreasureSelectWin.cs 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Treasure/UI3DTreasureSelectStage.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI/Common/FunctionButton.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/Treasure/TreasureSelectWin.cs
@@ -33,6 +33,7 @@
        }
        bool m_CorrectClose = false;
        bool rightSelect = true;
        #region Built-in
        protected override void BindController()
        {
@@ -48,6 +49,7 @@
                {
                    return;
                }
                rightSelect = true;
                UI3DTreasureSelectStage.Instance.SelectTreasureCategory(TreasureCategory.Human);
                UpdateButtonState();
            });
@@ -59,6 +61,7 @@
                {
                    return;
                }
                rightSelect = true;
                UI3DTreasureSelectStage.Instance.SelectTreasureCategory(TreasureCategory.Demon);
                UpdateButtonState();
            });
@@ -81,6 +84,18 @@
                CloseImmediately();
                UI3DTreasureSelectStage.Instance.Close();
            });
            m_HumanBtn.repeatClickFunc += () =>
            {
                ReclickSelect(TreasureCategory.Human);
            };
            m_DemonBtn.repeatClickFunc += () =>
            {
                ReclickSelect(TreasureCategory.Demon);
            };
            m_FairyBtn.repeatClickFunc += () =>
            {
                ReclickSelect(TreasureCategory.Fairy);
            };
        }
        protected override void OnPreOpen()
@@ -104,6 +119,7 @@
            UpdateButtonSelect();
            UpdateButtonState();
            m_CorrectClose = false;
            rightSelect = true;
        }
        protected override void OnActived()
@@ -230,6 +246,78 @@
                }, 1.5f);
            }
        }
        private void ReclickSelect(TreasureCategory category)
        {
            if (UI3DTreasureSelectStage.Instance.jumping
                || UI3DTreasureSelectStage.Instance.UnlockShowing || UI3DTreasureSelectStage.Instance.IsCloser
                || UI3DTreasureSelectStage.Instance.treasureFinishShowing)
            {
                return;
            }
            var list = model.GetTreasureCategory(category);
            var gotoId = 0;
            switch (category)
            {
                case TreasureCategory.Human:
                    for (int i = 0; i < list.Count; i++)
                    {
                        Treasure treasure;
                        if (model.TryGetTreasure(list[i], out treasure))
                        {
                            var humanTreasure = treasure as HumanTreasure;
                            if (treasure.achievementRedpoint.state == RedPointState.Simple
                                || treasure.skillLevelUpRedpoint.state == RedPointState.Simple
                                || humanTreasure.castSoulRedpoint.state == RedPointState.Simple
                                || humanTreasure.humanState == HumanTreasureState.Challenge)
                            {
                                if (list[i] > UI3DTreasureSelectStage.Instance.selectTreasure)
                                {
                                    if (rightSelect || gotoId == 0)
                                    {
                                        gotoId = list[i];
                                        break;
                                    }
                                }
                                else if (list[i] < UI3DTreasureSelectStage.Instance.selectTreasure)
                                {
                                    gotoId = list[i];
                                }
                            }
                        }
                    }
                    break;
                case TreasureCategory.Demon:
                    for (int i = 0; i < list.Count; i++)
                    {
                        TreasureDungeon treasureDungeon;
                        if (model.TryGetTreasureDungeon(list[i], out treasureDungeon))
                        {
                            if (treasureDungeon.challengeRedpoint.state == RedPointState.Simple)
                            {
                                if (list[i] > UI3DTreasureSelectStage.Instance.selectTreasure)
                                {
                                    if (rightSelect || gotoId == 0)
                                    {
                                        gotoId = list[i];
                                        break;
                                    }
                                }
                                else if (list[i] < UI3DTreasureSelectStage.Instance.selectTreasure)
                                {
                                    gotoId = list[i];
                                }
                            }
                        }
                    }
                    break;
            }
            if (gotoId != 0)
            {
                rightSelect = gotoId > UI3DTreasureSelectStage.Instance.selectTreasure;
                UI3DTreasureSelectStage.Instance.Goto(list.IndexOf(gotoId));
            }
        }
    }
}
System/Treasure/UI3DTreasureSelectStage.cs
@@ -739,7 +739,7 @@
        #region 滑动
        bool draging = false;
        bool dragStarted = false;
        bool jumping = false;
        public bool jumping = false;
        float veiocity = 0;
        float min_angle = 0;
        float max_angle = 0;
UI/Common/FunctionButton.cs
@@ -105,6 +105,7 @@
        }
        public event Action<string> OnPointClickLockFunc;
        public event Action repeatClickFunc;
        protected override void Awake()
        {
@@ -171,6 +172,10 @@
            if (!invokeForce && state == TitleBtnState.Click)
            {
                if (repeatClickFunc != null)
                {
                    repeatClickFunc();
                }
                return;
            }