寻宝:协助次数&匹配范围修改

This commit is contained in:
luying
2022-02-17 20:01:57 +08:00
parent 41e0f3a457
commit c87f50ced0
14 changed files with 205 additions and 354 deletions

View File

@@ -143,9 +143,9 @@ export default class ComBattleTeam extends BaseModel {
@prop({ required: true })
blueprtId: number;
// 藏宝图品
// 藏宝图品阶,用来匹配
@prop({ required: true })
quality: number;
lv: number;
// 战斗状态 0未开始1已开始2胜利3失败
@prop({ required: true, default: 0 })
@@ -166,10 +166,6 @@ export default class ComBattleTeam extends BaseModel {
@prop({ required: true, default: 1 })
roleCnt: number;
// 藏宝图等级所处范围,用来匹配
@prop({ required: true, default: 1 })
lvRange: number;
// 单个 boss 血量状态
@prop({ required: false, type: BossHp, default: [] })
bossHpArr: BossHp[];
@@ -293,9 +289,9 @@ export default class ComBattleTeam extends BaseModel {
return team;
}
public static async getOtherTeamByQualityAndSt(roleId: string, qualityArr: number[], status: number, lvRange: number, ce = 0, pub = true, cntLmt = 2, lean = true) {
public static async getOtherTeamByLvAndSt(roleId: string, lv: number, status: number, ce = 0, pub = true, cntLmt = 2, lean = true) {
const curTime = new Date(Date.now() - 10 * 60 * 1000); // 10分钟之前
const team: ComBattleTeamType[] = await ComBattleTeamModel.find({quality: {$in: qualityArr}, status, lvRange, ceLimit: {$lte: ce}, pub, roleCnt: {$lte: cntLmt}, roleIds: {$nin: [roleId]}, updatedAt: {$gte: curTime}}).lean(lean);
const team: ComBattleTeamType[] = await ComBattleTeamModel.find({ lv, status, ceLimit: {$lte: ce}, pub, roleCnt: {$lte: cntLmt}, roleIds: {$nin: [roleId]}, updatedAt: {$gte: curTime}}).lean(lean);
return team;
}
@@ -314,11 +310,8 @@ export default class ComBattleTeam extends BaseModel {
return teams;
}
public static async getAssistTeamsByTime(roleId: string, qualityArr?: number[], time?: Date, isAssist?: boolean, lean = true) {
public static async getAssistTeamsByTime(roleId: string, time?: Date, isAssist?: boolean, lean = true) {
let query = {roleIds: roleId, status: {$in: [0, 1, 2]}}; // 失败不计入助战
if (qualityArr) {
query = Object.assign(query, {quality: {$in: qualityArr}});
}
if (time) {
query = Object.assign(query, {createdAt: {$gte: time}});
}

View File

@@ -3,7 +3,7 @@ import { index, getModelForClass, prop, DocumentType } from '@typegoose/typegoos
export class ScienceTree {
@prop({ required: true })
id: number;
id: number;
@prop({ required: true })
endTime: number;//科技树研发成功结束事件,时间戳,小于当前时间,说明开发完成
@prop({ required: true, default: [], type: String, _id: false})

View File

@@ -1,2 +1,29 @@
import { ComBattleTeamParam } from './../../db/ComBattleTeam';
export type MemComBtlTeam = ComBattleTeamParam & { bossCurHp: number; curRnd: number; bossHp: number };
import { COM_TEAM_STATUS } from '../../consts';
import { getBossHpByBlueprtId, getDicBlueprtById } from '../../pubUtils/data';
import { transBossHpArr } from '../../services/battleService';
import ComBattleTeam from './../../db/ComBattleTeam';
export class MemComBtlTeam extends ComBattleTeam {
bossCurHp: number;
curRnd: number;
bossHp: number;
constructor(teamCode: string, pub: boolean, blueprtId: number, capId: string, ceLimit: number) {
super();
const { lv } = getDicBlueprtById(blueprtId);
this.lv = lv;
const { bossHpSum, bossHpArr } = getBossHpByBlueprtId(blueprtId);
this.bossHpArr = transBossHpArr(bossHpArr);
this.teamCode = teamCode;
this.pub = pub;
this.blueprtId = blueprtId;
this.status = COM_TEAM_STATUS.DEFAULT;
this.capId = capId;
this.ceLimit = ceLimit;
this.curRnd = 0;
this.roleCnt = 1;
this.timeout = false;
this.bossCurHp = bossHpSum;
this.bossHp = bossHpSum;
this.blacklist = [];
}
};

View File

@@ -1,5 +1,5 @@
import { dicHero, dicMyHeroes, loadHero } from "./dictionary/DicHero";
import { dicGoods, blueprtWithQuality, blueprtWithQualityAndStar, figureCondition, loadGoods } from "./dictionary/DicGoods";
import { dicGoods, figureCondition, loadGoods } from "./dictionary/DicGoods";
import { dicBlueprtCompose, loadBlueprtCompose } from "./dictionary/DicBlueprtCompose";
import { dicBlueprtPossibility, loadBlueprtPossibility } from "./dictionary/DicBlueprtPossibility";
import { dicDaily, loadDaily } from "./dictionary/DicDaily";
@@ -18,7 +18,7 @@ import { dicTowerTask, loadTowerTask } from "./dictionary/DicTowerTask";
import { dicWar, dicWarPvp, dicDailyWarByType, loadWar } from "./dictionary/DicWar";
import { dicWarJson, loadWarJson } from "./dictionary/DicWarJson";
import { dicXunbao, loadXunbao } from "./dictionary/DicXunbao";
import { AUCTION_TIME, CONSUME_TYPE, ITID, SPECIAL_ATTR } from "../consts";
import { AUCTION_TIME, CONSUME_TYPE, ITID } from "../consts";
import { dicFashions, dicFashionsByHeroId, loadFashions } from "./dictionary/DicFashions";
import { friendShips, friendShipHidAandIds, loadFriendShip } from "./dictionary/DicFriendShip";
import { maxFriendShipLv, dicFriendShipLevelMap, loadFriendShipLevel } from "./dictionary/DicFriendShipLevel";
@@ -101,7 +101,7 @@ import { dicServerConst, loadServerConst } from './dictionary/DicServerConst';
import { pick } from "underscore";
import _ = require("underscore");
import { dicEquipById, dicEquipIdByJobClassAndEplace, loadEquip } from "./dictionary/DicEquip";
import { dicJewel, loadJewel } from "./dictionary/DicJewel";
import { dicBlueprt, dicBlueprtByLv, dicJewel, loadJewel } from "./dictionary/DicJewel";
import { dicStone, loadStone } from './dictionary/DicStone';
import { dicEquipStrength, loadEquipStrength } from "./dictionary/DicEquipStrength";
import { dicEquipQuality, dicEquipQualityIdByEquipIdAndPoint, loadEquipQuality } from "./dictionary/DicEquipQuality";
@@ -141,9 +141,6 @@ export const gameData = {
xunbao: dicXunbao,
btlBossHpSum: new Map<number, number>(),
btlBossHp: new Map<number, Array<{ dataId: number, hp: number, actorId: number }>>(),
blueprtToWar: new Map<number, number>(),
blueprt: blueprtWithQuality,
blueprtWithQualityAndStar: blueprtWithQualityAndStar,
fashion: dicFashions,
fashionBySkinId: dicFashionsByHeroId,
friendShips: friendShips,
@@ -270,6 +267,8 @@ export const gameData = {
equipSuit: dicEquipSuit,
equipSuitByJobClass: dicEquipSuitByJobClass,
jewelCondition: dicJewelCondition,
blueprt: dicBlueprt,
blueprtByLv: dicBlueprtByLv,
};
// 在此提供一些原先在gamedata中提供的方法以便更方便获取gameData数据
@@ -362,21 +361,6 @@ export function getBossHpByWarId(warId: number) {
return { bossHpSum, bossHpArr };
}
export function getWarIdByBlueprtId(blueprtId: number) {
let warId = gameData.blueprtToWar.get(blueprtId);
if (!warId) {
let blueprt = gameData.goods.get(blueprtId);
if (blueprt) {
const { specialAttr } = blueprt;
warId = specialAttr.get(SPECIAL_ATTR.WAR_ID);
if (warId)
gameData.blueprtToWar.set(blueprtId, warId);
}
}
return warId;
}
export function getBossHpByBlueprtId(blueprtId: number) {
let { dispatchJsonId } = getWarByBlueprtId(blueprtId);
let bossHpInfo = getBossHpByWarId(dispatchJsonId);
@@ -384,8 +368,8 @@ export function getBossHpByBlueprtId(blueprtId: number) {
}
export function getWarByBlueprtId(blueprtId: number) {
let warId = getWarIdByBlueprtId(blueprtId);
return gameData.war.get(warId);
let dicBlueprt = getDicBlueprtById(blueprtId);
return gameData.war.get(dicBlueprt.gkId);
}
export function getRewardByBlueprtId(blueprtId: number) {
@@ -401,7 +385,7 @@ function parseComBtlLvRange() {
}
export function comBtlRanges() {
return Array.from(gameData.comBtlLvRange.keys());
return Array.from(gameData.blueprtByLv.keys());
}
@@ -926,6 +910,11 @@ export function getJewelConditionByLvAndSeId(lv: number, randSeId: number) {
return gameData.jewelCondition.get(`${lv}_${randSeId}`);
}
export function getDicBlueprtById(id: number) {
let jewel = gameData.blueprt.get(id);
return gameData.jewel.get(jewel);
}
// 初始加载
function initDatas() {
parseDicParam();

View File

@@ -66,7 +66,8 @@ export const ARMY = {
export const TREASURE = {
CAPTAIN_DROP: 5, // 普通套装图纸队长必掉落次数
TEAMMATE_DROP: 10, // 普通套装图纸队员必掉落次数
TREASURE_ASSIST_LIMITED: '1&1&999|2&21&999|3&41&999|4&61&999|5&81&999|6&100&999', // 协助寻宝星级开启玩家等级限制
TREASURE_ASSIST_LIMITED: '1&1&999|2&20&999|3&30&999|4&40&999|5&50&999|6&60&999|7&70&999|8&80&999|9&90&999', // 协助寻宝星级开启玩家等级限制
TREASURE_ASSIST_TIME: 6, // 协助寻宝总次数
};
export const FRIEND = {
FRIEND_CLOSEPOINT_ADD: 5, // 每赠送/领取一次增加的亲密度

View File

@@ -109,14 +109,10 @@ const DicGoodsKeys: KeysEnum<DicGoods> = {
equipLvl: true
}
export const dicGoods = new Map<number, DicGoods>();
export const blueprtWithQuality = new Map<number, Array<number>>();
export const blueprtWithQualityAndStar = new Map<string, Array<number>>();
export const figureCondition = new Map<number, { params: number[], id: number, gid: number }[]>(); // type => {params, id, gid}
export function loadGoods() {
dicGoods.clear();
blueprtWithQuality.clear();
blueprtWithQualityAndStar.clear();
figureCondition.clear();
let arr = readFileAndParse(FILENAME.DIC_GOODS);
@@ -145,15 +141,6 @@ export function loadGoods() {
o.jobLimited = parseNumberList(o.jobLimited);
o.charLimited = parseNumberList(o.charLimited);
dicGoods.set(o.good_id, _.pick(o, Object.keys(DicGoodsKeys)));
if (o.itid == IT_TYPE.BLUEPRT) {
let arr = blueprtWithQualityAndStar.get(`${o.quality}_${o.equipLvl}`) || new Array<number>();
arr.push(o.good_id);
blueprtWithQualityAndStar.set(`${o.quality}_${o.equipLvl}`, arr);
let arr2 = blueprtWithQuality.get(o.quality) || new Array<number>();
arr.push(o.good_id);
blueprtWithQuality.set(o.quality, arr2);
}
});
arr = undefined;

View File

@@ -24,10 +24,13 @@ export interface DicJewel {
readonly mapGoodId: number;
// 淬炼消耗
readonly quenchConsume: RewardInter[];
// 寻宝关卡id
readonly gkId: number;
}
export const dicJewel = new Map<number, DicJewel>();
export const dicBlueprt = new Map<number, number>();
export const dicBlueprtByLv = new Map<number, number[]>();
export function loadJewel() {
dicJewel.clear();
@@ -37,6 +40,11 @@ export function loadJewel() {
o.randomEffect = parseNumberList(o.randomEffect);
o.quenchConsume = parseGoodStr(o.quenchConsume);
dicJewel.set(o.good_id, o);
dicBlueprt.set(o.mapGoodId, o.good_id);
if(!dicBlueprtByLv.has(o.lv)) {
dicBlueprtByLv.set(o.lv, []);
}
dicBlueprtByLv.get(o.lv).push(o.mapGoodId);
});
arr = undefined;
}

View File

@@ -11,7 +11,8 @@
"randomEffect": "60031&10033&80002&80005&80026&80040&80061&80068&80054&80089",
"mapGoodId": 33001,
"quenchConsume": "31001&500",
"successConsume": "17057&100"
"successConsume": "17057&100",
"gkId": 6001
},
{
"id": 2,
@@ -25,7 +26,8 @@
"randomEffect": "60031&10033&80002&80005&80026&80040&80061&80068&80054&80089",
"mapGoodId": 33002,
"quenchConsume": "31001&500",
"successConsume": "17057&100"
"successConsume": "17057&100",
"gkId": 6002
},
{
"id": 3,
@@ -39,7 +41,8 @@
"randomEffect": "60031&10033&80002&80005&80026&80040&80061&80068&80054&80089",
"mapGoodId": 33003,
"quenchConsume": "31001&500",
"successConsume": "17057&100"
"successConsume": "17057&100",
"gkId": 6003
},
{
"id": 4,
@@ -53,7 +56,8 @@
"randomEffect": "60031&10033&80002&80005&80026&80040&80061&80068&80054&80089",
"mapGoodId": 33004,
"quenchConsume": "31001&500",
"successConsume": "17057&100"
"successConsume": "17057&100",
"gkId": 6004
},
{
"id": 5,
@@ -67,7 +71,8 @@
"randomEffect": "60031&10033&80002&80005&80026&80040&80061&80068&80054&80089",
"mapGoodId": 33005,
"quenchConsume": "31001&500",
"successConsume": "17057&100"
"successConsume": "17057&100",
"gkId": 6005
},
{
"id": 6,
@@ -81,7 +86,8 @@
"randomEffect": "60031&10033&80002&80005&80026&80040&80061&80068&80054&80089",
"mapGoodId": 33006,
"quenchConsume": "31001&500",
"successConsume": "17057&100"
"successConsume": "17057&100",
"gkId": 6006
},
{
"id": 7,
@@ -95,7 +101,8 @@
"randomEffect": "60031&10033&80002&80005&80026&80040&80061&80068&80054&80089",
"mapGoodId": 33007,
"quenchConsume": "31001&500",
"successConsume": "17057&100"
"successConsume": "17057&100",
"gkId": 6007
},
{
"id": 8,
@@ -109,7 +116,8 @@
"randomEffect": "60031&10033&80002&80005&80026&80040&80061&80068&80054&80089",
"mapGoodId": 33008,
"quenchConsume": "31001&500",
"successConsume": "17057&100"
"successConsume": "17057&100",
"gkId": 6008
},
{
"id": 9,
@@ -123,7 +131,8 @@
"randomEffect": "60031&10033&80002&80005&80026&80040&80061&80068&80054&80089",
"mapGoodId": 33009,
"quenchConsume": "31001&500",
"successConsume": "17057&100"
"successConsume": "17057&100",
"gkId": 6009
},
{
"id": 10,
@@ -137,7 +146,8 @@
"randomEffect": "60032&60034&80001&80012&80033&80047&80075",
"mapGoodId": 33010,
"quenchConsume": "31001&500",
"successConsume": "17057&100"
"successConsume": "17057&100",
"gkId": 6010
},
{
"id": 11,
@@ -151,7 +161,8 @@
"randomEffect": "60032&60034&80001&80012&80033&80047&80075",
"mapGoodId": 33011,
"quenchConsume": "31001&500",
"successConsume": "17057&100"
"successConsume": "17057&100",
"gkId": 6011
},
{
"id": 12,
@@ -165,7 +176,8 @@
"randomEffect": "60032&60034&80001&80012&80033&80047&80075",
"mapGoodId": 33012,
"quenchConsume": "31001&500",
"successConsume": "17057&100"
"successConsume": "17057&100",
"gkId": 6012
},
{
"id": 13,
@@ -179,7 +191,8 @@
"randomEffect": "60032&60034&80001&80012&80033&80047&80075",
"mapGoodId": 33013,
"quenchConsume": "31001&500",
"successConsume": "17057&100"
"successConsume": "17057&100",
"gkId": 6013
},
{
"id": 14,
@@ -193,7 +206,8 @@
"randomEffect": "60032&60034&80001&80012&80033&80047&80075",
"mapGoodId": 33014,
"quenchConsume": "31001&500",
"successConsume": "17057&100"
"successConsume": "17057&100",
"gkId": 6014
},
{
"id": 15,
@@ -207,7 +221,8 @@
"randomEffect": "60032&60034&80001&80012&80033&80047&80075",
"mapGoodId": 33015,
"quenchConsume": "31001&500",
"successConsume": "17057&100"
"successConsume": "17057&100",
"gkId": 6015
},
{
"id": 16,
@@ -221,7 +236,8 @@
"randomEffect": "60032&60034&80001&80012&80033&80047&80075",
"mapGoodId": 33016,
"quenchConsume": "31001&500",
"successConsume": "17057&100"
"successConsume": "17057&100",
"gkId": 6016
},
{
"id": 17,
@@ -235,7 +251,8 @@
"randomEffect": "60032&60034&80001&80012&80033&80047&80075",
"mapGoodId": 33017,
"quenchConsume": "31001&500",
"successConsume": "17057&100"
"successConsume": "17057&100",
"gkId": 6017
},
{
"id": 18,
@@ -249,7 +266,8 @@
"randomEffect": "60032&60034&80001&80012&80033&80047&80075",
"mapGoodId": 33018,
"quenchConsume": "31001&500",
"successConsume": "17057&100"
"successConsume": "17057&100",
"gkId": 6018
},
{
"id": 19,
@@ -263,7 +281,8 @@
"randomEffect": "60032&40035&80001&80019&80033&80047&80082",
"mapGoodId": 33019,
"quenchConsume": "31001&500",
"successConsume": "17057&100"
"successConsume": "17057&100",
"gkId": 6019
},
{
"id": 20,
@@ -277,7 +296,8 @@
"randomEffect": "60032&40035&80001&80019&80033&80047&80082",
"mapGoodId": 33020,
"quenchConsume": "31001&500",
"successConsume": "17057&100"
"successConsume": "17057&100",
"gkId": 6020
},
{
"id": 21,
@@ -291,7 +311,8 @@
"randomEffect": "60032&40035&80001&80019&80033&80047&80082",
"mapGoodId": 33021,
"quenchConsume": "31001&500",
"successConsume": "17057&100"
"successConsume": "17057&100",
"gkId": 6021
},
{
"id": 22,
@@ -305,7 +326,8 @@
"randomEffect": "60032&40035&80001&80019&80033&80047&80082",
"mapGoodId": 33022,
"quenchConsume": "31001&500",
"successConsume": "17057&100"
"successConsume": "17057&100",
"gkId": 6022
},
{
"id": 23,
@@ -319,7 +341,8 @@
"randomEffect": "60032&40035&80001&80019&80033&80047&80082",
"mapGoodId": 33023,
"quenchConsume": "31001&500",
"successConsume": "17057&100"
"successConsume": "17057&100",
"gkId": 6023
},
{
"id": 24,
@@ -333,7 +356,8 @@
"randomEffect": "60032&40035&80001&80019&80033&80047&80082",
"mapGoodId": 33024,
"quenchConsume": "31001&500",
"successConsume": "17057&100"
"successConsume": "17057&100",
"gkId": 6024
},
{
"id": 25,
@@ -347,7 +371,8 @@
"randomEffect": "60032&40035&80001&80019&80033&80047&80082",
"mapGoodId": 33025,
"quenchConsume": "31001&500",
"successConsume": "17057&100"
"successConsume": "17057&100",
"gkId": 6025
},
{
"id": 26,
@@ -361,7 +386,8 @@
"randomEffect": "60032&40035&80001&80019&80033&80047&80082",
"mapGoodId": 33026,
"quenchConsume": "31001&500",
"successConsume": "17057&100"
"successConsume": "17057&100",
"gkId": 6026
},
{
"id": 27,
@@ -375,7 +401,8 @@
"randomEffect": "60032&40035&80001&80019&80033&80047&80082",
"mapGoodId": 33027,
"quenchConsume": "31001&500",
"successConsume": "17057&100"
"successConsume": "17057&100",
"gkId": 6027
},
{
"id": 28,
@@ -389,7 +416,8 @@
"randomEffect": "60031&10033&80002&80005&80026&80040&80061&80068",
"mapGoodId": 33028,
"quenchConsume": "31001&500",
"successConsume": "17057&100"
"successConsume": "17057&100",
"gkId": 6028
},
{
"id": 29,
@@ -403,7 +431,8 @@
"randomEffect": "60031&10033&80002&80005&80026&80040&80061&80068",
"mapGoodId": 33029,
"quenchConsume": "31001&500",
"successConsume": "17057&100"
"successConsume": "17057&100",
"gkId": 6029
},
{
"id": 30,
@@ -417,7 +446,8 @@
"randomEffect": "60031&10033&80002&80005&80026&80040&80061&80068",
"mapGoodId": 33030,
"quenchConsume": "31001&500",
"successConsume": "17057&100"
"successConsume": "17057&100",
"gkId": 6030
},
{
"id": 31,
@@ -431,7 +461,8 @@
"randomEffect": "60031&10033&80002&80005&80026&80040&80061&80068",
"mapGoodId": 33031,
"quenchConsume": "31001&500",
"successConsume": "17057&100"
"successConsume": "17057&100",
"gkId": 6031
},
{
"id": 32,
@@ -445,7 +476,8 @@
"randomEffect": "60031&10033&80002&80005&80026&80040&80061&80068",
"mapGoodId": 33032,
"quenchConsume": "31001&500",
"successConsume": "17057&100"
"successConsume": "17057&100",
"gkId": 6032
},
{
"id": 33,
@@ -459,7 +491,8 @@
"randomEffect": "60031&10033&80002&80005&80026&80040&80061&80068",
"mapGoodId": 33033,
"quenchConsume": "31001&500",
"successConsume": "17057&100"
"successConsume": "17057&100",
"gkId": 6033
},
{
"id": 34,
@@ -473,7 +506,8 @@
"randomEffect": "60031&10033&80002&80005&80026&80040&80061&80068",
"mapGoodId": 33034,
"quenchConsume": "31001&500",
"successConsume": "17057&100"
"successConsume": "17057&100",
"gkId": 6034
},
{
"id": 35,
@@ -487,7 +521,8 @@
"randomEffect": "60031&10033&80002&80005&80026&80040&80061&80068",
"mapGoodId": 33035,
"quenchConsume": "31001&500",
"successConsume": "17057&100"
"successConsume": "17057&100",
"gkId": 6035
},
{
"id": 36,
@@ -501,6 +536,7 @@
"randomEffect": "60031&10033&80002&80005&80026&80040&80061&80068",
"mapGoodId": 33036,
"quenchConsume": "31001&500",
"successConsume": "17057&100"
"successConsume": "17057&100",
"gkId": 6036
}
]