FarmMap.ts 6.1 KB

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