UnionManager.ts 3.6 KB

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