diff --git a/game-server/app/servers/guild/handler/guildRefineHandler.ts b/game-server/app/servers/guild/handler/guildRefineHandler.ts index f02b708e9..87016a628 100644 --- a/game-server/app/servers/guild/handler/guildRefineHandler.ts +++ b/game-server/app/servers/guild/handler/guildRefineHandler.ts @@ -3,7 +3,7 @@ import { UserGuildModel } from '../../../db/UserGuild'; import { resResult } from '../../../pubUtils/util'; import { STATUS, GUILD_OPERATE, TASK_TYPE, ITEM_CHANGE_REASON, ITID, CONSUME_TYPE } from '../../../consts'; import { GuildRefineModel } from '../../../db/GuildRefine'; -import { getArmyDevelopConsumeById, getGoodById } from '../../../pubUtils/data'; +import { gameData, getArmyDevelopConsumeById, getGoodById } from '../../../pubUtils/data'; import { nowSeconds } from '../../../pubUtils/timeUtil'; import { handleCost, addItems, checkGoods } from '../../../services/rewardService'; import { GuildModel } from '../../../db/Guild'; @@ -11,10 +11,11 @@ import { findIndex, findWhere } from 'underscore'; import { lockData } from '../../../services/redLockService'; import { ARMY } from '../../../pubUtils/dicParam'; import { CURRENCY_BY_TYPE, CURRENCY_TYPE } from '../../../consts/constModules/itemConst'; -import { openGuildRefine } from '../../../services/guildRefineService'; +import { checkEquipProduceStructureLv, openGuildRefine, refreshRefinCnt } from '../../../services/guildRefineService'; import { DATA_NAME } from '../../../consts/dataName'; import { checkTask } from '../../../services/taskService'; import { guildInter } from '../../../pubUtils/interface'; +import { DicArmyDevelopConsume } from '../../../pubUtils/dictionary/DicArmyDevelopConsume'; export default function (app: Application) { new HandlerService(app, {}); @@ -37,46 +38,65 @@ export class GuildRefineHandler { if (!guildRefine) { guildRefine = await openGuildRefine(code); } - return resResult(STATUS.SUCCESS, { scienceTrees: guildRefine.scienceTrees }); + let { refineCnt } = refreshRefinCnt(userGuild); + return resResult(STATUS.SUCCESS, { scienceTrees: guildRefine.scienceTrees, refineCnt }); } /** * 炼器 * @param msg * @param session */ - async refineEquip(msg: guildInter & { pid: number }, session: BackendSession) { - let { pid, myUserGuild: userGuild } = msg; + async refine(msg: guildInter & { id: number, count: number }, session: BackendSession) { + let { id, count, myUserGuild: userGuild } = msg; const roleId: string = session.get('roleId'); const sid: string = session.get('sid'); const roleName: string = session.get('roleName'); - let pieceInfo = getGoodById(pid); + let dicGoods = gameData.goods.get(id); + if(!dicGoods) return resResult(STATUS.DIC_DATA_NOT_FOUND); + let dicItid = ITID.get(dicGoods.itid); + console.log('####', dicItid.type, CONSUME_TYPE.DRAWING) + if(!dicItid || dicItid.type != CONSUME_TYPE.DRAWING) return resResult(STATUS.GUILD_CANNOT_REFINE_THIS); + let { guildCode: code } = userGuild; - let { scienceTrees } = await GuildRefineModel.getRefine(code); - let findDevelopConsume; - //判断是否可以炼该兵器 - for (let scienceTree of scienceTrees) { - if (scienceTree.endTime < nowSeconds()) { - let developConsume = getArmyDevelopConsumeById(scienceTree.id); - let dicItid = ITID.get(pieceInfo.itid); - if (developConsume.quality >= pieceInfo.quality && (dicItid.type != CONSUME_TYPE.PIECE || (dicItid.type == CONSUME_TYPE.PIECE && pieceInfo.equipLvl >= developConsume.starLevel))) { - findDevelopConsume = developConsume; - break; - } + let guildRefine = await GuildRefineModel.getRefine(code); + if(!guildRefine) return resResult(STATUS.GUILD_PERSITION_TREE_NOT_LIGHT); + let { scienceTrees } = guildRefine; + let dicDevelopConsume: DicArmyDevelopConsume; + for(let scienceTree of scienceTrees) { + console.log('####', scienceTree.endTime) + if(scienceTree.endTime && scienceTree.endTime >= nowSeconds()) continue; // 没有炼完 + let _dicDevelopConsume = getArmyDevelopConsumeById(scienceTree.id); + console.log('####', _dicDevelopConsume.quality, dicGoods.quality) + if(_dicDevelopConsume.quality != dicGoods.quality) continue; // 品质错误 + if(!dicDevelopConsume || dicDevelopConsume.qualityLevel < _dicDevelopConsume.qualityLevel) { // 选择等级最高的 + dicDevelopConsume = _dicDevelopConsume; } } - if (!findDevelopConsume) - return resResult(STATUS.GUILD_NOT_REFINE_THE_EQUIP); - let result = await handleCost(roleId, sid, findDevelopConsume.honourConsume, ITEM_CHANGE_REASON.REFINE_EQUIP); + if(!dicDevelopConsume) return resResult(STATUS.GUILD_CANNOT_REFINE_THIS); + + let result = await handleCost(roleId, sid, dicDevelopConsume.honourConsume, ITEM_CHANGE_REASON.REFINE_EQUIP); if (!result) return resResult(STATUS.ROLE_MATERIAL_NOT_ENOUGH); - let goods = await addItems(roleId, roleName, sid, [{ id: pid, count: 1 }], ITEM_CHANGE_REASON.REFINE_EQUIP); + + let { refineCnt, refRefineTime } = refreshRefinCnt(userGuild); + let curQualityCnt = refineCnt.find(cur => cur.quality == dicGoods.quality); + let myCnt = curQualityCnt?.count||0; + if(myCnt + count > dicDevelopConsume.max) return resResult(STATUS.GUILD_REFINE_CNT_MAX); + if(!curQualityCnt) { + refineCnt.push({ quality: dicGoods.quality, count }); + } else { + curQualityCnt.count += count; + } + await UserGuildModel.updateInfo(roleId, { refineCnt, refRefineTime }, {}); + + let goods = await addItems(roleId, roleName, sid, [{ id, count }], ITEM_CHANGE_REASON.REFINE_EQUIP); // 任务 - await checkTask(roleId, sid, TASK_TYPE.GUILD_REFINE, 1, true, { quality: pieceInfo.lvLimited }); - return resResult(STATUS.SUCCESS, { goods }); + await checkTask(roleId, sid, TASK_TYPE.GUILD_REFINE, 1, true, { quality: dicGoods.quality }); + return resResult(STATUS.SUCCESS, { goods, refineCnt }); } /** * 点亮科技树 @@ -89,14 +109,21 @@ export class GuildRefineHandler { const { myUserGuild: userGuild } = msg const { guildCode: code } = userGuild; - let developConsume = getArmyDevelopConsumeById(id); - if (!developConsume) - return resResult(STATUS.WRONG_PARMS); + let { structure } = await GuildModel.findByCode(code, serverId); + let dicDevelopConsume = getArmyDevelopConsumeById(id); + if (!dicDevelopConsume) return resResult(STATUS.WRONG_PARMS); + let res: any = await lockData(serverId, DATA_NAME.GUILD_REFINE, code);//加锁 - if (!!res.err) - return resResult(STATUS.REDLOCK_ERR); + if (!!res.err) return resResult(STATUS.REDLOCK_ERR); + + if(!checkEquipProduceStructureLv(structure, id)) { + res.releaseCallback(); + return resResult(STATUS.GUILD_EQUIP_PRODUCE_LV_NOT_ENOUGH); + } + let guildRefine = await GuildRefineModel.getRefine(code); let nowTime = nowSeconds(); + for (let scienceTree of guildRefine.scienceTrees) { if (scienceTree.id == id) {//检查是否点亮过 res.releaseCallback(); @@ -109,20 +136,20 @@ export class GuildRefineHandler { } } - for (let prePosition of developConsume.prePositions) { - let scienceTree = findWhere(guildRefine.scienceTrees, { id: prePosition }); - if (!scienceTree || scienceTree.endTime > nowTime) { + for (let prePosition of dicDevelopConsume.prePositions) { + let preScieceTree = guildRefine.scienceTrees.find(cur => cur.id == prePosition); + if (!preScieceTree || preScieceTree.endTime > nowTime) { res.releaseCallback(); return resResult(STATUS.GUILD_PERSITION_TREE_NOT_LIGHT);//前置科技树未点亮 } } //点亮消耗 - const costResult = await GuildModel.costFund(code, developConsume.fundConsume); + const costResult = await GuildModel.costFund(code, dicDevelopConsume.fundConsume); if (!costResult) { res.releaseCallback(); return resResult(STATUS.GUILD_FUND_NOT_ENOUGH); } - let scienceTree = { id, endTime: nowTime + developConsume.timeConsume, assistRoleIds: [] } + let scienceTree = { id, endTime: nowTime + dicDevelopConsume.timeConsume, assistRoleIds: [] } let { scienceTrees } = await GuildRefineModel.pushRefine(code, scienceTree); res.releaseCallback(); return resResult(STATUS.SUCCESS, { scienceTrees }); diff --git a/game-server/app/servers/guild/handler/wishPoolHandler.ts b/game-server/app/servers/guild/handler/wishPoolHandler.ts index f2b09549d..29a6d53ed 100644 --- a/game-server/app/servers/guild/handler/wishPoolHandler.ts +++ b/game-server/app/servers/guild/handler/wishPoolHandler.ts @@ -65,7 +65,7 @@ export class WishPoolHandler { let { structure } = await GuildModel.findGuild(code, serverId, 'structure'); let { lv } = findWhere(structure, {id: GUILD_STRUCTURE.WISH_POOL}); - let { wishGoodsEquips, wishGoodsHeros } = getArmyWishPoolBaseByLv(lv); + let { wishgoodsDrawings, wishGoodsHeros } = getArmyWishPoolBaseByLv(lv); let len = 0; wishGoods.map(({type: resType})=>{ if (resType == type) @@ -78,10 +78,10 @@ export class WishPoolHandler { if (len >= ARMY.ARMY_WISH_TIMES) //今日已经许愿过 return resResult(STATUS.HAS_REACH_WISH_COUNT_LIMIT); if (type == 1) { - let wishGoodsEquip = findWhere(wishGoodsEquips, { quality: goodInfo.quality}); - if (!wishGoodsEquip) + let wishGoodsDrawing = findWhere(wishgoodsDrawings, { quality: goodInfo.quality}); + if (!wishGoodsDrawing) return resResult(STATUS.NOT_WISH_THE_QUALITY_GOODS); - count = wishGoodsEquip.count; + count = wishGoodsDrawing.count; } else { let wishGoodsHero = findWhere(wishGoodsHeros, { quality: goodInfo.quality}); if (!wishGoodsHero) diff --git a/game-server/app/servers/role/handler/equipHandler.ts b/game-server/app/servers/role/handler/equipHandler.ts index 1ff2dbab9..7c1b82b0d 100644 --- a/game-server/app/servers/role/handler/equipHandler.ts +++ b/game-server/app/servers/role/handler/equipHandler.ts @@ -613,7 +613,7 @@ export class EquipHandler { let goods: ItemInter[] = []; for (let { id, count } of origin) { - let dicGoods = getGoodById(id); + let dicGoods = gameData.goods.get(id); if (!dicGoods) return resResult(STATUS.DIC_DATA_NOT_FOUND); if (!dicGoods.decomposeItem || dicGoods.decomposeItem.length <= 0) return resResult(STATUS.CONSUME_TYPE_ERR); diff --git a/game-server/app/services/guildRefineService.ts b/game-server/app/services/guildRefineService.ts index 8523566e6..814a8dda4 100644 --- a/game-server/app/services/guildRefineService.ts +++ b/game-server/app/services/guildRefineService.ts @@ -1,11 +1,31 @@ -import { getArmyDevelopConsume } from '../pubUtils/data'; +import { gameData, getArmyDevelopConsumeById } from '../pubUtils/data'; import { ScienceTree, GuildRefineModel } from '../db/GuildRefine'; +import { UserGuildType } from '../db/UserGuild'; +import { shouldRefresh } from '../pubUtils/util'; +import { Structure } from '../db/Guild'; +import { GUILD_STRUCTURE } from '../consts'; + +export function checkEquipProduceStructureLv(structure: Structure[], developConsumeId: number) { + let curStructure = structure.find(cur => cur.id == GUILD_STRUCTURE.EQUIP_PRODUCE); + if(!curStructure) return curStructure; + + let dicStructure = gameData.equipProduceBase.get(curStructure.lv); + if(!dicStructure) return false + + let dicDevelopConsume = getArmyDevelopConsumeById(developConsumeId); + if(dicStructure.quality < dicDevelopConsume.quality) return false; + if(dicStructure.levelProduce.indexOf(dicDevelopConsume.qualityLevel) == -1) { + return false; + } + return true; +} + /** * 开启符合条件的科技树 * @param code */ export async function openGuildRefine(code: string) { - let developConsumes = getArmyDevelopConsume(); + let developConsumes = gameData.armyDevelopConsume; let scienceTrees = new Array(); developConsumes.forEach(developConsume=>{ if (developConsume.fundConsume == 0 && developConsume.timeConsume == 0) { @@ -20,3 +40,11 @@ export async function openGuildRefine(code: string) { let guildRefine = await GuildRefineModel.createScienceTree(code, scienceTrees); return guildRefine; } + +export function refreshRefinCnt(userGuild: UserGuildType) { + let { refRefineTime, refineCnt } = userGuild; + if(shouldRefresh(refRefineTime, new Date())) { + refRefineTime = new Date(), refineCnt = []; + } + return { refRefineTime, refineCnt }; +} \ No newline at end of file diff --git a/shared/consts/constModules/guildConst.ts b/shared/consts/constModules/guildConst.ts index ed3b0a32a..a961b2fc6 100644 --- a/shared/consts/constModules/guildConst.ts +++ b/shared/consts/constModules/guildConst.ts @@ -131,7 +131,7 @@ export const GUILD_ROUTE_OPERATE = [ { route: 'guild.donateHandler.donate', operate: GUILD_OPERATE.DONATE, type: GUILD_AUTH_CHECK_TYPE.CHECK_SELF }, { route: 'guild.donateHandler.receiveBox', operate: GUILD_OPERATE.DONATE, type: GUILD_AUTH_CHECK_TYPE.CHECK_SELF }, { route: 'guild.guildRefineHandler.getRefine', operate: GUILD_OPERATE.REFINE, type: GUILD_AUTH_CHECK_TYPE.CHECK_SELF }, - { route: 'guild.guildRefineHandler.refineEquip', operate: GUILD_OPERATE.REFINE, type: GUILD_AUTH_CHECK_TYPE.CHECK_SELF }, + { route: 'guild.guildRefineHandler.refine', operate: GUILD_OPERATE.REFINE, type: GUILD_AUTH_CHECK_TYPE.CHECK_SELF }, { route: 'guild.guildRefineHandler.assistRefine', operate: GUILD_OPERATE.ASSIST_REFINE, type: GUILD_AUTH_CHECK_TYPE.CHECK_SELF }, { route: 'guild.guildTrainHandler.getTrainInstance', operate: GUILD_OPERATE.TRAIN, type: GUILD_AUTH_CHECK_TYPE.CHECK_SELF }, { route: 'guild.guildTrainHandler.getTrainReports', operate: GUILD_OPERATE.TRAIN, type: GUILD_AUTH_CHECK_TYPE.CHECK_SELF }, diff --git a/shared/consts/constModules/itemConst.ts b/shared/consts/constModules/itemConst.ts index 3a60950cd..5f684788b 100644 --- a/shared/consts/constModules/itemConst.ts +++ b/shared/consts/constModules/itemConst.ts @@ -36,6 +36,7 @@ export const CONSUME_TYPE = { GIFT_PACKAGE: 14, // 礼包 AP: 15, // 回复体力道具 DICE: 16, // 骰子 + DRAWING: 17, // 图纸 }; export enum ROLE_TERAPH { @@ -127,7 +128,7 @@ const itid_array = [ { id: 53, name: '武将招募券', table: 'item', type: CONSUME_TYPE.POINT }, { id: 39, name: '时装', table: 'skin', type: CONSUME_TYPE.SKIN }, { id: 40, name: '装备碎片', table: 'item', type: CONSUME_TYPE.PIECE }, - { id: 41, name: '图纸', table: 'item', type: CONSUME_TYPE.CONSUME }, + { id: 41, name: '图纸', table: 'item', type: CONSUME_TYPE.DRAWING }, { id: 42, name: '神兵宝石', table: 'item', type: CONSUME_TYPE.JEWEL }, { id: 43, name: '宝甲宝石', table: 'item', type: CONSUME_TYPE.JEWEL }, { id: 44, name: '免冠宝石', table: 'item', type: CONSUME_TYPE.JEWEL }, diff --git a/shared/consts/statusCode.ts b/shared/consts/statusCode.ts index 4596096b8..6d59278a6 100644 --- a/shared/consts/statusCode.ts +++ b/shared/consts/statusCode.ts @@ -194,6 +194,7 @@ export const STATUS = { GUILD_PAY_CONDITION: { code: 20932, simStr: '充值金额不足' }, GUILD_USER_IS_LEADER: { code: 20933, simStr: '该成员已经是团长' }, GUILD_DONATE_LV_NOT_ENOUGH: { code: 20934, simStr: '捐献所等级不足' }, + GUILD_EQUIP_PRODUCE_LV_NOT_ENOUGH: { code: 20935, simStr: '炼器堂等级不足' }, GUILD_SCRIPT_IS_OPENED_TODAY: { code: 20950, simStr: '今日已开启过演武场' }, GUILD_SCRIPT_NOT_OPENED: { code: 20951, simStr: '演武场未开启' }, @@ -208,7 +209,7 @@ export const STATUS = { GUILD_TRAIN_LEVEL_IS_COMPLETE: { code: 20960, simStr: '试炼已经进阶' }, GUILD_BUY_TRAIN_COUNT_REACH_MAX: { code: 20961, simStr: '训练场购买挑战次数以达到上线' }, GUILD_TRAIN_IS_RESETED: { code: 20962, simStr: '军团训练场已经重置' }, - GUILD_NOT_REFINE_THE_EQUIP: { code: 20963, simStr: '军团不能研发次装备' }, + GUILD_CANNOT_REFINE_THIS: { code: 20963, simStr: '军团不能兑换此图纸' }, GUILD_LIGHT_UP_THE_SCIENCETREE: { code: 20964, simStr: '军团已经点亮此科技' }, GUILD_SCIENCETREE_IS_RUNNING: { code: 20965, simStr: '军团正在进行研发,不能点亮' }, GUILD_IS_ASSISTED_SCIENCETREE: { code: 20966, simStr: '玩家已经协助过该科技树' }, @@ -221,6 +222,7 @@ export const STATUS = { GUILD_TRAIN_BOX_IS_GOT: { code: 20973, simStr: '玩家已经领取该试炼宝箱' }, GUILD_SCRIPT_ENCOURGE_NOT_ENOUGH: { code: 20974, simStr: '鼓舞次数达到上限' }, GUILD_CANNOT_INVITE: { code: 20975, simStr: '该玩家已经加入军团或该玩家不同服' }, + GUILD_REFINE_CNT_MAX: { code: 20976, simStr: '兑换此图纸品质达到上限' }, GUILD_LOT_NOT_FOUND: { code: 21001, simStr: '拍品未找到' }, LOT_OFFER_SERIAL: { code: 21002, simStr: '不能连续出价' }, diff --git a/shared/db/Guild.ts b/shared/db/Guild.ts index 40feb8f98..3549a77ce 100644 --- a/shared/db/Guild.ts +++ b/shared/db/Guild.ts @@ -7,7 +7,7 @@ import { reduceCe } from '../pubUtils/util'; import { gameData } from '../pubUtils/data'; import { SearchGuildParam } from '../domain/backEndField/search'; -class Structure { +export class Structure { @prop({ required: true }) id: number; @prop({ required: true }) diff --git a/shared/db/UserGuild.ts b/shared/db/UserGuild.ts index bd03fb06c..2840068a4 100644 --- a/shared/db/UserGuild.ts +++ b/shared/db/UserGuild.ts @@ -28,6 +28,12 @@ class WishGood { donateNames: string[]; } +class RefineRecord { + @prop({ required: true }) + quality: number; + @prop({ required: true }) + count: number; +} @index({ roleId: 1 }) export default class UserGuild extends BaseModel { @@ -64,7 +70,7 @@ export default class UserGuild extends BaseModel { @prop({ required: true, type: Number, default: [] }) receivedActive: number[]; - @prop({ required: true, default: new Date(), select: false }) + @prop({ required: true, select: false }) refTimeDaily: Date; //练兵场 @prop({ required: true, default: 0 }) @@ -94,7 +100,8 @@ export default class UserGuild extends BaseModel { @prop({ required: true, default: 0 }) wishDntCnt: number;//今天许愿池捐献次数 - @prop({ required: true, default: new Date() }) + // 演武台 + @prop({ required: true }) refBossTime: Date; @prop({ required: true, default: 0 }) @@ -103,6 +110,13 @@ export default class UserGuild extends BaseModel { @prop({ required: true, default: 0 }) bossChallengeCnt: number;//今天挑战演舞台次数 + // 炼器堂 + @prop({ required: true, type: RefineRecord }) + refineCnt: RefineRecord[]; + + @prop({ required: true }) + refRefineTime: Date; + public static async getMyGuild(roleId: string, select?: string) { const myGuild: UserGuildType = await UserGuildModel.findOne({ roleId, status: USER_GUILD_STATUS.ON }) diff --git a/shared/pubUtils/dictionary/DicArmyDevelopConsume.ts b/shared/pubUtils/dictionary/DicArmyDevelopConsume.ts index c97906a8c..310de07ec 100644 --- a/shared/pubUtils/dictionary/DicArmyDevelopConsume.ts +++ b/shared/pubUtils/dictionary/DicArmyDevelopConsume.ts @@ -5,22 +5,30 @@ import { RewardInter } from '../interface'; const _ = require('lodash'); export interface DicArmyDevelopConsume { - + // 科技树唯一id readonly id: number; // 目标品质 readonly quality: number; - readonly starLevel: number; - readonly prePositions: Array; - readonly honourConsume: Array; + // 相同品质下细分等级 + readonly qualityLevel: number; + // 前置点需求 + readonly prePositions: number[]; + // 图纸最多张数 + readonly max: number; + // 需要的功勋 + readonly honourConsume: RewardInter[]; + // 研发需要的资金 readonly fundConsume: number; + // 研发需要的时间 readonly timeConsume: number; } const DicArmyDevelopConsumeKeys: KeysEnum = { id: true, quality: true, - starLevel: true, + qualityLevel: true, prePositions: true, + max: true, honourConsume: true, fundConsume: true, timeConsume: true diff --git a/shared/pubUtils/dictionary/DicStructure.ts b/shared/pubUtils/dictionary/DicStructure.ts index 2b32d8349..3f108ce76 100644 --- a/shared/pubUtils/dictionary/DicStructure.ts +++ b/shared/pubUtils/dictionary/DicStructure.ts @@ -30,17 +30,17 @@ export interface DicEquipProduceBase { readonly id: number; // 等级 readonly level: number; + // 可以研发的品质 + readonly quality: number; // 开启炼器及研发等级 - readonly levelProduce: number; - // 可研发的碎片的品质 - readonly qualityProduce: number[]; + readonly levelProduce: number[]; } const DicEquipProduceKeys: KeysEnum = { id: true, level: true, + quality: true, levelProduce: true, - qualityProduce: true }; // 演武台 @@ -130,7 +130,7 @@ export interface DicWishPoolBase { readonly id: number; // 等级 readonly level: number; - readonly wishGoodsEquips: Array<{quality: number, count: number}>; + readonly wishgoodsDrawings: Array<{quality: number, count: number}>; readonly wishGoodsHeros: Array<{quality: number, count: number}>; readonly consume: number; } @@ -138,7 +138,7 @@ export interface DicWishPoolBase { const DicWishPoolKeys: KeysEnum = { id: true, level: true, - wishGoodsEquips: true, + wishgoodsDrawings: true, wishGoodsHeros: true, consume: true, }; @@ -194,7 +194,7 @@ export function loadStructure() { let arrEquip = readFileAndParse(FILENAME.DIC_GUILD_EQUIP_PRODUCE_BASE); arrEquip.forEach(o => { setStructureConsume(o); - o.qualityProduce = parseNumberList(o.qualityProduce); + o.levelProduce = parseNumberList(o.levelProduce); dicEquipPriduceBase.set(o.level, _.pick(o, Object.keys(DicEquipProduceKeys))); }); arrEquip = undefined; @@ -239,9 +239,9 @@ export function loadStructure() { let arrWishPool = readFileAndParse(FILENAME.DIC_GUILD_WISH_POOL_BASE); arrWishPool.forEach(o => { setStructureConsume(o); - o.wishGoodsEquips = o.wishgoodsEquip.split('|').map(wishGoodsEquip=>{ - let wishGoodsEquips = wishGoodsEquip.split('&'); - return {quality: parseInt(wishGoodsEquips[0]), count: parseInt(wishGoodsEquips[1])}; + o.wishgoodsDrawings = o.wishgoodsDrawing.split('|').map(wishgoodsDrawing=>{ + let wishgoodsDrawings = wishgoodsDrawing.split('&'); + return {quality: parseInt(wishgoodsDrawings[0]), count: parseInt(wishgoodsDrawings[1])}; }); o.wishGoodsHeros = o.wishgoodsHero.split('|').map(wishGoodsHero=>{ let wishGoodsHeros = wishGoodsHero.split('&'); diff --git a/shared/resource/jsons/dic_army_developmentConsume.json b/shared/resource/jsons/dic_army_developmentConsume.json index 739e3b622..96cf553e8 100644 --- a/shared/resource/jsons/dic_army_developmentConsume.json +++ b/shared/resource/jsons/dic_army_developmentConsume.json @@ -2,265 +2,151 @@ { "id": 1, "quality": 1, - "starLevel": 1, - "levelMin": 1, - "levelMax": 20, + "qualityLevel": 1, "preposition": "&", - "honourConsume": "40005&40", + "max": 1, + "honourConsume": "40005&70", "fundConsume": 0, "timeConsume": 0 }, { "id": 2, - "quality": 2, - "starLevel": 1, - "levelMin": 1, - "levelMax": 20, - "preposition": "&", + "quality": 1, + "qualityLevel": 2, + "preposition": "1&", + "max": 2, "honourConsume": "40005&70", "fundConsume": 19000, "timeConsume": 1200 }, { "id": 3, - "quality": 3, - "starLevel": 1, - "levelMin": 1, - "levelMax": 20, - "preposition": "2&", - "honourConsume": "40005&100", + "quality": 1, + "qualityLevel": 3, + "preposition": "2&3", + "max": 3, + "honourConsume": "40005&70", "fundConsume": 27000, "timeConsume": 1800 }, { "id": 4, - "quality": 4, - "starLevel": 1, - "levelMin": 1, - "levelMax": 20, - "preposition": "3&", - "honourConsume": "40005&140", + "quality": 2, + "qualityLevel": 1, + "preposition": "1&", + "max": 1, + "honourConsume": "40005&70", "fundConsume": 40000, "timeConsume": 2700 }, { "id": 5, - "quality": 1, - "starLevel": 2, - "levelMin": 21, - "levelMax": 40, - "preposition": "&", + "quality": 2, + "qualityLevel": 2, + "preposition": "2&4", + "max": 2, "honourConsume": "40005&70", - "fundConsume": 0, - "timeConsume": 0 + "fundConsume": 40000, + "timeConsume": 2700 }, { "id": 6, "quality": 2, - "starLevel": 2, - "levelMin": 21, - "levelMax": 40, - "preposition": "2&", - "honourConsume": "40005&110", + "qualityLevel": 3, + "preposition": "3&5", + "max": 3, + "honourConsume": "40005&70", "fundConsume": 31000, "timeConsume": 2700 }, { "id": 7, "quality": 3, - "starLevel": 2, - "levelMin": 21, - "levelMax": 40, - "preposition": "3&6", - "honourConsume": "40005&160", + "qualityLevel": 1, + "preposition": "4&", + "max": 1, + "honourConsume": "40005&70", "fundConsume": 45000, "timeConsume": 4800 }, { "id": 8, - "quality": 4, - "starLevel": 2, - "levelMin": 21, - "levelMax": 40, - "preposition": "4&7", - "honourConsume": "40005&210", + "quality": 3, + "qualityLevel": 2, + "preposition": "5&7", + "max": 2, + "honourConsume": "40005&70", "fundConsume": 60000, "timeConsume": 7200 }, { "id": 9, - "quality": 1, - "starLevel": 3, - "levelMin": 41, - "levelMax": 60, - "preposition": "&", - "honourConsume": "40005&100", - "fundConsume": 0, - "timeConsume": 0 + "quality": 3, + "qualityLevel": 3, + "preposition": "6&8", + "max": 3, + "honourConsume": "40005&70", + "fundConsume": 40000, + "timeConsume": 2700 }, { "id": 10, - "quality": 2, - "starLevel": 3, - "levelMin": 41, - "levelMax": 60, - "preposition": "6&", - "honourConsume": "40005&170", + "quality": 4, + "qualityLevel": 1, + "preposition": "7&", + "max": 1, + "honourConsume": "40005&70", "fundConsume": 48000, "timeConsume": 5400 }, { "id": 11, - "quality": 3, - "starLevel": 3, - "levelMin": 41, - "levelMax": 60, - "preposition": "7&10", - "honourConsume": "40005&230", + "quality": 4, + "qualityLevel": 2, + "preposition": "8&10", + "max": 2, + "honourConsume": "40005&70", "fundConsume": 66000, "timeConsume": 8400 }, { "id": 12, "quality": 4, - "starLevel": 3, - "levelMin": 41, - "levelMax": 60, - "preposition": "8&11", - "honourConsume": "40005&300", + "qualityLevel": 3, + "preposition": "9&11", + "max": 3, + "honourConsume": "40005&70", "fundConsume": 86000, "timeConsume": 10800 }, { "id": 13, - "quality": 1, - "starLevel": 4, - "levelMin": 61, - "levelMax": 80, - "preposition": "&", - "honourConsume": "40005&170", - "fundConsume": 0, - "timeConsume": 0 + "quality": 5, + "qualityLevel": 1, + "preposition": "10&", + "max": 1, + "honourConsume": "40005&70", + "fundConsume": 40000, + "timeConsume": 2700 }, { "id": 14, - "quality": 2, - "starLevel": 4, - "levelMin": 61, - "levelMax": 80, - "preposition": "10&", - "honourConsume": "40005&280", + "quality": 5, + "qualityLevel": 2, + "preposition": "11&13", + "max": 2, + "honourConsume": "40005&70", "fundConsume": 84000, "timeConsume": 10800 }, { "id": 15, - "quality": 3, - "starLevel": 4, - "levelMin": 61, - "levelMax": 80, - "preposition": "11&14", - "honourConsume": "40005&400", + "quality": 5, + "qualityLevel": 3, + "preposition": "12&14", + "max": 3, + "honourConsume": "40005&70", "fundConsume": 115000, "timeConsume": 16800 - }, - { - "id": 16, - "quality": 4, - "starLevel": 4, - "levelMin": 61, - "levelMax": 80, - "preposition": "12&15", - "honourConsume": "40005&540", - "fundConsume": 150000, - "timeConsume": 25200 - }, - { - "id": 17, - "quality": 1, - "starLevel": 5, - "levelMin": 81, - "levelMax": 99, - "preposition": "&", - "honourConsume": "40005&270", - "fundConsume": 0, - "timeConsume": 0 - }, - { - "id": 18, - "quality": 2, - "starLevel": 5, - "levelMin": 81, - "levelMax": 99, - "preposition": "14&", - "honourConsume": "40005&450", - "fundConsume": 130000, - "timeConsume": 18000 - }, - { - "id": 19, - "quality": 3, - "starLevel": 5, - "levelMin": 81, - "levelMax": 99, - "preposition": "15&18", - "honourConsume": "40005&600", - "fundConsume": 184000, - "timeConsume": 28800 - }, - { - "id": 20, - "quality": 4, - "starLevel": 5, - "levelMin": 81, - "levelMax": 99, - "preposition": "16&19", - "honourConsume": "40005&900", - "fundConsume": 240000, - "timeConsume": 36000 - }, - { - "id": 21, - "quality": 1, - "starLevel": 6, - "levelMin": 100, - "levelMax": 100, - "preposition": "&", - "honourConsume": "40005&400", - "fundConsume": 0, - "timeConsume": 0 - }, - { - "id": 22, - "quality": 2, - "starLevel": 6, - "levelMin": 100, - "levelMax": 100, - "preposition": "18&", - "honourConsume": "40005&700", - "fundConsume": 190000, - "timeConsume": 32400 - }, - { - "id": 23, - "quality": 3, - "starLevel": 6, - "levelMin": 100, - "levelMax": 100, - "preposition": "19&22", - "honourConsume": "40005&1000", - "fundConsume": 280000, - "timeConsume": 46800 - }, - { - "id": 24, - "quality": 4, - "starLevel": 6, - "levelMin": 100, - "levelMax": 100, - "preposition": "20&23", - "honourConsume": "40005&1350", - "fundConsume": 380000, - "timeConsume": 64800 } ] \ No newline at end of file diff --git a/shared/resource/jsons/dic_army_equipProduceBase.json b/shared/resource/jsons/dic_army_equipProduceBase.json old mode 100755 new mode 100644 index a8757fdff..b5ec07d07 --- a/shared/resource/jsons/dic_army_equipProduceBase.json +++ b/shared/resource/jsons/dic_army_equipProduceBase.json @@ -3,9 +3,8 @@ "id": 1, "structureId": 2, "level": 1, - "starProduce": 1, - "levelProduce": 19, - "qualityProduce": "1&2&3&4", + "quality": 1, + "levelProduce": "1&2&3", "consume": 50000, "buildWords": "&", "imageName": "jttubiao_2" @@ -14,9 +13,8 @@ "id": 2, "structureId": 2, "level": 2, - "starProduce": 2, - "levelProduce": 19, - "qualityProduce": "1&2&3&4", + "quality": 2, + "levelProduce": "1&2", "consume": 125000, "buildWords": "&", "imageName": "jttubiao_2" @@ -25,9 +23,8 @@ "id": 3, "structureId": 2, "level": 3, - "starProduce": 3, - "levelProduce": 39, - "qualityProduce": "1&2", + "quality": 2, + "levelProduce": "1&2&3", "consume": 350000, "buildWords": "&", "imageName": "jttubiao_2" @@ -36,9 +33,8 @@ "id": 4, "structureId": 2, "level": 4, - "starProduce": 3, - "levelProduce": 39, - "qualityProduce": "3&4", + "quality": 3, + "levelProduce": "1&2", "consume": 800000, "buildWords": "&", "imageName": "jttubiao_2" @@ -47,9 +43,8 @@ "id": 5, "structureId": 2, "level": 5, - "starProduce": 4, - "levelProduce": 59, - "qualityProduce": "1&2", + "quality": 3, + "levelProduce": "1&2&3", "consume": 1700000, "buildWords": "&", "imageName": "jttubiao_2" @@ -58,9 +53,8 @@ "id": 6, "structureId": 2, "level": 6, - "starProduce": 4, - "levelProduce": 59, - "qualityProduce": "3&4", + "quality": 4, + "levelProduce": "1&2", "consume": 3500000, "buildWords": "&", "imageName": "jttubiao_2" @@ -69,9 +63,8 @@ "id": 7, "structureId": 2, "level": 7, - "starProduce": 5, - "levelProduce": 79, - "qualityProduce": "1&2", + "quality": 4, + "levelProduce": "1&2&3", "consume": 6125000, "buildWords": "&", "imageName": "jttubiao_2" @@ -80,9 +73,8 @@ "id": 8, "structureId": 2, "level": 8, - "starProduce": 5, - "levelProduce": 79, - "qualityProduce": "3&4", + "quality": 5, + "levelProduce": "1&", "consume": 9125000, "buildWords": "&", "imageName": "jttubiao_2" @@ -91,9 +83,8 @@ "id": 9, "structureId": 2, "level": 9, - "starProduce": 6, - "levelProduce": 99, - "qualityProduce": "1&2", + "quality": 5, + "levelProduce": "2&", "consume": 13625000, "buildWords": "&", "imageName": "jttubiao_2" @@ -102,9 +93,8 @@ "id": 10, "structureId": 2, "level": 10, - "starProduce": 6, - "levelProduce": 100, - "qualityProduce": "3&4", + "quality": 5, + "levelProduce": "3&", "consume": 99999999, "buildWords": "&", "imageName": "jttubiao_2" diff --git a/shared/resource/jsons/dic_army_wishPool.json b/shared/resource/jsons/dic_army_wishPool.json old mode 100755 new mode 100644 index 9168b6b4b..4fcbe5d73 --- a/shared/resource/jsons/dic_army_wishPool.json +++ b/shared/resource/jsons/dic_army_wishPool.json @@ -3,120 +3,100 @@ "id": 1, "structureId": 5, "level": 1, - "wishgoodsEquip": "2&2", + "wishgoodsDrawing": "2&2", "wishgoodsHero": "&", "consume": 50000, "buildWords": "&", - "imageID": "jttubiao_5", - "__EMPTY": 0, - "__EMPTY_1": 0 + "imageID": "jttubiao_5" }, { "id": 2, "structureId": 5, "level": 2, - "wishgoodsEquip": "2&2|3&2", + "wishgoodsDrawing": "2&2|3&2", "wishgoodsHero": "&", "consume": 125000, "buildWords": "&", - "imageID": "jttubiao_5", - "__EMPTY": 0, - "__EMPTY_1": 0 + "imageID": "jttubiao_5" }, { "id": 3, "structureId": 5, "level": 3, - "wishgoodsEquip": "2&2|3&2", + "wishgoodsDrawing": "2&2|3&2", "wishgoodsHero": "&", "consume": 350000, "buildWords": "&", - "imageID": "jttubiao_5", - "__EMPTY": 0, - "__EMPTY_1": 0 + "imageID": "jttubiao_5" }, { "id": 4, "structureId": 5, "level": 4, - "wishgoodsEquip": "2&2|3&2", + "wishgoodsDrawing": "2&2|3&2", "wishgoodsHero": "1&2", "consume": 800000, "buildWords": "&", - "imageID": "jttubiao_5", - "__EMPTY": 0, - "__EMPTY_1": 0 + "imageID": "jttubiao_5" }, { "id": 5, "structureId": 5, "level": 5, - "wishgoodsEquip": "2&2|3&2|4&1", + "wishgoodsDrawing": "2&2|3&2|4&1", "wishgoodsHero": "1&2", "consume": 1700000, "buildWords": "&", - "imageID": "jttubiao_5", - "__EMPTY": 0, - "__EMPTY_1": 0 + "imageID": "jttubiao_5" }, { "id": 6, "structureId": 5, "level": 6, - "wishgoodsEquip": "2&2|3&2|4&2", + "wishgoodsDrawing": "2&2|3&2|4&2", "wishgoodsHero": "1&2|2&1", "consume": 3500000, "buildWords": "&", - "imageID": "jttubiao_5", - "__EMPTY": 0, - "__EMPTY_1": 0 + "imageID": "jttubiao_5" }, { "id": 7, "structureId": 5, "level": 7, - "wishgoodsEquip": "2&4|3&2|4&2", + "wishgoodsDrawing": "2&4|3&2|4&2", "wishgoodsHero": "1&2|2&1", "consume": 6125000, "buildWords": "&", - "imageID": "jttubiao_5", - "__EMPTY": 0, - "__EMPTY_1": 0 + "imageID": "jttubiao_5" }, { "id": 8, "structureId": 5, "level": 8, - "wishgoodsEquip": "2&8|3&2|4&2", + "wishgoodsDrawing": "2&8|3&2|4&2", "wishgoodsHero": "1&2|2&1", "consume": 9125000, "buildWords": "&", - "imageID": "jttubiao_5", - "__EMPTY": 0, - "__EMPTY_1": 0 + "imageID": "jttubiao_5" }, { "id": 9, "structureId": 5, "level": 9, - "wishgoodsEquip": "2&8|3&4|4&2", + "wishgoodsDrawing": "2&8|3&4|4&2", "wishgoodsHero": "1&3|2&1|3&1", "consume": 13625000, "buildWords": "&", - "imageID": "jttubiao_5", - "__EMPTY": 0, - "__EMPTY_1": 0 + "imageID": "jttubiao_5" }, { "id": 10, "structureId": 5, "level": 10, - "wishgoodsEquip": "2&8|3&4|4&4", + "wishgoodsDrawing": "2&8|3&4|4&4", "wishgoodsHero": "1&3|2&1|3&1", "consume": 99999999, "buildWords": "&", - "imageID": "jttubiao_5", - "__EMPTY": 0, - "__EMPTY_1": 0 + "imageID": "jttubiao_5" } ] \ No newline at end of file