弹出礼包:添加两种条件

This commit is contained in:
luying
2022-08-04 17:28:35 +08:00
parent 01b63099cf
commit 0d1eb9c7b6
8 changed files with 37 additions and 23 deletions
@@ -1,17 +1,13 @@
import { Application, BackendSession, HandlerService, } from 'pinus';
import { resResult, splitString } from '../../../pubUtils/util';
import { ACTIVITY_RESOURCES_TYPE, CURRENCY_BY_TYPE, STATUS, CURRENCY_TYPE, ITEM_CHANGE_REASON, POP_UP_SHOP_CONDITION_TYPE, ACTIVITY_TYPE, DEBUG_MAGIC_WORD, PUSH_ROUTE, } from '../../../consts';
import { resResult, } from '../../../pubUtils/util';
import { STATUS, ITEM_CHANGE_REASON, POP_UP_SHOP_CONDITION_TYPE, ACTIVITY_TYPE, DEBUG_MAGIC_WORD, PUSH_ROUTE, } from '../../../consts';
import { checkPopUpCondition, getPopUpShopData, getPopUpShopDataShow } from '../../../services/activity/popUpShopService';
import { ActivityModel, ActivityModelType } from '../../../db/Activity';
import { ActivityPopUpShopModel, ActivityPopUpShopModelType } from '../../../db/ActivityPopUpShop';
import { PopUpShopData } from '../../../domain/activityField/popUpShopField';
import { ActivityPopUpShopModel } from '../../../db/ActivityPopUpShop';
import { addReward, stringToConsumeParam, stringToRewardParam } from '../../../services/activity/giftPackageService';
import { RewardParam } from '../../../domain/activityField/rewardField';
import { handleCost } from '../../../services/role/rewardService';
import moment = require('moment');
import { getActivitiesByType, getActivityById, pushActivities } from '../../../services/activity/activityService';
import { setInterval } from 'timers';
import { sendMessageToUser, sendMessageToUserWithSuc } from '../../../services/pushService';
import { sendMessageToUserWithSuc } from '../../../services/pushService';
export default function (app: Application) {
new HandlerService(app, {});
@@ -1,5 +1,5 @@
import { STATUS } from './../../../consts/statusCode';
import { HANG_UP_CONSTS, ITEM_CHANGE_REASON, MSG_SOURCE, REDIS_KEY } from './../../../consts';
import { HANG_UP_CONSTS, ITEM_CHANGE_REASON, MSG_SOURCE, POP_UP_SHOP_CONDITION_TYPE, REDIS_KEY } from './../../../consts';
import { TaskHero, TowerTaskRecModel, TowerTaskRecType } from './../../../db/TowerTaskRec';
import { HangUpSpdUpRecModel } from './../../../db/HangUpSpdUpRec';
import { HangUpRecordModel } from './../../../db/HangUpRecord';
@@ -20,6 +20,7 @@ import { RewardInter } from '../../../pubUtils/interface';
import { combineItems } from '../../../services/role/util';
import { checkTaskInSkipTower } from '../../../services/task/taskService';
import { Rank } from '../../../services/rankService';
import { checkPopUpCondition } from '../../../services/activity/popUpShopService';
export default function(app: Application) {
return new TowerBattleHandler(app);
@@ -297,12 +298,13 @@ export class TowerBattleHandler {
let sid = session.get('sid');
let role = await RoleModel.findByRoleId(roleId);
let dicTower = gameData.tower.get(role.towerLv);
let oldTowerLv = role.towerLv;
let dicTower = gameData.tower.get(oldTowerLv);
if(!dicTower.canSkip) {
return resResult(STATUS.TOWER_CANNOT_SKIP);
}
let { warStatus, heroes: recHeroes } = await getTowerRecByLv(roleId, role.towerLv);
let { warStatus, heroes: recHeroes } = await getTowerRecByLv(roleId, oldTowerLv);
// 检查战力是否足够
let heroes = await HeroModel.findByRole(roleId, [{ field: 'ce', sortBy: -1 }], 'hid ce job', true);
@@ -344,6 +346,7 @@ export class TowerBattleHandler {
let r = new Rank(REDIS_KEY.TOWER_RANK, { serverId });
await r.setRankWithRoleInfo(roleId, role.towerLv - 1, role.towerUpTime.getTime(), role);
await checkTaskInSkipTower(serverId, roleId, sid, role.towerLv);
await checkPopUpCondition(serverId, roleId, POP_UP_SHOP_CONDITION_TYPE.TOWER, { oldLv: oldTowerLv - 1, newLv: role.towerLv - 1 })
return resResult(STATUS.SUCCESS, { ...data, goods });
}
@@ -11,7 +11,7 @@ import { findIndex, pick } from 'underscore';
import { SclResultInter, SclPosInter } from '../../../pubUtils/interface';
import { SchoolModel } from '../../../db/School';
import { getTeraphStrengthenResult, getSchoolList } from '../../../services/roleService'
import { HERO_SYSTEM_TYPE, LINEUP_NUM, ROLE_SELECT, REDIS_KEY, TASK_TYPE, DEFAULT_HEROES, DEFAULT_HERO_LV, DEFAULT_ITEMS, DEFAULT_EQUIPS, DEFAULT_GOLD, DEFAULT_COIN, DEBUG_MAGIC_WORD, COUNTER, DEFAULT_LV, ITEM_CHANGE_REASON, PUSH_ROUTE } from '../../../consts';
import { HERO_SYSTEM_TYPE, LINEUP_NUM, ROLE_SELECT, REDIS_KEY, TASK_TYPE, DEFAULT_HEROES, DEFAULT_HERO_LV, DEFAULT_ITEMS, DEFAULT_EQUIPS, DEFAULT_GOLD, DEFAULT_COIN, DEBUG_MAGIC_WORD, COUNTER, DEFAULT_LV, ITEM_CHANGE_REASON, PUSH_ROUTE, POP_UP_SHOP_CONDITION_TYPE } from '../../../consts';
import { checkBattleHeroesByHid, roleLevelup } from '../../../services/normalBattleService';
import { Rank } from '../../../services/rankService';
import { updateUserInfo } from '../../../services/redisService';
@@ -28,6 +28,7 @@ import { createHeroes } from '../../../services/role/createHero';
import { calculateCeWithHero, calculateCeWithRole } from '../../../services/playerCeService';
import { sendMessageToUserWithSuc } from '../../../services/pushService';
import { GuildLeader } from '../../../domain/rank';
import { checkPopUpCondition } from '../../../services/activity/popUpShopService';
export default function (app: Application) {
new HandlerService(app, {});
@@ -100,7 +101,8 @@ export class RoleHandler {
let { curRole } = await calculateCeWithRole(HERO_SYSTEM_TYPE.TITLE, roleId, serverId, sid, update);
// 任务
await checkTask(serverId, roleId, sid, TASK_TYPE.ROLE_TITLE, { oldTitle: title, title: update.title });
await checkTask(serverId, roleId, sid, TASK_TYPE.ROLE_TITLE, { oldTitle: title, title: update.title }); // 弹出礼包
await checkPopUpCondition(serverId, roleId, POP_UP_SHOP_CONDITION_TYPE.TITLE, { oldLv: title, newLv: update.title });
return resResult(STATUS.SUCCESS, { roleId, title: curRole.title });
}
@@ -72,9 +72,9 @@ export async function checkPopUpConditionWhenGuildActivityEnd() {
let i = -1;
let interval = setInterval(async () => {
if (++i < n) {
console.log('****', i)
// console.log('****', i)
let users = allOnlineUsers.slice(i * PUSH_BATCH, (i + 1) * PUSH_BATCH - 1);
console.log('****', users)
// console.log('****', users)
for(let { serverId, roleId, sid } of users) {
await checkPopUpCondition(serverId, roleId, POP_UP_SHOP_CONDITION_TYPE.AUCTION, {}, sid);
}
+4 -1
View File
@@ -1,6 +1,6 @@
import { HeroModel, HeroType } from './../db/Hero';
import { HangUpRecordModel } from './../db/HangUpRecord';
import { HANG_UP_CONSTS, REDIS_KEY, TASK_TYPE, TOWER_FORBIDDEN_CHARA_TYPE, TOWER_TASK_STATUS, MAIL_TYPE, MSG_SOURCE } from './../consts';
import { HANG_UP_CONSTS, REDIS_KEY, TASK_TYPE, TOWER_FORBIDDEN_CHARA_TYPE, TOWER_TASK_STATUS, MAIL_TYPE, MSG_SOURCE, POP_UP_SHOP_CONDITION_TYPE } from './../consts';
import { BattleRecordModel } from './../db/BattleRecord';
import { TowerRecordModel } from './../db/TowerRecord';
import { RoleModel, RoleType } from './../db/Role';
@@ -19,6 +19,7 @@ import { DicTowerTask } from '../pubUtils/dictionary/DicTowerTask';
import * as dicParam from '../pubUtils/dicParam';
import { getVipHungupReward } from './activity/monthlyTicketService';
import { pushTowerMsg } from './sysChatService';
import { checkPopUpCondition } from './activity/popUpShopService';
/**
* 获取当前镇念塔状态
@@ -240,6 +241,8 @@ export async function towerBattleEnd(sid: string, roleId: string, serverId: numb
await checkAndStartHungUp(roleId, roleName, role.towerLv);
// 任务
await checkTask(serverId, roleId, sid, TASK_TYPE.BATTLE_TOWER_LV, { towerLv: role.towerLv - 1 });
await checkPopUpCondition(serverId, roleId, POP_UP_SHOP_CONDITION_TYPE.TOWER, { oldLv: towerLv - 1, newLv: role.towerLv - 1 })
pushTowerMsg(roleId, roleName, serverId, MSG_SOURCE.TOWER_SUC, role.towerLv - 1);
}
return {