天梯调整

This commit is contained in:
luying
2020-11-11 20:51:09 +08:00
parent 7ad1b703d3
commit 2b4fec3127
3 changed files with 37 additions and 24 deletions
@@ -42,6 +42,9 @@ export class TowerBattleHandler {
// return { code: 201, data: '天梯记录异常' };
}
const data = {
canHungUp: towerLv >= HANG_UP_CONSTS.ENABLE_LV,
hungUpEnableLv: HANG_UP_CONSTS.ENABLE_LV,
canSendTask: true,
curLv: towerLv,
usedHeroes: towerRec.heroes,
progress: towerRec.warStatus
@@ -74,7 +77,15 @@ export class TowerBattleHandler {
return result.resResult
}
let {timeReward, startTime, deltaTime} = result.data;
return resResult(STATUS.SUCCESS, {startTime, hangUpPassTime: deltaTime, rewards: timeReward.map(cur => {return {id: cur.gid, count: cur.count}})});
let {hangUpSpdUpCnt, lastSpdUpTime} = await RoleModel.findByRoleId(roleId);
let curTime = new Date();
if (!lastSpdUpTime || (shouldRefresh(lastSpdUpTime, curTime, HANG_UP_CONSTS.REFRESH_TIME, 1) && hangUpSpdUpCnt <= HANG_UP_CONSTS.MAX_SPD_UP_CNT)) {
hangUpSpdUpCnt = HANG_UP_CONSTS.MAX_SPD_UP_CNT;
}
let num = HANG_UP_CONSTS.MAX_SPD_UP_CNT - hangUpSpdUpCnt + 1;
let nextCostGold = calculateNum(GOLD_COST_RATIO.TOWER_HANG_SPDUP, {num}, 50);
return resResult(STATUS.SUCCESS, {startTime, hangUpPassTime: Math.floor(deltaTime/1000), hangUpSpdUpCnt, nextCostGold, rewards: timeReward.map(cur => {return {id: cur.gid, count: cur.count}})});
}
async recHangUpRewards(msg: {}, session: BackendSession) {
@@ -89,7 +100,7 @@ export class TowerBattleHandler {
const goods = await handleReward(roleId, roleName, timeReward);
await HangUpRecordModel.updateRec(roleId, roleName, endLv, endTime, needReceiveGoods);
return resResult(STATUS.SUCCESS, { endTime, hangUpPassTime: deltaTime%HANG_UP_CONSTS.MAX_TIME, ...goods });
return resResult(STATUS.SUCCESS, { endTime, hangUpPassTime: Math.floor((deltaTime%HANG_UP_CONSTS.MAX_TIME)/1000), ...goods });
}
async hangUpSpeedUp(msg: {speedUpCnt: number}, session: BackendSession) {
@@ -121,7 +132,11 @@ export class TowerBattleHandler {
}
const spdUpRec = await HangUpSpdUpRecModel.updateRec(roleId, roleName, msg.speedUpCnt, endLv, needReceiveGoods);
const goods = await handleReward(roleId, roleName, timeReward);
return resResult(STATUS.SUCCESS, { ...goods, hangUpPassTime: deltaTime, rewardLv: endLv, costGold });
hangUpSpdUpCnt -= msg.speedUpCnt;
let num = HANG_UP_CONSTS.MAX_SPD_UP_CNT - hangUpSpdUpCnt + 1;
let nextCostGold = calculateNum(GOLD_COST_RATIO.TOWER_HANG_SPDUP, {num}, 50);
return resResult(STATUS.SUCCESS, { ...goods, hangUpSpdUpCnt, nextCostGold, hangUpPassTime: Math.floor(deltaTime/1000), rewardLv: endLv, costGold });
}
getHangUpCost(originCnt: number, count: number) {
@@ -280,7 +295,7 @@ export class TowerBattleHandler {
async getTowerRank(msg: {}, session: BackendSession) {
let ranks = await RoleModel.getRank('tower', ['roleId', 'roleName', 'towerLv', 'lv', 'vLv']);
return resResult(STATUS.SUCCESS, { ranks });
return resResult(STATUS.SUCCESS, { ranks: ranks.map((cur, index) => { return {rank: index+1, ...cur} }) });
}
}