228 lines
7.7 KiB
C#
228 lines
7.7 KiB
C#
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>
|
|
/// 胜利UI
|
|
/// </summary>
|
|
public class VictoryUI : UIBaseClass
|
|
{
|
|
/// <summary>
|
|
/// 惊险超车次数
|
|
/// </summary>
|
|
public TextMeshProUGUI dangerousOvertaking;
|
|
|
|
/// <summary>
|
|
/// 车祸数
|
|
/// </summary>
|
|
public TextMeshProUGUI carAccident;
|
|
|
|
/// <summary>
|
|
/// 分数
|
|
/// </summary>
|
|
public TextMeshProUGUI score;
|
|
|
|
/// <summary>
|
|
/// 奖励金币
|
|
/// </summary>
|
|
public TextMeshProUGUI awardMoney;
|
|
|
|
/// <summary>
|
|
/// 飞金币起点
|
|
/// </summary>
|
|
public Transform flyMoneyStartPoint;
|
|
|
|
/// <summary>
|
|
/// 飞金币终点
|
|
/// </summary>
|
|
public Transform flyMoneyEndPoint;
|
|
|
|
/// <summary>
|
|
/// 彩带左点
|
|
/// </summary>
|
|
public Transform colouredRibbonLeftPoint;
|
|
|
|
/// <summary>
|
|
/// 彩带右点
|
|
/// </summary>
|
|
public Transform colouredRibbonRightPoint;
|
|
|
|
/// <summary>
|
|
/// 双倍金币
|
|
/// </summary>
|
|
public Button moneyDoubleGold;
|
|
|
|
/// <summary>
|
|
/// 返回主页
|
|
/// </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>
|
|
/// 返回主页
|
|
/// </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>
|
|
/// 金币双倍按钮监听
|
|
/// </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>
|
|
/// 加分动效
|
|
/// </summary>
|
|
private void AwardedMarksAnim()
|
|
{
|
|
StartCoroutine(IE_AwardedMarksAnim());
|
|
}
|
|
|
|
/// <summary>
|
|
/// 加分动效协程
|
|
/// </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>
|
|
/// 评分引导
|
|
/// </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>();
|
|
// }
|
|
//}
|
|
}
|
|
}
|