活动:寻宝骑兵消耗位置修改
This commit is contained in:
@@ -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();
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
}
|
||||
Reference in New Issue
Block a user