🐞 fix(gvg): 投石车定时任务
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
// 存在激战期的内存数据
|
||||
|
||||
import { pinus } from "pinus";
|
||||
import { GVG_PERIOD } from "../../consts";
|
||||
import { GVG_CATAPULT, GVG_PERIOD } from "../../consts";
|
||||
import { GVGTeamModel, GVGTeamType } from "../../db/GVGTeam";
|
||||
import { GVGTeamMem } from "../../domain/battleField/gvgBattle";
|
||||
import { dispatch } from "../../pubUtils/dispatcher";
|
||||
@@ -34,6 +34,18 @@ class GVGBattleData {
|
||||
return teams.slice(0, 20);
|
||||
}
|
||||
|
||||
public findCatapultAttackTeam(areaIds: number[], leagueCode: string) {
|
||||
let teams: string[] = [];
|
||||
for(let areaId of areaIds) {
|
||||
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);
|
||||
}
|
||||
}
|
||||
return teams;
|
||||
}
|
||||
|
||||
public leaveCity(roleId: string) {
|
||||
let teamCodes = this.roleToTeam.get(roleId)||[];
|
||||
for(let teamCode of teamCodes) {
|
||||
@@ -117,11 +129,17 @@ class GVGBattleData {
|
||||
this.enterCity(team); continue;
|
||||
}
|
||||
let { areaId: fromAreaId, pointId: fromPointId } = teamMem;
|
||||
teamMem.battleEnd(team);
|
||||
teamMem.updateTeam(team);
|
||||
this.setRolePoints(team.roleId, fromPointId, team.pointId);
|
||||
this.setAreaMap(team.teamCode, fromAreaId, team.areaId);
|
||||
}
|
||||
}
|
||||
|
||||
// 投石车
|
||||
public findCatapult() {
|
||||
let teamCodes = this.roleToTeam.get(GVG_CATAPULT)||[];
|
||||
return teamCodes.map(teamCode => this.teams.get(teamCode));
|
||||
}
|
||||
}
|
||||
|
||||
export function getGVGBattleData(groupId: number, serverType: number) {
|
||||
@@ -132,11 +150,15 @@ export function getGVGBattleData(groupId: number, serverType: number) {
|
||||
return gvgBattleMap.get(key);
|
||||
}
|
||||
|
||||
export function getGVGBattleMap() {
|
||||
return gvgBattleMap;
|
||||
}
|
||||
|
||||
export async function initTeamToMem() {
|
||||
let sid = pinus.app.getServerId();
|
||||
let servers = pinus.app.getServersByType('guild');
|
||||
let { configId, period } = getGVGPeriodData();
|
||||
if(period != GVG_PERIOD.BATTLE) return;
|
||||
// if(period != GVG_PERIOD.BATTLE) return;
|
||||
let teams = await GVGTeamModel.findByConfigId(configId);
|
||||
for(let team of teams) {
|
||||
if(dispatch(team.cityId.toString(), servers)?.id == sid) {
|
||||
|
||||
Reference in New Issue
Block a user