OvertakingLegend/Assets/UIFrameWork/Script/ResurgenceUI.cs

154 lines
3.6 KiB
C#
Raw Permalink Normal View History

2025-03-24 03:08:22 +00:00
using BX;
using DG.Tweening;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
public class ResurgenceUI : UIBaseClass
{
/// <summary>
/// <20><><EFBFBD><EFBFBD>
/// </summary>
public TextMeshProUGUI scoreTetx;
/// <summary>
/// <20>ؿ<EFBFBD><D8BF><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
public TextMeshProUGUI schedule;
/// <summary>
/// <20><><EFBFBD><EFBFBD><EEB5B9>ʱ
/// </summary>
public TextMeshProUGUI countdownResurrectionText;
/// <summary>
/// <20>ؿ<EFBFBD><D8BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
public Image scheduleBar;
/// <summary>
/// <20><><EFBFBD><EFBFBD><EEB5B9>ʱ
/// </summary>
public Image countdownResurrection;
/// <summary>
/// <20><><EFBFBD><EFBFBD>
/// </summary>
public Button resurgenceBtn;
/// <summary>
/// <20><><EFBFBD><EFBFBD>
/// </summary>
public Button loseBtn;
/// <summary>
/// <20><><EFBFBD><EFBFBD>ʱ
/// </summary>
private Tween countdownTween;
private void Start()
{
ResurgenceBtnListener();
LoseBtnListenet();
}
public override void OnShow()
{
base.OnShow();
BXSdk.Instance.LogEvent("RV_Button_Show", new System.Collections.Generic.Dictionary<string, object>()
{
{"Position","RV_Revive"}
});
SetScheduleBar();
SetCountdownResurrection();
SetScore();
resurgenceBtn.interactable = true;
loseBtn.interactable = true;
}
public override void OnHide()
{
base.OnHide();
countdownTween.Kill();
}
/// <summary>
/// <20><><EFBFBD>ùؿ<C3B9><D8BF><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
private void SetScheduleBar()
{
float value = 0;
DOTween.To(() => value, x => value = x, Scenes.Instance.gameScene.GetSchedule(), 1f).OnUpdate(() =>
{
scheduleBar.fillAmount = value;
schedule.text =(value* 100).ToString("0") + "%";
});
}
/// <summary>
/// <20><><EFBFBD>÷<EFBFBD><C3B7><EFBFBD>
/// </summary>
private void SetScore()
{
float value = 0;
DOTween.To(() => value, x => value = x, Scenes.Instance.gameScene.GetScore(), 1f).OnUpdate(() =>
{
scoreTetx.text = value.ToString("0");
});
}
/// <summary>
/// <20><><EFBFBD>ø<EFBFBD><C3B8><EFBFBD><EEB5B9>ʱ
/// </summary>
private void SetCountdownResurrection()
{
float value = 10;
countdownTween=DOTween.To(() => value, x => value = x, 0, 10).OnUpdate(() =>
{
countdownResurrection.fillAmount = value/10;
countdownResurrectionText.text =Mathf.RoundToInt(value).ToString();
}).OnComplete(() =>
{
HideMe();
UIManager.Instance.AsynShowUI<SettlementUI>();
}).SetEase(Ease.Linear);
}
/// <summary>
/// <20><><EFBFBD>ť
/// </summary>
private void ResurgenceBtnListener()
{
resurgenceBtn.onClick.AddListener(() =>
{
var rewardReady = BXSdk.Instance.IsReadyReward();
if(rewardReady)
{
resurgenceBtn.interactable = false;
loseBtn.interactable = false;
}
SDKManager.Instance.ShowReward("RV_Revive", () =>
{
Scenes.Instance.gameScene.Resurgence();
});
});
}
/// <summary>
/// <20><><EFBFBD>԰<EFBFBD>ť
/// </summary>
private void LoseBtnListenet()
{
loseBtn.onClick.AddListener(() =>
{
HideMe();
UIManager.Instance.AsynShowUI<SettlementUI>();
});
}
}