lcy
3 小时以前 2a9bc6e5b08ab61ca66f8fff73e8baea34e04316
461 限时冲刺-客户端 任务完成提示
2个文件已添加
1个文件已修改
163 ■■■■■ 已修改文件
Main/System/TimeRush/TimeRushManager.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/TimeRush/TimeRushTipWin.cs 140 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/TimeRush/TimeRushTipWin.cs.meta 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/TimeRush/TimeRushManager.cs
@@ -248,6 +248,8 @@
    // <轮回类型, 上一次的CurValue>
    public Dictionary<int, int> lastCurValueDict = new Dictionary<int, int>();
    public event Action OnNewAwardHaveEvent;
    public void CheckNewAwardHave(int roundType, int curRound, int curValue)
    {
        if (lastCurRoundDict.ContainsKey(roundType) && lastCurValueDict.ContainsKey(roundType))
@@ -276,11 +278,11 @@
                            newAwardType = round.AwardType;
                            newAwardTypeValue = (int)round.AwardTypeValue;
                            newAwardIndex = Award.AwardIndex;
                            // if (!DTC0403_tagPlayerLoginLoadOK.neverLoginOk && !WindowCenter.Instance.IsOpen<CycleHallAchievementTipWin>())
                            // {
                            //     WindowCenter.Instance.Open<CycleHallAchievementTipWin>();
                            // }
                            // UpdateNewAwardHave?.Invoke();
                            if (!UIManager.Instance.IsOpened<TimeRushTipWin>())
                            {
                                UIManager.Instance.OpenWindow<TimeRushTipWin>();
                            }
                            OnNewAwardHaveEvent?.Invoke();
                        }
                    }
                }
Main/System/TimeRush/TimeRushTipWin.cs
New file
@@ -0,0 +1,140 @@
using System.Collections.Generic;
using UnityEngine;
public class TimeRushTipWin : UIBase
{
    [SerializeField] RectTransform tip;
    [SerializeField] ButtonEx clickBtn;
    [SerializeField] TextEx awardTipText;
    [SerializeField] List<ItemCell> itemCells = new List<ItemCell>();
    [SerializeField] PositionTween positionTween;
    [SerializeField] float waitTime = 3.0f;
    [SerializeField] float moveDurationTime = 1.0f; // 移动持续时间
    [SerializeField] RectTransform startPos; // 初始位置
    [SerializeField] RectTransform downPos; // 往下移动位置
    [SerializeField] RectTransform upPos; // 往上移动位置
    int roundType;
    int awardType;
    int awardTypeValue;
    int awardIndex;
    float openTime;
    private enum MoveState
    {
        MovingDown,
        Staying,
        MovingUp,
        Finished
    }
    MoveState currentState;
    TimeRushManager manager { get { return TimeRushManager.Instance; } }
    protected override void InitComponent()
    {
        clickBtn.SetListener(() =>
        {
            if (UIManager.Instance.IsOpened<TimeRushWin>())
            {
                UIManager.Instance.CloseWindow<TimeRushWin>();
            }
            var list = manager.GetTabIDList();
            if (list.IsNullOrEmpty())
                return;
            if (!ActLunhuidianTypeConfig.TryGetConfig(roundType, 1, out var config) || !list.Contains(config.ID))
                return;
            UIManager.Instance.OpenWindow<TimeRushWin>(config.ID);
        });
    }
    protected override void OnPreOpen()
    {
        manager.OnNewAwardHaveEvent += OnNewAwardHaveEvent;
        ResetAnimation();
    }
    protected override void OnPreClose()
    {
        manager.OnNewAwardHaveEvent -= OnNewAwardHaveEvent;
    }
    void LateUpdate()
    {
        if (currentState == MoveState.Staying)
        {
            if (Time.time - openTime > waitTime)
            {
                currentState = MoveState.MovingUp;
                positionTween.reversal = true;
                positionTween.from = downPos.anchoredPosition;
                positionTween.to = upPos.anchoredPosition;
                positionTween.duration = moveDurationTime;
                positionTween.Play(OnMoveUpComplete);
            }
        }
    }
    private void OnMoveDownComplete()
    {
        currentState = MoveState.Staying;
        openTime = Time.time;
    }
    private void OnMoveUpComplete()
    {
        currentState = MoveState.Finished;
        if (UIManager.Instance.IsOpened<TimeRushTipWin>())
        {
            UIManager.Instance.CloseWindow<TimeRushTipWin>();
        }
    }
    private void Display()
    {
        roundType = manager.newRoundType;
        awardType = manager.newAwardType;
        awardTypeValue = manager.newAwardTypeValue;
        awardIndex = manager.newAwardIndex;
        if (!manager.TryGetOperationInfo(out var act) || !act.TryGetRoundInfoByIndex(roundType, awardIndex, out var award, out int listIndex) || award.AwardItemList == null)
            return;
        awardTipText.text = Language.Get($"TimeRushTaskTitle_{awardType}_{awardTypeValue}", award.NeedValue);
        for (int i = 0; i < itemCells.Count; i++)
        {
            var itemBaisc = itemCells[i];
            if (i < award.AwardItemList.Length)
            {
                var itemInfo = award.AwardItemList[i];
                itemBaisc.SetActive(true);
                itemBaisc.Init(new ItemCellModel((int)itemInfo.ItemID, false, itemInfo.ItemCount));
            }
            else
            {
                itemBaisc.SetActive(false);
            }
        }
    }
    private void OnNewAwardHaveEvent()
    {
        ResetAnimation();
    }
    private void ResetAnimation()
    {
        currentState = MoveState.MovingDown;
        openTime = Time.time;
        tip.anchoredPosition = startPos.anchoredPosition;
        positionTween.reversal = false;
        positionTween.from = startPos.anchoredPosition;
        positionTween.to = downPos.anchoredPosition;
        positionTween.duration = moveDurationTime;
        positionTween.Play(OnMoveDownComplete);
        Display();
    }
}
Main/System/TimeRush/TimeRushTipWin.cs.meta
New file
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: f5d65c473483e9a468f8c7a9866199ba
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData:
  assetBundleName:
  assetBundleVariant: