play_page_list_item.ts 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  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. let string = `使用${this.m_data.consume_coin}金币\n解锁${this.m_data.name}游戏`
  28. tools.showDialog(string, ()=> {
  29. gameManager.sub_coin(this.m_data.consume_coin)
  30. this.m_call_back(this.m_data);
  31. }, null)
  32. } else {
  33. this.showViewLack()
  34. }
  35. } else {
  36. this.m_call_back(this.m_data);
  37. }
  38. }
  39. },this)
  40. this.mask_layer.on(Node.EventType.TOUCH_END, ()=> {
  41. gameManager.playBtnSound()
  42. gameManager.addTopView(config.PREFAB_PATH.unlock_play_dialog, (node:Node)=>{
  43. let data = gameManager.get_cur_level_by_categoryid(this.m_data.id);
  44. let look_video_string = data.look_video_number + '/' + this.m_data.unlock_ads_number
  45. node.getComponent(unlock_play_dialog).initView(`解锁${this.m_data.name}?`, this.m_data.coin_number, look_video_string, (dialog_view:unlock_play_dialog)=> {
  46. dialog_view.close()
  47. if(gameManager.get_user_coin()>=this.m_data.coin_number){
  48. gameManager.sub_coin(this.m_data.coin_number);
  49. let data = gameManager.get_cur_level_by_categoryid(this.m_data.id);
  50. data.is_lock_game_play = 1;
  51. gameManager.set_unlock_levels_data(data);
  52. gameManager.sync_data((is_sync)=>{},config.sync_data_type.LEVELS)
  53. ClientEvent.dispatchEvent(config.EVENT_MSG.ON_UPDATE_HOME_VIEW)
  54. } else {
  55. this.showViewLack()
  56. }
  57. }, (dialog_view:unlock_play_dialog)=> {
  58. SdkUtil.showVideoAd(config.rewardVideoAdUnitId.Earn_coins_AdUnitId,(res)=>{
  59. if(res.isEnded){
  60. let data = gameManager.get_cur_level_by_categoryid(this.m_data.id);
  61. data.look_video_number+=1;
  62. let look_video_string = data.look_video_number + '/' + this.m_data.unlock_ads_number
  63. dialog_view.setupLookVideo(look_video_string)
  64. if(data.look_video_number>=this.m_data.unlock_ads_number){
  65. data.is_lock_game_play = 1;
  66. dialog_view.close()
  67. }
  68. gameManager.set_unlock_levels_data(data);
  69. gameManager.sync_data((is_sync)=>{},config.sync_data_type.LEVELS)
  70. if(data.is_lock_game_play===1){
  71. ClientEvent.dispatchEvent(config.EVENT_MSG.ON_UPDATE_HOME_VIEW)
  72. }else{
  73. this.updateView()
  74. }
  75. }
  76. // 统计-激励视频广告
  77. let collect_data = StatisticsManager.get_collect_data(this.m_data.id, 0, 0, res, config.STATISTICS_ACTION_TYPE.JIE_SUO)
  78. StatisticsManager.request_collect_rewardVideoData(collect_data)
  79. })
  80. })
  81. })
  82. },this)
  83. this.m_data = data;
  84. this.updateView()
  85. }
  86. public showViewLack() {
  87. gameManager.addTopView(config.PREFAB_PATH.Lack,(node:Node)=>{
  88. node.getComponent(Lack).initView(null,(lack:Lack)=>{
  89. SdkUtil.showVideoAd(config.rewardVideoAdUnitId.Earn_coins_AdUnitId,(res)=>{
  90. if(res.isEnded){
  91. lack.close()
  92. ClientEvent.dispatchEvent(config.EVENT_MSG.ON_SHOW_REWARD_VIEW)
  93. }
  94. // 统计-激励视频广告
  95. let collect_data = StatisticsManager.get_collect_data(0, 0, 0, res, config.STATISTICS_ACTION_TYPE.ZHUAN_JIN_BI)
  96. StatisticsManager.request_collect_rewardVideoData(collect_data)
  97. })
  98. });
  99. })
  100. }
  101. public updateView() {
  102. let data = gameManager.get_cur_level_by_categoryid(this.m_data.id);
  103. if (data != null) {
  104. this.lab_level.getComponent(Label).string = `${data.level}/${this.m_data.barrier_number}`
  105. if (data.is_lock_game_play === 1) {
  106. this.mask_layer.active = false;
  107. } else {
  108. this.mask_layer.active = true;
  109. }
  110. }
  111. }
  112. }