少年修仙传客户端代码仓库
client_linchunjie
2019-05-20 fada6007b67bffaf75a36c70e1a232352f439b41
3335 前端宝藏
1个文件已修改
56 ■■■■■ 已修改文件
Fight/Stage/Dungeon/ClientHazyPreciousDungeonStage.cs 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Fight/Stage/Dungeon/ClientHazyPreciousDungeonStage.cs
@@ -25,9 +25,12 @@
        int m_PreciousNpcId = 0;
        int m_PreciousEffectNpcId = 0;
        uint m_PreciousSid = 0;
        SFXController m_Indication;
        SFXController m_PreciousEffect;
        Clock m_PrepareClock;
        Clock m_ExitClock;
        GA_NpcClientFightBoss clientBoss;
        GA_NpcClientCollect clientPrecious;
@@ -48,6 +51,7 @@
                            OnExitFight();
                            break;
                        case Step.Collect:
                            OnExitCollect();
                            break;
                        case Step.Over:
                            break;
@@ -63,8 +67,10 @@
                            OnEnterFight();
                            break;
                        case Step.Collect:
                            OnEnterCollect();
                            break;
                        case Step.Over:
                            OnEnterOver();
                            break;
                    }
                }
@@ -92,6 +98,7 @@
            UnloadAssets();
            BossShowModel.Instance.bossShowCompletedEvent += BossShowCompletedEvent;
            ClientCollectUtility.OnCollectFinished += OnCollectFinished;
        }
        protected override void OnUpdate()
@@ -144,6 +151,7 @@
            StopAllCoroutines();
            BossShowModel.Instance.bossShowCompletedEvent -= BossShowCompletedEvent;
            ClientCollectUtility.OnCollectFinished -= OnCollectFinished;
        }
        private void InitializePlayer()
@@ -161,9 +169,13 @@
            clientBoss.Pos = s_BossPosition;
            clientBoss.Rotation = Quaternion.Euler(0, s_BossAngle, 0);
            PersonalEnemy.Bind(clientBoss);
            clientPrecious = GAMgr.Instance.ReqClntNoFightNpc<GA_NpcClientCollect>((uint)m_PreciousNpcId, E_ActorGroup.FuncNpc);
            clientPrecious.Pos = s_PreciousPosition;
            clientPrecious.Rotation = Quaternion.Euler(0, s_PreciousAngle, 0);
            m_PreciousSid = clientPrecious.ServerInstID;
            var npcConfig = NPCConfig.Get(m_PreciousEffectNpcId);
            m_PreciousEffect = SFXPlayUtility.Instance.PlayWithEulerAngle(npcConfig.NPCEffect, s_PreciousEffectPosition
@@ -194,6 +206,8 @@
            var seconds = GetStepSeconds(Step.Fight);
            model.UpdateCoolDown(DungeonCoolDownType.FightStart, (uint)seconds * 1000);
            m_ExitClock = Clock.AlarmAfter(seconds, OnExitDungeon);
            UpdateMissionData();
        }
@@ -209,6 +223,25 @@
        void OnEnterCollect()
        {
            m_Indication = SFXPlayUtility.Instance.PlayWithEulerAngle(1051, s_IndicationPosition, s_IndicationAngle);
            UpdateMissionData();
        }
        void OnExitCollect()
        {
            if (m_ExitClock != null)
            {
                Clock.Stop(m_ExitClock);
                m_ExitClock = null;
            }
        }
        void OnEnterOver()
        {
            var seconds = GetStepSeconds(Step.Over);
            model.UpdateCoolDown(DungeonCoolDownType.LeaveMap, (uint)seconds * 1000);
            m_ExitClock = Clock.AlarmAfter(seconds, OnExitDungeon);
            UpdateMissionData();
        }
@@ -273,6 +306,17 @@
                SFXPlayUtility.Instance.Release(m_PreciousEffect);
                m_PreciousEffect = null;
            }
            if (m_ExitClock != null)
            {
                Clock.Stop(m_ExitClock);
                m_ExitClock = null;
            }
        }
        void OnExitDungeon()
        {
            ClientHazyPreciousDungeon.RequestExit();
        }
        private void BossShowCompletedEvent()
@@ -280,6 +324,18 @@
            step = Step.Prepare;
        }
        private void OnCollectFinished(uint sid)
        {
            if (sid == m_PreciousSid)
            {
                step = Step.Over;
                var pak = new CA234_tagCMGetCustomSceneCollectAward();
                pak.NPCID = (uint)m_PreciousNpcId;
                GameNetSystem.Instance.SendInfo(pak);
            }
        }
        enum Step
        {
            None,