镇念塔:支持多层碾压

This commit is contained in:
luying
2022-09-19 15:15:16 +08:00
parent fafa9c2818
commit a830ae040e
5 changed files with 86 additions and 44 deletions

View File

@@ -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

View File

@@ -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;