少年修仙传客户端代码仓库
hch
2024-12-18 0cb75a653a646d4afc3b656985b9964efec93032
System/SkyTower/SkyTowerBehaviour.cs
@@ -30,6 +30,7 @@
        bool hasCreateTowerResources = false;
        List<SkyTowerFloorBehaviour> floorBehaviours = new List<SkyTowerFloorBehaviour>();
        SkyTowerModel model { get { return ModelCenter.Instance.GetModel<SkyTowerModel>(); } }
        DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
        public void Display()
        {
@@ -38,6 +39,52 @@
            scrollRectTransform.anchoredPosition = Vector2.zero;
            DisplayTowerBaseInfo();
            MoveToTargetFloor(model.currentFloor);
        }
        float speed = 0f;
        private void LateUpdate()
        {
            if (startFlashMove)
            {
                m_Tower.verticalNormalizedPosition = Mathf.SmoothDamp(m_Tower.verticalNormalizedPosition, 1, ref speed, 0.1f);
                if (m_Tower.verticalNormalizedPosition > 0.99f)
                {
                    startFlashMove = false;
                    if (dungeonModel.dungeonResult.quickPass == 1 && dungeonModel.dungeonResult.dataMapID == SkyTowerModel.DATA_MAPID)
                    {
                        var serveritems = dungeonModel.dungeonResult.itemInfo;
                        if (serveritems != null)
                        {
                            List<Item> items = new List<Item>();
                            foreach (var item in serveritems)
                            {
                                items.Add(new Item(item.ItemID, (ulong)item.Count));
                            }
                            ItemLogicUtility.Instance.ShowGetItem(items, seconds:0);
                        }
                    }
                    model.OnFlashOver(2);
                }
            }
        }
        private void OnEnable()
        {
            model.OnFlashOverEvent += OnFlashOverEvent;
            startFlashMove = false;
        }
        private void OnDisable()
        {
            model.OnFlashOverEvent -= OnFlashOverEvent;
            StopAllCoroutines();
        }
        bool startFlashMove = false;
        private void OnFlashOverEvent(int state)
        {
            if (state == 1)
                startFlashMove = true;
        }
        public void Dispose()
@@ -145,11 +192,6 @@
            bottomHeight = ((RectTransform)towerBottom.transform).rect.height;
            hasCreateTowerResources = true;
        }
        private void OnDisable()
        {
            StopAllCoroutines();
        }
    }