新武将:关卡

This commit is contained in:
luying
2022-08-01 19:55:11 +08:00
parent 30ab30c97d
commit e2dd6852af
5 changed files with 51 additions and 61 deletions

View File

@@ -14,6 +14,7 @@ import { getActivityById } from "../../../services/activity/activityService";
import { checkTaskInGacha } from "../../../services/task/taskService";
import { createHeroes } from "../../../services/role/createHero";
import { getGuideGachaData } from "../../../services/activity/gachaService";
import { getPlayerNewHeroGachaData } from "../../../services/activity/newHeroService";
export default function (app: Application) {
new HandlerService(app, {});
@@ -226,7 +227,12 @@ export class GachaHandler {
let dicHero = gameData.hero.get(pickHero);
if (!dicHero) return resResult(STATUS.DIC_DATA_NOT_FOUND);
let userGacha = await UserGachaModel.updateInfo(roleId, gachaId, activityId, { pickHero })
if(activityId > 0) {
let data = await getPlayerNewHeroGachaData(activityId, serverId, roleId);
if(!data.isPickHero(pickHero)) return resResult(STATUS.GACHA_CAN_NOT_PICK);
}
let userGacha = await UserGachaModel.updateInfo(roleId, gachaId, activityId, { pickHero });
return resResult(STATUS.SUCCESS, {
gachaId,

View File

@@ -42,33 +42,32 @@ export class NewHeroGiftsHandler {
* @memberof NewHeroGiftsHandler
*/
async exchangePoint(msg: { activityId: number, index: number }, session: BackendSession) {
// const { activityId, index } = msg;
// const roleId = session.get('roleId');
// const serverId = session.get('serverId');
// const sid = session.get('sid');
// const roleName = session.get('roleName');
const { activityId, index } = msg;
const roleId = session.get('roleId');
const serverId = session.get('serverId');
const sid = session.get('sid');
const roleName = session.get('roleName');
// let playerData = await getPlayerNewHeroGiftsData(activityId, serverId, roleId)
// if (!playerData) return resResult(STATUS.ACTIVITY_MISSING);
let playerData = await getPlayerNewHeroGiftsData(activityId, serverId, roleId)
if (!playerData) return resResult(STATUS.ACTIVITY_MISSING);
// let item = playerData.findItem(index);
// if (!item) {
// return resResult(STATUS.ACTIVITY_DATA_ERROR);
// }
// if (item.countMax <= item.buyCount) {
// return resResult(STATUS.ACTIVITY_MAX_COUNT);
// }
// if (item.consumePoint + playerData.consumeTotalPoint > playerData.totalPoint) {
// return resResult(STATUS.ACTIVITY_NO_POINT);
// }
// let rewardParamArr: Array<RewardParam> = stringToRewardParam(item.reward);
// let result = await addReward(roleId, roleName, sid, serverId, rewardParamArr, ITEM_CHANGE_REASON.NEW_HERO_EXCHANGE)
// await ActivityNewHeroGiftModel.addReceiveRecord(serverId, activityId, roleId, index, item.consumePoint);
// item.buyCount += 1;
// return resResult(STATUS.SUCCESS, Object.assign(result, {
// param: { activityId, index },
// item: item, consumeTotalPoint: playerData.consumeTotalPoint + item.consumePoint
// }));
let item = playerData.findItem(index);
if (!item) {
return resResult(STATUS.ACTIVITY_DATA_ERROR);
}
if (item.countMax <= item.buyCount) {
return resResult(STATUS.ACTIVITY_MAX_COUNT);
}
if (playerData.consumePoint + playerData.consumeTotalPoint > playerData.totalPoint) {
return resResult(STATUS.ACTIVITY_NO_POINT);
}
let rewardParamArr: Array<RewardParam> = stringToRewardParam(item.reward);
let result = await addReward(roleId, roleName, sid, serverId, rewardParamArr, ITEM_CHANGE_REASON.NEW_HERO_EXCHANGE)
await ActivityNewHeroGiftModel.addReceiveRecord(serverId, activityId, roleId, index, playerData.consumePoint);
item.buyCount += 1;
return resResult(STATUS.SUCCESS, Object.assign(result, {
param: { activityId, index },
item: item, consumeTotalPoint: playerData.consumeTotalPoint + playerData.consumePoint
}));
}
}