FactorySystem.ts 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. /** 工厂数据类 */
  2. import { FactroyState, GameProp } from "../../game/data/GameData";
  3. import { FactoryIcon } from "./FactoryIcon";
  4. const { ccclass } = cc._decorator;
  5. @ccclass
  6. export default class FactorySystem {
  7. private _currSelectFactory: FactoryIcon = null;
  8. public factoryIcons: Array<FactoryIcon> = [];
  9. public set currSelectFactory(factory: FactoryIcon) {
  10. this._currSelectFactory = factory;
  11. }
  12. public get currSelectFactory(): FactoryIcon {
  13. return this._currSelectFactory;
  14. }
  15. public async make(id: number){
  16. if(this._currSelectFactory)
  17. {
  18. return await this._currSelectFactory.make(id);
  19. }else{
  20. return false;
  21. }
  22. }
  23. public addFactory(factory) {
  24. this.factoryIcons.push(factory);
  25. }
  26. public nextFactory() {
  27. let len = this.factoryIcons.length;
  28. for (var i = 0; i < len; i++) {
  29. if (this.factoryIcons[i].data.state == FactroyState.Empty) {
  30. gData.gameData.nextCanProduct = gData.gameData.getRandomFactoryConfig(this.factoryIcons[i].configID);
  31. gData.gameData.nextMake = this.factoryIcons[i];
  32. return this.factoryIcons[i];
  33. }
  34. }
  35. }
  36. public async btnMake() {
  37. return await gData.gameData.nextMake.make(gData.gameData.nextCanProduct.picture);
  38. }
  39. setHarvest() {
  40. let len = this.factoryIcons.length;
  41. let sendToServer = false;
  42. for (var i = 0; i < len; i++) {
  43. if (this.factoryIcons[i].data.state == FactroyState.Producting) {
  44. this.factoryIcons[i].countDown.riped(false);
  45. sendToServer = true;
  46. }
  47. }
  48. if (sendToServer) {
  49. gData.gameData.freshSendToServer(3);
  50. }
  51. }
  52. canSpeedUp() {
  53. let can = false;
  54. let len = this.factoryIcons.length;
  55. for (var i = 0; i < len; i++) {
  56. if (this.factoryIcons[i].data.state == FactroyState.Producting) {
  57. can = true;
  58. break;
  59. }
  60. }
  61. return can;
  62. }
  63. canHarvest() {
  64. let can = false;
  65. let len = this.factoryIcons.length;
  66. for (var i = 0; i < len; i++) {
  67. if (this.factoryIcons[i].data.state == FactroyState.Ripe) {
  68. this.factoryIcons[i].canHarvest();
  69. can = true;
  70. break;
  71. }
  72. }
  73. return can;
  74. }
  75. canClearSick() {
  76. let can = false;
  77. let len = this.factoryIcons.length;
  78. for (var i = 0; i < len; i++) {
  79. if (this.factoryIcons[i].data.state == FactroyState.Sick) {
  80. this.factoryIcons[i].canClearSick();
  81. can = true;
  82. break;
  83. }
  84. }
  85. return can;
  86. }
  87. }