using BX;
using DG.Tweening;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using Unity.VisualScripting;
using UnityEngine;
using UnityEngine.SocialPlatforms.Impl;
using UnityEngine.UI;
///
/// 胜利UI
///
public class VictoryUI : UIBaseClass
{
///
/// 惊险超车次数
///
public TextMeshProUGUI dangerousOvertaking;
///
/// 车祸数
///
public TextMeshProUGUI carAccident;
///
/// 分数
///
public TextMeshProUGUI score;
///
/// 奖励金币
///
public TextMeshProUGUI awardMoney;
///
/// 飞金币起点
///
public Transform flyMoneyStartPoint;
///
/// 飞金币终点
///
public Transform flyMoneyEndPoint;
///
/// 彩带左点
///
public Transform colouredRibbonLeftPoint;
///
/// 彩带右点
///
public Transform colouredRibbonRightPoint;
///
/// 双倍金币
///
public Button moneyDoubleGold;
///
/// 返回主页
///
public Button backBtn;
private void Start()
{
BackBtnListener();
MoneyDoubleGoldListener();
}
public override void OnShow()
{
base.OnShow();
if(!UserDataManager.Instance.userData.guidance.isOverInitialEntry)
{
BXSdk.Instance.LogEvent("Guide", new System.Collections.Generic.Dictionary()
{
{"Guide_Step","TutorialPass"}
});
}
BXSdk.Instance.LogEvent("RV_Button_Show", new System.Collections.Generic.Dictionary()
{
{"Position","RV_DoubleCoin"}
});
BXSdk.Instance.LogEvent("Level_End", new Dictionary()
{
{"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","Success"},
});
BXSdk.Instance.LevelEnd(UserDataManager.Instance.userData.level.ToString(), BXSdk.StageResult.StageSucc);
SDKManager.Instance.ShowInterstitial("IV_Succ", BXSdk.IVADType.IV1);
Score();
AwardedMarksAnim();
UIManager.Instance.GetUI().ColouredRibbon(colouredRibbonLeftPoint, colouredRibbonRightPoint);
}
///
/// 返回主页
///
private void BackBtnListener()
{
backBtn.onClick.AddListener(() =>
{
Scenes.Instance.gameScene.BackHall();
UserDataManager.Instance.AddMoney((int)Scenes.Instance.gameScene.GetScore());
UserDataManager.Instance.userData.guidance.SetIsOverInitialEntry();
UserDataManager.Instance.AddLevel();
});
}
///
/// 金币双倍按钮监听
///
private void MoneyDoubleGoldListener()
{
moneyDoubleGold.onClick.AddListener(() =>
{
var rewardReady = BXSdk.Instance.IsReadyReward();
if (rewardReady)
{
moneyDoubleGold.interactable = false;
backBtn.interactable = false;
}
SDKManager.Instance.ShowReward("RV_DoubleCoin", () =>
{
UIManager.Instance.GetUI().FlyStuff(E_StuffType.Money, flyMoneyStartPoint, flyMoneyEndPoint, () =>
{
int number = (int)Scenes.Instance.gameScene.GetScore();
DOTween.To(() => number, x => number = x, (int)Scenes.Instance.gameScene.GetScore() * 2, 1).OnUpdate(() =>
{
awardMoney.text = "X" + number.ToString();
}).OnComplete(() =>
{
UserDataManager.Instance.AddMoney((int)Scenes.Instance.gameScene.GetScore() * 2);
UserDataManager.Instance.AddLevel();
UserDataManager.Instance.userData.guidance.SetIsOverInitialEntry();
DelayedProcessingManager.Instance.DelayDoSecond(this, 1, () =>
{
Scenes.Instance.gameScene.BackHall();
});
}).SetEase(Ease.Linear);
}, 100);
});
});
}
///
/// 加分动效
///
private void AwardedMarksAnim()
{
StartCoroutine(IE_AwardedMarksAnim());
}
///
/// 加分动效协程
///
private IEnumerator IE_AwardedMarksAnim()
{
int number=0;
dangerousOvertaking.text ="X"+ 0;
carAccident.text = "X" + 0;
score.text = "X" + 0;
awardMoney.text = "X" + 0;
moneyDoubleGold.gameObject.SetActive(false);
backBtn.gameObject.SetActive(false);
yield return new WaitForSeconds(0.5f);
DOTween.To(() => number, x => number = x, Scenes.Instance.gameScene.totaiJudgmentOvertakingNumbe, 1).OnUpdate(() =>
{
dangerousOvertaking.text = "X" + number.ToString();
}).SetEase(Ease.Linear);
number = 0;
yield return new WaitForSeconds(0.5f);
DOTween.To(() => number, x => number = x, Scenes.Instance.gameScene.GetCarAccidentNumber(), 1).OnUpdate(() =>
{
carAccident.text = "X" + number.ToString();
}).SetEase(Ease.Linear);
number = 0;
yield return new WaitForSeconds(0.5f);
DOTween.To(() => number, x => number = x, (int)Scenes.Instance.gameScene.GetScore(), 1).OnUpdate(() =>
{
score.text = "X" + number.ToString();
}).SetEase(Ease.Linear);
yield return new WaitForSeconds(1);
UIManager.Instance.GetUI().FlyStuff(E_StuffType.Money, flyMoneyStartPoint, flyMoneyEndPoint, () =>
{
number = 0;
DOTween.To(() => number, x => number = x, (int)Scenes.Instance.gameScene.GetScore(), 1).OnUpdate(() =>
{
awardMoney.text = "X" + number.ToString();
}).SetEase(Ease.Linear);
},100);
yield return new WaitForSeconds(0.3f);
moneyDoubleGold.gameObject.SetActive(true);
moneyDoubleGold.transform.localScale = Vector3.zero;
moneyDoubleGold.transform.DOScale(Vector3.one, 0.2f);
AudioManager.Instance.PlaySound(YooAssetManager.Instance.LoadAssetSync(PackagesName.GameData, "TapUI"));
yield return new WaitForSeconds(0.3f);
backBtn.gameObject.SetActive(true);
backBtn.transform.localScale = Vector3.zero;
backBtn.transform.DOScale(Vector3.one, 0.2f);
AudioManager.Instance.PlaySound(YooAssetManager.Instance.LoadAssetSync(PackagesName.GameData, "TapUI"));
}
///
/// 评分引导
///
private void Score()
{
if (!UserDataManager.Instance.userData.guidance.isOverInitialEntry)
{
UIManager.Instance.AsynShowUI();
}
//int value = BXSdk.Instance.GetConfigInt("Rate_Open", 0);
//if (value == 1)
//{
// if (!UserDataManager.Instance.userData.guidance.isOverInitialEntry)
// {
// UIManager.Instance.AsynShowUI();
// }
//}
}
}