UnionManager.ts 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. import { Framework } from "../../framework/Framework";
  2. import { AwardData, BaseItem, ItemEnum } from "../common/InterfaceAddEnum";
  3. import { BattleData } from "../data/BattleData";
  4. import { EquipData } from "../data/EquipData";
  5. import { GameEvent } from "../data/GameEvent";
  6. import { GoodsData } from "../data/GoodsData";
  7. import { MailData } from "../data/MailData";
  8. import { RoleData } from "../data/RoleData";
  9. import { UserData } from "../data/UserData";
  10. import { EquipManager } from "./EquipManager";
  11. import { GoodsManager } from "./GoodsManager";
  12. import { RoleManager } from "./RoleManager";
  13. //所有manager的连接器
  14. export class UnionManager {
  15. // 解析奖励数据
  16. static parseServerAwards(data:{[key:string]:AwardData}) {
  17. let awards:Array<BaseItem> = [];
  18. for (const key in Object.keys(data)) {
  19. const element = data[key];
  20. console.log(element[0]);
  21. if (element[0] == ItemEnum.material) {
  22. let item = GoodsManager.addGoodsById(element[1].toString() , element[2]);
  23. awards.push(item);
  24. } else if (element[0] == ItemEnum.equip) {
  25. }else if (element[0] == ItemEnum.user) {
  26. let item: BaseItem = {
  27. conf: {},
  28. count: element[2],
  29. id: element[1].toString(),
  30. type: ItemEnum.user
  31. };
  32. let statu = UserData.status[element[1]]
  33. if (statu) {
  34. statu += element[2];
  35. UserData.status[element[1]] = statu;
  36. awards.push(item);
  37. }
  38. }
  39. }
  40. return awards;
  41. }
  42. // 触发物品刷新事件
  43. static fireEventWithItem(itemList:[BaseItem]){
  44. let updateEvent = [];
  45. for(let i in itemList){
  46. let item = itemList[i];
  47. if(item.type == ItemEnum.user){
  48. if(!updateEvent[GameEvent.StatusUpdate]){
  49. Framework.event.fireEvent(GameEvent.StatusUpdate);
  50. }
  51. updateEvent[GameEvent.StatusUpdate] = true
  52. }else if(item.type == ItemEnum.equip){
  53. if(!updateEvent[GameEvent.EquipChange]){
  54. Framework.event.fireEvent(GameEvent.EquipChange);
  55. }
  56. updateEvent[GameEvent.EquipChange] = true
  57. }else if(item.type == ItemEnum.material){
  58. if(!updateEvent[GameEvent.MaterialChange]){
  59. Framework.event.fireEvent(GameEvent.MaterialChange);
  60. }
  61. updateEvent[GameEvent.MaterialChange] = true
  62. }
  63. }
  64. }
  65. static showItemTips(awards:Array<BaseItem>) {
  66. let tipsStr:string = "";
  67. for (const key in awards) {
  68. const element = awards[key];
  69. tipsStr += element.count + "*" + element.id + " ";
  70. }
  71. Framework.tips.setTips(tipsStr);
  72. }
  73. // 处理登录数据
  74. static dealLoginData(data) {
  75. UserData.init(data || {});
  76. if (data.get_mails) {
  77. MailData.setData(data.get_mails)
  78. }
  79. if (data.equip && data.race_equip) {
  80. EquipManager.setData(data.equip, data.race_equip)
  81. }
  82. if (data.fight_role) {
  83. RoleData.fightRole = data.fight_role
  84. }
  85. if (data.fate) {
  86. RoleManager.setFateData(data.fate);
  87. }
  88. if (data.role_bag && data.role_bag.roles) {
  89. RoleManager.setData(data.role_bag.roles)
  90. }
  91. BattleData.setLoginData(data)
  92. if (data.inventory) {
  93. if (data.inventory.material) {
  94. GoodsData.setAllGoods(data.inventory.material)
  95. }
  96. }
  97. }
  98. }