SuccessAction.ts 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. import { _decorator, Component, instantiate, Label, Node, tween, UITransform, Vec3 ,sys} from 'cc';
  2. import { Global } from './Global';
  3. import { Clips } from './Enums';
  4. import { AudioMgr } from './AudioMgr';
  5. import { BasePage } from './BasePage';
  6. import { AdManger } from './ad/AdManger';
  7. import { Tools } from './Tools';
  8. import { PoolMgr } from './PoolMagr';
  9. import ATRewardedVideoSDK from "./AnyThinkAds/ATRewardedVideoTSSDK"
  10. import AAJS2 from "./utils/ATAndroidJS2";
  11. import ATJSSDK from "./AnyThinkAds/ATJSSDK";
  12. import { CoinsAction } from './CoinsAction';
  13. //import { EncryptUtil } from './utils/EncryptUtil';
  14. const { ccclass, property } = _decorator;
  15. @ccclass('SuccessAction')
  16. export class SuccessAction extends BasePage {
  17. @property({type:Label})
  18. level_label:Label = null;
  19. @property({type:Label})
  20. coins_label:Label = null;
  21. @property({type:Node})
  22. coins_img:Node = null;
  23. @property({type:Node})
  24. get_coins_btn:Node = null;
  25. start() {
  26. super.start();
  27. this.initAdForPage();
  28. }
  29. /**
  30. * 初始化广告
  31. */
  32. initAdForPage(){
  33. console.log('zh:initAdForPage foir props1Action.ts')
  34. if(sys.os===sys.OS.ANDROID){
  35. console.log('zh:initAdForPage 1')
  36. let deviceId = AAJS2.getDeviceUserId();
  37. console.log("zh:checkstatus:",ATRewardedVideoSDK.checkAdStatus(AAJS2.getPlacementId()));
  38. var setting = {};
  39. setting[ATRewardedVideoSDK.userIdKey] = deviceId;
  40. ATRewardedVideoSDK.loadRewardedVideo(AAJS2.getPlacementId(), setting);
  41. }
  42. console.log('zh:initAdForPage 2')
  43. }
  44. update(deltaTime: number) {
  45. }
  46. //show menu plant
  47. open(){
  48. super.open();
  49. if(this.get_coins_btn){
  50. this.get_coins_btn.active = true;
  51. }
  52. AudioMgr.ins.playSound(Clips.complete_2);
  53. this.level_label.string = "Level "+ Global.cur_lvl+" ";
  54. this.coins_label.string = ""+ Global.cur_coins+" ";
  55. this.coins_label.node.scale = new Vec3(3,3,0);
  56. tween(this.coins_label.node)
  57. .to(0.5, { scale: new Vec3(1, 1,0) } ,Global.our_easing)
  58. .start();
  59. }
  60. btn_next(){
  61. AudioMgr.ins.playSound(Clips.btn_1);
  62. if(this.get_coins_btn){
  63. this.get_coins_btn.active = false;
  64. }
  65. this.close();
  66. AdManger.show_interstial();
  67. // Global.reset_level_default();
  68. Global.main_action.next_lvl();
  69. }
  70. private play_add_gift_tween(num:number,world_pos:Vec3,callBack:Function){
  71. let prefab = PoolMgr.ins.getPrefab("coin");
  72. let temp = 0;
  73. for(let i =0;i<num;i++){
  74. let coin = instantiate(prefab);
  75. let local = this.coins_img.getComponent(UITransform).convertToNodeSpaceAR(world_pos);
  76. this.coins_img.addChild(coin);
  77. local.x = local.x + Tools.random_between(-30,80);
  78. local.y = local.y + Tools.random_between(0,150);
  79. coin.setPosition(local);
  80. tween(coin)
  81. .to(Tools.random_between(0.5,1.2),{position:new Vec3(0,0,0)},Global.our_easing)
  82. .call(()=>{
  83. temp++;
  84. this.coins_label.string = ""+ (Global.cur_coins+temp);
  85. AudioMgr.ins.playSound(Clips.coins);
  86. if(temp>=num){
  87. if(callBack){
  88. callBack();
  89. callBack = null;
  90. }
  91. this.coins_label.string = ""+ Global.cur_coins;
  92. }
  93. })
  94. .removeSelf()
  95. .start();
  96. }
  97. }
  98. get_one_bag_coins(){
  99. if(this.get_coins_btn){
  100. this.get_coins_btn.active = false;
  101. }else{
  102. return;
  103. }
  104. AudioMgr.ins.playSound(Clips.btn_1);
  105. if(sys.os == sys.OS.ANDROID){
  106. if(ATRewardedVideoSDK.hasAdReady(AAJS2.getPlacementId())){
  107. console.log('zh:get_one_bag_coins ad ok')
  108. sys.localStorage.setItem('yxAdMark', 'getMore');//看广告用于 添加钉子孔 标记
  109. ATRewardedVideoSDK.showAd(AAJS2.getPlacementId());
  110. }else{
  111. console.log('zh:get_one_bag_coins ad no ok')
  112. Global.tips_action.show("No reward video for now");//没有奖励视频
  113. //this.useCoinsForAdPlayEnd();
  114. }
  115. }
  116. //下面是原始的
  117. // AdManger.show_video((data) => {
  118. // if (data == 1) {
  119. // console.log("get_one_bag_coins 获取奖励成功");
  120. // let num = Math.ceil(Tools.random_between(15,46));
  121. // // console.log(" random data num :",num);
  122. // this.play_add_gift_tween(num,this.get_coins_btn.getWorldPosition(),()=>{
  123. // Global.coins_action.put_coins(num,this.coins_img.getWorldPosition(),false);
  124. // });
  125. // } else {
  126. // Global.tips_action.show("Gain reward failure");//获取奖励失败
  127. // // this.close();
  128. // // Global.main_action.next_lvl();
  129. // }
  130. // })
  131. }
  132. /**
  133. *
  134. */
  135. useCoinsForAdPlayEnd(){
  136. console.log("zh:get_one_bag_coins 开始发放更多钻石 奖励start");
  137. let num = Math.ceil(Tools.random_between(15,46));
  138. // console.log(" random data num :",num);
  139. this.play_add_gift_tween(num,this.get_coins_btn.getWorldPosition(),()=>{
  140. Global.coins_action.put_coins(num,this.coins_img.getWorldPosition(),false);
  141. });
  142. console.log("zh:get_one_bag_coins 开始发放更多钻石 奖励end");
  143. //清理AD奖励标记
  144. sys.localStorage.removeItem('yxAdMark')
  145. }
  146. }