FarmMap.ts 6.4 KB

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