HarvestData.ts 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. /**收获界面数据类 */
  2. import { RateConfig } from "../../../game/data/AdData";
  3. import { DataEventId } from "../../../game/data/GameData";
  4. import Guide from "../../../game/module/guide/Guide";
  5. import { Data } from "../../../mk/data/Data";
  6. const { ccclass } = cc._decorator;
  7. @ccclass
  8. export default class HarvestData extends Data {
  9. configID = null;
  10. plantID = null;
  11. config = null;
  12. call = null;
  13. //领取类型 0 普通领取 1 超级加倍
  14. getType = 0;
  15. init_reward = false;
  16. node_fly: cc.Node = null;
  17. isMatchOrder = false;
  18. //是否是点击一键生产按钮
  19. isTouchBtn = false;
  20. isCrops_ = 0;
  21. //isCrops 0 农作物,1动物,2商品
  22. openPanel(configID, plantID, call, node, isCrops = 0, isTouchBtn =false, isTeach = false) {
  23. this.configID = configID;
  24. this.plantID = plantID;
  25. this.call = call;
  26. this.node_fly = node;
  27. this.isTouchBtn = isTouchBtn;
  28. this.isCrops_ = isCrops;
  29. this.config = gData.gameData.getProductMap(this.plantID);
  30. //this.judgeIsMatchOrder();
  31. if(!isTeach && isCrops != 0)
  32. {
  33. let isTeaching = mk.guide.isGuiding();
  34. let rand = Math.random();
  35. let rate = gData.adData.getPerByEcpm(RateConfig.RC_superDouble);
  36. if (!isTeaching && rand <= rate) {
  37. if(gData.gameData.playerProp.orderData && gData.gameData.playerProp.orderData.overTimes >0)
  38. {
  39. let str = gData.gameData.prohibiJBAd[gData.loginData.userChannel].split(",");
  40. if (str[1- gData.loginData.isMatched] == "1") {
  41. mk.ui.openPanel('game/prefab/uiPanel/HarvestPanel');
  42. } else {
  43. this.getNormalReward();
  44. }
  45. }else{
  46. this.getNormalReward();
  47. }
  48. } else {
  49. this.getNormalReward();
  50. }
  51. }else{
  52. this.getNormalReward();
  53. }
  54. }
  55. setAdData(data) {
  56. mk.console.logSingle('HarvestData addata ', this.adData);
  57. super.setAdData(data);
  58. //奖励弹窗
  59. //gData.reward.adData = gData.harvestData.adData;
  60. gData.reward.data = gData.harvestData.adData.videoRedMoney.videoRewardList;
  61. gData.reward.callback = gData.harvestData.call;
  62. let world_Pos = this.node_fly.parent.convertToWorldSpaceAR(this.node_fly.getPosition());
  63. gData.reward.getReward(world_Pos);
  64. //mk.ui.openPanel('module/reward/reward');
  65. gData.harvestData.call = null;
  66. if(this.isCrops_ == 1){
  67. mk.data.sendDataEvent(DataEventId.button_click, "动物超级加倍收获");
  68. }else if(this.isCrops_ == 2){
  69. mk.data.sendDataEvent(DataEventId.button_click, "商品超级加倍收获");
  70. }
  71. }
  72. async getNormalReward() {
  73. await mk.time.WaitForSeconds(0.2);
  74. let data = { id: this.config.id };
  75. let response = await mk.http.sendData('redMoney/addRedMoneyByFarm', data);
  76. if (response && response.errcode != 0) {
  77. return;
  78. }
  79. //奖励弹窗
  80. if (response.data.redMoneyAddition <= 0) {
  81. console.log('返回奖励为0')
  82. }
  83. else {
  84. if(this.isTouchBtn)
  85. {
  86. let world_Pos = this.node_fly.parent.convertToWorldSpaceAR(this.node_fly.getPosition());
  87. let pos = mk.fly.node.convertToNodeSpaceAR(world_Pos);
  88. let prefab = await mk.loader.load("module/guide/hand", cc.Prefab);
  89. let hand = cc.instantiate(prefab);
  90. hand.scale = 0.8;
  91. let ani = hand.getComponent(cc.Animation);
  92. let state = ani.getAnimationState("guideA");
  93. state.speed = 2;
  94. hand.parent = mk.fly.node;
  95. hand.setPosition(pos);
  96. cc.tween(hand).delay(0.4).call(()=>{
  97. this.getType = 0;
  98. let rewardData = [{ rewardType: 1, rewardNum: response.data.redMoneyAddition }];
  99. gData.reward.data = rewardData;
  100. gData.reward.callback = this.call;
  101. //let world_Pos = this.node_fly.parent.convertToWorldSpaceAR(this.node_fly.getPosition());
  102. gData.reward.getReward(world_Pos);
  103. }).removeSelf().start();
  104. }else{
  105. this.getType = 0;
  106. let rewardData = [{ rewardType: 1, rewardNum: response.data.redMoneyAddition }];
  107. gData.reward.data = rewardData;
  108. gData.reward.callback = this.call;
  109. let world_Pos = this.node_fly.parent.convertToWorldSpaceAR(this.node_fly.getPosition());
  110. gData.reward.getReward(world_Pos);
  111. let str = "+"+ response.data.redMoneyAddition/100 + "";
  112. let pos = mk.fly.node.convertToNodeSpaceAR(world_Pos);
  113. let prefab = await mk.loader.load("game/prefab/flyHb", cc.Prefab);
  114. let hand = cc.instantiate(prefab);
  115. hand.zIndex = 1000;
  116. hand.parent = mk.fly.node;
  117. hand.setPosition(pos);
  118. let lab_value = hand.getComponentInChildren(cc.Label);
  119. lab_value.string = str;
  120. cc.tween(hand).by(0.8, { y: 100 }).to(0.4, { opacity: 0 }).removeSelf().start();
  121. //mk.ui.openPanel('module/reward/reward');
  122. }
  123. }
  124. let isTeaching = mk.guide.isGuiding();
  125. if(!isTeaching)
  126. {
  127. let pop = gData.adData.checkShowFullInter(4);
  128. if(pop){
  129. gData.moreGame.openType = 0;
  130. mk.data.sendDataEvent(DataEventId.htRedBag_scene, "点击可收获");
  131. }
  132. }
  133. if(this.isCrops_ == 0){
  134. mk.data.sendDataEvent(DataEventId.button_click, "农作物普通收获");
  135. }else if(this.isCrops_ == 1){
  136. mk.data.sendDataEvent(DataEventId.button_click, "动物普通收获");
  137. }else if(this.isCrops_ == 2){
  138. mk.data.sendDataEvent(DataEventId.button_click, "商品普通收获");
  139. }
  140. }
  141. public judgeIsMatchOrder()
  142. {
  143. let data = gData.gameData.playerProp.orderData;
  144. if (data && data.orderTaskList) {
  145. let productJson = gData.gameData.configs.Product;
  146. let orderData = data.orderTaskList;
  147. let len = orderData.length;
  148. for (let i = 0; i != len; ++i) {
  149. let dataE = orderData[i];
  150. if (dataE.Id <= productJson.length) {
  151. let productData = productJson[dataE.Id - 1];
  152. if (productData.picture == this.plantID) {
  153. this.isMatchOrder = true;
  154. return;
  155. }
  156. }
  157. }
  158. }
  159. this.isMatchOrder = false;
  160. }
  161. }