play_page_list_item.ts 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. import { _decorator, Component, Label, Node, Sprite, SpriteFrame } from 'cc';
  2. import { server_play_list_data_item } from '../data/server_play_list_data';
  3. import { gameManager } from '../gameManager';
  4. import { config } from '../config';
  5. import { tools } from '../tools';
  6. import { ClientEvent } from '../framework/clientEvent';
  7. import { Lack } from '../dialog/Lack';
  8. import { SdkUtil } from '../framework/sdkUtil';
  9. import { StatisticsManager } from '../framework/statisticsManager';
  10. import { unlock_play_dialog } from './unlock_play_dialog';
  11. import { win } from '../dialog/win';
  12. const { ccclass, property } = _decorator;
  13. @ccclass('play_page_list_item')
  14. export class play_page_list_item extends Component {
  15. @property(Node) lab_level: Node = null;
  16. @property(Node) mask_layer: Node = null;
  17. private m_data: server_play_list_data_item = null;
  18. private m_call_back = null;
  19. public initView(data: server_play_list_data_item, sf: SpriteFrame, call_back: any) {
  20. this.m_call_back = call_back
  21. this.node.getComponent(Sprite).spriteFrame = sf
  22. this.node.on(Node.EventType.TOUCH_END, () => {
  23. if (this.m_call_back != null) {
  24. console.log(config.get_play_type_name(this.m_data.id))
  25. if (this.m_data.id === config.PLAY_TYPE.JI_YI_LI || this.m_data.id === config.PLAY_TYPE.DOU_DI_ZHU) {
  26. if (gameManager.get_user_coin() >= this.m_data.consume_coin) {
  27. gameManager.sub_coin(this.m_data.consume_coin)
  28. this.m_call_back(this.m_data);
  29. } else {
  30. this.showViewLack()
  31. }
  32. } else {
  33. this.m_call_back(this.m_data);
  34. }
  35. }
  36. },this)
  37. this.mask_layer.on(Node.EventType.TOUCH_END, ()=> {
  38. gameManager.playBtnSound()
  39. gameManager.addTopView(config.PREFAB_PATH.unlock_play_dialog, (node:Node)=>{
  40. let data = gameManager.get_cur_level_by_categoryid(this.m_data.id);
  41. let look_video_string = data.look_video_number + '/' + this.m_data.unlock_ads_number
  42. node.getComponent(unlock_play_dialog).initView(`解锁${this.m_data.name}?`, this.m_data.coin_number, look_video_string, (dialog_view:unlock_play_dialog)=> {
  43. dialog_view.close()
  44. if(gameManager.get_user_coin()>=this.m_data.coin_number){
  45. gameManager.sub_coin(this.m_data.coin_number);
  46. let data = gameManager.get_cur_level_by_categoryid(this.m_data.id);
  47. data.is_lock_game_play = 1;
  48. gameManager.set_unlock_levels_data(data);
  49. gameManager.sync_data((is_sync)=>{},config.sync_data_type.LEVELS)
  50. ClientEvent.dispatchEvent(config.EVENT_MSG.ON_UPDATE_HOME_VIEW)
  51. } else {
  52. this.showViewLack()
  53. }
  54. }, (dialog_view:unlock_play_dialog)=> {
  55. SdkUtil.showVideoAd(config.rewardVideoAdUnitId.Earn_coins_AdUnitId,(res)=>{
  56. if(res.isEnded){
  57. let data = gameManager.get_cur_level_by_categoryid(this.m_data.id);
  58. data.look_video_number+=1;
  59. let look_video_string = data.look_video_number + '/' + this.m_data.unlock_ads_number
  60. dialog_view.setupLookVideo(look_video_string)
  61. if(data.look_video_number>=this.m_data.unlock_ads_number){
  62. data.is_lock_game_play = 1;
  63. dialog_view.close()
  64. }
  65. gameManager.set_unlock_levels_data(data);
  66. gameManager.sync_data((is_sync)=>{},config.sync_data_type.LEVELS)
  67. if(data.is_lock_game_play===1){
  68. ClientEvent.dispatchEvent(config.EVENT_MSG.ON_UPDATE_HOME_VIEW)
  69. }else{
  70. this.updateView()
  71. }
  72. }
  73. // 统计-激励视频广告
  74. let collect_data = StatisticsManager.get_collect_data(this.m_data.id, 0, 0, res, config.STATISTICS_ACTION_TYPE.JIE_SUO)
  75. StatisticsManager.request_collect_rewardVideoData(collect_data)
  76. })
  77. })
  78. })
  79. },this)
  80. this.m_data = data;
  81. this.updateView()
  82. }
  83. public showViewLack() {
  84. gameManager.addTopView(config.PREFAB_PATH.Lack,(node:Node)=>{
  85. node.getComponent(Lack).initView(null,(lack:Lack)=>{
  86. SdkUtil.showVideoAd(config.rewardVideoAdUnitId.Earn_coins_AdUnitId,(res)=>{
  87. if(res.isEnded){
  88. lack.close()
  89. ClientEvent.dispatchEvent(config.EVENT_MSG.ON_SHOW_REWARD_VIEW)
  90. }
  91. // 统计-激励视频广告
  92. let collect_data = StatisticsManager.get_collect_data(0, 0, 0, res, config.STATISTICS_ACTION_TYPE.ZHUAN_JIN_BI)
  93. StatisticsManager.request_collect_rewardVideoData(collect_data)
  94. })
  95. });
  96. })
  97. }
  98. public updateView() {
  99. let data = gameManager.get_cur_level_by_categoryid(this.m_data.id);
  100. if (data != null) {
  101. this.lab_level.getComponent(Label).string = `${data.level}/${this.m_data.barrier_number}`
  102. if (data.is_lock_game_play === 1) {
  103. this.mask_layer.active = false;
  104. } else {
  105. this.mask_layer.active = true;
  106. }
  107. }
  108. }
  109. }