GameData.ts 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. import { RankData, RankItemData } from "../UI/Rank/RankData";
  2. import { ConfigData } from "./ConfigData";
  3. import { Data } from "./Data";
  4. export class GameData extends Data {
  5. public needReloadData = false;
  6. private _productingListMap: Map<number, Array<{ productID: number, ripeDate: number }>> = new Map();
  7. /**建筑生产队列列表 */
  8. public getProductingList(id: number): Array<{ productID: number, ripeDate: number }> {
  9. if (!this._productingListMap.has(id)) {
  10. this._productingListMap.set(id, []);
  11. }
  12. return this._productingListMap.get(id);
  13. }
  14. private _unlockMap: Map<number, number> = new Map();
  15. /**建筑解锁流水线数量列表 */
  16. public getUnlock(id: number): number {
  17. if (!this._unlockMap.has(id)) {
  18. if (id <= 30003) {
  19. this._unlockMap.set(id, 5);
  20. } else {
  21. this._unlockMap.set(id, 1);
  22. }
  23. }
  24. return this._unlockMap.get(id);
  25. }
  26. public setUnlock(id: number, count: number): void {
  27. this._unlockMap.set(id, count);
  28. }
  29. /**已激活的建筑列表 */
  30. private buildDataMap: Map<number, number> = new Map();
  31. public hasBuildData(id: number): boolean {
  32. return this.buildDataMap.has(id);
  33. }
  34. public getBuildData(id: number): number {
  35. return this.buildDataMap.get(id);
  36. }
  37. public setBuildData(id: number, userBuildID: number): void {
  38. this.buildDataMap.set(id, userBuildID);
  39. }
  40. /**设置建筑数据(生产队列,流水线数量,激活情况等) */
  41. public async setGameData(data: any) {
  42. this._productingListMap = new Map();
  43. this._unlockMap = new Map();
  44. this.buildDataMap = new Map();
  45. let product = ConfigData.configMap.get("product");
  46. for (let i = 0; i < data.length; i++) {
  47. const build = data[i];
  48. if (!this.buildDataMap.has(build.buildID)) {
  49. this.buildDataMap.set(build.buildID, build.userBuildID);
  50. this.setUnlock(build.buildID, build.addValue + 1);
  51. }
  52. if (build.productID != 0) {
  53. let result = product[build.productID];
  54. this.getProductingList(build.buildID).push({ productID: build.productID, ripeDate: build.plantTime * 1000 + result["time"] * 1000 });
  55. }
  56. }
  57. }
  58. /**是否有任务可领取 */
  59. public taskReceive = false;
  60. /**是否有3日活动任务可领取 */
  61. public threeDayTaskReceive = 0;
  62. /**3日活动还需要邀请人数 */
  63. public needChildCount: number = 0;
  64. /**3日活动激活后结束时间 */
  65. public threedayTaskTime: number = 0
  66. /**种植奖励数据 */
  67. public productPrize = null;
  68. /**排行榜数据*/
  69. public rankData: RankData;
  70. /**排行榜积分数据*/
  71. public rankScore: number = 0;
  72. /**是否刷新排行榜活动倒计时*/
  73. public isRefreshRankTime: boolean;
  74. /**是否可以领取排行榜奖励*/
  75. public isCanGetRankReward: boolean;
  76. }