✨ feat(gvg): 征战中原动态、任务、贡献
This commit is contained in:
@@ -3,7 +3,9 @@
|
||||
import moment = require("moment");
|
||||
import { GVG_PERIOD, REDIS_KEY, VESTIGE_OPP_STATUS, VESTIGE_STATUS } from "../../consts";
|
||||
import { ArtifactModel } from "../../db/Artifact";
|
||||
import { GVGConfigModel } from "../../db/GVGConfig";
|
||||
import { GVGLeagueModel, GVGLeagueType } from "../../db/GVGLeague";
|
||||
import { GVGUserDataModel } from "../../db/GVGUserData";
|
||||
import { GVGVestigeModel } from "../../db/GVGVestige";
|
||||
import { GVGVestigeLeagueRankModel } from "../../db/GVGVestigeLeagueRank";
|
||||
import { GVGVestigeLockModel } from "../../db/GVGVestigeLock";
|
||||
@@ -25,6 +27,7 @@ import { getHeroesAttributes } from "../playerCeService";
|
||||
import { Rank } from "../rankService";
|
||||
import { findKeys, getAllServerName, redisClient } from "../redisService";
|
||||
import { combinePushItem } from "./gvgItemService";
|
||||
import { addVestigeLeagueRankRec } from "./gvgRecService";
|
||||
import { getGroupIdOfServer, getGVGServerType } from "./gvgService";
|
||||
|
||||
// 备战期的遗迹和激战期的开始结束战斗时间
|
||||
@@ -195,18 +198,19 @@ export async function generateDefenseInfo(roleId: string, vestigeId: number, ran
|
||||
let hids = lineup.map(cur => cur.actorId);
|
||||
let role = await RoleModel.findByRoleId(playerVestigeData.roleId, 'roleId roleName heads head frames frame spines spine title lv');
|
||||
let heroes = await HeroModel.findByHidRange(hids, playerVestigeData.roleId, 'hid skinId lv star colorStar quality ce');
|
||||
let league = await GVGLeagueModel.findByCode(playerVestigeData.leagueCode);
|
||||
|
||||
let info = new OppPlayerInfo();
|
||||
info.initByPlayer(playerVestigeData.rank, role, playerVestigeData.leagueCode, true);
|
||||
info.initByPlayer(playerVestigeData.rank, role, league, true);
|
||||
info.setPlayerHeroes(heroes, lineup);
|
||||
return info;
|
||||
}
|
||||
}
|
||||
|
||||
export async function generateAttackInfo(roleId: string, leagueCode: string, rank: number) {
|
||||
export async function generateAttackInfo(roleId: string, league: GVGLeagueType, rank: number) {
|
||||
let role = await RoleModel.findByRoleId(roleId, 'roleId roleName heads head frames frame spines spine title lv');
|
||||
let info = new OppPlayerInfo();
|
||||
info.initByPlayer(rank, role, leagueCode, false);
|
||||
info.initByPlayer(rank, role, league, false);
|
||||
return info;
|
||||
}
|
||||
|
||||
@@ -225,7 +229,7 @@ export async function getOppDetailData(rec: GVGVestigeRecType) {
|
||||
const dicWarJson = gameData.warJson.get(dicWar.dispatchJsonId);
|
||||
const defenseInfo = rec.defenseInfo.heroes||[];
|
||||
const hids = defenseInfo.map(cur => cur.hid);
|
||||
const heroes = await HeroModel.findByHidRange(hids, rec.defenseRoleId, 'hid lv quality star colorStar');
|
||||
const heroes = await HeroModel.findByHidRange(hids, rec.defenseRoleId, 'hid lv quality star colorStar skins ce');
|
||||
const artifactSeids = heroes.map(hero => hero.artifact);
|
||||
const artifacts = await ArtifactModel.findbySeqIds(rec.defenseRoleId, artifactSeids);
|
||||
result.setByPlayer(dicWarJson, defenseInfo, heroes, artifacts);
|
||||
@@ -323,7 +327,7 @@ async function savePlayerRank(configId: number, groupId: number, serverType: num
|
||||
let dicRankMap = gameData.gvgVestige.get(vestigeId);
|
||||
let newRank = dicRankMap?.get(playerInfo.newRank)?.score||0;
|
||||
let oldRank = dicRankMap?.get(playerInfo.oldRank)?.score||0;
|
||||
let myScore = await GVGVestigeSumRankModel.incScore(playerInfo.roleId, groupId, serverType, newRank - oldRank);
|
||||
let myScore = await GVGVestigeSumRankModel.incScore(playerInfo.roleId, playerInfo.leagueCode, groupId, serverType, newRank - oldRank);
|
||||
let r1 = new Rank(REDIS_KEY.GVG_VESTIGE_MEMBER_ALL, { serverType, groupId, day: getDayKeyInfo() });
|
||||
await r1.setRankWithRoleInfo(playerInfo.roleId, myScore.score, myScore.updatedAt.getTime());
|
||||
let leagueScore = await GVGVestigeLeagueRankModel.incScore(configId, playerInfo.leagueCode, groupId, serverType, newRank - oldRank);
|
||||
@@ -358,7 +362,9 @@ export async function getVestigeRank(redisKey: REDIS_KEY, isSimple: boolean, key
|
||||
return { ranks, myRank }
|
||||
}
|
||||
|
||||
// systimer 服
|
||||
export async function saveVestigeRankSchedule() {
|
||||
let config = await GVGConfigModel.findConfig();
|
||||
let day = getDayKeyInfo();
|
||||
let keys = await findKeys(`${REDIS_KEY.GVG_VESTIGE_LEAGUE}:${day}:`);
|
||||
for(let key of keys) {
|
||||
@@ -368,5 +374,9 @@ export async function saveVestigeRankSchedule() {
|
||||
let r = new Rank(REDIS_KEY.GVG_VESTIGE_LEAGUE, { groupId, serverType, day});
|
||||
let ranks = await r.getRankByRangeRaw();
|
||||
await GVGVestigeLeagueRankModel.saveRank(groupId, serverType, ranks);
|
||||
await addVestigeLeagueRankRec(config.configId, ranks);
|
||||
}
|
||||
|
||||
let playerSumRanks = await GVGVestigeSumRankModel.findAllScores();
|
||||
await GVGUserDataModel.addVestigeScores(config.configId, playerSumRanks);
|
||||
}
|
||||
Reference in New Issue
Block a user