579 炼器大会 棋盘合成和普通移动出新物品改相同速度,不硬等0.8s特效播完
1个文件已修改
35 ■■■■ 已修改文件
Main/System/LianQi/LianQiWin.cs 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/LianQi/LianQiWin.cs
@@ -38,6 +38,7 @@
    LianQiActLevel2[][] level2Arr;
    Sequence sequence;
    Tween synEffectStopTween;
    private const float SynEffectDelay = 0.8f;
    private const float HammerEffectDelay = 1.4f;
@@ -183,6 +184,7 @@
        awardScroller.OnRefreshCell -= OnRefreshAwardCell;
        clickScreenOtherSpace.RemoveAllListeners();
        sequence.Kill();
        synEffectStopTween.Kill();
    }
    protected override void OnOpen()
@@ -316,11 +318,11 @@
                            PlaySynEffect(girdLevel2To);
                    }));
                }
                if (hasSynEffect)
                    sequence.AppendInterval(SynEffectDelay);
                sequence.OnComplete(() =>
                {
                    InitPanel();
                    InitPanel(!hasSynEffect);
                    if (hasSynEffect)
                        ScheduleStopSynEffects();
                });
            }
        }
@@ -597,11 +599,13 @@
        }
    }
    private void InitPanel()
    private void InitPanel(bool stopSynEffect = true)
    {
        if (this == null) return;  // 防御:Clock 回调在窗口销毁后触发
        var M = LianQiManager.Instance;
        sequence.Kill();
        if (stopSynEffect)
            synEffectStopTween.Kill();
        rectStartPosArr = RectTransListToArr(rectStartPos);
        level1Arr = LianQiActLevelListToArr(level1);
@@ -618,7 +622,8 @@
            M.SetActive(level2[i].imgItem, false);
            level1[i].transform.localPosition = rectStartPos[i].transform.localPosition;
            level2[i].transform.localPosition = rectStartPos[i].transform.localPosition;
            level2[i].synUIEffect.Stop();
            if (stopSynEffect)
                level2[i].synUIEffect.Stop();
            level2[i].hammerUIEffect.Stop();
            level2[i].imgChoose.SetActive(false);
            level2[i].isChooseShow = false;
@@ -648,6 +653,26 @@
        DisplayAssistiveItem();
    }
    private void ScheduleStopSynEffects()
    {
        synEffectStopTween.Kill();
        synEffectStopTween = DOVirtual.DelayedCall(SynEffectDelay, StopSynEffects);
    }
    private void StopSynEffects()
    {
        if (this == null || level2Arr == null) return;
        for (int i = 0; i < level2Arr.Length; i++)
        {
            if (level2Arr[i] == null) continue;
            for (int j = 0; j < level2Arr[i].Length; j++)
            {
                if (level2Arr[i][j] == null) continue;
                level2Arr[i][j].synUIEffect.Stop();
            }
        }
    }
    /// <summary>
    /// 外部道具数量变化时刷新辅助道具栏(邮件/任务/购买等获得辅助道具)
    /// </summary>