Advertisement
_EagleOwle_

SkipLevelUI

Nov 1st, 2021
831
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.00 KB | None | 0 0
  1. using UnityEngine;
  2. using UnityEngine.UI;
  3. using TMPro;
  4. using System;
  5.  
  6. public class SkipLevelUI : CanvasGroupUI
  7. {
  8.     [Space]
  9.     [SerializeField] private int _diamondsPayCost = 10;
  10.     [Space]
  11.     [SerializeField] private Button[] _closeBtns;
  12.     [SerializeField] private Button _viewAdBtn;
  13.     [SerializeField] private Button _diamondPayBtn;
  14.     [SerializeField] private TextMeshProUGUI _diamondCostText;
  15.  
  16.     public Action OnSkip;
  17.  
  18.     protected override void Init()
  19.     {
  20.         foreach (Button btn in _closeBtns)
  21.             btn.onClick.AddListener(Hide);
  22.  
  23.         _viewAdBtn.onClick.AddListener(ViewAd);
  24.         _viewAdBtn.interactable = AdsInitializer.Instance.RewardedAd.IsLoaded;
  25.         _diamondPayBtn.onClick.AddListener(DiamondPay);
  26.         _diamondPayBtn.interactable = SLS.Data.Game.Diamonds.Value >= _diamondsPayCost;
  27.         _diamondCostText.text = _diamondsPayCost.ToString();
  28.         AdsInitializer.Instance.RewardedAd.OnAdLoaded += OnAdLoaded;
  29.  
  30.         base.Init();
  31.     }
  32.  
  33.     public override void Show()
  34.     {
  35.         base.Show();
  36.         AdsInitializer.Instance.RewardedAd.OnAdComplete += OnAdComplete;
  37.     }
  38.  
  39.     public override void Hide()
  40.     {
  41.         base.Hide();
  42.         AdsInitializer.Instance.RewardedAd.OnAdComplete -= OnAdComplete;
  43.     }
  44.  
  45.     private void ViewAd()
  46.     {
  47.         _viewAdBtn.interactable = false;
  48.         AdsInitializer.Instance.ShowRewarded();
  49.     }
  50.  
  51.     private void DiamondPay()
  52.     {
  53.         SLS.Data.Game.Diamonds.Value -= _diamondsPayCost;
  54.         Game.Instance.ContinueLevel();
  55.         Hide();
  56.         OnSkip?.Invoke();
  57.     }
  58.  
  59.     private void OnAdLoaded()
  60.     {
  61.         _viewAdBtn.interactable = true;
  62.     }
  63.  
  64.     public void OnAdComplete()
  65.     {
  66.         Game.Instance.ContinueLevel();
  67.         Hide();
  68.         OnSkip?.Invoke();
  69.     }
  70.  
  71.     private void OnDestroy()
  72.     {
  73.         AdsInitializer.Instance.RewardedAd.OnAdComplete -= OnAdComplete;
  74.         AdsInitializer.Instance.RewardedAd.OnAdLoaded -= OnAdLoaded;
  75.     }
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement