✨ feat(gvg): 添加推送
This commit is contained in:
@@ -4,11 +4,11 @@ import { GVGAreaInMap, GVGTeamInList, GVGTeamInListOnPoint, GVGTeamSpineInMap, L
|
||||
import { GVGTeamModel, GVGTeamType, GVGTeamUpdate } from '../../../db/GVGTeam';
|
||||
import { GVGUserDataModel } from '../../../db/GVGUserData';
|
||||
import { GVGCityModel } from '../../../db/GVGCity';
|
||||
import { Application, BackendSession, ChannelService, HandlerService } from "pinus";
|
||||
import { Application, BackendSession, ChannelService, HandlerService, pinus } from "pinus";
|
||||
import { resResult, genCode } from "../../../pubUtils/util";
|
||||
import { GVGLeagueModel } from '../../../db/GVGLeague';
|
||||
import { checkGVGPeriod, getGroupIdOfServer, getGVGConfig, getGVGPeriodData, getGVGServerType } from '../../../services/gvg/gvgService';
|
||||
import { addBattleRankScore, calBattleScoreByCe, checkAreaIsInCity, checkGVGBattleStart, checkMoveStatus, getBattleRanks, getBirthAreaOfCity, getGVGWarId, getOppHeroes, initRobots, teamBreak } from '../../../services/gvg/gvgBattleService';
|
||||
import { addBattleRankScore, calBattleScoreByCe, checkAreaIsInCity, checkGVGBattleStart, checkMoveStatus, getBattleRanks, getBirthAreaOfCity, getGVGWarId, getOppHeroes, initRobots, pushTeamMoveMessage, teamBreak } from '../../../services/gvg/gvgBattleService';
|
||||
import { getGVGBattleData } from '../../../services/gvg/gvgBattleMemory';
|
||||
import { nowSeconds } from '../../../pubUtils/timeUtil';
|
||||
import { GVGBattleRecModel } from '../../../db/GVGBattleRec';
|
||||
@@ -19,11 +19,12 @@ import { checkBattleHeroesByHid } from '../../../services/normalBattleService';
|
||||
import { pick } from 'underscore';
|
||||
import { SaveTeamParam, SaveTeamUpdateParam } from '../../../domain/gvgField/gvgDb';
|
||||
import { GVG_PERIOD, PUSH_ROUTE, STATUS } from '../../../consts';
|
||||
import { sendMessageToUserWithSuc } from '../../../services/pushService';
|
||||
import { sendMessageToGVGAreaByTeamWithSuc, sendMessageToUserWithSuc } from '../../../services/pushService';
|
||||
import { GVGHeroInfo } from '../../../domain/dbGeneral';
|
||||
import { ArtifactModel } from '../../../db/Artifact';
|
||||
import { getHeroesAttributes } from '../../../services/playerCeService';
|
||||
import { gvgBattleEndSchedule, gvgBattleStartSchedule } from '../../../services/timeTaskService';
|
||||
import { addRoleToAreaChannel, addRoleToAreaTeamChannel, leaveGVGAreaChannel, leaveGVGAreaTeamChannel } from '../../../services/chatChannelService';
|
||||
|
||||
export default function (app: Application) {
|
||||
new HandlerService(app, {});
|
||||
@@ -218,6 +219,7 @@ export class GVGBattleHandler {
|
||||
async leaveCity(msg: { cityId: number }, session: BackendSession) {
|
||||
|
||||
const roleId = session.get('roleId');
|
||||
const sid = session.get('sid');
|
||||
const guildCode = session.get('guildCode');
|
||||
const serverId = session.get('serverId');
|
||||
const { cityId } = msg;
|
||||
@@ -249,11 +251,16 @@ export class GVGBattleHandler {
|
||||
let teamObj = getGVGBattleData(groupId, serverType);
|
||||
teamObj.leaveCity(roleId);
|
||||
|
||||
await leaveGVGAreaChannel(roleId, sid);
|
||||
await leaveGVGAreaTeamChannel(roleId, sid);
|
||||
|
||||
return resResult(STATUS.SUCCESS);
|
||||
}
|
||||
|
||||
// 获取区域上的队伍
|
||||
async getAreaTeams(msg: { cityId: number, areaIds: number[] }, session: BackendSession) {
|
||||
const roleId = session.get('roleId');
|
||||
const sid = session.get('sid');
|
||||
const serverId = session.get('serverId');
|
||||
const { cityId, areaIds } = msg;
|
||||
|
||||
@@ -271,6 +278,9 @@ export class GVGBattleHandler {
|
||||
let spines = teams.map(team => new GVGTeamSpineInMap(team, serverNames));
|
||||
result.push({ areaId, spines })
|
||||
}
|
||||
// 加入频道
|
||||
await leaveGVGAreaChannel(roleId, sid);
|
||||
await addRoleToAreaChannel(roleId, groupId, serverType, areaIds, sid);
|
||||
|
||||
return resResult(STATUS.SUCCESS, { cityId, areas: result });
|
||||
}
|
||||
@@ -278,6 +288,7 @@ export class GVGBattleHandler {
|
||||
// 点击自己的编队获取区域列表
|
||||
async getAreaOfMyTeam(msg: { cityId: number, teamCode: string }, session: BackendSession) {
|
||||
const roleId = session.get('roleId');
|
||||
const sid = session.get('sid');
|
||||
const serverId = session.get('serverId');
|
||||
const { cityId, teamCode } = msg;
|
||||
|
||||
@@ -302,6 +313,10 @@ export class GVGBattleHandler {
|
||||
players.push(obj);
|
||||
}
|
||||
}
|
||||
|
||||
await leaveGVGAreaTeamChannel(roleId, sid);
|
||||
await addRoleToAreaTeamChannel(roleId, groupId, serverType, myTeam.areaId, sid);
|
||||
|
||||
return resResult(STATUS.SUCCESS, {
|
||||
cityId, areaId: myTeam.areaId, points, players
|
||||
});
|
||||
@@ -327,6 +342,7 @@ export class GVGBattleHandler {
|
||||
let teamObj = getGVGBattleData(groupId, serverType);
|
||||
teamObj.move(teamCode, areaId, team.fromAreaId, team.startMoveTime, team.stopMoveTime);
|
||||
|
||||
await pushTeamMoveMessage(team);
|
||||
return resResult(STATUS.SUCCESS, { areaId, cityId, stopMoveTime: team.stopMoveTime });
|
||||
}
|
||||
|
||||
@@ -466,10 +482,8 @@ export class GVGBattleHandler {
|
||||
teamObj.battleEnd([attackTeam, defenseTeam]);
|
||||
// 更新rec
|
||||
await GVGBattleRecModel.battleEnd(battleCode, isSuccess);
|
||||
// TODO 完善推送
|
||||
if(!defenseTeam.isRobot) {
|
||||
sendMessageToUserWithSuc(defenseTeam.roleId, PUSH_ROUTE.GVG_TEAM_ATTACKED, { cityId, areaId: defenseTeam.areaId, teams: [defenseTeam] });
|
||||
}
|
||||
|
||||
|
||||
return resResult(STATUS.SUCCESS, { curTeam: new MyTeamInfo(attackTeam) });
|
||||
}
|
||||
|
||||
@@ -510,12 +524,12 @@ export class GVGBattleHandler {
|
||||
}
|
||||
|
||||
async debugStartSchedule() {
|
||||
await gvgBattleStartSchedule();
|
||||
await pinus.app.rpc.systimer.systimerRemote.gvgBattleStartSchedule.broadcast();
|
||||
return resResult(STATUS.SUCCESS);
|
||||
}
|
||||
|
||||
async debugEndSchedule() {
|
||||
await gvgBattleEndSchedule();
|
||||
await pinus.app.rpc.systimer.systimerRemote.gvgBattleEndSchedule.broadcast();
|
||||
return resResult(STATUS.SUCCESS);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user