OvertakingLegend/Assets/UIFrameWork/Script/VictoryUI.cs

228 lines
7.7 KiB
C#
Raw 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 Unity.VisualScripting;
using UnityEngine;
using UnityEngine.SocialPlatforms.Impl;
using UnityEngine.UI;
/// <summary>
/// ʤ<><CAA4>UI
/// </summary>
public class VictoryUI : UIBaseClass
{
/// <summary>
/// <20><><EFBFBD>ճ<EFBFBD><D5B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
public TextMeshProUGUI dangerousOvertaking;
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
public TextMeshProUGUI carAccident;
/// <summary>
/// <20><><EFBFBD><EFBFBD>
/// </summary>
public TextMeshProUGUI score;
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
public TextMeshProUGUI awardMoney;
/// <summary>
/// <20>ɽ<EFBFBD><C9BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
public Transform flyMoneyStartPoint;
/// <summary>
/// <20>ɽ<EFBFBD><C9BD><EFBFBD><EFBFBD>յ<EFBFBD>
/// </summary>
public Transform flyMoneyEndPoint;
/// <summary>
/// <20>ʴ<EFBFBD><CAB4><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
public Transform colouredRibbonLeftPoint;
/// <summary>
/// <20>ʴ<EFBFBD><CAB4>ҵ<EFBFBD>
/// </summary>
public Transform colouredRibbonRightPoint;
/// <summary>
/// ˫<><CBAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
public Button moneyDoubleGold;
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҳ
/// </summary>
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<string, object>()
{
{"Guide_Step","TutorialPass"}
});
}
BXSdk.Instance.LogEvent("RV_Button_Show", new System.Collections.Generic.Dictionary<string, object>()
{
{"Position","RV_DoubleCoin"}
});
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","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<TopmostLayerUI>().ColouredRibbon(colouredRibbonLeftPoint, colouredRibbonRightPoint);
}
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҳ
/// </summary>
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();
});
}
/// <summary>
/// <20><><EFBFBD><EFBFBD>˫<EFBFBD><CBAB><EFBFBD><EFBFBD>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>
/// </summary>
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<TopmostLayerUI>().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);
});
});
}
/// <summary>
/// <20>ӷֶ<D3B7>Ч
/// </summary>
private void AwardedMarksAnim()
{
StartCoroutine(IE_AwardedMarksAnim());
}
/// <summary>
/// <20>ӷֶ<D3B7>ЧЭ<D0A7><D0AD>
/// </summary>
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<TopmostLayerUI>().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<AudioClip>(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<AudioClip>(PackagesName.GameData, "TapUI"));
}
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
private void Score()
{
if (!UserDataManager.Instance.userData.guidance.isOverInitialEntry)
{
UIManager.Instance.AsynShowUI<ScoreUI>();
}
//int value = BXSdk.Instance.GetConfigInt("Rate_Open", 0);
//if (value == 1)
//{
// if (!UserDataManager.Instance.userData.guidance.isOverInitialEntry)
// {
// UIManager.Instance.AsynShowUI<ScoreUI>();
// }
//}
}
}