少年修仙传客户端代码仓库
client_Lhy
2019-06-22 28665556dc1f1b86c04fbae73bf7505e814b9551
7483 子 【2.0】【开发】日常界面新开启的功能要显示标识
5个文件已修改
92 ■■■■■ 已修改文件
System/DailyQuest/DailyQuestBehaviour.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DailyQuest/DailyQuestModel.cs 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DailyQuest/DailyQuestWin.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DailyQuest/DayQuestDetailsWin.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
UI/Common/FuncOpen.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/DailyQuest/DailyQuestBehaviour.cs
@@ -33,6 +33,7 @@
        [SerializeField] Transform m_Locked;
        [SerializeField] RedpointBehaviour m_RedpointBehaviour;
        [SerializeField] RedpointBehaviour m_FuncRedpointBehaviour;
        [SerializeField] UIEffect m_UIEffect;
        AchievementGuideEffect m_AchievementEffect;
@@ -57,6 +58,12 @@
            this.gameObject.name = StringUtility.Contact("DailyQuestBehaviour_", data.id);
            DisplayProgressAndActiveValue();
            if(model.IsNewDailyQuest(data.id))
            {
                m_UIEffect.maskArea = this.transform.parent.parent.parent.GetComponent<RectTransform>();
                m_UIEffect.Play();
            }
            dailyQuestConfig = DailyQuestConfig.Get(this.data.id);
            m_Title.text = dailyQuestConfig.Title;
            m_Icon.SetSprite(dailyQuestConfig.Icon);
System/DailyQuest/DailyQuestModel.cs
@@ -100,6 +100,9 @@
            }
        }
        private List<int> m_newDailyQuestOpenList = new List<int>();
        private List<int> m_HasShowDailyQuestList = new List<int>();
        Dictionary<int, DailyQuestData> dailyQuests = new Dictionary<int, DailyQuestData>();
        Dictionary<int, int> dungeonToDailyQuestTable = new Dictionary<int, int>();
        Dictionary<int, int> dailyActionToDailyQuestTable = new Dictionary<int, int>();
@@ -124,7 +127,7 @@
        public event Action currentActiveValueUpdateEvent;
        public event Action usableActivePointUpdateEvent;
        public event Action categoryChangeEvent;
        public event Action newDailyQuestOpenEvent;
        public override void Init()
        {
@@ -137,7 +140,6 @@
            }
            dailyQuestActiveValueRewards.Sort((x, y) => { return x.id.CompareTo(y.id); });
            UpdateRedpoints();
            fairyLeagueModel.onFairyLeagueBattleEvent += OnFairyLeagueBattle;
@@ -150,6 +152,7 @@
            allianceBossModel.allianceBossStateRefresh += AllianceBossStateRefresh;
            RedpointCenter.Instance.redpointValueChangeEvent += RedpointValueChangeEvent;
            TaskModel.Event_FairyAuTask += OnFairyTaskRefresh;
            FuncOpen.Instance.NewFuncOpenEvent += OnNewFuncOpen;
        }
        public override void UnInit()
@@ -164,6 +167,7 @@
            allianceBossModel.allianceBossStateRefresh -= AllianceBossStateRefresh;
            RedpointCenter.Instance.redpointValueChangeEvent -= RedpointValueChangeEvent;
            TaskModel.Event_FairyAuTask -= OnFairyTaskRefresh;
            FuncOpen.Instance.NewFuncOpenEvent -= OnNewFuncOpen;
        }
        public void OnPlayerLoginOk()
@@ -182,6 +186,55 @@
            UpdateRedpoints();
        }
        public void OnNewFuncOpen(int id)
        {
            var quests = DailyQuestConfig.GetValues();
            bool bHasAdd = false;
            foreach (var quest in quests)
            {
                if(quest.UnLockFuncID == id)
                {
                    m_newDailyQuestOpenList.Add(quest.ID);
                    bHasAdd = true;
                }
            }
            if (newDailyQuestOpenEvent != null && bHasAdd)
            {
                newDailyQuestOpenEvent();
            }
        }
        public bool IsNewDailyQuest(int id)
        {
            if(category == DailyQuestCategory.EveryDay)
            {
                if (m_newDailyQuestOpenList.Contains(id) && IsDailyQuestUnLock(id))
                {
                    if(!m_HasShowDailyQuestList.Contains(id))
                    {
                        m_HasShowDailyQuestList.Add(id);
                    }
                    return true;
                }
            }
            return false;
        }
        public void RemoveHasShowDailyQuest()
        {
            for (int i = 0; i < m_HasShowDailyQuestList.Count; i++)
            {
                var id = m_HasShowDailyQuestList[i];
                m_newDailyQuestOpenList.Remove(id);
            }
            m_HasShowDailyQuestList.Clear();
        }
        private void RedpointValueChangeEvent(int id)
        {
            if (id == prayerModel.redpoint.id)
System/DailyQuest/DailyQuestWin.cs
@@ -37,6 +37,12 @@
            model.currentDailyQuest = 0;
            model.wannaLookDailyQuest = 0;
            base.OnPreClose();
        }
        protected override void OnAfterClose()
        {
            base.OnAfterClose();
            model.RemoveHasShowDailyQuest();
        }
        protected override void OnActived()
System/DailyQuest/DayQuestDetailsWin.cs
@@ -49,6 +49,7 @@
        {
            model.usableActivePointUpdateEvent += OnUpdateUsableActivePoint;
            model.categoryChangeEvent += ShowQuestGroups;
            model.newDailyQuestOpenEvent += ShowQuestGroups;
        }
        protected override void OnPreClose()
@@ -57,6 +58,7 @@
            model.wannaLookDailyQuest = 0;
            m_QuestScroll.Dispose();
            model.newDailyQuestOpenEvent -= ShowQuestGroups;
            model.categoryChangeEvent -= ShowQuestGroups;
            model.usableActivePointUpdateEvent -= OnUpdateUsableActivePoint;
            if (m_CheckMouseDown != null)
@@ -69,7 +71,7 @@
        protected override void OnAfterClose()
        {
        }
        IEnumerator CheckMouseDown()
UI/Common/FuncOpen.cs
@@ -18,6 +18,8 @@
                return _inst;
            }
        }
        private bool m_bIsFirstRecive = true;
        public event Action<int> NewFuncOpenEvent;
        protected FuncOpen()
        {
@@ -72,19 +74,35 @@
        {
            for (int i = 0; i < vNetData.FuncCount; i++)
            {
                var funcState = vNetData.FuncStateList[i];
                bool bPerFuncIsOpen = false;
                bool bAfterFuncIsOpen = false;
                if (!funcOpenState.ContainsKey(funcState.FuncID))
                {
                    funcOpenState.Add(funcState.FuncID, funcState.State == 1);
                    bAfterFuncIsOpen = true;
                }
                else
                {
                    bPerFuncIsOpen = funcOpenState[funcState.FuncID];
                    funcOpenState[funcState.FuncID] = funcState.State == 1;
                    bAfterFuncIsOpen = funcOpenState[funcState.FuncID];
                }
                if (OnFuncStateChangeEvent != null)
                {
                    OnFuncStateChangeEvent(funcState.FuncID);
                }
                if(!m_bIsFirstRecive && !bPerFuncIsOpen && bAfterFuncIsOpen)
                {
                    NewFuncOpenEvent(funcState.FuncID);
                }
            }
            if(m_bIsFirstRecive)
            {
                m_bIsFirstRecive = false;
            }
        }