UnionManager.ts 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. import { Framework } from "../../framework/Framework";
  2. import { AwardData, BaseItem, ItemEnum } from "../common/InterfaceAddEnum";
  3. import { GameEvent } from "../data/GameEvent";
  4. import { UserData } from "../data/UserData";
  5. import { GoodsManager } from "./GoodsManager";
  6. //所有manager的连接器
  7. export class UnionManager {
  8. // 解析奖励数据
  9. static parseServerAwards(data:{[key:string]:AwardData}) {
  10. let awards:Array<BaseItem> = [];
  11. console.log("parseServerAwards",Object.keys(data));
  12. for (const key in Object.keys(data)) {
  13. const element = data[key];
  14. console.log(element[0]);
  15. if (element[0] == ItemEnum.material) {
  16. let item = GoodsManager.addGoodsById(element[1].toString() , element[2]);
  17. awards.push(item);
  18. } else if (element[0] == ItemEnum.equip) {
  19. }else if (element[0] == ItemEnum.user) {
  20. let item: BaseItem = {
  21. conf: {},
  22. count: element[2],
  23. id: element[1].toString(),
  24. type: ItemEnum.user
  25. };
  26. let statu = UserData.status[element[1]]
  27. if (statu) {
  28. statu += element[2];
  29. UserData.status[element[1]] = statu;
  30. awards.push(item);
  31. }
  32. }
  33. }
  34. return awards;
  35. }
  36. // 触发物品刷新事件
  37. static fireEventWithItem(itemList:[BaseItem]){
  38. let updateEvent = [];
  39. for(let i in itemList){
  40. let item = itemList[i];
  41. if(item.type == ItemEnum.user){
  42. if(!updateEvent[GameEvent.StatusUpdate]){
  43. Framework.event.fireEvent(GameEvent.StatusUpdate);
  44. }
  45. updateEvent[GameEvent.StatusUpdate] = true
  46. }else if(item.type == ItemEnum.equip){
  47. if(!updateEvent[GameEvent.EquipChange]){
  48. Framework.event.fireEvent(GameEvent.EquipChange);
  49. }
  50. updateEvent[GameEvent.EquipChange] = true
  51. }else if(item.type == ItemEnum.material){
  52. if(!updateEvent[GameEvent.MaterialChange]){
  53. Framework.event.fireEvent(GameEvent.MaterialChange);
  54. }
  55. updateEvent[GameEvent.MaterialChange] = true
  56. }
  57. }
  58. }
  59. static showItemTips(awards:Array<BaseItem>) {
  60. let tipsStr:string = "";
  61. for (const key in awards) {
  62. const element = awards[key];
  63. tipsStr += element.count + "x" + element.id + " ";
  64. }
  65. Framework.tips.setTips(tipsStr);
  66. }
  67. }