Files
MinFt/Client/Assets/Scripts/UI/EventRewardPanel.cs
2026-04-27 12:07:32 +08:00

88 lines
3.8 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using asap.core;
using DG.Tweening;
using GameCore;
using TMPro;
using UniRx;
using UnityEngine;
using UnityEngine.UI;
public class EventRewardPanel : BasePanel
{
private CanvasGroup canvasGroup;
private Image image_head;
private TMP_Text text_name;
private TMP_Text text_desc;
private TMP_Text text_beilv;
private TMP_Text text_reward_num;
private Image image_reward_icon;
private CanvasGroup trans_beilv;
private Transform pos;
private Button btn_close;
private void Awake()
{
btn_close = transform.Find("root/mask").GetComponent<Button>();
canvasGroup = GetComponent<CanvasGroup>();
image_head = transform.Find("root/beilv_panel/head").GetComponent<Image>();
text_name = transform.Find("root/beilv_panel/text_name").GetComponent<TMP_Text>();
text_desc = transform.Find("root/beilv_panel/text_title").GetComponent<TMP_Text>();
trans_beilv = transform.Find("root/beilv_panel/bg_beilv/bg_beilv").GetComponent<CanvasGroup>();
pos = transform.Find("root/beilv_panel/bg_beilv/pos");
text_beilv = transform.Find("root/beilv_panel/bg_beilv/bg_beilv/text_beilv").GetComponent<TMP_Text>();
text_reward_num = transform.Find("root/reward_panel/text_title").GetComponent<TMP_Text>();
image_reward_icon = transform.Find("root/reward_panel/icon").GetComponent<Image>();
}
protected override void Start()
{
base.Start();
btn_close.OnClickAsObservable().Subscribe(async x =>
{
canvasGroup.blocksRaycasts = false;
RestartShowHomeUIEvent restartShowHomeUIEvent = new RestartShowHomeUIEvent();
GContext.Publish(restartShowHomeUIEvent);
UIManager.Instance.DestroyUI(UITypes.EventRewardPanel);
}).AddTo(disposables);
}
public void OnEnable()
{
canvasGroup.alpha = 1;
canvasGroup.blocksRaycasts = true;
int magnification = GContext.container.Resolve<PlayerData>().GetMagnification();
trans_beilv.gameObject.SetActive(magnification > 1);
//if (magnification > 1)
//{
// trans_beilv.alpha = 1;
// trans_beilv.transform.localScale = Vector3.zero;
// trans_beilv.transform.localPosition = Vector2.zero;
// text_beilv.text = $"x{magnification}";
// //奖励倍率放大跳动到金币旁边类似于盖戳触发金币变化的动画伴随烟花光效数字飞速滚动直到变成对应值速度要快控制下时间比如0.8s
// trans_beilv.transform.DOScale(Vector3.one * 1.3f, 0.3f).SetEase(Ease.Linear).SetId("EventRewardPanel");
// trans_beilv.transform.DOScale(Vector3.one * 0.7f, 0.3f).SetEase(Ease.Linear).SetDelay(0.4f)
// .SetId("EventRewardPanel");
// trans_beilv.DOFade(0, 0.8f).SetId("EventRewardPanel");
// trans_beilv.transform.DOLocalMove(pos.localPosition, 0.8f).SetEase(Ease.OutCubic).SetId("EventRewardPanel")
// .OnComplete(
// () =>
// {
// //播放特效
// //数字飞速滚动直到变成对应值
// ulong reward = rewardCount * (ulong)magnification;
// DOTween.To(() => rewardCount, x => rewardCount = x, reward, 0.8f).SetEase(Ease.Linear)
// .OnUpdate(() =>
// {
// text_reward_num.text = ConvertTools.GetNumberString(rewardCount);
// })
// .SetId("EventRewardPanel");
// });
//}
}
public void OnDisable()
{
DOTween.Kill("EventRewardPanel");
canvasGroup.alpha = 0;
canvasGroup.blocksRaycasts = false;
}
}