FarmMap.ts 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. import TableView from "../../component/TableView";
  2. import { BannerAdType, ProductType } from "../../data/GameData";
  3. import ItemName from "./ItemName";
  4. const { ccclass, property } = cc._decorator;
  5. @ccclass
  6. export default class FarmMap extends cc.Component {
  7. @property({ displayName: '种类', type: ItemName })
  8. private itemName: ItemName[] = [];
  9. @property({ displayName: '滚动视图', type: cc.ScrollView })
  10. private scroll_view: cc.ScrollView = null;
  11. @property(TableView)
  12. private tableview: TableView = null;
  13. private curChooseId: number = 1;
  14. onLoad() {
  15. }
  16. onEnable() {
  17. mk.ad.showBanner(BannerAdType.banner_click_4);
  18. }
  19. onDisable() {
  20. mk.ad.destoryBanner();
  21. }
  22. start() {
  23. gData.farmMapData.setChooseType(ProductType.nzw);
  24. let list_data = gData.gameData.getProductArrByType(ProductType.nzw);
  25. //let list_data = [{}, {}, {}, {}, {}, {}];
  26. this.scroll_view.node.emit('srollview-init', list_data)
  27. this.scroll_view.vertical = false;
  28. cc.tween(this.node).delay(0.1).call(() => {
  29. let allItem = this.tableview.getFrontPositionItemByCount(5);
  30. for (let i = 0; i != allItem.length; ++i) {
  31. //allItem[i].active = true;
  32. allItem[i].x = 600;
  33. cc.tween(allItem[i]).delay(i * 0.1 + 0.2).to(0.3, { x: 0 }, cc.easeSineOut()).start();
  34. }
  35. }).delay(1).call(() => {
  36. this.scroll_view.vertical = true;
  37. }).start();
  38. //this.itemName[1].toggle.interactable = false;
  39. this.refreshBtnState();
  40. }
  41. private refreshBtnState() {
  42. let index = 0;
  43. for (let key in ProductType) {
  44. let max = gData.gameData.getMaxProduct(ProductType[key]);
  45. if (max) {
  46. this.itemName[index].toggle.interactable = true;
  47. let list_data = gData.gameData.getProductArrByType(ProductType[key]);
  48. let isShowRed = false;
  49. for (let i = 0; i != list_data.length; ++i) {
  50. if (list_data[i].picture <= max) {
  51. let state = gData.gameData.getFarmMapRewardState(this.getIndex(list_data[i]));
  52. if (state == 0) {
  53. isShowRed = true;
  54. break;
  55. }
  56. }
  57. }
  58. this.itemName[index].setShowUIState(false, isShowRed);
  59. } else {
  60. this.itemName[index].toggle.interactable = false;
  61. this.itemName[index].setShowUIState(true, false);
  62. }
  63. ++index;
  64. }
  65. }
  66. update(dt) {
  67. if (gData.farmMapData.isStateChange) {
  68. this.refreshBtnState();
  69. gData.farmMapData.isStateChange = false;
  70. }
  71. if (gData.farmMapData.init_award) {
  72. gData.farmMapData.init_award = false;
  73. gData.reward.data = gData.farmMapData.adData;
  74. mk.ui.openPanel('module/reward/reward');
  75. }
  76. }
  77. getIndex(data) {
  78. let index: any = {};
  79. index.i = 0;
  80. index.j = 0;
  81. switch (data.tab) {
  82. case '农作物':
  83. index.i = 0;
  84. index.j = data.picture - 10001;
  85. break;
  86. case '动物':
  87. index.i = 1;
  88. index.j = data.picture - 20001;
  89. break;
  90. case '爆米花厂':
  91. index.i = 2;
  92. index.j = data.picture - 20004;
  93. break;
  94. case '糕点铺':
  95. index.i = 3;
  96. index.j = data.picture - 20013;
  97. break;
  98. case '制糖厂':
  99. index.i = 4;
  100. index.j = data.picture - 20010;
  101. break;
  102. case '炼乳厂':
  103. index.i = 5;
  104. index.j = data.picture - 20007;
  105. break;
  106. case '功夫面馆':
  107. index.i = 6;
  108. index.j = data.picture - 20025;
  109. break;
  110. case '快餐店':
  111. index.i = 7;
  112. index.j = data.picture - 20019;
  113. break;
  114. }
  115. return index;
  116. }
  117. private clickToggleBtn(event, customEvenData) {
  118. mk.audio.playEffect('button');
  119. let id = parseInt(customEvenData);
  120. if (id == this.curChooseId)
  121. return;
  122. this.curChooseId = id;
  123. let list_data: any;
  124. switch (id) {
  125. case 1:
  126. gData.farmMapData.setChooseType(ProductType.nzw);
  127. list_data = gData.gameData.getProductArrByType(ProductType.nzw);
  128. break;
  129. case 2:
  130. gData.farmMapData.setChooseType(ProductType.dw);
  131. list_data = gData.gameData.getProductArrByType(ProductType.dw);
  132. break;
  133. case 3:
  134. gData.farmMapData.setChooseType(ProductType.bmhc);
  135. list_data = gData.gameData.getProductArrByType(ProductType.bmhc);
  136. break;
  137. case 4:
  138. gData.farmMapData.setChooseType(ProductType.gdp);
  139. list_data = gData.gameData.getProductArrByType(ProductType.gdp);
  140. break;
  141. case 5:
  142. gData.farmMapData.setChooseType(ProductType.ztc);
  143. list_data = gData.gameData.getProductArrByType(ProductType.ztc);
  144. break;
  145. case 6:
  146. gData.farmMapData.setChooseType(ProductType.lrc);
  147. list_data = gData.gameData.getProductArrByType(ProductType.lrc);
  148. break;
  149. case 7:
  150. gData.farmMapData.setChooseType(ProductType.gfmg);
  151. list_data = gData.gameData.getProductArrByType(ProductType.gfmg);
  152. break;
  153. case 8:
  154. gData.farmMapData.setChooseType(ProductType.kcd);
  155. list_data = gData.gameData.getProductArrByType(ProductType.kcd);
  156. break;
  157. default:
  158. break;
  159. }
  160. this.scroll_view.node.emit('srollview-init', list_data)
  161. }
  162. private clickCloseBtn() {
  163. mk.audio.playEffect('closeButton');
  164. }
  165. }