mergemilitary/Assets/Scripts/UIs/PanelResult.cs

215 lines
6.4 KiB
C#
Raw Permalink Normal View History

2022-05-23 13:39:59 +00:00
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using DG.Tweening;
public class PanelResult : BasePanel
{
[SerializeField] GameObject mGobWin;
[SerializeField] GameObject mGobLose;
2022-07-04 11:17:39 +00:00
[SerializeField] Text mTxtDiamond;
2022-05-23 13:39:59 +00:00
[SerializeField] Text mTxtCoin;
2022-07-04 11:17:39 +00:00
[SerializeField] Button mBtnContinueOnly;
2022-05-23 13:39:59 +00:00
2022-07-04 11:17:39 +00:00
[SerializeField] GameObject mBtnNormalGroup;
2022-05-23 13:39:59 +00:00
[SerializeField] Button mBtnAdCoin;
[SerializeField] Button mBtnContinue;
2022-06-08 13:23:44 +00:00
[SerializeField] GameObject mGobNative;
2022-07-04 11:17:39 +00:00
[SerializeField] RectTransform mRctNative;
2022-06-08 13:23:44 +00:00
2022-09-09 14:35:49 +00:00
[SerializeField] GameObject mGobDiamondIcon;
[SerializeField] GameObject mGobRobuxIcon;
[SerializeField] GameObject mGobDiamondBox;
[SerializeField] GameObject mGobRobuxBox;
2022-07-04 11:17:39 +00:00
[SerializeField] MultipleRoller mRoller;
2022-05-23 13:39:59 +00:00
2022-07-04 11:17:39 +00:00
private int mBaseDiamond = 0;
private int mBaseCoin = 0;
private float mMultiple = 1;
2022-05-23 13:39:59 +00:00
2022-07-04 11:17:39 +00:00
private int mCurLevel;
2022-06-08 13:23:44 +00:00
private bool mWin;
private bool mHasClickedAdCoin;
private bool mHasShowedNoAds = false;
2022-05-23 13:39:59 +00:00
private AudioSource mWheelAS;
private void Awake()
{
2022-07-04 11:17:39 +00:00
UIUtils.BindBtn(mBtnContinueOnly, OnClickContinue);
2022-05-23 13:39:59 +00:00
UIUtils.BindBtn(mBtnAdCoin, OnClickAdCoin);
UIUtils.BindBtn(mBtnContinue, OnClickContinue);
2022-07-04 11:17:39 +00:00
mRoller.DelRolling = SetMultiple;
2022-05-23 13:39:59 +00:00
}
2022-06-08 13:23:44 +00:00
public void InitResult(bool pWin, int pTotalHurt, bool pShowNative)
2022-05-23 13:39:59 +00:00
{
2022-07-04 11:17:39 +00:00
mCurLevel = PlayerData.Instance.CurrentLevel;
2022-06-08 13:23:44 +00:00
mWin = pWin;
2022-05-23 13:39:59 +00:00
2022-06-08 13:23:44 +00:00
mGobWin.SetActive(mWin);
mGobLose.SetActive(!mWin);
2022-05-23 13:39:59 +00:00
2022-07-04 11:17:39 +00:00
mBaseDiamond = MMOModule.Instance.GetRewardDiamondOfLevel(PlayerData.Instance.Diamond, mCurLevel);
mBaseDiamond = mWin ? mBaseDiamond : (mCurLevel > 3 ? (mBaseDiamond / 3) : 0);
2022-06-08 13:23:44 +00:00
if (GameConfig.Instance.IsAutoLevel)
{
mBaseCoin = mWin ? PlayerData.Instance.CurrentWinCoin : PlayerData.Instance.CurrentLoseCoin;
mBaseCoin = Mathf.Max(100, mBaseCoin);
}
else
{
2022-07-04 11:17:39 +00:00
float tLevelFactor = ((mCurLevel - 1) / 20) * 0.5f + 1;
mBaseCoin = (int)(pTotalHurt * 10 * tLevelFactor * (mWin ? 1f : GameConfig.Instance.FailRewardRatio));
2022-06-08 13:23:44 +00:00
}
2022-05-23 13:39:59 +00:00
2022-07-04 11:17:39 +00:00
PlayerData.Instance.Diamond += mBaseDiamond;
2022-05-23 13:39:59 +00:00
PlayerData.Instance.Coin += mBaseCoin;
2022-07-04 11:17:39 +00:00
//int tCoin = 0;
//DOTween.To(() => tCoin, (tVal) => tCoin = tVal, mBaseCoin, 1).SetEase(Ease.Linear).onUpdate = () =>
//{
// mTxtCoin.text = "+" + UIUtils.NumForShort(tCoin);
//};
2022-05-23 13:39:59 +00:00
2022-07-04 11:17:39 +00:00
mTxtDiamond.text = "+" + UIUtils.NumForShort(mBaseDiamond);
mTxtCoin.text = "+" + UIUtils.NumForShort(mBaseCoin);
2022-05-23 13:39:59 +00:00
2022-09-09 14:35:49 +00:00
mGobDiamondIcon.SetActive(!MMOModule.Instance.IsAccessible);
mGobRobuxIcon.SetActive(MMOModule.Instance.IsAccessible);
mGobDiamondBox.SetActive(!MMOModule.Instance.IsAccessible);
mGobRobuxBox.SetActive(MMOModule.Instance.IsAccessible);
2022-07-04 11:17:39 +00:00
Utils.DelayShowGameObject(mBtnContinue.gameObject, 1.5f);
2022-05-23 13:39:59 +00:00
TKGSDKManager.Instance.LogRewardAdBtnShow(Const.AdsValue.GetCoin);
2022-06-08 13:23:44 +00:00
2022-09-09 14:35:49 +00:00
//Debug.Log("TKG Native switch:" + TKGSDKManager.Instance.GetConfigBool(TKGParamKey.NativeSwitch));
//Debug.Log("TKG Native ready:" + TKGSDKManager.Instance.IsReadyNativeAd());
2022-06-08 13:23:44 +00:00
if (pShowNative)
{
ShowNative(true);
TKGSDKManager.Instance.HideBanner();
}
else
{
ShowNative(false);
2022-09-09 14:35:49 +00:00
TKGSDKManager.Instance.ShowBanner(Touka.TKGBannerAlign.BannerCenterBottomAlign);
2022-06-08 13:23:44 +00:00
}
2022-05-23 13:39:59 +00:00
2022-07-04 11:17:39 +00:00
if (mCurLevel > 3)
2022-05-23 13:39:59 +00:00
{
2022-07-04 11:17:39 +00:00
mWheelAS = AudioManager.Instance.PlaySoundLoop(AudioClipType.PrizeWheel, 0.6f);
mRoller.IsRolling = true;
2022-05-23 13:39:59 +00:00
}
2022-07-04 11:17:39 +00:00
mBtnContinueOnly.gameObject.SetActive(mCurLevel <= 3);
mBtnNormalGroup.gameObject.SetActive(mCurLevel > 3);
2022-05-23 13:39:59 +00:00
}
2022-06-08 13:23:44 +00:00
private void OnDestroy()
{
ShowNative(false);
2022-07-04 11:17:39 +00:00
AudioManager.Instance.StopSoundLoop(mWheelAS);
2022-06-08 13:23:44 +00:00
}
private void ShowNative(bool pShow)
{
2022-09-09 14:35:49 +00:00
//mGobNative.SetActive(pShow);
2022-06-08 13:23:44 +00:00
if (pShow)
{
2022-09-09 14:35:49 +00:00
TKGSDKManager.Instance.ShowNative(mRctNative);
2022-06-08 13:23:44 +00:00
}
else
{
2022-09-09 14:35:49 +00:00
TKGSDKManager.Instance.RemoveNative();
2022-06-08 13:23:44 +00:00
}
}
2022-07-04 11:17:39 +00:00
private void SetMultiple(float pMultiple)
2022-05-23 13:39:59 +00:00
{
2022-07-04 11:17:39 +00:00
mMultiple = pMultiple;
2022-05-23 13:39:59 +00:00
2022-07-04 11:17:39 +00:00
mTxtDiamond.text = "+" + ((int)(mBaseDiamond * mMultiple)).ToString();
mTxtCoin.text = "+" + UIUtils.NumForShort((int)(mBaseCoin * mMultiple));
2022-05-23 13:39:59 +00:00
}
2022-07-04 11:17:39 +00:00
private void OnClickAdCoin()
2022-05-23 13:39:59 +00:00
{
2022-07-04 11:17:39 +00:00
if (mCurLevel > 3)
2022-05-23 13:39:59 +00:00
{
2022-07-04 11:17:39 +00:00
AudioManager.Instance.StopSoundLoop(mWheelAS);
mRoller.IsRolling = false;
2022-05-23 13:39:59 +00:00
}
2022-09-09 14:35:49 +00:00
AdsUtils.PlayReward(TKGRVPositionName.RV_Get_Coin, () =>
2022-05-23 13:39:59 +00:00
{
2022-09-09 14:35:49 +00:00
ShowNative(false);
2022-07-04 11:17:39 +00:00
PlayerData.Instance.Diamond += (int)(mBaseDiamond * (mMultiple - 1));
2022-09-09 14:35:49 +00:00
UIUtils.FlyDiamond(mRctNative.position, (int)(mBaseDiamond * mMultiple));
2022-07-04 11:17:39 +00:00
2022-05-23 13:39:59 +00:00
PlayerData.Instance.Coin += (int)(mBaseCoin * (mMultiple - 1));
2022-07-04 11:17:39 +00:00
UIUtils.FlyCoin(mTxtCoin.transform.position, (int)(mBaseCoin * mMultiple));
2022-05-23 13:39:59 +00:00
AudioManager.Instance.PlaySound(AudioClipType.GetCoin);
2022-06-08 13:23:44 +00:00
mHasClickedAdCoin = true;
2022-05-23 13:39:59 +00:00
WaitForLoad(1.5f);
});
}
private void OnClickContinue()
{
2022-07-04 11:17:39 +00:00
if (mCurLevel > 3)
{
AudioManager.Instance.StopSoundLoop(mWheelAS);
}
2022-05-23 13:39:59 +00:00
2022-09-09 14:35:49 +00:00
ShowNative(false);
UIUtils.FlyDiamond(mRctNative.position, mBaseDiamond);
2022-07-04 11:17:39 +00:00
UIUtils.FlyCoin(mTxtCoin.transform.position, mBaseCoin);
2022-05-23 13:39:59 +00:00
AudioManager.Instance.PlaySound(AudioClipType.GetCoin);
2022-06-08 13:23:44 +00:00
mHasClickedAdCoin = false;
2022-05-23 13:39:59 +00:00
WaitForLoad(1.5f);
}
private void WaitForLoad(float pWaitSeconds)
{
2022-07-04 11:17:39 +00:00
mBtnContinueOnly.gameObject.SetActive(false);
2022-05-23 13:39:59 +00:00
mBtnAdCoin.gameObject.SetActive(false);
mBtnContinue.gameObject.SetActive(false);
TimerManager.Instance.Schedule(GameManager.Instance.LoadGame, pWaitSeconds);
2022-06-08 13:23:44 +00:00
}
private void LoadGame()
{
if(mHasClickedAdCoin)
{
GameManager.Instance.LoadGame();
}
else
{
2022-09-09 14:35:49 +00:00
mHasShowedNoAds = AdsUtils.PlayInterstitial(mWin ? TKGIVAdPositionName.IV_Success : TKGIVAdPositionName.IV_Fail, mWin, () =>
2022-06-08 13:23:44 +00:00
{
if (mHasShowedNoAds)
{
GameManager.Instance.LoadGame();
}
});
if (!mHasShowedNoAds)
{
GameManager.Instance.LoadGame();
}
}
2022-05-23 13:39:59 +00:00
}
}