ItemsM.ts 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import { RewardLayer } from "../../prefab/layer/RewardLayer";
  2. import { GoodsId } from "../api/GoodsId";
  3. import UserM, { GoodInfo, UserInfo } from "../api/UserM";
  4. import { EventTarget } from "cc";
  5. export default class ItemsM {
  6. private static _ins: ItemsM;
  7. public static get ins(): ItemsM {
  8. return (ItemsM._ins ??= new ItemsM());
  9. }
  10. constructor() {
  11. this.e = new EventTarget();
  12. }
  13. private e: EventTarget;
  14. public on(event: number, callback: (...args: any[]) => void, target: any) {
  15. this.e.on(event, callback, target);
  16. }
  17. public off(event: number, callback: (...args: any[]) => void, target: any) {
  18. this.e.off(event, callback, target);
  19. }
  20. emit(event: number, ...args: any[]) {
  21. this.e.emit(event, ...args);
  22. }
  23. public itemChange(changes: GoodInfo[], finals: GoodInfo[]) {
  24. let addItems = changes.filter((item) => item.count > 0||item.id==GoodsId.AIR);
  25. RewardLayer.show(addItems, () => {
  26. // this.emitSubItems(addItems);
  27. UserM.ins.refreshGoods(finals);
  28. });
  29. // let subItems = changes.filter((item) => item.count < 0);
  30. // this.emitSubItems(subItems);
  31. }
  32. // emitSubItems(subItems: GoodInfo[]) {
  33. // for (let i = 0; i < subItems.length; i++) {
  34. // let item = subItems[i];
  35. // this.emit(item.id, item.count);
  36. // }
  37. // }
  38. }