using BX;
using DG.Tweening;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
///
/// 复活界面
///
public class ResurgenceUI : UIBaseClass
{
///
/// 分数
///
public TextMeshProUGUI scoreTetx;
///
/// 关卡进度
///
public TextMeshProUGUI schedule;
///
/// 复活倒计时
///
public TextMeshProUGUI countdownResurrectionText;
///
/// 关卡进度条
///
public Image scheduleBar;
///
/// 复活倒计时
///
public Image countdownResurrection;
///
/// 复活
///
public Button resurgenceBtn;
///
/// 忽略
///
public Button loseBtn;
///
/// 倒计时
///
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()
{
{"Position","RV_Revive"}
});
SetScheduleBar();
SetCountdownResurrection();
SetScore();
resurgenceBtn.interactable = true;
loseBtn.interactable = true;
}
public override void OnHide()
{
base.OnHide();
countdownTween.Kill();
}
///
/// 设置关卡进度
///
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") + "%";
});
}
///
/// 设置分数
///
private void SetScore()
{
float value = 0;
DOTween.To(() => value, x => value = x, Scenes.Instance.gameScene.GetScore(), 1f).OnUpdate(() =>
{
scoreTetx.text = value.ToString("0");
});
}
///
/// 设置复活倒计时
///
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();
}).SetEase(Ease.Linear);
}
///
/// 复活按钮
///
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();
});
});
}
///
/// 忽略按钮
///
private void LoseBtnListenet()
{
loseBtn.onClick.AddListener(() =>
{
HideMe();
UIManager.Instance.AsynShowUI();
});
}
}