using System; using System.Collections.Generic; namespace HC.Plugins { public class HCWebGLAdPlugin : HCIBaseAds { private Dictionary ConvertCallbackResult(int code, string msg, Dictionary ext) { ext ??= new Dictionary(); ext["code"] = code; ext["msg"] = msg; ext["platform"] = "webgl"; return ext; } public override void InitializeSdk(Action initCallback) { HCWebGLSDKManager.Ads.InitializeSdk((statusCallback, adUnit, code, msg, ext) => { switch (statusCallback) { case HCADSstatuscallback.RewardedLoadSuccess: HCOnRewardedAdLoadedEvent?.Invoke(adUnit, ConvertCallbackResult(code, msg, ext)); break; case HCADSstatuscallback.RewardedClose: HCOnRewardedAdHiddenEvent?.Invoke(adUnit, ConvertCallbackResult(code, msg, ext)); break; case HCADSstatuscallback.RewardedLoadFailed: HCOnRewardedAdLoadFailedEvent?.Invoke(adUnit, ConvertCallbackResult(code, msg, ext)); break; case HCADSstatuscallback.RewardedShowSuccess: HCOnRewardedAdDisplayedEvent?.Invoke(adUnit, ConvertCallbackResult(code, msg, ext)); break; case HCADSstatuscallback.RewardedShowFailed: HCOnRewardedAdFailedToDisplayEvent?.Invoke(adUnit, ConvertCallbackResult(code, msg, ext), ConvertCallbackResult(code, msg, ext)); break; case HCADSstatuscallback.InterstitialLoadSuccess: HCOnInterstitialLoadedEvent?.Invoke(adUnit, ConvertCallbackResult(code, msg, ext)); break; case HCADSstatuscallback.InterstitialLoadFailed: HCOnInterstitialLoadFailedEvent?.Invoke(adUnit, ConvertCallbackResult(code, msg, ext)); break; case HCADSstatuscallback.InterstitialClose: HCOnInterstitialHiddenEvent?.Invoke(adUnit, ConvertCallbackResult(code, msg, ext)); break; case HCADSstatuscallback.InterstitialShowSuccess: HCOnInterstitialDisplayedEvent?.Invoke(adUnit, ConvertCallbackResult(code, msg, ext)); break; case HCADSstatuscallback.InterstitialShowFailed: HCOnInterstitialAdFailedToDisplayEvent?.Invoke(adUnit, ConvertCallbackResult(code, msg, ext), ConvertCallbackResult(code, msg, ext)); break; case HCADSstatuscallback.BannerLoadFailed: HCOnBannerAdLoadFailedEvent?.Invoke(adUnit, ConvertCallbackResult(code, msg, ext)); break; case HCADSstatuscallback.BannerLoadSuccess: HCOnBannerAdLoadedEvent?.Invoke(adUnit, ConvertCallbackResult(code, msg, ext)); break; case HCADSstatuscallback.BannerResize: break; case HCADSstatuscallback.BannerDestroySuccess: break; case HCADSstatuscallback.BannerDestroyFailed: break; case HCADSstatuscallback.BannerShowSuccess: break; case HCADSstatuscallback.BannerShowFailed: break; case HCADSstatuscallback.BannerHideSuccess: break; case HCADSstatuscallback.BannerHideFailed: break; default: throw new ArgumentOutOfRangeException(nameof(statusCallback), statusCallback, null); } }); initCallback?.Invoke(true); } public override void LoadRewardedAd(string adUnitId) { HCWebGLSDKManager.Ads.RewardedLoad(adUnitId); } public override bool IsRewardedAdReady(string adUnitId) { return HCWebGLSDKManager.Ads.IsRewardedAdReady(adUnitId); } public override void ShowRewardedAd(string adUnitId) { HCWebGLSDKManager.Ads.ShowRewardedAd(adUnitId); } public override void LoadInterstitial(string adUnitId) { HCWebGLSDKManager.Ads.LoadInterstitial(adUnitId); } public override bool IsInterstitialReady(string adUnitId) { return HCWebGLSDKManager.Ads.IsInterstitialReady(adUnitId); } public override void ShowInterstitial(string adUnitId) { HCWebGLSDKManager.Ads.ShowInterstitial(adUnitId); } public override void DestroyBanner(string adUnitId) { HCWebGLSDKManager.Ads.DestroyBanner(adUnitId); } public override void CreateBanner(string adUnitId) { HCWebGLSDKManager.Ads.CreateBanner(adUnitId); } public override void ShowBanner(string adUnitId) { HCWebGLSDKManager.Ads.ShowBanner(adUnitId); } public override void HideBanner(string adUnitId) { HCWebGLSDKManager.Ads.HideBanner(adUnitId); } public override void SetLogEnable(bool enable) { } } }