| | |
| | | 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;
|
| | |
| | | OnExitFight();
|
| | | break;
|
| | | case Step.Collect:
|
| | | OnExitCollect();
|
| | | break;
|
| | | case Step.Over:
|
| | | break;
|
| | |
| | | OnEnterFight();
|
| | | break;
|
| | | case Step.Collect:
|
| | | OnEnterCollect();
|
| | | break;
|
| | | case Step.Over:
|
| | | OnEnterOver();
|
| | | break;
|
| | | }
|
| | | }
|
| | |
| | | UnloadAssets();
|
| | |
|
| | | BossShowModel.Instance.bossShowCompletedEvent += BossShowCompletedEvent;
|
| | | ClientCollectUtility.OnCollectFinished += OnCollectFinished;
|
| | | }
|
| | |
|
| | | protected override void OnUpdate()
|
| | |
| | | StopAllCoroutines();
|
| | |
|
| | | BossShowModel.Instance.bossShowCompletedEvent -= BossShowCompletedEvent;
|
| | | ClientCollectUtility.OnCollectFinished -= OnCollectFinished;
|
| | | }
|
| | |
|
| | | private void InitializePlayer()
|
| | |
| | | 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
|
| | |
| | | var seconds = GetStepSeconds(Step.Fight);
|
| | | model.UpdateCoolDown(DungeonCoolDownType.FightStart, (uint)seconds * 1000);
|
| | |
|
| | | m_ExitClock = Clock.AlarmAfter(seconds, OnExitDungeon);
|
| | |
|
| | | UpdateMissionData();
|
| | | }
|
| | |
|
| | |
| | | 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();
|
| | | }
|
| | |
| | | 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()
|
| | |
| | | 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,
|