FarmMap.ts 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  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.06).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.getMaxProductExtra(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, ProductType[key]);
  59. } else {
  60. this.itemName[index].toggle.interactable = false;
  61. this.itemName[index].setShowUIState(true, false, ProductType[key]);
  62. }
  63. ++index;
  64. }
  65. }
  66. update(dt) {
  67. if (gData.farmMapData.isStateChange) {
  68. this.refreshBtnState();
  69. }
  70. if (gData.farmMapData.init_award) {
  71. gData.farmMapData.init_award = false;
  72. gData.reward.adData = gData.farmMapData.adData;
  73. mk.ui.openPanel('module/reward/reward');
  74. }
  75. }
  76. getIndex(data) {
  77. let index: any = {};
  78. index.i = 0;
  79. index.j = 0;
  80. switch (data.tab) {
  81. case '农作物':
  82. index.i = 0;
  83. index.j = data.picture - 10001;
  84. break;
  85. case '动物':
  86. index.i = 1;
  87. index.j = data.picture - 20001;
  88. break;
  89. case '爆米花厂':
  90. index.i = 2;
  91. index.j = data.picture - 20004;
  92. break;
  93. case '糕点铺':
  94. index.i = 3;
  95. index.j = data.picture - 20013;
  96. break;
  97. case '制糖厂':
  98. index.i = 4;
  99. index.j = data.picture - 20010;
  100. break;
  101. case '炼乳厂':
  102. index.i = 5;
  103. index.j = data.picture - 20007;
  104. break;
  105. case '功夫面馆':
  106. index.i = 6;
  107. index.j = data.picture - 20025;
  108. break;
  109. case '快餐店':
  110. index.i = 7;
  111. index.j = data.picture - 20019;
  112. break;
  113. }
  114. return index;
  115. }
  116. private clickToggleBtn(event, customEvenData) {
  117. mk.audio.playEffect('button');
  118. let id = parseInt(customEvenData);
  119. if (id == this.curChooseId)
  120. return;
  121. this.curChooseId = id;
  122. let list_data: any;
  123. switch (id) {
  124. case 1:
  125. gData.farmMapData.setChooseType(ProductType.nzw);
  126. list_data = gData.gameData.getProductArrByType(ProductType.nzw);
  127. break;
  128. case 2:
  129. gData.farmMapData.setChooseType(ProductType.dw);
  130. list_data = gData.gameData.getProductArrByType(ProductType.dw);
  131. break;
  132. case 3:
  133. gData.farmMapData.setChooseType(ProductType.bmhc);
  134. list_data = gData.gameData.getProductArrByType(ProductType.bmhc);
  135. break;
  136. case 4:
  137. gData.farmMapData.setChooseType(ProductType.gdp);
  138. list_data = gData.gameData.getProductArrByType(ProductType.gdp);
  139. break;
  140. case 5:
  141. gData.farmMapData.setChooseType(ProductType.ztc);
  142. list_data = gData.gameData.getProductArrByType(ProductType.ztc);
  143. break;
  144. case 6:
  145. gData.farmMapData.setChooseType(ProductType.lrc);
  146. list_data = gData.gameData.getProductArrByType(ProductType.lrc);
  147. break;
  148. case 7:
  149. gData.farmMapData.setChooseType(ProductType.gfmg);
  150. list_data = gData.gameData.getProductArrByType(ProductType.gfmg);
  151. break;
  152. case 8:
  153. gData.farmMapData.setChooseType(ProductType.kcd);
  154. list_data = gData.gameData.getProductArrByType(ProductType.kcd);
  155. break;
  156. default:
  157. break;
  158. }
  159. this.scroll_view.node.emit('srollview-init', list_data)
  160. }
  161. private clickCloseBtn() {
  162. mk.audio.playEffect('closeButton');
  163. }
  164. }