少年修仙传客户端代码仓库
client_linchunjie
2019-05-06 dd75e54014b8e98e272fea5a9348757141e9e86a
3471 【BUG】【2.0】缥缈,界面没有红点
3个文件已修改
140 ■■■■ 已修改文件
System/HazyRegion/HazyRegionIncidentBehaviour.cs 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HazyRegion/HazyRegionIncidentPanel.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HazyRegion/HazyRegionModel.cs 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HazyRegion/HazyRegionIncidentBehaviour.cs
@@ -27,6 +27,8 @@
        [SerializeField] Transform m_ContainerSelect;
        [SerializeField] Button m_Select;
        [SerializeField] Transform m_RedpointSign;
        [Header("Boss")]
        [SerializeField] Transform m_ContainerBoss;
        [SerializeField] Text m_BossName;
@@ -64,6 +66,20 @@
            }
        }
        bool m_RedpointAble = false;
        bool redpointAble
        {
            get { return m_RedpointAble; }
            set
            {
                if (m_RedpointAble != value)
                {
                    m_RedpointAble = value;
                    DisplayRedpointSign();
                }
            }
        }
        float timer = 0f;
        HazyRegionIncidentType incidentType = HazyRegionIncidentType.Adventure;
@@ -87,11 +103,15 @@
                m_BossAlive = findPreciousModel.IsBossAlive(config.npcId);
            }
            var error = 0;
            redpointAble = model.TryGotoIncident(incidentId, false, out error);
            DisplayBase();
            DisplayItems();
            DisplayState();
            DisplaySelect();
            DisplayBoss();
            DisplayRedpointSign();
            model.selectIncidentRefresh -= SelectIncidentRefresh;
            model.selectIncidentRefresh += SelectIncidentRefresh;
@@ -215,6 +235,11 @@
            }
        }
        void DisplayRedpointSign()
        {
            m_RedpointSign.gameObject.SetActive(redpointAble);
        }
        private void LateUpdate()
        {
            timer += Time.deltaTime;
@@ -231,6 +256,9 @@
                    var config = HazyRegionConfig.Get(incidentId);
                    bossAlive = findPreciousModel.IsBossAlive(config.npcId);
                }
                var error = 0;
                redpointAble = model.TryGotoIncident(incidentId, false, out error);
            }
        }
System/HazyRegion/HazyRegionIncidentPanel.cs
@@ -174,30 +174,13 @@
        private void DisplayGotoState()
        {
            var questState = dailyQuestModel.GetQuestState((int)DailyQuestType.HazyRegion);
            m_Goto.SetColorful(m_GotoLabel, questState != DailyQuestModel.DailyQuestState.OutTime && !model.InFakeHazyRegion);
            m_Goto.SetColorful(m_GotoLabel, questState != DailyQuestModel.DailyQuestState.OutTime || model.InFakeHazyRegion);
        }
        private void Goto()
        {
            var questState = dailyQuestModel.GetQuestState((int)DailyQuestType.HazyRegion);
            if (questState == DailyQuestModel.DailyQuestState.OutTime && !model.InFakeHazyRegion)
            {
                DailyQuestOpenTime dailyQuestOpenTime;
                if (dailyQuestModel.TryGetOpenTime((int)DailyQuestType.HazyRegion, out dailyQuestOpenTime))
                {
                    HourMinute hourMinute;
                    if (dailyQuestOpenTime.TryGetTodayNearestOpenTime(out hourMinute))
                    {
                        SysNotifyMgr.Instance.ShowTip("OpenHazyRegionError_1",
                            hourMinute.hourBegin.ToString("D2"),
                            hourMinute.hourEnd.ToString("D2"));
                    }
                }
                return;
            }
            var error = 0;
            if (!model.TryGotoIncident(model.selectIncident, out error))
            if (!model.TryGotoIncident(model.selectIncident, true, out error))
            {
                model.DisplayErrorRemind(error);
            }
System/HazyRegion/HazyRegionModel.cs
@@ -48,6 +48,10 @@
            }
        }
        public readonly Redpoint redpoint = new Redpoint(213, 21303);
        readonly Redpoint entranceRedpoint = new Redpoint(21303, 2130301);
        readonly Redpoint incidentRedpoint = new Redpoint(21303, 2130302);
        int cacheMapId = 0;
        public event Action selectIncidentRefresh;
