少年修仙传客户端代码仓库
10290 运势-客户端 重置函数能停止所有DOTween动画,收到封包后再播动画
1个文件已修改
83 ■■■■■ 已修改文件
System/LoopAct/YunShi/YunShiXBActWin.cs 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/LoopAct/YunShi/YunShiXBActWin.cs
@@ -50,7 +50,7 @@
        HappyXBModel happyXBModel { get { return ModelCenter.Instance.GetModelEx<HappyXBModel>(); } }
        YunShiXBActModel model { get { return ModelCenter.Instance.GetModelEx<YunShiXBActModel>(); } }
        PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
        bool isWaitPack = false;
        protected override void AddListeners()
        {
            btnSkip.SetListener(() =>
@@ -71,13 +71,10 @@
                    SysNotifyMgr.Instance.ShowTip("YunShiXBAct01");
                    return;
                }
                if (!model.isSkipXB)
                {
                    MoveAndDisappear();
                }
                if (isWaitPack)
                    return;
                happyXBModel.SendXBQuest(type, 0, 2);
                isWaitPack = true;
            });
            btnXBMany.SetListener(() =>
@@ -89,12 +86,10 @@
                    SysNotifyMgr.Instance.ShowTip("YunShiXBAct01");
                    return;
                }
                if (!model.isSkipXB)
                {
                    MoveAndDisappear();
                }
                if (isWaitPack)
                    return;
                happyXBModel.CheckXBManyLimit(0, type, 2);
                isWaitPack = true;
            });
        }
@@ -106,6 +101,7 @@
        {
            WindowCenter.Instance.uiRoot.eventSystem.enabled = true;
            ItemLogicUtility.Instance.hidePickItem = true;
            isWaitPack = false;
            happyXBModel.RefreshXBTypeInfoAct += OnRefreshXBTypeInfoAct;
            model.PlayAnimationSync += OnPlaySyncAnimation;
            packModel.refreshItemCountEvent += OnRefreshItemCountEvent;
@@ -153,10 +149,16 @@
        private void RefreshXBResult()
        {
            Display();
            isWaitPack = false;
            WindowCenter.Instance.uiRoot.eventSystem.enabled = false;
            if (model.isSkipXB)
            {
                ShowGetItem();
            }
            else
            {
                Reset();
                MoveAndDisappear();
            }
        }
@@ -291,6 +293,17 @@
                qianPositionTweens[i].Stop();
            }
            // 终止所有DOTween动画
            DOTween.Kill(transQianTong);
            foreach (var qian in transQian)
            {
                DOTween.Kill(qian);
            }
            foreach (var item in yunShiXBItems)
            {
                DOTween.Kill(item.transform);
            }
            transQianTong.transform.position = transStartQianTong.transform.position;
            transQianTong.transform.rotation = transStartQianTong.transform.rotation;
@@ -302,17 +315,24 @@
            Display();
        }
        private Sequence currentMoveSequence;
        public void MoveAndDisappear()
        {
            WindowCenter.Instance.uiRoot.eventSystem.enabled = false;
            Sequence sequence = DOTween.Sequence();
            if (currentMoveSequence != null && currentMoveSequence.IsActive())
            {
                currentMoveSequence.Kill(false);
            }
            currentMoveSequence = DOTween.Sequence();
            foreach (YunShiXBItem item in yunShiXBItems)
            {
                sequence.Join(item.transform.DOMove(transItemMissEnd.position, 0.22f).SetEase(Ease.InOutSine).OnComplete(() => { item.SetActive(false); }));
                currentMoveSequence.Join(item.transform.DOMove(transItemMissEnd.position, 0.5f).SetEase(Ease.InOutSine).OnComplete(() => {
                   item.SetActive(false);
                }));
            }
            sequence.Join(transQianTong.transform.DORotate(new Vector3(0, 0, -5), 0.3f).SetEase(Ease.InOutSine).OnComplete(() => { qianTongUIEffect.Play(); }));
            sequence.Join(transQianTong.transform.DOMove(transQianTongMissEnd.position, 0.5f).SetEase(Ease.InOutSine));
            sequence.OnComplete(() => { ShakeQianTong(); });
            currentMoveSequence.Join(transQianTong.transform.DORotate(new Vector3(0, 0, -5), 0.3f).SetEase(Ease.InOutSine).OnComplete(() => { qianTongUIEffect.Play(); }));
            currentMoveSequence.Join(transQianTong.transform.DOMove(transQianTongMissEnd.position, 0.5f).SetEase(Ease.InOutSine));
            currentMoveSequence.OnComplete(() => { ShakeQianTong(); });
        }
        private void ShowGetItem()
@@ -328,12 +348,18 @@
                    itemList.Add(new Item(xbItem.itemId, (ulong)xbItem.count));
                }
                ItemLogicUtility.Instance.ShowGetItem(itemList, seconds: 0, func: () =>{ happyXBModel.rangelist.Clear(); });
                Reset();
                ItemLogicUtility.Instance.ShowGetItem(itemList, seconds: 0, func: () => {
                    happyXBModel.rangelist.Clear();
                    Reset();
                    Display();
                });
                WindowCenter.Instance.uiRoot.eventSystem.enabled = true;
            }
        }
        private Sequence currentShakeSequence;
        public void ShakeQianTong()
        {
            qianTongRotationTween.Play();
@@ -355,8 +381,13 @@
            {
                qianPositionTweens[i].duration = 0.3f;
            }
            Sequence moveSequence = DOTween.Sequence();
            moveSequence.AppendInterval(1.5f);
            if (currentShakeSequence != null && currentShakeSequence.IsActive())
            {
                currentShakeSequence.Kill(false);
            }
            currentShakeSequence = DOTween.Sequence();
            currentShakeSequence.AppendInterval(1.5f);
            if (xbItemlist.Count == 1)
            {
@@ -375,7 +406,7 @@
                            qianPositionTweens[i].duration = 0.1f;
                        }
                    });
                moveSequence.Append(tween);
                currentShakeSequence.Append(tween);
            }
            else
            {
@@ -399,12 +430,12 @@
                                    qianPositionTweens[i].duration = 0.1f;
                                }
                            });
                        moveSequence.Append(tween);
                        currentShakeSequence.Append(tween);
                    }
                }
            }
            moveSequence.OnComplete(() =>
            currentShakeSequence.OnComplete(() =>
            {
                for (int i = 0; i < qianPositionTweens.Count; i++)
                {