后台:设置军团练兵场关卡

This commit is contained in:
luying
2022-08-26 11:34:07 +08:00
parent faa05c72d6
commit 4989ff6846
4 changed files with 34 additions and 2 deletions

View File

@@ -27,6 +27,7 @@ import { DicWar } from '../../../pubUtils/dictionary/DicWar';
import { SchoolModel } from '../../../db/School';
import { JewelModel } from '../../../db/Jewel';
import { RoleCeModel } from '../../../db/RoleCe';
import { setTrainLv } from '../../../services/gmService';
let timer: NodeJS.Timer;
export default function (app: Application) {
@@ -187,6 +188,11 @@ export class GmRoleHandler {
}
guild = await GuildModel.updateInfo(params.code, updateParams);
if(params.trainLv) {
await setTrainLv(params.code, params.trainLv);
}
return resResult(STATUS.SUCCESS);
}
async dismissGuild(msg: { code: string }, session: BackendSession) {

View File

@@ -33,6 +33,10 @@ import { getPopUpShopData } from "./activity/popUpShopService";
import { TaskPassData } from "../domain/activityField/taskPassField";
import { ActivityGroupModel } from "../db/ActivityGroup";
import { redisClient } from "./redisService";
import { gameData } from "../pubUtils/data";
import { GuildModel } from "../db/Guild";
import { GuildTrainModel } from "../db/GuildTrain";
import { unlockTrain } from "./guildTrainService";
// —————————————— 跑马灯 —————————————— //
// 初始
@@ -364,4 +368,19 @@ export async function getSurvey(roleId: string, lv: number) {
let index = recs.findIndex(rec => rec.surveyId == survey.surveyId);
return index == -1
});
}
export async function setTrainLv(guildCode: string, trainLv: string) {
let [_lv, _id] = trainLv.split('-');
let lv = parseInt(_lv), id = parseInt(_id);
if(!isNaN(lv) && !isNaN(id)) {
let structure = gameData.trainBase.get(lv);
let trainIds = structure?.trainIds||[];
let trainId = trainIds[id - 1];
if(trainId) {
await GuildModel.updateInfo(guildCode, { trainId, trainLv: lv });
await GuildTrainModel.resetGuildTrain(guildCode);
await unlockTrain(guildCode, trainId);
}
}
}

View File

@@ -295,6 +295,7 @@ export class GuildFormParam {
wishPool: number;
store: number;
donate: number;
trainLv: string;
constructor(obj?: any) {
if(obj) {
@@ -316,6 +317,8 @@ export class GuildFormParam {
if(this.wishPool && !isNumber(this.wishPool)) return false;
if(this.store && !isNumber(this.store)) return false;
if(this.donate && !isNumber(this.donate)) return false;
if(this.trainLv && !isString(this.trainLv)) return false;
return true;
}
}

View File

@@ -1,5 +1,5 @@
// 军团建筑物
import {readFileAndParse, parseGoodStr, decodeArrayListStr} from '../util'
import {readFileAndParse, parseGoodStr, decodeArrayListStr, parseNumberList} from '../util'
import { FILENAME } from '../../consts'
import { RewardInter } from '../interface';
const _ = require('lodash');
@@ -104,6 +104,8 @@ export interface DicTrainBase {
readonly difficultyRatio: number;
// 据点奖励增长系数
readonly judianRewardRatio: number;
// 试炼id
readonly trainIds: number[];
}
const DicTrainKeys: KeysEnum<DicTrainBase> = {
@@ -111,7 +113,8 @@ const DicTrainKeys: KeysEnum<DicTrainBase> = {
level: true,
trainLevel: true,
difficultyRatio: true,
judianRewardRatio: true
judianRewardRatio: true,
trainIds: true
};
// 捐献所
@@ -192,6 +195,7 @@ export function loadStructure() {
let arrTrain = readFileAndParse(FILENAME.DIC_GUILD_TRAIN_BASE);
arrTrain.forEach(o => {
setStructureConsume(o);
o.trainIds = parseNumberList(o.shilianId);
dicTrainBase.set(o.level, _.pick(o, Object.keys(DicTrainKeys)));
});
arrTrain = undefined;