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(); // } //} } }