feature:
天梯挂机加速;天梯派遣部分新接口 fixed: 数据库类型和插入数据的用法修复
This commit is contained in:
@@ -5,7 +5,7 @@ import { BattleRecordModel } from './../db/BattleRecord';
|
||||
import { TowerRecordModel } from './../db/TowerRecord';
|
||||
import { RoleModel } from './../db/Role';
|
||||
import { getTowerDataByLv } from "../util/gamedata"
|
||||
import { decodeArrayStr } from '../util/util';
|
||||
import { decodeArrayStr, shouldRefresh } from '../util/util';
|
||||
import { handleFixedReward } from './rewardService';
|
||||
|
||||
export async function checkTowerWar(roleId: string, battleId: number, heroes: Array<number>) {
|
||||
@@ -97,18 +97,26 @@ async function startHangUp(roleId: string, roleName: string) {
|
||||
await HangUpRecordModel.initRecord(roleId, roleName);
|
||||
}
|
||||
|
||||
export async function calcuHangUpReward(roleId: string) {
|
||||
let { towerLv } = await RoleModel.findByRoleId(roleId);
|
||||
export async function calcuHangUpReward(roleId: string, speedUp = false, speedUpCnt = 1, curTime = new Date()) {
|
||||
let { towerLv, hangUpSpdUpCnt, lastSpdUpTime } = await RoleModel.findByRoleId(roleId);
|
||||
let { startLv, startTime} = await HangUpRecordModel.getCurRec(roleId);
|
||||
let towerInfo = getTowerDataByLv(towerLv - 1); // towerLv 是当前层,奖励计算按照已经通过的层,即上一层
|
||||
const curTime = new Date();
|
||||
let deltaTime = curTime.getTime() - startTime.getTime();
|
||||
if (deltaTime > HANG_UP_CONSTS.MAX_TIME) deltaTime = HANG_UP_CONSTS.MAX_TIME;
|
||||
const multi = Math.floor(deltaTime / HANG_UP_CONSTS.UNIT_TIME);
|
||||
let multi = 1;
|
||||
if (speedUp) {
|
||||
if (hangUpSpdUpCnt >= speedUpCnt || shouldRefresh(lastSpdUpTime, new Date, HANG_UP_CONSTS.REFRESH_TIME, 1)) {
|
||||
multi = speedUpCnt;
|
||||
} else {
|
||||
multi = 0;
|
||||
}
|
||||
} else {
|
||||
let deltaTime = curTime.getTime() - startTime.getTime();
|
||||
if (deltaTime > HANG_UP_CONSTS.MAX_TIME) deltaTime = HANG_UP_CONSTS.MAX_TIME;
|
||||
multi = Math.floor(deltaTime / HANG_UP_CONSTS.UNIT_TIME);
|
||||
}
|
||||
return {
|
||||
endLv: towerLv - 1,
|
||||
endTime: new Date(startTime.getTime() + multi * HANG_UP_CONSTS.UNIT_TIME),
|
||||
timeReward: towerInfo.timeReward,
|
||||
multi
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user