🐞 fix(gvg): 联军信息变动同步
This commit is contained in:
@@ -16,6 +16,7 @@ class GVGBattleData {
|
||||
private teams: Map<string, GVGTeamMem> = new Map(); // 队伍, teamCode => team
|
||||
private rolePoints: Map<string, Map<number, string>> = new Map(); // roleId => pointId[],用于更新玩家的积分
|
||||
private roleToTeam: Map<string, string[]> = new Map(); // roleId => teamCode
|
||||
private leagueToTeam: Map<string, Set<string>> = new Map(); // leagueCode => teamCode
|
||||
public areaToTeams: Map<number, Set<string>> = new Map(); // areaId => teamCode set,用于定时下发地图玩家数据
|
||||
|
||||
constructor(groupKey: string) {
|
||||
@@ -54,6 +55,8 @@ class GVGBattleData {
|
||||
for(let [_areaId, teamSet] of this.areaToTeams) {
|
||||
if(teamSet.has(teamCode)) teamSet.delete(teamCode);
|
||||
}
|
||||
if(team.leagueCode && this.leagueToTeam.has(team.leagueCode))
|
||||
this.leagueToTeam.get(team.leagueCode).delete(teamCode);
|
||||
}
|
||||
this.rolePoints.delete(roleId);
|
||||
}
|
||||
@@ -73,6 +76,14 @@ class GVGBattleData {
|
||||
let teamCodesOfRole = this.roleToTeam.get(team.roleId)||[];
|
||||
if(teamCodesOfRole.indexOf(team.teamCode) == -1) teamCodesOfRole.push(team.teamCode);
|
||||
this.roleToTeam.set(team.roleId, teamCodesOfRole);
|
||||
if(team.leagueCode) {
|
||||
if(!this.leagueToTeam.has(team.leagueCode)) {
|
||||
this.leagueToTeam.set(team.leagueCode, new Set());
|
||||
}
|
||||
if(!this.leagueToTeam.get(team.leagueCode).has(team.teamCode))
|
||||
this.leagueToTeam.get(team.leagueCode).add(team.teamCode);
|
||||
}
|
||||
|
||||
this.setAreaMap(team.teamCode, fromAreaId, team.areaId);
|
||||
}
|
||||
}
|
||||
@@ -174,6 +185,23 @@ class GVGBattleData {
|
||||
public findAreas() {
|
||||
return this.areaToTeams.keys();
|
||||
}
|
||||
|
||||
public updateLeagueInfo(leagueCode: string, leagueName: string) {
|
||||
let teamCodes = this.leagueToTeam.get(leagueCode)||new Set();
|
||||
for(let teamCode of teamCodes) {
|
||||
let team = this.teams.get(teamCode);
|
||||
team.leagueName = leagueName;
|
||||
}
|
||||
}
|
||||
|
||||
public updateRoleInfo(roleId: string, info: { roleName?: string, lv?: number }) {
|
||||
let teamCodes = this.leagueToTeam.get(roleId)||new Set();
|
||||
for(let teamCode of teamCodes) {
|
||||
let team = this.teams.get(teamCode);
|
||||
if(info.roleName) team.roleName = info.roleName;
|
||||
if(info.lv) team.lv = info.lv;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export function getGVGBattleData(groupKey: string) {
|
||||
|
||||
Reference in New Issue
Block a user