feat(gvg): 激战期内存以及玩家移动、挑战操作

This commit is contained in:
luying
2023-02-10 21:23:52 +08:00
parent 5d5137f203
commit 19b70baf8c
16 changed files with 536 additions and 125 deletions

View File

@@ -1,7 +1,14 @@
import { GVGTeamType } from "../../db/GVGTeam";
import { GVGTeamType, GVGTeamUpdate } from "../../db/GVGTeam";
// 积分点分类统计1-3级积分点代表从小到大
export interface LeagueCityPoint {
export class LeagueCityPoint {
// 玩家id
roleId: string;
// 军团id
guildCode: string;
// 联军id
leagueCode: string;
// 计分点数
pointCnt1: number;
pointCnt2: number;
@@ -13,11 +20,43 @@ export interface LeagueCityPoint {
}
// 队伍状态
export interface GVGTeamMem extends GVGTeamType {
// 开始移动时间戳
export class GVGTeamMem implements GVGTeamUpdate {
roleId: string; // 玩家id
id: number;
teamCode: string;
teamId: number;
leagueCode: string;
guildCode: string;
areaId: number;
cityId: number;
pointId: number;
head: number;
spine: number;
frame: number;
durability: number;
restartTime: number;
attackTime: number;
defenseTime: number;
startMoveTime: number;
// 停止移动时间戳
stopMoveTime: number;
// 是否正在移动
isMoving: boolean;
point: number;
constructor(team: GVGTeamType) {
for(let key in team) {
this[key] = team[key];
}
}
public setCity(cityId: number, areaId = 0) {
this.cityId = cityId;
this.areaId = areaId;
this.pointId = 0;
}
public moveToArea(areaId: number, startMoveTime: number, stopMoveTime: number) {
this.areaId = areaId;
this.startMoveTime = startMoveTime;
this.stopMoveTime = stopMoveTime;
}
}

View File

@@ -363,7 +363,7 @@ export class LeagueFarmMember {
setByFields(fields: GVGLeagueFarmType[]) {
this.count = fields.length;
this.harvestTime = Math.min(...fields.map(cur => cur.harvestTime))||0;
this.canHelp = !!fields.find(cur => cur.harvestTime < nowSeconds());
this.canHelp = !!fields.find(cur => cur.harvestTime > 0 && cur.harvestTime < nowSeconds());
this.output = fields.reduce((pre, cur) => (pre + cur.output||0), 0);
}

View File

@@ -1,4 +1,5 @@
import { prop } from 'typegoose';
import { ArtifactModelType } from '../../db/Artifact';
import { Connect, EPlace, HeroSkin, HeroType, HeroUpdate, Talent } from '../../db/Hero';
import { JewelSe, JewelType, RandSe } from '../../db/Jewel';
@@ -155,8 +156,11 @@ export class ArtifactParam {
}
// 阵容
export interface LineupHero {
export class LineupHero {
@prop({ required: true })
actorId: number; // 武将
@prop({ required: true })
dataId: number; // 出兵表上的位置
@prop({ required: true })
order: number; // 行动
}