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

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
@@ -9,6 +9,7 @@ import { addReward, stringToConsumeParam, stringToRewardParam } from '../../../s
import { RewardParam } from '../../../domain/activityField/rewardField'; import { RewardParam } from '../../../domain/activityField/rewardField';
import { ActivityTreasureHuntTreasureShopModel } from '../../../db/ActivityTreasureHuntTreasureShop'; import { ActivityTreasureHuntTreasureShopModel } from '../../../db/ActivityTreasureHuntTreasureShop';
import { ActivityTreasureHuntFirstPageModel } from '../../../db/ActivityTreasureHuntFirstPage'; import { ActivityTreasureHuntFirstPageModel } from '../../../db/ActivityTreasureHuntFirstPage';
import { CheckMeterial } from '../../../services/role/checkMaterial';
export default function (app: Application) { export default function (app: Application) {
@@ -212,8 +213,10 @@ export class TreasureHuntHandler {
//消耗资源 //消耗资源
let consumeStr = challengeData.consume; let consumeStr = challengeData.consume;
let consume = stringToConsumeParam(consumeStr) 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(); let warId = playerData.challenge.randomGK();
@@ -29,6 +29,7 @@ import { getVipRegretCnt } from '../../../services/activity/monthlyTicketService
import { isArray, isNumber } from 'underscore'; import { isArray, isNumber } from 'underscore';
import { RewardInter } from '../../../pubUtils/interface'; import { RewardInter } from '../../../pubUtils/interface';
import { addItems } from '../../../services/role/rewardService'; import { addItems } from '../../../services/role/rewardService';
import { treasureHuntChallengeConsume } from '../../../services/activity/treasureHuntService';
export default function (app: Application) { export default function (app: Application) {
new HandlerService(app, {}); new HandlerService(app, {});
@@ -234,6 +235,10 @@ export class NormalBattleHandler {
let isFirst = await challengeNewHeroGK(serverId, roleId, activityId, pageIndex, battleId) let isFirst = await challengeNewHeroGK(serverId, roleId, activityId, pageIndex, battleId)
skipReward = !isFirst; 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 curWarStar = warStar.find(cur => cur.id == battleId);
let { newWarStars, newStar } = calculateWarStar(warStar, battleId, stars); let { newWarStars, newStar } = calculateWarStar(warStar, battleId, stars);
@@ -173,7 +173,7 @@ export function stringToRewardParam(rewardStr: string): Array<RewardParam> {
} }
//数据格式转换'类型&id&数量|类型&id&数量|' ->> Array<ItemInter> 资源消耗 //数据格式转换'类型&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 }>(); let result = new Array<{ type: number, id: number, count: number }>();
if (!rewardStr) return result; if (!rewardStr) return result;
let decodeArr = decodeArrayListStr(rewardStr); let decodeArr = decodeArrayListStr(rewardStr);
@@ -9,11 +9,12 @@ import { ServerlistModel } from '../../db/Serverlist';
import { ServerTempModel, ServerTempModelType } from '../../db/ServerTemp'; import { ServerTempModel, ServerTempModelType } from '../../db/ServerTemp';
import { TreasureHuntData } from '../../domain/activityField/treasureHuntField'; import { TreasureHuntData } from '../../domain/activityField/treasureHuntField';
import { deltaDays } from '../../pubUtils/util'; import { deltaDays } from '../../pubUtils/util';
import { addReward, stringToRewardParam } from './giftPackageService'; import { addReward, stringToConsumeParam, stringToRewardParam } from './giftPackageService';
import { RewardParam } from '../../domain/activityField/rewardField'; import { RewardParam } from '../../domain/activityField/rewardField';
import { RoleModel } from '../../db/Role'; import { RoleModel } from '../../db/Role';
import { getActivitiesByType, getActivityById } from './activityService'; import { getActivitiesByType, getActivityById } from './activityService';
import { getRoleCreateTime, getServerCreateTime } from '../redisService'; 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, code: 0,
data: Object.assign(result, { item }) 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
} }