using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; #if H5_DY using StarkSDKSpace; #endif public class PanelResult : BasePanel { public Action DelAgain; [SerializeField] Text mTxtEndingName; [SerializeField] GameObject mGobWinTitle; [SerializeField] GameObject mGobLoseTitle; [SerializeField] GameObject mGobWinFace; [SerializeField] GameObject mGobLoseFace; [SerializeField] GameObject mGobWinBtns; [SerializeField] GameObject mGobLoseBtns; [SerializeField] GameObject mGobFx; [SerializeField] Button mBtnLevel; [SerializeField] Button mBtnShareResult; [SerializeField] Button mBtnAgain1; [SerializeField] Button mBtnNext; [SerializeField] Button mBtnChoose; [SerializeField] Button mBtnSuccShare; [SerializeField] Button mBtnAgain2; [SerializeField] Button mBtnTip; [SerializeField] Button mBtnSkip; [SerializeField] Button mBtnShareSkip; [SerializeField] ButtonEndings mBtnEndings; public bool ReviewShowed = false; private void Awake() { UIUtils.BindBtn(mBtnLevel, OnClickChoose, AudioClipType.Click_Normal); UIUtils.BindBtn(mBtnShareResult, OnClickShareResult, AudioClipType.Click_Normal); UIUtils.BindBtn(mBtnAgain1, OnClickAgain, AudioClipType.Click_Normal); UIUtils.BindBtn(mBtnNext, OnClickNext, AudioClipType.Click_Normal); UIUtils.BindBtn(mBtnChoose, OnClickChoose, AudioClipType.Click_Normal); UIUtils.BindBtn(mBtnSuccShare, OnClickSuccShare, AudioClipType.Click_Normal); UIUtils.BindBtn(mBtnAgain2, OnClickAgain, AudioClipType.Click_Normal); UIUtils.BindBtn(mBtnTip, OnClickEndings, AudioClipType.Click_Normal); UIUtils.BindBtn(mBtnSkip, OnClickSkip, AudioClipType.Click_Normal); UIUtils.BindBtn(mBtnShareSkip, OnClickShareSkip, AudioClipType.Click_Normal); mBtnEndings.DelClick = OnClickShowEndingsDirectly; string platform = StarkSDK.API.GetSystemInfo().platform; #if H5_DY if (platform != null && platform.ToLower().Contains("ios")) { mBtnSuccShare.gameObject.SetActive(false); } else { mBtnSuccShare.gameObject.SetActive(true); } mBtnShareResult.gameObject.SetActive(false); #else mBtnSuccShare.gameObject.SetActive(false); mBtnShareResult.gameObject.SetActive(true); #endif } public override void OnFocus(bool pFocus) { base.OnFocus(pFocus); mGobFx.SetActive(pFocus); } public void Init(int pLevelID, string pEndingName, bool pIsWin, bool pNextLevelClear, bool pHasNew = false, bool pHasComplete = false) { mTxtEndingName.text = pEndingName; mGobWinTitle.SetActive(pIsWin); mGobLoseTitle.SetActive(!pIsWin); mGobWinFace.SetActive(pIsWin); mGobLoseFace.SetActive(!pIsWin); mGobWinBtns.SetActive(pIsWin); mGobLoseBtns.SetActive(!pIsWin); mBtnNext.gameObject.SetActive(!pNextLevelClear); mBtnChoose.gameObject.SetActive(pNextLevelClear); mBtnSkip.gameObject.SetActive(PlayerData.Instance.CurrentLevel >= PlayerData.Instance.UnlockedLevel); mBtnShareSkip.gameObject.SetActive(PlayerData.Instance.CurrentLevel >= PlayerData.Instance.UnlockedLevel); if (mBtnSkip.gameObject.activeSelf) { //TKGSDKManager.Instance.LogRewardAdBtnShow(Const.AdsEvtValue.EndSkip); } if(TKGSDKManager.Instance.GetRewardWay() == TKGSDKManager.WayOfReward.Share) { mBtnShareSkip.gameObject.SetActive(true); mBtnSkip.gameObject.SetActive(false); } else if (TKGSDKManager.Instance.GetRewardWay() == TKGSDKManager.WayOfReward.RewardAd) { mBtnShareSkip.gameObject.SetActive(false); mBtnSkip.gameObject.SetActive(true); } LevelData tLvData = GameConfig.Instance.GetLevelData(pLevelID); mBtnEndings.Init(pLevelID, PlayerData.Instance.EndingCountOfLevel(pLevelID), tLvData.Endings.Count); if (pHasNew) { if (pHasComplete) { TimerManager.Instance.Schedule(() => mBtnEndings.ShowComplete(true), 0.7f); } else { TimerManager.Instance.Schedule(() => mBtnEndings.ShowNew(true), 0.7f); } } else { mBtnEndings.ShowTip(!pIsWin && !pHasComplete); } } private void OnClickAgain() { //TKGSDKManager.Instance.LogEvent(Const.AdsEvent.EndRetry, Const.AdsEvtID.Level, PlayerData.Instance.CurrentLevel.ToString()); DelAgain?.Invoke(); if (!ReviewShowed) { TKGSDKManager.Instance.ShowInterstitialAd(TKGIVAdPositionName.end_game_retry); } } private void OnClickNext() { //TKGSDKManager.Instance.LogEvent(Const.AdsEvent.EndNext, Const.AdsEvtID.Level, PlayerData.Instance.CurrentLevel.ToString()); GameManager.Instance.NextLevel(); if (!ReviewShowed) { TKGSDKManager.Instance.ShowInterstitialAd(TKGIVAdPositionName.end_game_next); } } private void OnClickChoose() { //TKGSDKManager.Instance.LogEvent(Const.AdsEvent.EndSelect, Const.AdsEvtID.Level, PlayerData.Instance.CurrentLevel.ToString()); PanelLevel tUILevel = UIManager.Instance.OpenUI(); tUILevel.Init(true); if (!ReviewShowed) { TKGSDKManager.Instance.ShowInterstitialAd(TKGIVAdPositionName.end_game_select); } } private void OnClickSuccShare() { TKGSDKManager.Instance.ScreenRecordingLogic(TKGSDKManager.SCLCategory.分享, "share title", new List() { "尖叫吧小鸡仔" }, () => { Debug.Log("分享结束 ----"); }); } private void OnClickShareResult() { TKGSDKManager.Instance.ShareShareAppMessageByType(TKGSDKManager.ShareType.ShareAppOriginImg); } private void OnClickEndings() { if (!PlayerData.Instance.LevelReachGoodEnding(GameConfig.Instance.LevelSort[PlayerData.Instance.CurrentLevel - 1])) { TKGSDKManager.Instance.ShowRewardAd(TKGRVPositionName.RV_GetTips, (_isReward) => { if (_isReward) { Debug.Log("CURR LEVEL : " + PlayerData.Instance.CurrentLevel); PlayerData.Instance.AddEndingAdTip(GameConfig.Instance.LevelSort[PlayerData.Instance.CurrentLevel - 1], 0); PanelEndings tUIEndings = UIManager.Instance.OpenUI(); tUIEndings.Init(PlayerData.Instance.CurrentLevelID); } }); } else { PanelEndings tUIEndings = UIManager.Instance.OpenUI(); tUIEndings.Init(PlayerData.Instance.CurrentLevelID); } } private void OnClickShowEndingsDirectly() { PanelEndings tUIEndings = UIManager.Instance.OpenUI(); tUIEndings.Init(PlayerData.Instance.CurrentLevelID); } private void OnClickSkip() { TKGSDKManager.Instance.ShowRewardAd(TKGRVPositionName.RV_end_skip, (pResult) => { if (pResult) { PlayerData.Instance.UnlockNewLevel(); GameManager.Instance.NextLevel(); } }); //PlayerData.Instance.UnlockNewLevel(); //GameManager.Instance.NextLevel(); } private void OnClickShareSkip() { TKGSDKManager.Instance.ShareShareAppMessageByType(TKGSDKManager.ShareType.ShareAppFixedImg); Invoke("RewardSucc", 0.5f); } private void RewardSucc() { PlayerData.Instance.UnlockNewLevel(); GameManager.Instance.NextLevel(); } }