🐞 fix(gvg): 添加投石车

This commit is contained in:
luying
2023-02-27 21:54:54 +08:00
parent 82c4149063
commit 78777a1437
4 changed files with 378 additions and 22 deletions
+12 -16
View File
@@ -229,22 +229,18 @@ export default class GVGTeam extends BaseModel {
}
// 生成投石车
public static async initCatapult(configId: number, groupKey: string, cityId: number, leagueCode: string, leagueName: string, areaIds: number[], atk: number, durability: number, lv: number) {
await GVGTeamModel.bulkWrite(areaIds.map(areaId => {
return {
updateOne: {
filter: { groupKey, cityId, areaId },
update: { $setOnInsert: {
teamCode: genCode(8), maxDurability: durability, captapultAtk: atk, leagueCode, leagueName,
roleName: GVG.GVG_CATAPULT_NAME, head: GVG.GVG_CATAPULT_HEAD, spine: GVG.GVG_CATAPULT_SPINE, frame: EXTERIOR.EXTERIOR_FACECASE, lineupCe: GVG.GVG_CATAPULT_CE, lv,
isRobot: true, isCatapult: true, fromAreaId: areaId,
isBroken: false, startMoveTime: 0, stopMoveTime: 0, guildCode: '', pointId: 0, roleId: GVG_CATAPULT
}, $set: { configId, durability } },
upsert: true
}
}
}));
return await this.findCatapultTeams(groupKey, cityId);
public static async initCatapult(configId: number, groupKey: string, cityId: number, dicPoints: DicGVGAreaPoint[], leagueCode: string, leagueName: string, atk: number, durability: number, lv: number) {
const teams: GVGTeamType[] = [];
for(let { pointId, areaId, name, head, spine, ce } of dicPoints) {
let team: GVGTeamType = await GVGTeamModel.findOneAndUpdate({ groupKey, cityId, areaId, pointId }, {
$setOnInsert: {
teamCode: genCode(8), maxDurability: durability, roleName: name, head, spine, frame: EXTERIOR.EXTERIOR_FACECASE, lineupCe: ce, lv, leagueCode, leagueName, captapultAtk: atk,
isRobot: true, isCatapult: true, isBroken: false, startMoveTime: 0, stopMoveTime: 0, guildCode: '', fromAreaId: areaId,
}, $set: { configId, durability }
}, { new: true, upsert: true }).lean();
teams.push(team);
}
return teams
}
// 攻击方攻击cd
@@ -7,6 +7,8 @@ export interface DicGVGAreaPoint {
readonly pointId: number;
// 区域id
readonly areaId: number;
// 类型 1-守卫者 2-投石车
readonly type: number;
// 积分
readonly score: number;
// 位置
File diff suppressed because it is too large Load Diff