试炼调试数据
This commit is contained in:
@@ -4,7 +4,6 @@ import { resResult } from '../../../pubUtils/util';
|
|||||||
import { STATUS, GUILD_OPERATE } from '../../../consts';
|
import { STATUS, GUILD_OPERATE } from '../../../consts';
|
||||||
import { GuildRefineModel } from '../../../db/GuildRefine';
|
import { GuildRefineModel } from '../../../db/GuildRefine';
|
||||||
import { getArmyDevelopConsumeById, getGoodById } from '../../../pubUtils/data';
|
import { getArmyDevelopConsumeById, getGoodById } from '../../../pubUtils/data';
|
||||||
import { EquipModel } from '../../../db/Equip';
|
|
||||||
import { nowSeconds } from '../../../pubUtils/timeUtil';
|
import { nowSeconds } from '../../../pubUtils/timeUtil';
|
||||||
import { handleCost, addItems } from '../../../services/rewardService';
|
import { handleCost, addItems } from '../../../services/rewardService';
|
||||||
import { GuildModel } from '../../../db/Guild';
|
import { GuildModel } from '../../../db/Guild';
|
||||||
@@ -15,7 +14,6 @@ import { checkAuth } from '../../../services/guildService';
|
|||||||
import { ARMY } from '../../../pubUtils/dicParam';
|
import { ARMY } from '../../../pubUtils/dicParam';
|
||||||
import { CURRENCY_BY_TYPE, CURRENCY_TYPE } from '../../../consts/constModules/itemConst';
|
import { CURRENCY_BY_TYPE, CURRENCY_TYPE } from '../../../consts/constModules/itemConst';
|
||||||
import { openGuildRefine } from '../../../services/guildRefineService';
|
import { openGuildRefine } from '../../../services/guildRefineService';
|
||||||
import { now } from 'moment';
|
|
||||||
export default function (app: Application) {
|
export default function (app: Application) {
|
||||||
return new GuildRefineHandler(app);
|
return new GuildRefineHandler(app);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ export class GuildTrainHandler {
|
|||||||
if (!userGuild)
|
if (!userGuild)
|
||||||
return resResult(STATUS.WRONG_PARMS);
|
return resResult(STATUS.WRONG_PARMS);
|
||||||
const { guildCode: code } = userGuild;
|
const { guildCode: code } = userGuild;
|
||||||
let { trainId } = await GuildModel.findGuild(code, serverId, 'trainId');
|
let { trainId, trainLv } = await GuildModel.findGuild(code, serverId, 'trainId trainLv');
|
||||||
let guildTrain = await GuildTrainModel.findTrainByTrainIdNotLock(code, trainId);
|
let guildTrain = await GuildTrainModel.findTrainByTrainIdNotLock(code, trainId);
|
||||||
if (!guildTrain ) {
|
if (!guildTrain ) {
|
||||||
guildTrain = await unlockTrain(code, trainId);
|
guildTrain = await unlockTrain(code, trainId);
|
||||||
@@ -41,6 +41,7 @@ export class GuildTrainHandler {
|
|||||||
let { trainCount, trainRewards, buyTrainCount } = userGuild;
|
let { trainCount, trainRewards, buyTrainCount } = userGuild;
|
||||||
let result:any = getGuildTrainInfo(guildTrain, roleId, trainCount, trainRewards);
|
let result:any = getGuildTrainInfo(guildTrain, roleId, trainCount, trainRewards);
|
||||||
result.buyTrainCount = buyTrainCount;
|
result.buyTrainCount = buyTrainCount;
|
||||||
|
result.trainLv = trainLv;
|
||||||
return resResult(STATUS.SUCCESS, result);
|
return resResult(STATUS.SUCCESS, result);
|
||||||
}
|
}
|
||||||
//获得试炼战报
|
//获得试炼战报
|
||||||
@@ -65,7 +66,7 @@ export class GuildTrainHandler {
|
|||||||
}
|
}
|
||||||
reports.push(...resReports);
|
reports.push(...resReports);
|
||||||
});
|
});
|
||||||
return resResult(STATUS.SUCCESS, {reports});
|
return resResult(STATUS.SUCCESS, { reports });
|
||||||
}
|
}
|
||||||
|
|
||||||
//获得试炼宝箱
|
//获得试炼宝箱
|
||||||
@@ -199,7 +200,7 @@ export class GuildTrainHandler {
|
|||||||
ranks.push({score: addScore, roleId});
|
ranks.push({score: addScore, roleId});
|
||||||
}
|
}
|
||||||
let needLockNext = false;
|
let needLockNext = false;
|
||||||
let report = {roleName, trainId, hid, score: addScore, time: nowSeconds(), isSuccessed: isSuccess, type: 1};//1表示普通战报, 2表示系统战报即:被成功压制
|
let report = {roleName, trainId, hid, score: addScore, time: nowSeconds(), type: isSuccess?2:1, difficulty: battleRecord.record.difficulty};//1表示普通战报, 2表示系统战报即:被成功压制
|
||||||
reports.push(report);
|
reports.push(report);
|
||||||
if (trainInstance.progress < instance.progress ) {
|
if (trainInstance.progress < instance.progress ) {
|
||||||
if (trainInstance.progress + addScore >= instance.progress) {
|
if (trainInstance.progress + addScore >= instance.progress) {
|
||||||
@@ -217,7 +218,7 @@ export class GuildTrainHandler {
|
|||||||
let progress = instance.progress;
|
let progress = instance.progress;
|
||||||
guildTrain = await GuildTrainModel.updateGuildTrainProgress(code, trainId, hid, progress, ranks, isComplete);
|
guildTrain = await GuildTrainModel.updateGuildTrainProgress(code, trainId, hid, progress, ranks, isComplete);
|
||||||
if (needLockNext) { //
|
if (needLockNext) { //
|
||||||
reports.push({ isSuccessed: true, type: 2, time:nowSeconds(), score: addScore, roleName, trainId, hid });
|
reports.push({ type: 3, time:nowSeconds(), score: addScore, roleName, trainId, hid, difficulty: battleRecord.record.difficulty });
|
||||||
guildTrain = await unlockTrain(code, trainId + 1);
|
guildTrain = await unlockTrain(code, trainId + 1);
|
||||||
}
|
}
|
||||||
res.releaseCallback();//解锁
|
res.releaseCallback();//解锁
|
||||||
|
|||||||
@@ -1,16 +1,17 @@
|
|||||||
import { Application, BackendSession } from 'pinus';
|
import { Application, BackendSession } from 'pinus';
|
||||||
import { UserGuildModel } from '../../../db/UserGuild';
|
import { UserGuildModel } from '../../../db/UserGuild';
|
||||||
import { GuildModel } from '../../../db/Guild';
|
import { GuildModel } from '../../../db/Guild';
|
||||||
import { resResult } from '../../../pubUtils/util';
|
import { WishPoolReportModel } from '../../../db/WishPoolReport';
|
||||||
|
import { resResult, genCode } from '../../../pubUtils/util';
|
||||||
import { STATUS } from '../../../consts';
|
import { STATUS } from '../../../consts';
|
||||||
import { DonationModel } from '../../../db/Donation';
|
|
||||||
import { nowSeconds } from '../../../pubUtils/timeUtil';
|
import { nowSeconds } from '../../../pubUtils/timeUtil';
|
||||||
import { getArmyDonateBaseByLv, getArmyDonateBoxBaseById } from '../../../pubUtils/data';
|
import { getArmyWishPoolBaseByLv, getGoodById } from '../../../pubUtils/data';
|
||||||
import { handleCost, addItems } from '../../../services/rewardService';
|
import { handleCost, addItems } from '../../../services/rewardService';
|
||||||
import { CHAT_SERVER } from '../../../consts';
|
import { CHAT_SERVER } from '../../../consts';
|
||||||
import { getDonation } from '../../../services/donateService';
|
import { GUILD_STRUCTURE } from '../../../consts/constModules/guildConst';
|
||||||
import { getUserGuildWithRefActive } from '../../../services/guildService';
|
import { getUserGuildWithRefActive } from '../../../services/guildService';
|
||||||
import { ARMY } from '../../../pubUtils/dicParam';
|
import { ARMY } from '../../../pubUtils/dicParam';
|
||||||
|
import { findIndex, findWhere } from 'underscore';
|
||||||
export default function(app: Application) {
|
export default function(app: Application) {
|
||||||
return new WishPoolHandler(app);
|
return new WishPoolHandler(app);
|
||||||
}
|
}
|
||||||
@@ -29,23 +30,92 @@ export class WishPoolHandler {
|
|||||||
let userGuilds = await UserGuildModel.getWishPoolGoods(code, ' wishDntCnt wishGoods');
|
let userGuilds = await UserGuildModel.getWishPoolGoods(code, ' wishDntCnt wishGoods');
|
||||||
let list = [];
|
let list = [];
|
||||||
userGuilds.map(({ wishGoods })=>{
|
userGuilds.map(({ wishGoods })=>{
|
||||||
// wishGoods.map(({ type, goodId, count, receiveCnt, drawCnt, _id })=>{
|
wishGoods.map(({ type, goodId, count, receiveCnt, drawCnt, id })=>{
|
||||||
// list.push({ type, goodId, count, receiveCnt, drawCnt, id: _id })
|
list.push({ type, goodId, count, receiveCnt, drawCnt, id })
|
||||||
// });
|
});
|
||||||
});
|
});
|
||||||
return resResult(STATUS.SUCCESS, { list, wishDntCnt, wishGoods });
|
return resResult(STATUS.SUCCESS, { list, wishDntCnt, wishGoods });
|
||||||
}
|
}
|
||||||
|
|
||||||
async wishGoods(msg: {roleId: string, id: number}, session: BackendSession) {
|
// 许愿
|
||||||
|
async wishGoods(msg: {goodId: number, type: number}, session: BackendSession) {
|
||||||
|
const { goodId, type } = msg;
|
||||||
const roleId: string = session.get('roleId');
|
const roleId: string = session.get('roleId');
|
||||||
const serverId: number = parseInt(session.get('serverId'));
|
const serverId: number = parseInt(session.get('serverId'));
|
||||||
let userGuild = await getUserGuildWithRefActive(roleId, 'donateCnt receiveBoxs guildCode');
|
let count;
|
||||||
|
let goodInfo = getGoodById(goodId)
|
||||||
|
if (!goodInfo)
|
||||||
|
return resResult(STATUS.WRONG_PARMS);
|
||||||
|
let userGuild = await getUserGuildWithRefActive(roleId, ' wishDntCnt wishGoods guildCode wishGoods');
|
||||||
if (!userGuild)
|
if (!userGuild)
|
||||||
return resResult(STATUS.WRONG_PARMS);
|
return resResult(STATUS.WRONG_PARMS);
|
||||||
const { guildCode: code, wishDntCnt, wishGoods } = userGuild;
|
const { guildCode: code, wishDntCnt, wishGoods } = userGuild;
|
||||||
const { wishPoolLv } = await GuildModel.findGuild(code, serverId);
|
let { structure } = await GuildModel.findGuild(code, serverId, 'structure');
|
||||||
|
let { lv } = findWhere(structure, {id: GUILD_STRUCTURE.DONATE});
|
||||||
|
let { wishGoodsEquips, wishGoodsHeros } = getArmyWishPoolBaseByLv(lv);
|
||||||
|
let len = wishGoods.length;
|
||||||
|
if (len >= 1) //今日已经许愿过
|
||||||
|
return resResult(STATUS.WRONG_PARMS);
|
||||||
|
if (type == 1) {
|
||||||
|
let wishGoodsEquip = findWhere(wishGoodsEquips, { quality: goodInfo.quality});
|
||||||
|
count = wishGoodsEquip.count;
|
||||||
|
} else {
|
||||||
|
let wishGoodsHero = findWhere(wishGoodsHeros, { quality: goodInfo.quality});
|
||||||
|
count = wishGoodsHero.count;
|
||||||
|
}
|
||||||
|
const id = genCode(6);
|
||||||
|
let { wishGoods : resWishGoods } = await UserGuildModel.pushAndUpdate(roleId, { wishGoods }, { wishGoods: { type, goodId, count, receiveCnt: 0, drawCnt: 0, id} }, 'wishGoods');
|
||||||
|
return resResult(STATUS.SUCCESS, { wishDntCnt, wishGoods: resWishGoods });
|
||||||
|
}
|
||||||
|
|
||||||
|
// 捐赠
|
||||||
|
async donateGoods(msg: {wishRoleId: string, id: string}, session: BackendSession) {
|
||||||
|
let { wishRoleId, id } = msg;
|
||||||
|
const dntRoleId: string = session.get('roleId');
|
||||||
|
const serverId: number = parseInt(session.get('serverId'));
|
||||||
|
const dntRoleName: string = session.get('roleName');
|
||||||
|
|
||||||
|
let wishUserGuild = await getUserGuildWithRefActive(wishRoleId, ' wishDntCnt wishGoods guildCode wishGoods');
|
||||||
|
if (!wishUserGuild)
|
||||||
|
return resResult(STATUS.WRONG_PARMS);
|
||||||
|
const { guildCode: code, wishGoods } = wishUserGuild;
|
||||||
|
const { } = await GuildModel.findGuild(code, serverId);
|
||||||
|
let wishGood = findWhere(wishGoods, { id });
|
||||||
|
if (wishGood) {
|
||||||
|
|
||||||
|
}
|
||||||
|
// WishPoolReportModel.addReport(code, roleId: wishRoleId, roleName: , dntRoleId, dntRoleName, goodId, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
async receiveGoods(msg: { id: string }, session: BackendSession) {
|
||||||
|
let { id } = msg;
|
||||||
|
const roleId: string = session.get('roleId');
|
||||||
|
const roleName: string = session.get('roleName');
|
||||||
|
const sid: string = session.get('sid');
|
||||||
|
let userGuild = await getUserGuildWithRefActive(roleId, 'donateCnt receiveBoxs guildCode');
|
||||||
|
if (!userGuild)
|
||||||
|
return resResult(STATUS.WRONG_PARMS);
|
||||||
|
const { guildCode: code, wishGoods } = userGuild;
|
||||||
|
let index = findIndex(wishGoods, { id });
|
||||||
|
if (index == -1)
|
||||||
|
return resResult(STATUS.WRONG_PARMS);
|
||||||
|
let { drawCnt, goodId } = wishGoods[index];
|
||||||
|
if (drawCnt <= 0)
|
||||||
|
return resResult(STATUS.WRONG_PARMS);
|
||||||
|
let goods = await addItems(roleId, roleName, sid, [{ id : goodId, count: drawCnt }]);
|
||||||
|
wishGoods[index].drawCnt = 0;
|
||||||
|
await UserGuildModel.updateInfo(code, { wishGoods }, {});
|
||||||
|
return resResult(STATUS.SUCCESS, { goods, wishGoods });
|
||||||
|
}
|
||||||
|
|
||||||
|
async getReports(msg: {}, session: BackendSession) {
|
||||||
|
const roleId: string = session.get('roleId');
|
||||||
|
let userGuild = await getUserGuildWithRefActive(roleId, ' guildCode');
|
||||||
|
if (!userGuild)
|
||||||
|
return resResult(STATUS.WRONG_PARMS);
|
||||||
|
const { guildCode: code } = userGuild;
|
||||||
|
const reports = await WishPoolReportModel.getReportsByTime(code, 1);
|
||||||
|
return resResult(STATUS.SUCCESS, { reports });
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
+1
-4
@@ -89,9 +89,6 @@ export default class Guild extends BaseModel {
|
|||||||
|
|
||||||
@prop({ required: true, default: 0 })
|
@prop({ required: true, default: 0 })
|
||||||
resetTrainTime: number;//上次刷新挑战训练场次数的时间
|
resetTrainTime: number;//上次刷新挑战训练场次数的时间
|
||||||
|
|
||||||
@prop({ required: true, default: 1 })
|
|
||||||
wishPoolLv: number; // 许愿池等级
|
|
||||||
|
|
||||||
public static async createGuild(params: { name: string, icon: number, notice: string }, role: RoleType, serverId: number) {
|
public static async createGuild(params: { name: string, icon: number, notice: string }, role: RoleType, serverId: number) {
|
||||||
const doc = new GuildModel();
|
const doc = new GuildModel();
|
||||||
@@ -204,7 +201,7 @@ export default class Guild extends BaseModel {
|
|||||||
|
|
||||||
public static async resetGuildTrain(code: string, serverId: number, trainLv: number, lean = true) {
|
public static async resetGuildTrain(code: string, serverId: number, trainLv: number, lean = true) {
|
||||||
const time = getCurWeekTime(1, 5);//每周一,5点刷新
|
const time = getCurWeekTime(1, 5);//每周一,5点刷新
|
||||||
const result = await GuildModel.findOneAndUpdate({ code, status: GUILD_STATUS.RUNNING, serverId, resetTrainTime:{$ne:time}},{$set: {trainId: 1, resetTrainTime: time, trainLv}}).lean(lean);
|
const result = await GuildModel.findOneAndUpdate({ code, status: GUILD_STATUS.RUNNING, serverId, resetTrainTime:{$ne:time}},{$set: {trainId: 1, resetTrainTime: time, trainLv}}, {new: true}).lean(lean);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ class Report {
|
|||||||
@prop({ required: true })
|
@prop({ required: true })
|
||||||
time: number;
|
time: number;
|
||||||
@prop({ required: true })
|
@prop({ required: true })
|
||||||
isSuccessed: boolean;
|
difficulty: number;
|
||||||
@prop({ required: true })
|
@prop({ required: true })
|
||||||
type: number;//1表示普通战报, 2表示系统战报即:被成功压制
|
type: number;//1表示普通战报, 2表示系统战报即:被成功压制
|
||||||
}
|
}
|
||||||
|
|||||||
+10
-4
@@ -12,6 +12,8 @@ class ActiveRecord {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class WishGood {
|
class WishGood {
|
||||||
|
@prop({ required: true })
|
||||||
|
id: string;
|
||||||
@prop({ required: true })
|
@prop({ required: true })
|
||||||
type: number;
|
type: number;
|
||||||
@prop({ required: true })
|
@prop({ required: true })
|
||||||
@@ -76,16 +78,16 @@ export default class UserGuild extends BaseModel {
|
|||||||
trainRewards: Array<number>;//领取过的进阶等级
|
trainRewards: Array<number>;//领取过的进阶等级
|
||||||
|
|
||||||
@prop({ required: true, default: [], type: WishGood, _id: false })
|
@prop({ required: true, default: [], type: WishGood, _id: false })
|
||||||
wishGoods:Array<WishGood>;
|
wishGoods: Array<WishGood>;
|
||||||
|
|
||||||
@prop({ required: true, default: [], type: Number })
|
@prop({ required: true, default: [], type: Number })
|
||||||
receiveBoxs:Array<number>;
|
receiveBoxs: Array<number>;
|
||||||
|
|
||||||
@prop({ required: true })
|
@prop({ required: true })
|
||||||
wishDntCnt:number;//今天许愿池捐献次数
|
wishDntCnt: number;//今天许愿池捐献次数
|
||||||
|
|
||||||
@prop({ required: true })
|
@prop({ required: true })
|
||||||
donateCnt:number;//今天捐献所次数
|
donateCnt: number;//今天捐献所次数
|
||||||
|
|
||||||
public static async getMyAuth(roleId: string, guildCode?: string, userGuild?: UserGuildType) {
|
public static async getMyAuth(roleId: string, guildCode?: string, userGuild?: UserGuildType) {
|
||||||
let myGuild: UserGuildType;
|
let myGuild: UserGuildType;
|
||||||
@@ -186,6 +188,10 @@ export default class UserGuild extends BaseModel {
|
|||||||
return userGuilds;
|
return userGuilds;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static async pushAndUpdate(roleId: string, update: UserGuildUpdateParam, pushData:{wishGoods?: WishGood}, select?: string, lean = true) {
|
||||||
|
const result: UserGuildType = await UserGuildModel.findOneAndUpdate({ roleId, status: USER_GUILD_STATUS.ON }, { $set: update, $push: pushData }, { new: true }).select(select).lean();
|
||||||
|
return result;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export const UserGuildModel = getModelForClass(UserGuild);
|
export const UserGuildModel = getModelForClass(UserGuild);
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ export default class WishPoolReport extends BaseModel {
|
|||||||
//获得day天之前的许愿池战报
|
//获得day天之前的许愿池战报
|
||||||
public static async getReportsByTime(guildCode: string, day: number, lean = true) {
|
public static async getReportsByTime(guildCode: string, day: number, lean = true) {
|
||||||
let time = getTodayZeroPoint() - day * 24 * 60;
|
let time = getTodayZeroPoint() - day * 24 * 60;
|
||||||
const reports = await WishPoolReportModel.find({ guildCode, dntTime: {$gte: time}});
|
const reports = await WishPoolReportModel.find({ guildCode, dntTime: {$gte: time}}).sort({ dntTime : -1 });
|
||||||
return reports;
|
return reports;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -121,7 +121,7 @@ export const gameData = {
|
|||||||
bossBase: dicBossBase,
|
bossBase: dicBossBase,
|
||||||
trainBase: dicTrainBase,
|
trainBase: dicTrainBase,
|
||||||
donateBase: dicDonateBase,
|
donateBase: dicDonateBase,
|
||||||
wishPoolBase: dicWishPoolBase,
|
armyWishPool: dicWishPoolBase,
|
||||||
storeBase: dicStoreBase,
|
storeBase: dicStoreBase,
|
||||||
structureConsume: dicStructureConsume,
|
structureConsume: dicStructureConsume,
|
||||||
guildActiveDayReward: dicGuildActiveDayReward,
|
guildActiveDayReward: dicGuildActiveDayReward,
|
||||||
@@ -133,7 +133,7 @@ export const gameData = {
|
|||||||
guildActiveWays: dicGuildActiveWays,
|
guildActiveWays: dicGuildActiveWays,
|
||||||
armyDevelopConsume: dicArmyDevelopConsume,
|
armyDevelopConsume: dicArmyDevelopConsume,
|
||||||
armyBossRank: dicArmyBossRank,
|
armyBossRank: dicArmyBossRank,
|
||||||
armyDonateBox: dicArmyDonate
|
armyDonateBox: dicArmyDonate,
|
||||||
};
|
};
|
||||||
|
|
||||||
// 在此提供一些原先在gamedata中提供的方法,以便更方便获取gameData数据
|
// 在此提供一些原先在gamedata中提供的方法,以便更方便获取gameData数据
|
||||||
@@ -395,4 +395,6 @@ export function getArmyDonateBaseByLv(lv: number) {
|
|||||||
export function getArmyDonateBoxBaseById(id: number) {
|
export function getArmyDonateBoxBaseById(id: number) {
|
||||||
return gameData.armyDonateBox.get(id);
|
return gameData.armyDonateBox.get(id);
|
||||||
}
|
}
|
||||||
|
export function getArmyWishPoolBaseByLv(lv: number) {
|
||||||
|
return gameData.armyWishPool.get(lv);
|
||||||
|
}
|
||||||
|
|||||||
@@ -0,0 +1,29 @@
|
|||||||
|
import { readJsonFile, parseGoodStr } from '../util'
|
||||||
|
import { FILENAME } from '../../consts'
|
||||||
|
type KeysEnum<T> = { [P in keyof Required<T>]: true };
|
||||||
|
import { RewardInter } from '../interface';
|
||||||
|
const _ = require('lodash');
|
||||||
|
|
||||||
|
export interface DicArmyBossRank {
|
||||||
|
readonly id: number;
|
||||||
|
readonly rankMin: number;
|
||||||
|
readonly rankMax: number;
|
||||||
|
readonly reward: Array<RewardInter>;
|
||||||
|
}
|
||||||
|
|
||||||
|
const DicArmyBossRankKeys: KeysEnum<DicArmyBossRank> = {
|
||||||
|
id: true,
|
||||||
|
rankMin: true,
|
||||||
|
rankMax: true,
|
||||||
|
reward: true,
|
||||||
|
};
|
||||||
|
|
||||||
|
const str = readJsonFile(FILENAME.DIC_ARMY_BOSS_RANK_REWARD);
|
||||||
|
let arr = JSON.parse(str);
|
||||||
|
|
||||||
|
export const dicArmyBossRank = new Array<DicArmyBossRank>();
|
||||||
|
arr.forEach(o => {
|
||||||
|
o.reward = parseGoodStr(o.reward);
|
||||||
|
dicArmyBossRank.push(_.pick(o, Object.keys(DicArmyBossRankKeys)));
|
||||||
|
});
|
||||||
|
arr = undefined;
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
import { readJsonFile } from '../util'
|
|
||||||
import { FILENAME } from '../../consts'
|
|
||||||
type KeysEnum<T> = { [P in keyof Required<T>]: true };
|
|
||||||
const _ = require('lodash');
|
|
||||||
|
|
||||||
export interface DicArmyWishPool {
|
|
||||||
readonly id: number;
|
|
||||||
readonly wishGoodsEquips: Array<{quality: number, count: number}>;
|
|
||||||
readonly wishGoodsHeros: Array<{quality: number, count: number}>;
|
|
||||||
readonly consume: number;
|
|
||||||
}
|
|
||||||
|
|
||||||
const DicArmyWishPoolKeys: KeysEnum<DicArmyWishPool> = {
|
|
||||||
id: true,
|
|
||||||
wishGoodsEquips: true,
|
|
||||||
wishGoodsHeros: true,
|
|
||||||
consume: true,
|
|
||||||
};
|
|
||||||
|
|
||||||
const str = readJsonFile(FILENAME.DIC_ARMY_BOSS_RANK_REWARD);
|
|
||||||
let arr = JSON.parse(str);
|
|
||||||
|
|
||||||
export const dicArmyWishPool = new Array<DicArmyWishPool>();
|
|
||||||
arr.forEach(o => {
|
|
||||||
o.wishGoodsEquips = o.wishGoodsEquip.split('|').map(wishGoodsEquip=>{
|
|
||||||
let wishGoodsEquips = wishGoodsEquip.split('&');
|
|
||||||
return {quality: parseInt(wishGoodsEquips[0]), count: parseInt(wishGoodsEquips[1])};
|
|
||||||
});
|
|
||||||
o.wishGoodsHeros = o.wishGoodsHero.split('|').map(wishGoodsHero=>{
|
|
||||||
let wishGoodsHeros = wishGoodsHero.split('&');
|
|
||||||
return {quality: parseInt(wishGoodsHeros[0]), count: parseInt(wishGoodsHeros[1])};
|
|
||||||
});
|
|
||||||
dicArmyWishPool.push(_.pick(o, Object.keys(DicArmyWishPoolKeys)));
|
|
||||||
});
|
|
||||||
arr = undefined;
|
|
||||||
@@ -121,19 +121,18 @@ export interface DicWishPoolBase {
|
|||||||
readonly id: number;
|
readonly id: number;
|
||||||
// 等级
|
// 等级
|
||||||
readonly level: number;
|
readonly level: number;
|
||||||
// 许愿物品
|
readonly wishGoodsEquips: Array<{quality: number, count: number}>;
|
||||||
readonly wishGoodsEquip: { quality: number, count: number }[];
|
readonly wishGoodsHeros: Array<{quality: number, count: number}>;
|
||||||
// 许愿将魂
|
readonly consume: number;
|
||||||
readonly wishGoodsHero: { quality: number, count: number }[];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const DicWishPoolKeys: KeysEnum<DicWishPoolBase> = {
|
const DicWishPoolKeys: KeysEnum<DicWishPoolBase> = {
|
||||||
id: true,
|
id: true,
|
||||||
level: true,
|
level: true,
|
||||||
wishGoodsEquip: true,
|
wishGoodsEquips: true,
|
||||||
wishGoodsHero: true
|
wishGoodsHeros: true,
|
||||||
|
consume: true,
|
||||||
};
|
};
|
||||||
|
|
||||||
// 商店
|
// 商店
|
||||||
export interface DicStoreBase {
|
export interface DicStoreBase {
|
||||||
// id
|
// id
|
||||||
@@ -221,8 +220,14 @@ const strWishPool = readJsonFile(FILENAME.DIC_GUILD_WISH_POOL_BASE);
|
|||||||
let arrWishPool = JSON.parse(strWishPool);
|
let arrWishPool = JSON.parse(strWishPool);
|
||||||
arrWishPool.forEach(o => {
|
arrWishPool.forEach(o => {
|
||||||
setStructureConsume(o);
|
setStructureConsume(o);
|
||||||
o.wishGoodsEquip = parseWishGoods(o.wishgoodsEquip);
|
o.wishGoodsEquips = o.wishgoodsEquip.split('|').map(wishGoodsEquip=>{
|
||||||
o.wishGoodsHero = parseWishGoods(o.wishgoodsHero);
|
let wishGoodsEquips = wishGoodsEquip.split('&');
|
||||||
|
return {quality: parseInt(wishGoodsEquips[0]), count: parseInt(wishGoodsEquips[1])};
|
||||||
|
});
|
||||||
|
o.wishGoodsHeros = o.wishgoodsHero.split('|').map(wishGoodsHero=>{
|
||||||
|
let wishGoodsHeros = wishGoodsHero.split('&');
|
||||||
|
return {quality: parseInt(wishGoodsHeros[0]), count: parseInt(wishGoodsHeros[1])};
|
||||||
|
});
|
||||||
dicWishPoolBase.set(o.level, _.pick(o, Object.keys(DicWishPoolKeys)));
|
dicWishPoolBase.set(o.level, _.pick(o, Object.keys(DicWishPoolKeys)));
|
||||||
});
|
});
|
||||||
arrWishPool = undefined;
|
arrWishPool = undefined;
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ export function getWeekDate(now: Date, day: number, hour: number){ //获得本
|
|||||||
|
|
||||||
export function getCurWeekTime(day: number, hour: number) {
|
export function getCurWeekTime(day: number, hour: number) {
|
||||||
let data = getWeekDate(new Date(), day, hour);
|
let data = getWeekDate(new Date(), day, hour);
|
||||||
return data.getTime();
|
return Math.floor(data.getTime()/PER_SECOND);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getHourPoint(hour: number) {
|
export function getHourPoint(hour: number) {
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
"preposition": "1&",
|
"preposition": "1&",
|
||||||
"honourConsume": "40005&3000",
|
"honourConsume": "40005&3000",
|
||||||
"fundConsume": 500,
|
"fundConsume": 500,
|
||||||
"timeConsume": 270
|
"timeConsume": 16200
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 3,
|
"id": 3,
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
"preposition": "1&",
|
"preposition": "1&",
|
||||||
"honourConsume": "40005&6000",
|
"honourConsume": "40005&6000",
|
||||||
"fundConsume": 1000,
|
"fundConsume": 1000,
|
||||||
"timeConsume": 530
|
"timeConsume": 31800
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 4,
|
"id": 4,
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
"preposition": "1&",
|
"preposition": "1&",
|
||||||
"honourConsume": "40005&13500",
|
"honourConsume": "40005&13500",
|
||||||
"fundConsume": 2000,
|
"fundConsume": 2000,
|
||||||
"timeConsume": 1200
|
"timeConsume": 72000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 5,
|
"id": 5,
|
||||||
@@ -57,7 +57,7 @@
|
|||||||
"preposition": "5&2",
|
"preposition": "5&2",
|
||||||
"honourConsume": "40005&4500",
|
"honourConsume": "40005&4500",
|
||||||
"fundConsume": 1000,
|
"fundConsume": 1000,
|
||||||
"timeConsume": 270
|
"timeConsume": 16200
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 7,
|
"id": 7,
|
||||||
@@ -67,7 +67,7 @@
|
|||||||
"preposition": "5&3",
|
"preposition": "5&3",
|
||||||
"honourConsume": "40005&9000",
|
"honourConsume": "40005&9000",
|
||||||
"fundConsume": 2000,
|
"fundConsume": 2000,
|
||||||
"timeConsume": 530
|
"timeConsume": 31800
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 8,
|
"id": 8,
|
||||||
@@ -77,7 +77,7 @@
|
|||||||
"preposition": "5&4",
|
"preposition": "5&4",
|
||||||
"honourConsume": "40005&20250",
|
"honourConsume": "40005&20250",
|
||||||
"fundConsume": 4000,
|
"fundConsume": 4000,
|
||||||
"timeConsume": 1200
|
"timeConsume": 72000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 9,
|
"id": 9,
|
||||||
@@ -97,7 +97,7 @@
|
|||||||
"preposition": "9&6",
|
"preposition": "9&6",
|
||||||
"honourConsume": "40005&6000",
|
"honourConsume": "40005&6000",
|
||||||
"fundConsume": 1500,
|
"fundConsume": 1500,
|
||||||
"timeConsume": 270
|
"timeConsume": 16200
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 11,
|
"id": 11,
|
||||||
@@ -107,7 +107,7 @@
|
|||||||
"preposition": "9&7",
|
"preposition": "9&7",
|
||||||
"honourConsume": "40005&12000",
|
"honourConsume": "40005&12000",
|
||||||
"fundConsume": 3000,
|
"fundConsume": 3000,
|
||||||
"timeConsume": 530
|
"timeConsume": 31800
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 12,
|
"id": 12,
|
||||||
@@ -117,7 +117,7 @@
|
|||||||
"preposition": "9&8",
|
"preposition": "9&8",
|
||||||
"honourConsume": "40005&27000",
|
"honourConsume": "40005&27000",
|
||||||
"fundConsume": 6000,
|
"fundConsume": 6000,
|
||||||
"timeConsume": 1200
|
"timeConsume": 72000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 13,
|
"id": 13,
|
||||||
@@ -137,7 +137,7 @@
|
|||||||
"preposition": "13&10",
|
"preposition": "13&10",
|
||||||
"honourConsume": "40005&7500",
|
"honourConsume": "40005&7500",
|
||||||
"fundConsume": 2000,
|
"fundConsume": 2000,
|
||||||
"timeConsume": 270
|
"timeConsume": 16200
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 15,
|
"id": 15,
|
||||||
@@ -147,7 +147,7 @@
|
|||||||
"preposition": "13&11",
|
"preposition": "13&11",
|
||||||
"honourConsume": "40005&15000",
|
"honourConsume": "40005&15000",
|
||||||
"fundConsume": 4000,
|
"fundConsume": 4000,
|
||||||
"timeConsume": 530
|
"timeConsume": 31800
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 16,
|
"id": 16,
|
||||||
@@ -157,7 +157,7 @@
|
|||||||
"preposition": "13&12",
|
"preposition": "13&12",
|
||||||
"honourConsume": "40005&33750",
|
"honourConsume": "40005&33750",
|
||||||
"fundConsume": 8000,
|
"fundConsume": 8000,
|
||||||
"timeConsume": 1200
|
"timeConsume": 72000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 17,
|
"id": 17,
|
||||||
@@ -177,7 +177,7 @@
|
|||||||
"preposition": "17&14",
|
"preposition": "17&14",
|
||||||
"honourConsume": "40005&9000",
|
"honourConsume": "40005&9000",
|
||||||
"fundConsume": 2500,
|
"fundConsume": 2500,
|
||||||
"timeConsume": 270
|
"timeConsume": 16200
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 19,
|
"id": 19,
|
||||||
@@ -187,7 +187,7 @@
|
|||||||
"preposition": "17&15",
|
"preposition": "17&15",
|
||||||
"honourConsume": "40005&18000",
|
"honourConsume": "40005&18000",
|
||||||
"fundConsume": 5000,
|
"fundConsume": 5000,
|
||||||
"timeConsume": 530
|
"timeConsume": 31800
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 20,
|
"id": 20,
|
||||||
@@ -197,7 +197,7 @@
|
|||||||
"preposition": "17&16",
|
"preposition": "17&16",
|
||||||
"honourConsume": "40005&40500",
|
"honourConsume": "40005&40500",
|
||||||
"fundConsume": 10000,
|
"fundConsume": 10000,
|
||||||
"timeConsume": 1200
|
"timeConsume": 72000
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 21,
|
"id": 21,
|
||||||
@@ -217,7 +217,7 @@
|
|||||||
"preposition": "21&18",
|
"preposition": "21&18",
|
||||||
"honourConsume": "40005&10500",
|
"honourConsume": "40005&10500",
|
||||||
"fundConsume": 3000,
|
"fundConsume": 3000,
|
||||||
"timeConsume": 270
|
"timeConsume": 16200
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 23,
|
"id": 23,
|
||||||
@@ -227,7 +227,7 @@
|
|||||||
"preposition": "21&19",
|
"preposition": "21&19",
|
||||||
"honourConsume": "40005&21000",
|
"honourConsume": "40005&21000",
|
||||||
"fundConsume": 6000,
|
"fundConsume": 6000,
|
||||||
"timeConsume": 530
|
"timeConsume": 31800
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 24,
|
"id": 24,
|
||||||
@@ -237,6 +237,6 @@
|
|||||||
"preposition": "21&20",
|
"preposition": "21&20",
|
||||||
"honourConsume": "40005&47250",
|
"honourConsume": "40005&47250",
|
||||||
"fundConsume": 12000,
|
"fundConsume": 12000,
|
||||||
"timeConsume": 1200
|
"timeConsume": 72000
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"id": 1,
|
"id": 1,
|
||||||
|
"id_1": 1,
|
||||||
"name": "试炼1-初出茅庐",
|
"name": "试炼1-初出茅庐",
|
||||||
"count": 4,
|
"count": 4,
|
||||||
"heroid": "1&3&5&4",
|
"heroid": "1&3&5&4",
|
||||||
@@ -11,6 +12,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 2,
|
"id": 2,
|
||||||
|
"id_1": 2,
|
||||||
"name": "试炼2-过关斩将",
|
"name": "试炼2-过关斩将",
|
||||||
"count": 4,
|
"count": 4,
|
||||||
"heroid": "2&3&5&7",
|
"heroid": "2&3&5&7",
|
||||||
@@ -21,6 +23,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 3,
|
"id": 3,
|
||||||
|
"id_1": 3,
|
||||||
"name": "试炼3-黄巾起义",
|
"name": "试炼3-黄巾起义",
|
||||||
"count": 4,
|
"count": 4,
|
||||||
"heroid": "7&8&9&10",
|
"heroid": "7&8&9&10",
|
||||||
@@ -31,6 +34,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 4,
|
"id": 4,
|
||||||
|
"id_1": 4,
|
||||||
"name": "试炼4-火烧赤壁",
|
"name": "试炼4-火烧赤壁",
|
||||||
"count": 4,
|
"count": 4,
|
||||||
"heroid": "11&12&13&14",
|
"heroid": "11&12&13&14",
|
||||||
@@ -41,6 +45,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 5,
|
"id": 5,
|
||||||
|
"id_1": 5,
|
||||||
"name": "试炼5-官渡之战",
|
"name": "试炼5-官渡之战",
|
||||||
"count": 4,
|
"count": 4,
|
||||||
"heroid": "7&8&9&11",
|
"heroid": "7&8&9&11",
|
||||||
@@ -51,6 +56,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 6,
|
"id": 6,
|
||||||
|
"id_1": 6,
|
||||||
"name": "试炼6- 后起之秀",
|
"name": "试炼6- 后起之秀",
|
||||||
"count": 4,
|
"count": 4,
|
||||||
"heroid": "11&12&13&15",
|
"heroid": "11&12&13&15",
|
||||||
@@ -61,6 +67,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 7,
|
"id": 7,
|
||||||
|
"id_1": 7,
|
||||||
"name": "试炼7- 分庭抗礼",
|
"name": "试炼7- 分庭抗礼",
|
||||||
"count": 4,
|
"count": 4,
|
||||||
"heroid": "7&8&9&12",
|
"heroid": "7&8&9&12",
|
||||||
@@ -71,6 +78,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 8,
|
"id": 8,
|
||||||
|
"id_1": 8,
|
||||||
"name": "试炼8- 群雄逐鹿",
|
"name": "试炼8- 群雄逐鹿",
|
||||||
"count": 4,
|
"count": 4,
|
||||||
"heroid": "11&12&13&16",
|
"heroid": "11&12&13&16",
|
||||||
@@ -81,6 +89,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 9,
|
"id": 9,
|
||||||
|
"id_1": 9,
|
||||||
"name": "试炼9-三足鼎立",
|
"name": "试炼9-三足鼎立",
|
||||||
"count": 4,
|
"count": 4,
|
||||||
"heroid": "7&8&9&13",
|
"heroid": "7&8&9&13",
|
||||||
@@ -91,6 +100,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 10,
|
"id": 10,
|
||||||
|
"id_1": 10,
|
||||||
"name": "试炼10-封金挂印",
|
"name": "试炼10-封金挂印",
|
||||||
"count": 4,
|
"count": 4,
|
||||||
"heroid": "11&12&13&17",
|
"heroid": "11&12&13&17",
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"id": 1,
|
||||||
|
"str": "%d挑战%d难度据点【%d】失败,压制值+0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 2,
|
||||||
|
"str": "%d挑战%d难度据点【%d】成功,压制值+%d"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 3,
|
||||||
|
"str": "军团据点%d被压制成功,对应试炼宝藏已成功开启,请各位成为前往领取奖励"
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -16847,6 +16847,18 @@
|
|||||||
"spineName": "&",
|
"spineName": "&",
|
||||||
"rangeSeid": "0&"
|
"rangeSeid": "0&"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"id": 5018,
|
||||||
|
"name": "墨家拳",
|
||||||
|
"img": 1,
|
||||||
|
"type": 520,
|
||||||
|
"isShow": 1,
|
||||||
|
"gainvalue": "3&",
|
||||||
|
"maxOnlyNum": 1,
|
||||||
|
"info": "一下打三下",
|
||||||
|
"spineName": "&",
|
||||||
|
"rangeSeid": "0&"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"id": 5020,
|
"id": 5020,
|
||||||
"name": "三箭齐发1",
|
"name": "三箭齐发1",
|
||||||
@@ -17043,7 +17055,7 @@
|
|||||||
"id": 5040,
|
"id": 5040,
|
||||||
"name": "蛮劲1",
|
"name": "蛮劲1",
|
||||||
"img": 1,
|
"img": 1,
|
||||||
"type": 101,
|
"type": 102,
|
||||||
"isShow": 1,
|
"isShow": 1,
|
||||||
"gainvalue": "10&1000&18&10000",
|
"gainvalue": "10&1000&18&10000",
|
||||||
"maxOnlyNum": 1,
|
"maxOnlyNum": 1,
|
||||||
@@ -17309,9 +17321,9 @@
|
|||||||
"img": 1,
|
"img": 1,
|
||||||
"type": 254,
|
"type": 254,
|
||||||
"isShow": 1,
|
"isShow": 1,
|
||||||
"gainvalue": "3&9&2",
|
"gainvalue": "3&10&2",
|
||||||
"maxOnlyNum": 1,
|
"maxOnlyNum": 1,
|
||||||
"info": "自身周围八格内,所有吴国武将暴击率提升2%",
|
"info": "自身周围5格内,所有吴国武将暴击率提升2%",
|
||||||
"spineName": "guanghuan_huang",
|
"spineName": "guanghuan_huang",
|
||||||
"rangeSeid": "1&10&0"
|
"rangeSeid": "1&10&0"
|
||||||
},
|
},
|
||||||
@@ -17321,9 +17333,9 @@
|
|||||||
"img": 1,
|
"img": 1,
|
||||||
"type": 254,
|
"type": 254,
|
||||||
"isShow": 1,
|
"isShow": 1,
|
||||||
"gainvalue": "3&9&5",
|
"gainvalue": "3&10&5",
|
||||||
"maxOnlyNum": 1,
|
"maxOnlyNum": 1,
|
||||||
"info": "自身周围八格内,所有吴国武将暴击率提升5%",
|
"info": "自身周围5格内,所有吴国武将暴击率提升5%",
|
||||||
"spineName": "guanghuan_huang",
|
"spineName": "guanghuan_huang",
|
||||||
"rangeSeid": "1&10&0"
|
"rangeSeid": "1&10&0"
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user