@@ -68,6 +72,8 @@
            StageLoad.Instance.onStageLoadFinish += OnStageLoadFinish;
            AdventureStage.Instance.onLoadAdventureStage += OnLoadAdventureStage;
            AdventureStage.Instance.onExitAdventureStage += OnExitAdventureStage;
            findPreciousModel.bossInfoUpdateEvent += BossInfoUpdateEvent;
            DailyQuestActionTimer.Instance.RefreshDailyQuestState += RefreshDailyQuestState;
        }
        public void OnBeforePlayerDataInitialize()
@@ -88,6 +94,8 @@
            {
                ClientDungeonStageUtility.RequestStartClientDungeon(0, 0);
            }
            UpdateRedpoint();
        }
        public override void UnInit()
@@ -95,6 +103,8 @@
            StageLoad.Instance.onStageLoadFinish -= OnStageLoadFinish;
            AdventureStage.Instance.onExitAdventureStage -= OnExitAdventureStage;
            AdventureStage.Instance.onLoadAdventureStage -= OnLoadAdventureStage;
            findPreciousModel.bossInfoUpdateEvent -= BossInfoUpdateEvent;
            DailyQuestActionTimer.Instance.RefreshDailyQuestState -= RefreshDailyQuestState;
        }
        private void OnLoadAdventureStage()
@@ -132,6 +142,22 @@
            }
        }
        private void BossInfoUpdateEvent(int obj)
        {
            if (isServerPrepare)
            {
                UpdateRedpoint();
            }
        }
        private void RefreshDailyQuestState()
        {
            if (isServerPrepare)
            {
                UpdateRedpoint();
            }
        }
        IEnumerator Co_TryOpenHazyRegionWin()
        {
            yield return WaitingForSecondConst.WaitMS1000;
@@ -161,7 +187,7 @@
            return m_Incidents.TryGetValue(id, out incident);
        }
        public bool TryGotoIncident(int id, out int error)
        public bool TryGotoIncident(int id, bool careDungeon, out int error)
        {
            error = 0;
            var config = HazyRegionConfig.Get(id);
@@ -169,7 +195,16 @@
            {
                return false;
            }
            if (!TryGotoDungeon(id, out error))
            if (!InFakeHazyRegion)
            {
                var questState = dailyQuestModel.GetQuestState((int)DailyQuestType.HazyRegion);
                if (questState == DailyQuestModel.DailyQuestState.OutTime)
                {
                    error = 6;
                    return false;
                }
            }
            if (careDungeon && !TryGotoDungeon(id, out error))
            {
                return false;
            }
@@ -334,6 +369,19 @@
                    break;
                case 5:
                    SysNotifyMgr.Instance.ShowTip("EnterHazyIncidentError_5");
                    break;
                case 6:
                    DailyQuestOpenTime dailyQuestOpenTime;
                    if (dailyQuestModel.TryGetOpenTime((int)DailyQuestType.HazyRegion, out dailyQuestOpenTime))
                    {
                        HourMinute hourMinute;
                        if (dailyQuestOpenTime.TryGetTodayNearestOpenTime(out hourMinute))
                        {
                            SysNotifyMgr.Instance.ShowTip("OpenHazyRegionError_1",
                                hourMinute.hourBegin.ToString("D2"),
                                hourMinute.hourEnd.ToString("D2"));
                        }
                    }
                    break;
            }
        }
@@ -522,6 +570,11 @@
                    onHazyRegionStateRefresh(2);
                }
            }
            if (isServerPrepare)
            {
                UpdateRedpoint();
            }
        }
        public void ReceivePackage(HA307_tagMCFairyAdventuresInfo package)
@@ -539,6 +592,40 @@
            }
        }
        void UpdateRedpoint()
        {
            var satisfyEntrance = false;
            var satisfyIncident = false;
            if (FuncOpen.Instance.IsFuncOpen((int)FuncOpenEnum.HazyRegion) || InFakeHazyRegion)
            {
                if (InFakeHazyRegion)
                {
                    satisfyEntrance = satisfyFakeOpen;
                }
                else
                {
                    var questState = dailyQuestModel.GetQuestState((int)DailyQuestType.HazyRegion);
                    satisfyEntrance = !playing && questState == DailyQuestModel.DailyQuestState.Normal;
                }
                if (playing)
                {
                    var error = 0;
                    foreach (var id in m_Incidents.Keys)
                    {
                        if (TryGotoIncident(id, false, out error))
                        {
                            satisfyIncident = true;
                            break;
                        }
                    }
                }
            }
            entranceRedpoint.state = satisfyEntrance ? RedPointState.Simple : RedPointState.None;
            incidentRedpoint.state = satisfyIncident ? RedPointState.Simple : RedPointState.None;
        }
        public enum IncidentState
        {
            UnStart = 1,