🐞 fix(gvg): 内政帮收改为按玩家收获
This commit is contained in:
@@ -262,28 +262,27 @@ export class GVGProduceHandler {
|
||||
}
|
||||
|
||||
// 帮收
|
||||
async helpHarvest(msg: { farmId: number, fieldId: number }, session: BackendSession) {
|
||||
async helpHarvest(msg: { farmId: number, roleId: string }, session: BackendSession) {
|
||||
const roleId = session.get('roleId');
|
||||
const roleName = session.get('roleName');
|
||||
const guildCode = session.get('guildCode');
|
||||
|
||||
const { farmId, fieldId } = msg;
|
||||
const { farmId, roleId: targetRoleId } = msg;
|
||||
let { configId, period } = getGVGPeriodData();
|
||||
if(period != GVG_PERIOD.PREPARE) return resResult(STATUS.GVG_NOT_PREPARE_PERIOD);
|
||||
|
||||
let myLeague = await GVGLeagueModel.findLeagueByGuild(guildCode);
|
||||
if(!myLeague) return resResult(STATUS.GVG_LEAGUE_NOT_EXIST);
|
||||
|
||||
const resultField = await GVGLeagueFarmModel.helpHarvest(configId, myLeague.leagueCode, farmId, fieldId); // 解锁
|
||||
if(!resultField) return resResult(STATUS.GVG_CANNOT_HARVEST);
|
||||
const resultField = await GVGLeagueFarmModel.helpHarvest(configId, myLeague.leagueCode, farmId, targetRoleId); // 解锁
|
||||
if(!resultField || resultField.length == 0) return resResult(STATUS.GVG_CANNOT_HARVEST);
|
||||
|
||||
let targetRoleId = resultField.lockRoleId;
|
||||
let targetOnlineInfo = await getRoleOnlineInfo(targetRoleId);
|
||||
|
||||
// 计算产量
|
||||
const { foodSum, rewardSum, leagueRewardSum, activeSum } = await sumOutputByResults([resultField]);
|
||||
const { foodSum, rewardSum, leagueRewardSum, activeSum } = await sumOutputByResults(resultField);
|
||||
// 资源
|
||||
await addResource(myLeague.leagueCode, targetRoleId, resultField.lockRoleName, GVG_RESOURCE_TYPE.FOOD, foodSum)||{};
|
||||
await addResource(myLeague.leagueCode, targetRoleId, resultField[0].lockRoleName, GVG_RESOURCE_TYPE.FOOD, foodSum)||{};
|
||||
await sendMailByContent(MAIL_TYPE.HELP_HARVEST, targetRoleId, { sendName: roleName, goods: rewardSum });
|
||||
// 相关物品
|
||||
await addGVGReward(targetRoleId, roleName, myLeague.leagueCode, targetOnlineInfo.sid, leagueRewardSum, [], ITEM_CHANGE_REASON.HARVEST)
|
||||
|
||||
Reference in New Issue
Block a user