少年修仙传客户端代码仓库
10290 运势,极品,符印,古宝,聚魂寻宝,如果动画播放超时就恢复初始状态显示抽奖结果, 预防doteen动画异常中断导致卡住
5个文件已修改
88 ■■■■ 已修改文件
LogicProject/System/TreasurePavilion/TreasureLuckyDrawBehavior.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/GatheringSoul/GatherSoulXBWin.cs 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HappyXB/BestXBWin.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/HappyXB/RuneXBWin.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/LoopAct/YunShi/YunShiXBActWin.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
LogicProject/System/TreasurePavilion/TreasureLuckyDrawBehavior.cs
@@ -109,6 +109,7 @@
    {
        imgSkip.SetActive(XBModel.isJumpGubaoXB);
    }
    private Clock animationTimeoutClock;
    private void RefreshXBResult()
    {
        if (XBModel.isJumpGubaoXB)
@@ -119,8 +120,24 @@
        else
        {
            uiEffect.Play();
            animationTimeoutClock = Clock.AlarmAfter(4f, () =>
            {
                uiEffect.Stop();
                OnCompleted();
            });
        }
    }
    // 取消定时器(如果有)
    void StopClock()
    {
        if (animationTimeoutClock != null)
        {
            Clock.Stop(animationTimeoutClock);
            animationTimeoutClock = null;
        }
    }
    void Awake()
    {
        btnSkip.SetListener(() =>
@@ -278,6 +295,7 @@
    public void OnCompleted()
    {
        StopClock();
        TreasurePavilionModel.Instance.isEffectPlaying = false;
        WindowCenter.Instance.Open<HappyXBGetItemWin>();
    }
System/GatheringSoul/GatherSoulXBWin.cs
@@ -33,7 +33,7 @@
        }
        int type = GatheringSoulModel.xbType;
        private Clock animationTimeoutClock;
        #region Built-in
        protected override void BindController()
        {
@@ -83,7 +83,16 @@
        #endregion
        // 取消定时器(如果有)
        void StopClock()
        {
            if (animationTimeoutClock != null)
            {
                Clock.Stop(animationTimeoutClock);
                animationTimeoutClock = null;
            }
        }
        void onToggleChange(bool isOn)
        {
            XBModel.isJumpGatherSoulXB = isOn;
@@ -125,6 +134,11 @@
            else
            {
                uiEffect.Play();
                animationTimeoutClock = Clock.AlarmAfter(4f, () =>
                {
                    uiEffect.Stop();
                    OnCompleted();
                });
            }
        }
@@ -136,6 +150,7 @@
        public void OnCompleted()
        {
            StopClock();
            TreasurePavilionModel.Instance.isEffectPlaying = false;
            WindowCenter.Instance.Open<HappyXBGetItemWin>();
        }
System/HappyXB/BestXBWin.cs
@@ -79,6 +79,7 @@
        float coolTime = 3;
        private bool IsStartPlayAudio = false;
        private float playeAudioTime = 0;
        private Clock animationTimeoutClock;
        protected override void BindController()
        {
            xbItemlist.Clear();
@@ -118,6 +119,7 @@
        }
        protected override void OnPreOpen()
        {
            StopClock();
            XBModel.StartXBEvent += OnStartXB;
            XBModel.RefreshXBTypeInfoAct += RefreshXBTypeInfo;
            XBModel.RefreshXBResultAct += RefreshXBResult;
@@ -335,6 +337,7 @@
        private void RefreshXBResult()
        {
            StopClock();
            if (XBModel.isJumpBestXB)
            {
                ResetXBItemState();
@@ -345,6 +348,21 @@
                CreateGetItem();
                targetIndexs = XBModel.rangelist;
                StartCoroutine(PlayXBAni(0, 0));
                animationTimeoutClock = Clock.AlarmAfter(15f, () =>
                {
                    StopAllCoroutines();
                    ResetXBItemState();
                    WindowCenter.Instance.Open<HappyXBGetItemWin>();
                });
            }
        }
        // 取消定时器(如果有)
        void StopClock()
        {
            if (animationTimeoutClock != null)
            {
                Clock.Stop(animationTimeoutClock);
                animationTimeoutClock = null;
            }
        }
@@ -519,6 +537,7 @@
            if (isEndXB)
            {
                StopClock();
                if (targetIndexs.Count > 1)
                {
                    ShowXBResultCtrl(targetIndexs.Count - 1);
System/HappyXB/RuneXBWin.cs
@@ -83,7 +83,7 @@
        float coolTime = 3;
        private bool IsStartPlayAudio = false;
        private float playeAudioTime = 0;
        private Clock animationTimeoutClock;
        protected override void BindController()
        {
            xbItemlist.Clear();
@@ -130,6 +130,7 @@
        protected override void OnPreOpen()
        {
            StopClock();
            XBModel.StartXBEvent += OnStartXB;
            playerPack.refreshItemCountEvent += RefreshItemCount;
            XBModel.RefreshAgainXBAct += RefreshAgainXB;
@@ -351,6 +352,7 @@
        private void RefreshXBResult()
        {
            StopClock();
            if (XBModel.isJumpRuneXB)
            {
                ResetXBItemState();
@@ -361,6 +363,22 @@
                CreateGetItem();
                targetIndexs = XBModel.rangelist;
                StartCoroutine(PlayXBAni(0, 0));
                animationTimeoutClock = Clock.AlarmAfter(15f, () =>
                {
                    StopAllCoroutines();
                    ResetXBItemState();
                    WindowCenter.Instance.Open<HappyXBGetItemWin>();
                });
            }
        }
        // 取消定时器(如果有)
        void StopClock()
        {
            if (animationTimeoutClock != null)
            {
                Clock.Stop(animationTimeoutClock);
                animationTimeoutClock = null;
            }
        }
@@ -527,6 +545,7 @@
            if (isEndXB)
            {
                StopClock();
                if (targetIndexs.Count > 1)
                {
                    ShowXBResultCtrl(targetIndexs.Count - 1);
System/LoopAct/YunShi/YunShiXBActWin.cs
@@ -51,7 +51,6 @@
        YunShiXBActModel model { get { return ModelCenter.Instance.GetModelEx<YunShiXBActModel>(); } }
        PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
        bool isWaitPack = false;
        bool isAnimPlay = false;
        protected override void AddListeners()
        {
            btnSkip.SetListener(() =>
@@ -103,7 +102,6 @@
            WindowCenter.Instance.uiRoot.eventSystem.enabled = true;
            ItemLogicUtility.Instance.hidePickItem = true;
            isWaitPack = false;
            isAnimPlay = false;
            happyXBModel.RefreshXBTypeInfoAct += OnRefreshXBTypeInfoAct;
            model.PlayAnimationSync += OnPlaySyncAnimation;
            packModel.refreshItemCountEvent += OnRefreshItemCountEvent;
@@ -153,7 +151,6 @@
        private void RefreshXBResult()
        {
            isWaitPack = false;
            isAnimPlay = false;
            // 取消之前的定时器(如果有)
            StopClock();
            WindowCenter.Instance.uiRoot.eventSystem.enabled = false;
@@ -167,12 +164,9 @@
                
                Reset();
                MoveAndDisappear();
                isAnimPlay = true;
                // 设置动画超时回调
                animationTimeoutClock = Clock.AlarmAfter(5.0f, () =>
                animationTimeoutClock = Clock.AlarmAfter(6.0f, () =>
                {
                    if (!isAnimPlay)
                        return;
                    Reset();
                    WindowCenter.Instance.uiRoot.eventSystem.enabled = true;
                    ShowGetItem();
@@ -298,8 +292,6 @@
        private void Reset()
        {
            isAnimPlay = false;
            // 取消动画超时定时器
            StopClock();
            qianTongUIEffect.Stop();
@@ -368,7 +360,6 @@
        private void ShowGetItem()
        {
            // 取消动画超时定时器
            StopClock();
            WindowCenter.Instance.uiRoot.eventSystem.enabled = true;