123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- 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 { BattleEventManager } from "../ui/tower/base/BattleEventManager";
- import { BattleEventTarget } from "../ui/tower/base/BattleEventUtil";
- import { RoleConf } from "../ui/tower/conf/RoleConf";
- 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<BaseItem> = [];
- 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<BaseItem>) {
- 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)
- }
- }
- }
- // 更新角色属性
- static UpdateRoleAttr(data: []) {
- for (const rId of data) {
- let role = RoleData.getRoleDataByID(rId);
- let newAttr = RoleManager.calcRoleAttr(role);
- role.attr = newAttr;
- BattleEventManager.instance.fireEvent(BattleEventTarget.HeroAttr,role)
- Framework.event.fireEvent(GameEvent.RoleAttrChange, role)
- }
- }
- //根据种族获取所属英雄id
- static getRoleGroupByRace(race) {
- let rGroup = [];
- for (const key in RoleConf.data) {
- if (Object.prototype.hasOwnProperty.call(RoleConf.data, key)) {
- const element = RoleConf.data[key];
- if (element.Race == race) {
- rGroup.push(element.Id);
- }
- }
- }
- return rGroup;
- }
- }
|