EquipData.ts 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. import { ItemEnum } from "../common/InterfaceAddEnum";
  2. export interface Equip {
  3. id: string;
  4. count: number;
  5. exp: number;
  6. star: number;
  7. wear: boolean;
  8. type: ItemEnum;
  9. fightForce: number
  10. conf: {};
  11. }
  12. class Data {
  13. private _equipData: { [id: string]: Equip } = {};
  14. private _bagData: { [id: string]: Equip } = {};
  15. set equipData(data: { [id: string]: Equip }) {
  16. this._equipData = data;
  17. }
  18. get equipData(): { [id: string]: Equip } {
  19. return this._equipData;
  20. }
  21. set bagData(data: { [id: string]: Equip }) {
  22. this._bagData = data;
  23. }
  24. get bagData(): { [id: string]: Equip } {
  25. return this._bagData;
  26. }
  27. init(): void {
  28. this.reset();
  29. }
  30. reset(): void {
  31. this._equipData = {};
  32. this._bagData = {};
  33. }
  34. purge(): void {
  35. this.reset();
  36. }
  37. getData() {
  38. return this._bagData;
  39. }
  40. addDataByKey(key,data) {
  41. this._bagData[key] = data;
  42. }
  43. removeDataByKey(key) {
  44. if (this._bagData.hasOwnProperty(key)) {
  45. delete this._bagData[key];
  46. }
  47. }
  48. parseDataByServer(data) {
  49. for (const key in data) {
  50. if (Object.prototype.hasOwnProperty.call(data, key)) {
  51. const element = data[key];
  52. if(this._bagData[key]){
  53. if(element > 0){
  54. let equip = EquipManager.getEquipById(key, element, false);
  55. if (equip) {
  56. this._bagData[key] = equip;
  57. }
  58. }else{
  59. delete this._bagData[key];
  60. }
  61. }else{
  62. let equip = EquipManager.getEquipById(key, element, false);
  63. if (equip) {
  64. this._bagData[key] = equip;
  65. }
  66. }
  67. }
  68. }
  69. }
  70. }
  71. export let EquipData = new Data;