UIGetSkill.ts 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. import { Widget, _decorator, Node, Sprite, Label, sys } from 'cc';
  2. import { SkillType } from '../enum/SkillType';
  3. import { SkillMgr } from '../manager/SkillMgr';
  4. import { GameMgr } from '../manager/GameMgr';
  5. import { UIBase } from '../scriptBase/UIBase';
  6. import { CfgSkillInfo } from '../config/CfgSkillInfo';
  7. import { ResMgr } from '../manager/ResMgr';
  8. import { Bundle } from '../enum/Bundle';
  9. import { AdMgr } from '../manager/AdMgr';
  10. import { Debug } from "../util/Debug";
  11. import { EventMgr } from '../manager/EventMgr';
  12. import ATRewardedVideoSDK from "../AnyThinkAds/ATRewardedVideoTSSDK"
  13. import AAJS2 from "../utils/ATAndroidJS2";
  14. import ATJSSDK from "../AnyThinkAds/ATJSSDK";
  15. const Tag: string = 'zh:UIGetSkill';
  16. const { ccclass, property, requireComponent } = _decorator;
  17. @ccclass('UI/UIGetSkill')
  18. @requireComponent(Widget)
  19. export class UIGetSkill extends UIBase {
  20. private icon: Sprite = null
  21. private lbTitle: Label = null
  22. private lbDesc: Label = null
  23. private skill: SkillType = null
  24. /**
  25. * 初始化广告
  26. */
  27. initAdForPage() {
  28. Debug.Log(Tag, 'initAdForPage foir UIGetSkill.ts')
  29. if (sys.os === sys.OS.ANDROID) {
  30. let deviceId = AAJS2.getDeviceUserId();
  31. Debug.Log(Tag, 'checkAdStatus ='+ATRewardedVideoSDK.checkAdStatus(AAJS2.getPlacementId()));
  32. var setting = {};
  33. setting[ATRewardedVideoSDK.userIdKey] = deviceId;
  34. ATRewardedVideoSDK.loadRewardedVideo(AAJS2.getPlacementId(), setting);
  35. }
  36. }
  37. protected onLoad(): void {
  38. this.icon = this.findComp('Icon', Sprite)
  39. this.lbTitle = this.findComp('LbTitle', Label)
  40. this.lbDesc = this.findComp('LbDesc', Label)
  41. this.initAdForPage()
  42. console.log('zh:uigetskill onload 注册事件 Ad_play_end s')
  43. EventMgr.on('Ad_play_end', this.defCode, this)
  44. console.log('zh:uigetskill onload 注册事件 Ad_play_end e')
  45. }
  46. /**
  47. *
  48. * @param event 是否看完了AD
  49. */
  50. onCustomEvent(event) {
  51. // 处理自定义事件
  52. const userData = event.getUserData();
  53. console.log('zh: ad end Received custom event:', userData);
  54. }
  55. onDestroy() {
  56. // 注销自定义事件监听器
  57. // this.node.off('custom-event', this.onCustomEvent, this);
  58. }
  59. public onOpen(data?: unknown): void {
  60. GameMgr.Pause = true
  61. this.skill = data as SkillType
  62. const skillInfo = CfgSkillInfo[this.skill]
  63. this.lbTitle.string = skillInfo.name
  64. this.lbDesc.string = skillInfo.desc
  65. this.icon.spriteFrame = ResMgr.getSpriteFrame(Bundle.Icon, skillInfo.icon)
  66. }
  67. public onClose(data?: unknown): void {
  68. GameMgr.Pause = false
  69. }
  70. protected onBtnGetClick(): void {
  71. Debug.Log(Tag, '点击了获取xxxx道具', this.skill)
  72. switch (this.skill) {
  73. case SkillType.DoubleCoin:
  74. Debug.Log(Tag, '星星')
  75. Debug.Log(Tag, SkillType.DoubleCoin)
  76. break;
  77. case SkillType.FreezeTime:
  78. Debug.Log(Tag, '冰冻时间')
  79. Debug.Log(Tag, SkillType.FreezeTime)
  80. break;
  81. case SkillType.RefreshPosition:
  82. Debug.Log(Tag, '转换')
  83. Debug.Log(Tag, SkillType.RefreshPosition)
  84. break;
  85. case SkillType.EraseGroup:
  86. Debug.Log(Tag, '灯泡')
  87. Debug.Log(Tag, SkillType.EraseGroup)
  88. break;
  89. default:
  90. Debug.Log(Tag, 'onBtnGetClick 未知skill。。。。')
  91. break;
  92. }
  93. if (sys.os == sys.OS.ANDROID) {
  94. if (ATRewardedVideoSDK.hasAdReady(AAJS2.getPlacementId())) {
  95. Debug.Log(Tag, 'onBtnGetClick ad ok')
  96. sys.localStorage.setItem('yxAdMark', this.skill);//看广告用于 xx 标记
  97. ATRewardedVideoSDK.showAd(AAJS2.getPlacementId());
  98. // this.defcode(); //这里如果仔细测试就会发现一个BUG
  99. } else {
  100. Debug.Log(Tag, 'onBtnGetClick ad no ok')
  101. this.defCode();
  102. }
  103. }else{
  104. Debug.Log(Tag, 'onBtnGetClick H5直接发奖励')
  105. this.defCode();
  106. }
  107. }
  108. /**
  109. * 默认代码,原有的逻辑
  110. */
  111. public defCode(): void {
  112. console.log('zh:uigetskill Ad_play_end go .....')
  113. AdMgr.showRewardedVideo(() => {
  114. SkillMgr.addSkill(this.skill)
  115. this.close()
  116. })
  117. }
  118. }