镇念塔:支持多层碾压
This commit is contained in:
@@ -2,7 +2,7 @@ import { HeroModel, HeroType } from './../db/Hero';
|
||||
import { HangUpRecordModel } from './../db/HangUpRecord';
|
||||
import { HANG_UP_CONSTS, REDIS_KEY, TASK_TYPE, TOWER_FORBIDDEN_CHARA_TYPE, TOWER_TASK_STATUS, MAIL_TYPE, MSG_SOURCE, POP_UP_SHOP_CONDITION_TYPE } from './../consts';
|
||||
import { BattleRecordModel } from './../db/BattleRecord';
|
||||
import { TowerRecordModel } from './../db/TowerRecord';
|
||||
import { TowerRecordModel, WarStatus } from './../db/TowerRecord';
|
||||
import { RoleModel, RoleType } from './../db/Role';
|
||||
import { shouldRefresh, resResult, cal, getRandEelmWithWeight, genCode, } from '../pubUtils/util';
|
||||
import { STATUS } from '../consts/statusCode';
|
||||
@@ -48,17 +48,41 @@ export async function getTowerRecByLv(roleId: string, towerLv: number) {
|
||||
|
||||
let towerRec = await TowerRecordModel.getRecordByLv(roleId, towerLv);
|
||||
if (!towerRec) {
|
||||
const towerInfo = gameData.tower.get(towerLv);
|
||||
const { warArray } = towerInfo;
|
||||
const sts = warArray.map(id => {
|
||||
return {warId: id, status: false};
|
||||
});
|
||||
const sts = getWarStatusByLv(towerLv);
|
||||
towerRec = await TowerRecordModel.createRecord({roleId, lv: towerLv, warStatus: sts});
|
||||
// return { code: 201, data: '天梯记录异常' };
|
||||
}
|
||||
return towerRec;
|
||||
}
|
||||
|
||||
export function getTowerStatusByWarId(warId: number, warStatus: WarStatus[] = []) {
|
||||
let curWarStatus = warStatus.find(cur => cur.warId == warId);
|
||||
return curWarStatus? curWarStatus.status: false;
|
||||
}
|
||||
|
||||
export function getWarStatusByLv(towerLv: number) {
|
||||
let dicWar = gameData.tower.get(towerLv);
|
||||
if(!dicWar) return [];
|
||||
|
||||
const { warArray } = dicWar;
|
||||
return warArray.map(id => {
|
||||
return {warId: id, status: false};
|
||||
});
|
||||
}
|
||||
|
||||
export function getTowerHeroCe(warId: number, heroes: HeroType[], recHeroes: number[] = []) {
|
||||
let dicWar = gameData.war.get(warId);
|
||||
let heroNum = 0, heroesCeSum = 0;
|
||||
for(let hero of heroes) {
|
||||
if(recHeroes.indexOf(hero.hid) == -1 && !checkForbiddenChar(hero.hid, hero.job, dicWar.fobiddenCharactor)) {
|
||||
heroNum++;
|
||||
heroesCeSum += hero.ce;
|
||||
}
|
||||
if(heroNum >= dicWar.minHeroNum) break;
|
||||
}
|
||||
return heroesCeSum;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取镇念塔挂机收益
|
||||
* @param roleId
|
||||
|
||||
@@ -35,7 +35,6 @@ export function checkRouteParam(route: string, msg: any) {
|
||||
case "battle.towerBattleHandler.recHangUpRewards":
|
||||
case "battle.towerBattleHandler.getTasks":
|
||||
case "battle.towerBattleHandler.refreshTasks":
|
||||
case "battle.towerBattleHandler.skipTower":
|
||||
case "chat.chatHandler.getRecentPrivateChats":
|
||||
case "chat.chatHandler.getGroupMessages":
|
||||
case "connector.entryHandler.getData":
|
||||
@@ -736,6 +735,11 @@ export function checkRouteParam(route: string, msg: any) {
|
||||
if(!checkNaturalNumbers(msg.towerLv)) return false;
|
||||
break;
|
||||
}
|
||||
case "battle.towerBattleHandler.skipTower":
|
||||
{
|
||||
if(!checkNaturalNumbers(msg.toLv)) return false;
|
||||
break;
|
||||
}
|
||||
case "battle.towerBattleHandler.hangUpSpeedUp":
|
||||
{
|
||||
if(!checkNaturalNumbers(msg.speedUpCnt)) return false;
|
||||
|
||||
Reference in New Issue
Block a user