🐞 fix(gvg): 守城顺序&投石车数据

This commit is contained in:
luying
2023-02-28 21:12:32 +08:00
parent 074615affd
commit 6afc62d052
5 changed files with 71 additions and 51 deletions
@@ -18,6 +18,7 @@ class GVGBattleData {
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,用于定时下发地图玩家数据
private leagueActiveTech: Map<string, number[]> = new Map(); // 千机阁状态 leagueCode => activeTech
constructor(groupKey: string) {
this.groupKey = groupKey;
@@ -34,11 +35,11 @@ class GVGBattleData {
}
public findCatapultAttackTeam(areaId: number, leagueCode: string) {
let teams: string[] = [];
let teams: GVGTeamMem[] = [];
let teamCodes = this.areaToTeams.get(areaId)||new Set();
for(let teamCode of teamCodes) {
let team = this.teams.get(teamCode);
if(team && team.leagueCode != leagueCode && !team.isRobot) teams.push(teamCode);
if(team && team.leagueCode != leagueCode && !team.isRobot) teams.push(team);
}
return teams;
}
@@ -69,6 +70,9 @@ class GVGBattleData {
this.teams.get(team.teamCode).setCity(team.cityId, team.areaId, team.pointId);
if(team.pointId > 0 && !team.isRobot) {
if(!this.rolePoints.has(team.roleId)) this.rolePoints.set(team.roleId, new Map());
for(let [pointId, teamCode] of this.rolePoints.get(team.roleId)) {
if(teamCode == team.teamCode) this.rolePoints.get(team.roleId).delete(pointId);
}
this.rolePoints.get(team.roleId).set(team.pointId, team.teamCode);
}
let teamCodesOfRole = this.roleToTeam.get(team.roleId)||[];
@@ -200,6 +204,14 @@ class GVGBattleData {
if(info.lv) team.lv = info.lv;
}
}
public getLeagueTech(leagueCode: string) {
return this.leagueActiveTech.get(leagueCode);
}
public setLeagueTech(leagueCode: string, activeTech: number[]) {
this.leagueActiveTech.set(leagueCode, activeTech);
}
}
export function getGVGBattleData(groupKey: string) {