🐞 fix(诸子列传): 修改分解英灵参数格式

This commit is contained in:
luying
2023-07-13 11:20:04 +08:00
parent b6cd9e6784
commit 2f47d16fc7
2 changed files with 20 additions and 8 deletions

View File

@@ -150,21 +150,26 @@ export class AuthorsBookHandler {
return resResult(STATUS.SUCCESS, { goods });
}
public async decomposeSpirit(msg: { id: number, count: number }, session: BackendSession) {
public async decomposeSpirit(msg: { spirits: { id: number, count: number }[] }, session: BackendSession) {
let roleId: string = session.get('roleId');
let sid: string = session.get('sid');
let roleName: string = session.get('roleName');
const { id, count } = msg;
let dicSpirit = gameData.spirit.get(id);
if(!dicSpirit) return resResult(STATUS.DIC_DATA_NOT_FOUND);
const { spirits = [] } = msg;
let rewards: RewardInter[] = [];
for(let { id, count } of spirits) {
let dicSpirit = gameData.spirit.get(id);
if(!dicSpirit) return resResult(STATUS.DIC_DATA_NOT_FOUND);
for(let item of dicSpirit.decomposeItem) {
rewards.push({ id: item.id, count: item.count * count });
}
}
let consumes = [{ id, count }];
let consumes = spirits;
let costResult = await handleCost(roleId, sid, consumes, ITEM_CHANGE_REASON.DECOMPOSE_SPIRIT);
if (!costResult) return resResult(STATUS.ROLE_MATERIAL_NOT_ENOUGH);
let reward = dicSpirit.decomposeItem;
let goods = await addItems(roleId, roleName, sid, reward, ITEM_CHANGE_REASON.DECOMPOSE_SPIRIT);
let goods = await addItems(roleId, roleName, sid, combineItems(rewards), ITEM_CHANGE_REASON.DECOMPOSE_SPIRIT);
return resResult(STATUS.SUCCESS, { goods });
}

View File

@@ -2024,11 +2024,18 @@ export function checkRouteParam(route: string, msg: any) {
break;
}
case "role.authorsBookHandler.buySpirit":
case "role.authorsBookHandler.decomposeSpirit":
{
if(!checkNaturalNumbers(msg.id, msg.count)) return false;
break;
}
case "role.authorsBookHandler.decomposeSpirit":
{
if(!checkNaturalArray(msg.spirits)) return false;
for(let { id, count } of msg.spirits) {
if(!checkNaturalNumbers(id, count)) return false;
}
break;
}
case 'activity.dragonBoatHandler.gameStart':
case 'activity.dragonBoatHandler.gameEnd':
{