import { Framework } from "../../framework/Framework"; import { AwardData, BaseItem, ItemEnum } from "../common/InterfaceAddEnum"; import { BattleData } from "../data/BattleData"; import { EquipData } from "../data/EquipData"; import { GameEvent } from "../data/GameEvent"; import { GoodsData } from "../data/GoodsData"; import { MailData } from "../data/MailData"; import { RoleData } from "../data/RoleData"; import { UserData } from "../data/UserData"; import { EquipManager } from "./EquipManager"; import { GoodsManager } from "./GoodsManager"; import { RoleManager } from "./RoleManager"; //所有manager的连接器 export class UnionManager { // 解析奖励数据 static parseServerAwards(data:{[key:string]:AwardData}) { let awards:Array = []; for (const key in Object.keys(data)) { const element = data[key]; console.log(element[0]); if (element[0] == ItemEnum.material) { let item = GoodsManager.addGoodsById(element[1].toString() , element[2]); awards.push(item); } else if (element[0] == ItemEnum.equip) { }else if (element[0] == ItemEnum.user) { let item: BaseItem = { conf: {}, count: element[2], id: element[1].toString(), type: ItemEnum.user }; let statu = UserData.status[element[1]] if (statu) { statu += element[2]; UserData.status[element[1]] = statu; awards.push(item); } } } return awards; } // 触发物品刷新事件 static fireEventWithItem(itemList:[BaseItem]){ let updateEvent = []; for(let i in itemList){ let item = itemList[i]; if(item.type == ItemEnum.user){ if(!updateEvent[GameEvent.StatusUpdate]){ Framework.event.fireEvent(GameEvent.StatusUpdate); } updateEvent[GameEvent.StatusUpdate] = true }else if(item.type == ItemEnum.equip){ if(!updateEvent[GameEvent.EquipChange]){ Framework.event.fireEvent(GameEvent.EquipChange); } updateEvent[GameEvent.EquipChange] = true }else if(item.type == ItemEnum.material){ if(!updateEvent[GameEvent.MaterialChange]){ Framework.event.fireEvent(GameEvent.MaterialChange); } updateEvent[GameEvent.MaterialChange] = true } } } static showItemTips(awards:Array) { let tipsStr:string = ""; for (const key in awards) { const element = awards[key]; tipsStr += element.count + "*" + element.id + " "; } Framework.tips.setTips(tipsStr); } // 处理登录数据 static dealLoginData(data) { UserData.init(data || {}); if (data.get_mails) { MailData.setData(data.get_mails) } if (data.equip && data.race_equip) { EquipManager.setData(data.equip, data.race_equip) } if (data.fight_role) { RoleData.fightRole = data.fight_role } if (data.fate) { RoleManager.setFateData(data.fate); } if (data.role_bag && data.role_bag.roles) { RoleManager.setData(data.role_bag.roles) } BattleData.setLoginData(data) if (data.inventory) { if (data.inventory.material) { GoodsData.setAllGoods(data.inventory.material) } } } }