OvertakingLegend/Assets/UIFrameWork/Script/SettlementUI.cs

158 lines
4.3 KiB
C#

using BX;
using DG.Tweening;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
/// <summary>
/// 结算界面
/// </summary>
public class SettlementUI : UIBaseClass
{
/// <summary>
/// 当前关卡
/// </summary>
public TextMeshProUGUI level;
/// <summary>
/// 分数
/// </summary>
public TextMeshProUGUI score;
/// <summary>
/// 加金币
/// </summary>
public TextMeshProUGUI addMoney;
/// <summary>
/// 飞金币起点
/// </summary>
public Transform flyMoneyStartPoint;
/// <summary>
/// 飞金币终点
/// </summary>
public Transform flyMoneyEndPoint;
/// <summary>
/// 再试一次
/// </summary>
public Button tayAgainBtn;
/// <summary>
/// 返回
/// </summary>
public Button backBtn;
public override void OnShow()
{
base.OnShow();
BXSdk.Instance.LogEvent("Level_End", new Dictionary<string, object>()
{
{"Ad_Num",Scenes.Instance.gameScene.adNumber},
{"Skill_Choice",ConfigManager.Instance.Tables.TbSkillConfig.Get(UserDataManager.Instance.userData.skillId).SkillName},
{"Skill_Time",Scenes.Instance.gameScene.useSkillNumber},
{"Level_Time",Scenes.Instance.gameScene.levelTime},
{"End_Type","Fail"},
});
BXSdk.Instance.LevelEnd(UserDataManager.Instance.userData.level.ToString(), BXSdk.StageResult.StageFail);
AwardedMarksAnim();
level.text = "Level " + UserDataManager.Instance.userData.level;
SDKManager.Instance.ShowInterstitial("IV_Fail", BXSdk.IVADType.IV1);
}
private void Start()
{
TayAgainBtnListener();
BackBtnListener();
}
/// <summary>
/// 加分动效
/// </summary>
private void AwardedMarksAnim()
{
StartCoroutine(IE_AwardedMarksAnim());
}
/// <summary>
/// 加分动效协程
/// </summary>
private IEnumerator IE_AwardedMarksAnim()
{
tayAgainBtn.gameObject.SetActive(false);
backBtn.gameObject.SetActive(false);
SetScore();
yield return new WaitForSeconds(2);
tayAgainBtn.gameObject.SetActive(true);
tayAgainBtn.transform.localScale = Vector3.zero;
tayAgainBtn.transform.DOScale(Vector3.one, 0.2f);
yield return new WaitForSeconds(0.3f);
backBtn.gameObject.SetActive(true);
backBtn.transform.localScale = Vector3.zero;
backBtn.transform.DOScale(Vector3.one, 0.2f);
}
/// <summary>
/// 设置分数
/// </summary>
private void SetScore()
{
addMoney.text ="X"+0;
float value = Scenes.Instance.gameScene.GetScore();
DOTween.To(() => value, x => value = x,0, 1f).OnUpdate(() =>
{
score.text = value.ToString("0");
}).OnComplete(() =>
{
UIManager.Instance.GetUI<TopmostLayerUI>().FlyStuff(E_StuffType.Money,flyMoneyStartPoint, flyMoneyEndPoint, () =>
{
SetMoney();
},100);
});
}
/// <summary>
/// 设置分数
/// </summary>
private void SetMoney()
{
float value = 0;
DOTween.To(() => value, x => value = x, Scenes.Instance.gameScene.GetScore(), 1f).OnUpdate(() =>
{
addMoney.text ="+"+value.ToString("0");
});
}
/// <summary>
/// 再试一次
/// </summary>
private void TayAgainBtnListener()
{
tayAgainBtn.onClick.AddListener(() =>
{
BXSdk.Instance.LogEvent(UserDataManager.Instance.userData.level.ToString());
BXSdk.Instance.LogEvent("Level_Enter", new Dictionary<string, object>()
{
{"Level",UserDataManager.Instance.userData.level.ToString()},
});
SDKManager.Instance.ShowInterstitial("IV_Retry", BXSdk.IVADType.IV2);
Scenes.Instance.gameScene.ResetLevel();
HideMe();
});
}
/// <summary>
/// 返回按钮
/// </summary>
private void BackBtnListener()
{
backBtn.onClick.AddListener(() =>
{
Scenes.Instance.gameScene.BackHall();
});
}
}