天梯调整
This commit is contained in:
@@ -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} }) });
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,9 +10,7 @@ import { decodeArrayStr, shouldRefresh, resResult, decodeStr, cal, getRandomWith
|
||||
import { handleFixedReward } from './rewardService';
|
||||
import { STATUS } from '../consts/statusCode';
|
||||
import { HangUpSpdUpRecModel } from '../db/HangUpSpdUpRec';
|
||||
import TowerTaskRec, { TowerTaskRecModel } from '../db/TowerTaskRec';
|
||||
import { PvpDefenseModel } from '../db/PvpDefense';
|
||||
import { Document } from 'mongoose';
|
||||
import { TowerTaskRecModel } from '../db/TowerTaskRec';
|
||||
|
||||
export async function checkTowerWar(roleId: string, battleId: number, heroes: Array<number>) {
|
||||
const battleIdStr = `${battleId}`;
|
||||
@@ -83,7 +81,7 @@ export async function towerBattleEnd(channelService: ChannelService, sid: string
|
||||
let result = await handleFixedReward(roleId, roleName, reward, 1);
|
||||
towerReward = result.goods;
|
||||
}
|
||||
if (towerLv + 1 >= HANG_UP_CONSTS.ENABLE_LV) {
|
||||
if (towerLv + 1 == HANG_UP_CONSTS.ENABLE_LV) {
|
||||
await startHangUp(roleId, roleName);
|
||||
channelService.pushMessageByUids('hangUpEnable', {code: 200, data: {enable: true}}, [{uid: roleId, sid}]);
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"quality": 1,
|
||||
"reward": "31001&50|31002&100",
|
||||
"additionalReward": "10201&5|10202&10",
|
||||
"termsForAdd": "1&2&2|2&2&1|3&1&1",
|
||||
"termsForAdd": "1&8&2|2&2&1|3&1&1",
|
||||
"actorNeeded": 2,
|
||||
"completeTime": 60,
|
||||
"suitFloor": "1&",
|
||||
@@ -53,7 +53,7 @@
|
||||
"quality": 2,
|
||||
"reward": "17007&50|17008&100",
|
||||
"additionalReward": "10501&5|10502&10",
|
||||
"termsForAdd": "1&1&1|2&4&1|3&5&1",
|
||||
"termsForAdd": "1&9&1|2&4&1|3&5&1",
|
||||
"actorNeeded": 2,
|
||||
"completeTime": 60,
|
||||
"suitFloor": "1&",
|
||||
@@ -92,7 +92,7 @@
|
||||
"termsForAdd": "3&8&2",
|
||||
"actorNeeded": 3,
|
||||
"completeTime": 60,
|
||||
"suitFloor": "10&",
|
||||
"suitFloor": "5&",
|
||||
"weight": 1
|
||||
},
|
||||
{
|
||||
@@ -104,7 +104,7 @@
|
||||
"termsForAdd": "1&1&1|2&1&1|3&1&1",
|
||||
"actorNeeded": 3,
|
||||
"completeTime": 60,
|
||||
"suitFloor": "10&",
|
||||
"suitFloor": "5&",
|
||||
"weight": 1
|
||||
},
|
||||
{
|
||||
@@ -116,7 +116,7 @@
|
||||
"termsForAdd": "1&2&1|2&2&1|3&2&1",
|
||||
"actorNeeded": 3,
|
||||
"completeTime": 120,
|
||||
"suitFloor": "10&",
|
||||
"suitFloor": "5&",
|
||||
"weight": 1
|
||||
},
|
||||
{
|
||||
@@ -125,10 +125,10 @@
|
||||
"quality": 4,
|
||||
"reward": "10105&50|10201&100",
|
||||
"additionalReward": "10703&5|10704&10",
|
||||
"termsForAdd": "1&1&1|2&3&1|3&3&1",
|
||||
"termsForAdd": "1&3&1|2&3&1|3&3&1",
|
||||
"actorNeeded": 3,
|
||||
"completeTime": 120,
|
||||
"suitFloor": "10&",
|
||||
"suitFloor": "5&",
|
||||
"weight": 1
|
||||
},
|
||||
{
|
||||
@@ -137,10 +137,10 @@
|
||||
"quality": 4,
|
||||
"reward": "10202&50|10203&100",
|
||||
"additionalReward": "10705&5|12001&10",
|
||||
"termsForAdd": "1&2&1|2&4&1|3&4&1",
|
||||
"termsForAdd": "1&4&1|2&4&1|3&4&1",
|
||||
"actorNeeded": 3,
|
||||
"completeTime": 120,
|
||||
"suitFloor": "10&",
|
||||
"suitFloor": "5&",
|
||||
"weight": 1
|
||||
},
|
||||
{
|
||||
@@ -149,10 +149,10 @@
|
||||
"quality": 5,
|
||||
"reward": "10204&50|10205&100",
|
||||
"additionalReward": "12002&5|12003&10",
|
||||
"termsForAdd": "1&1&1|2&1&1|3&5&1",
|
||||
"termsForAdd": "1&5&1|2&1&1|3&5&1",
|
||||
"actorNeeded": 3,
|
||||
"completeTime": 120,
|
||||
"suitFloor": "10&",
|
||||
"suitFloor": "5&",
|
||||
"weight": 1
|
||||
},
|
||||
{
|
||||
@@ -161,10 +161,10 @@
|
||||
"quality": 5,
|
||||
"reward": "10301&50|10302&100",
|
||||
"additionalReward": "12004&5|12005&10",
|
||||
"termsForAdd": "1&2&1|2&2&1|3&6&1",
|
||||
"termsForAdd": "1&6&1|2&2&1|3&6&1",
|
||||
"actorNeeded": 3,
|
||||
"completeTime": 120,
|
||||
"suitFloor": "10&",
|
||||
"suitFloor": "5&",
|
||||
"weight": 1
|
||||
},
|
||||
{
|
||||
@@ -173,10 +173,10 @@
|
||||
"quality": 5,
|
||||
"reward": "10303&50|10304&100",
|
||||
"additionalReward": "12006&5|12007&10",
|
||||
"termsForAdd": "1&1&1|2&3&1|3&7&1",
|
||||
"termsForAdd": "1&7&1|2&3&1|3&7&1",
|
||||
"actorNeeded": 3,
|
||||
"completeTime": 120,
|
||||
"suitFloor": "10&",
|
||||
"suitFloor": "5&",
|
||||
"weight": 1
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user