活动:月卡权限

This commit is contained in:
luying
2022-03-09 19:47:20 +08:00
parent dafc77954b
commit f440ef2ebe
22 changed files with 295 additions and 220 deletions
@@ -6,13 +6,14 @@ import { HangUpRecordModel } from './../../../db/HangUpRecord';
import { RoleModel } from './../../../db/Role';
import { TowerRecordModel } from './../../../db/TowerRecord';
import { Application, BackendSession } from 'pinus';
import { resResult, genCode } from '../../../pubUtils/util';
import { calcuHangUpReward, checkHangUpSpdUpCnt, refreshTasks, treatTask, getRemainTime, getTowerStatus, getHungupRewards, getTasks, checkTaskRewards, getTowerTaskCostGold, getHangSpdUpCostGold, getManyHangSpdUpCostGold, getTaskStatus } from '../../../services/battleService';
import { resResult, genCode, shouldRefresh } from '../../../pubUtils/util';
import { calcuHangUpReward, refreshTasks, treatTask, getRemainTime, getTowerStatus, getHungupRewards, getTasks, checkTaskRewards, getTowerTaskCostGold, getHangSpdUpCostGold, getManyHangSpdUpCostGold, getTaskStatus } from '../../../services/battleService';
import { addItems, handleCost } from '../../../services/rewardService';
import { checkBattleHeroes } from '../../../services/normalBattleService';
import { getGoldObject } from '../../../pubUtils/itemUtils';
import { gameData } from '../../../pubUtils/data';
import * as dicParam from '../../../pubUtils/dicParam';
import { isNumber } from 'underscore';
export default function(app: Application) {
return new TowerBattleHandler(app);
@@ -56,21 +57,23 @@ export class TowerBattleHandler {
async checkHangUpRewards(msg: {}, session: BackendSession) {
let roleId = session.get('roleId');
let result = await getHungupRewards(roleId);
if(result.status == -1) {
return result.resResult;
if(!result) {
return resResult(STATUS.TOWER_HANG_UP_NOT_START);
}
return resResult(STATUS.SUCCESS, result.data);
return resResult(STATUS.SUCCESS, result);
}
async recHangUpRewards(msg: {}, session: BackendSession) {
let roleId = session.get('roleId');
let roleName = session.get('roleName');
let sid = session.get('sid');
const result = await calcuHangUpReward(roleId);
if(result.status == -1) {
return result.resResult
let role = await RoleModel.findByRoleId(roleId);
const result = await calcuHangUpReward(role);
if(!result) {
return resResult(STATUS.TOWER_HANG_UP_NOT_START);
}
let { timeReward, endLv, endTime, deltaTime, needReceiveGoods } = result.data;
let { timeReward, endLv, endTime, deltaTime, needReceiveGoods } = result;
const goods = await addItems(roleId, roleName, sid, timeReward, ITEM_CHANGE_REASON.TOWER_HUNG_UP_REWARD);
await HangUpRecordModel.updateRec(roleId, roleName, endLv, endTime, needReceiveGoods);
@@ -82,19 +85,27 @@ export class TowerBattleHandler {
let roleId = session.get('roleId');
let roleName = session.get('roleName');
let sid = session.get('sid');
if (msg.speedUpCnt <= 0) {
let { speedUpCnt } = msg;
if (!isNumber(speedUpCnt) || speedUpCnt <= 0) {
return resResult(STATUS.WRONG_PARMS);
}
const curTime = new Date();
const calResult = await calcuHangUpReward(roleId, true, msg.speedUpCnt, curTime);
if(calResult.status == -1) {
return calResult.resResult;
}
let { timeReward, endLv, deltaTime, needReceiveGoods } = calResult.data;
let result = await checkHangUpSpdUpCnt(roleId, msg.speedUpCnt, curTime);
if(result.status == -1) return result.resResult;
let {data: {hangUpSpdUpCnt, gold}} = result;
let role = await RoleModel.findByRoleId(roleId);
let { hangUpSpdUpCnt, gold, lastSpdUpTime } = role;
if (shouldRefresh(lastSpdUpTime, curTime)) {
hangUpSpdUpCnt = 0;
}
if (speedUpCnt + hangUpSpdUpCnt > dicParam.TOWER_BOOST.TOWER_BOOSTTIME) {
return resResult(STATUS.TOWER_NOT_ENOUGH_HANG_UP_TIME)
}
const calResult = await calcuHangUpReward(role, true, msg.speedUpCnt, curTime);
if(!calResult) {
return resResult(STATUS.TOWER_HANG_UP_FAILED);
}
let { timeReward, endLv, deltaTime, needReceiveGoods } = calResult;
const costGold = getManyHangSpdUpCostGold(hangUpSpdUpCnt, msg.speedUpCnt);
if(costGold > gold) {