活动:寻宝骑兵消耗位置修改

This commit is contained in:
luying
2022-04-14 11:07:06 +08:00
parent 5c23329732
commit 4cb5db0de6
4 changed files with 27 additions and 4 deletions

View File

@@ -9,6 +9,7 @@ import { addReward, stringToConsumeParam, stringToRewardParam } from '../../../s
import { RewardParam } from '../../../domain/activityField/rewardField';
import { ActivityTreasureHuntTreasureShopModel } from '../../../db/ActivityTreasureHuntTreasureShop';
import { ActivityTreasureHuntFirstPageModel } from '../../../db/ActivityTreasureHuntFirstPage';
import { CheckMeterial } from '../../../services/role/checkMaterial';
export default function (app: Application) {
@@ -212,8 +213,10 @@ export class TreasureHuntHandler {
//消耗资源
let consumeStr = challengeData.consume;
let consume = stringToConsumeParam(consumeStr)
let resourceResult = await handleCost(roleId, sid, consume, ITEM_CHANGE_REASON.TREASURE_HUNT_CHALLENGE);
if (!resourceResult) return resResult(STATUS.ROLE_MATERIAL_NOT_ENOUGH);
let check = new CheckMeterial(roleId);
let isEnough = await check.decrease(consume);
if (!isEnough) return resResult(STATUS.ROLE_MATERIAL_NOT_ENOUGH);
let warId = playerData.challenge.randomGK();

View File

@@ -29,6 +29,7 @@ import { getVipRegretCnt } from '../../../services/activity/monthlyTicketService
import { isArray, isNumber } from 'underscore';
import { RewardInter } from '../../../pubUtils/interface';
import { addItems } from '../../../services/role/rewardService';
import { treasureHuntChallengeConsume } from '../../../services/activity/treasureHuntService';
export default function (app: Application) {
new HandlerService(app, {});
@@ -234,6 +235,10 @@ export class NormalBattleHandler {
let isFirst = await challengeNewHeroGK(serverId, roleId, activityId, pageIndex, battleId)
skipReward = !isFirst;
}
} else if (warInfo.warType == WAR_TYPE.ACT_TREASURE_HUNT) {
if(isSuccess) {
await treasureHuntChallengeConsume(roleId, sid, activityId);
}
}
let curWarStar = warStar.find(cur => cur.id == battleId);
let { newWarStars, newStar } = calculateWarStar(warStar, battleId, stars);

View File

@@ -173,7 +173,7 @@ export function stringToRewardParam(rewardStr: string): Array<RewardParam> {
}
//数据格式转换'类型&id&数量|类型&id&数量|' ->> Array<ItemInter> 资源消耗
export function stringToConsumeParam(rewardStr: string): Array<ItemInter> {
export function stringToConsumeParam(rewardStr: string) {
let result = new Array<{ type: number, id: number, count: number }>();
if (!rewardStr) return result;
let decodeArr = decodeArrayListStr(rewardStr);

View File

@@ -9,11 +9,12 @@ import { ServerlistModel } from '../../db/Serverlist';
import { ServerTempModel, ServerTempModelType } from '../../db/ServerTemp';
import { TreasureHuntData } from '../../domain/activityField/treasureHuntField';
import { deltaDays } from '../../pubUtils/util';
import { addReward, stringToRewardParam } from './giftPackageService';
import { addReward, stringToConsumeParam, stringToRewardParam } from './giftPackageService';
import { RewardParam } from '../../domain/activityField/rewardField';
import { RoleModel } from '../../db/Role';
import { getActivitiesByType, getActivityById } from './activityService';
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
import { handleCost } from '../role/rewardService';
/**
* 获取活动数据
@@ -356,4 +357,18 @@ export async function makeShop(roleId: string, roleName: string, sid: string, se
code: 0,
data: Object.assign(result, { item })
}
}
export async function treasureHuntChallengeConsume(roleId: string, sid: string, activityId: number) {
let activityData: ActivityModelType = await getActivityById(activityId);
let playerData = new TreasureHuntData(activityData, 0, 0);
let challengeData = playerData.challenge;
//消耗资源
let consumeStr = challengeData.consume;
let consume = stringToConsumeParam(consumeStr)
let resourceResult = await handleCost(roleId, sid, consume, ITEM_CHANGE_REASON.TREASURE_HUNT_CHALLENGE);
if (!resourceResult) return false;
return true
}