天梯挂机加速;天梯派遣部分新接口
fixed:
数据库类型和插入数据的用法修复
This commit is contained in:
liangtongchuan
2020-10-15 01:50:22 +08:00
parent 2b1575516f
commit 33ee71adcd
14 changed files with 380 additions and 21 deletions
+16 -8
View File
@@ -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
};
}
}