| New file |
| | |
| | | using Snxxz.UI; |
| | | using System.Collections; |
| | | using TableConfig; |
| | | using UnityEngine; |
| | | |
| | | public class JadeDynastyTowerDungeonStage : DungeonStage |
| | | { |
| | | Animator m_TowerAnimator; |
| | | Camera m_ShowCamera; |
| | | |
| | | Vector3 defaultShowCameraPosition; |
| | | Quaternion defaultShowCameraRotation; |
| | | float defaultFov; |
| | | |
| | | public override void Initialize() |
| | | { |
| | | base.Initialize(); |
| | | |
| | | var sceneRoot = GameObject.Find("Map113_Fyt"); |
| | | if (sceneRoot != null) |
| | | { |
| | | m_TowerAnimator = sceneRoot.GetComponent<Animator>("Effect/wall"); |
| | | m_ShowCamera = sceneRoot.GetComponent<Camera>("Effect/wall/Camera_Show"); |
| | | m_ShowCamera.backgroundColor = CameraController.Instance.CameraObject.backgroundColor; |
| | | |
| | | m_ShowCamera.gameObject.SetActive(false); |
| | | |
| | | defaultShowCameraPosition = m_ShowCamera.transform.position; |
| | | defaultShowCameraRotation = m_ShowCamera.transform.rotation; |
| | | defaultFov = m_ShowCamera.fieldOfView; |
| | | } |
| | | } |
| | | |
| | | public override void UnInitialize() |
| | | { |
| | | CameraController.Instance.CameraObject.enabled = true; |
| | | CameraManager.uiCamera.enabled = true; |
| | | StopAllCoroutines(); |
| | | base.UnInitialize(); |
| | | } |
| | | |
| | | protected override void OnStageLoadFinish() |
| | | { |
| | | base.OnStageLoadFinish(); |
| | | |
| | | WindowCenter.Instance.Open<RuneTowerDungeonHintWin>(); |
| | | } |
| | | |
| | | public void PerformChallengeNextLevel() |
| | | { |
| | | StartCoroutine("Co_PerformChallengeNextLevel"); |
| | | } |
| | | |
| | | IEnumerator Co_PerformChallengeNextLevel() |
| | | { |
| | | WindowCenter.Instance.Close<RuneTowerDungeonHintWin>(); |
| | | SoundPlayer.Instance.PlayBackGroundMusicOneShot(258); |
| | | var model = ModelCenter.Instance.GetModel<RuneTowerModel>(); |
| | | var config = Config.Instance.Get<RuneTowerFloorConfig>(model.currentFloor); |
| | | |
| | | if (config != null && config.FloorIndex > 1) |
| | | { |
| | | m_ShowCamera.gameObject.SetActive(true); |
| | | CameraController.Instance.CameraObject.enabled = false; |
| | | CameraManager.uiCamera.enabled = false; |
| | | |
| | | m_ShowCamera.transform.position = CameraController.Instance.CameraObject.transform.position; |
| | | m_ShowCamera.transform.rotation = CameraController.Instance.CameraObject.transform.rotation; |
| | | m_ShowCamera.fieldOfView = CameraController.Instance.CameraObject.fieldOfView; |
| | | |
| | | yield return StartCoroutine(Co_CameraLerpTo(m_ShowCamera, defaultShowCameraPosition, defaultShowCameraRotation, defaultFov)); |
| | | |
| | | if (m_TowerAnimator != null) |
| | | { |
| | | m_TowerAnimator.Play("Fyt_fx_ani_move", 0, 0f); |
| | | } |
| | | |
| | | yield return new WaitForSeconds(3.1f); |
| | | |
| | | yield return StartCoroutine(Co_CameraLerpTo(m_ShowCamera, |
| | | CameraController.Instance.CameraObject.transform.position, |
| | | CameraController.Instance.CameraObject.transform.rotation, |
| | | CameraController.Instance.CameraObject.fieldOfView)); |
| | | |
| | | model.RequestSetDungeonAction(); |
| | | |
| | | m_ShowCamera.gameObject.SetActive(false); |
| | | CameraController.Instance.CameraObject.enabled = true; |
| | | CameraManager.uiCamera.enabled = true; |
| | | |
| | | WindowCenter.Instance.Open<DungeonEndCoolDownWin>(); |
| | | if (PlayerDatas.Instance.hero != null) |
| | | { |
| | | PlayerDatas.Instance.hero.Behaviour.StartHandupAI(); |
| | | } |
| | | |
| | | var mapConfig = Config.Instance.Get<MapConfig>(PlayerDatas.Instance.baseData.MapID); |
| | | var mapResConfig = DTCA127_tagMCStartChangeMap.GetMapResourcesConfig(); |
| | | SoundPlayer.Instance.PlayBackGroundMusic(mapResConfig.Music); |
| | | |
| | | WindowCenter.Instance.Open<MapNameHintWin>(); |
| | | WindowCenter.Instance.Open<RuneTowerDungeonHintWin>(); |
| | | } |
| | | |
| | | } |
| | | |
| | | IEnumerator Co_CameraLerpTo(Camera camera, Vector3 toPosition, Quaternion toRotation, float toFov) |
| | | { |
| | | var startPosition = camera.transform.position; |
| | | var startRotation = camera.transform.rotation; |
| | | var startFov = camera.fieldOfView; |
| | | |
| | | var timer = 0f; |
| | | var duration = 0.5f; |
| | | |
| | | while (timer < duration) |
| | | { |
| | | timer += Time.deltaTime; |
| | | var t = Mathf.Clamp01(timer / duration); |
| | | |
| | | camera.transform.position = Vector3.Lerp(startPosition, toPosition, t); |
| | | camera.transform.rotation = Quaternion.Lerp(startRotation, toRotation, t); |
| | | camera.fieldOfView = Mathf.Lerp(startFov, toFov, t); |
| | | yield return null; |
| | | } |
| | | |
| | | camera.transform.position = toPosition; |
| | | camera.transform.rotation = toRotation; |
| | | } |
| | | } |