活动:寻宝骑兵消耗位置修改
This commit is contained in:
@@ -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';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取活动数据
|
* 获取活动数据
|
||||||
@@ -357,3 +358,17 @@ export async function makeShop(roleId: string, roleName: string, sid: string, se
|
|||||||
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
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user