🐞 fix(诸子列传): 修改分解英灵参数格式
This commit is contained in:
@@ -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 });
|
||||
}
|
||||
|
||||
@@ -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':
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user