/*
http://www.cgsoso.com/forum-211-1.html
CG搜搜 Unity3d 每日Unity3d插件免费更新 更有VIP资源!
CGSOSO 主打游戏开发,影视设计等CG资源素材。
插件如若商用,请务必官网购买!
daily assets update for try.
U should buy the asset from home store if u use it in your project!
*/
//using GoogleMobileAds.Api;
using System;
using UnityEngine;
public class RewardedVideoGroup : MonoBehaviour
{
public GameObject buttonGroup;
public GameObject textGroup;
public TimerText timerText;
private const string ACTION_NAME = "rewarded_video";
private void Start()
{
if (timerText != null)
{
TimerText obj = timerText;
obj.onCountDownComplete = (Action)Delegate.Combine(obj.onCountDownComplete, new Action(OnCountDownComplete));
}
Timer.Schedule(this, 0.1f, AddEvents);
if (!IsAvailableToShow())
{
buttonGroup.SetActive(value: false);
if (IsAdAvailable() && !IsActionAvailable())
{
int time = (int)((double)GameConfig.instance.rewardedVideoPeriod - CUtils.GetActionDeltaTime("rewarded_video"));
ShowTimerText(time);
}
}
InvokeRepeating("IUpdate", 1f, 1f);
}
private void AddEvents()
{
IronSourceRewardedVideoEvents.onAdRewardedEvent += HandleRewardBasedVideoRewarded;
}
private void IUpdate()
{
buttonGroup.SetActive(IsAvailableToShow());
}
public void OnClick()
{
IronSource.Agent.showRewardedVideo();
//AdmobController.instance.ShowRewardBasedVideo();
Sound.instance.PlayButton();
}
private void ShowTimerText(int time)
{
if (textGroup != null)
{
textGroup.SetActive(value: true);
timerText.SetTime(time);
timerText.Run();
}
}
public void HandleRewardBasedVideoRewarded(IronSourcePlacement ironSourcePlacement, IronSourceAdInfo ironSourceAdInfo)
{
buttonGroup.SetActive(value: false);
ShowTimerText(GameConfig.instance.rewardedVideoPeriod);
}
//public void HandleRewardBasedVideoRewarded(object sender, Reward args)
//{
// buttonGroup.SetActive(value: false);
// ShowTimerText(GameConfig.instance.rewardedVideoPeriod);
//}
private void OnCountDownComplete()
{
textGroup.SetActive(value: false);
if (IsAdAvailable())
{
buttonGroup.SetActive(value: true);
}
}
public bool IsAvailableToShow()
{
return IsActionAvailable() && IsAdAvailable();
}
private bool IsActionAvailable()
{
return CUtils.IsActionAvailable("rewarded_video", GameConfig.instance.rewardedVideoPeriod);
}
private bool IsAdAvailable()
{
//if (AdmobController.instance.rewardBasedVideo == null)
//{
// return false;
//}
return IronSource.Agent.isRewardedVideoAvailable();
}
private void OnDestroy()
{
IronSourceRewardedVideoEvents.onAdRewardedEvent -= HandleRewardBasedVideoRewarded;
}
private void OnApplicationPause(bool pause)
{
if (!pause && textGroup != null && textGroup.activeSelf)
{
int time = (int)((double)GameConfig.instance.rewardedVideoPeriod - CUtils.GetActionDeltaTime("rewarded_video"));
ShowTimerText(time);
}
}
}