当主公经验到达满级时,关卡不再获得经验

This commit is contained in:
luying
2020-12-29 11:32:01 +08:00
parent cf05fc6bb8
commit eb6a46b18e
6 changed files with 29 additions and 61 deletions
@@ -1,7 +1,7 @@
import { HeroModel } from '../db/Hero';
import Role, { RoleModel } from '../db/Role'
import { getLvByExp, getExpByLv } from '../pubUtils/gamedata';
import { getLvByExp, getExpByLv, gameData } from '../pubUtils/data';
import { redisUserInfoUpdate } from './redisService';
import { switchOnFunc } from './funcSwitchService';
import { FUNC_OPT_TYPE } from '../consts';
@@ -10,13 +10,15 @@ import { BackendSession } from 'pinus';
export async function roleLevelup(roleId: string, kingExp: number, session: BackendSession) {
let role = await RoleModel.findByRoleId(roleId);
let {lv = 1, exp = 0} = role;
let newExp = exp + kingExp;
let canGetExp = lv < gameData.maxPlayerLv; // 当主公超过最大级后,挑战结算不再获得经验值
let newExp = canGetExp? exp + kingExp: exp;
let newLv = getLvByExp(newExp);
let nextExpObj = getExpByLv(newLv + 1);
let curExpObj = getExpByLv(newLv);
if(curExpObj && !nextExpObj && newExp > curExpObj.sum) {
newExp = curExpObj.sum;
}
// 等级超过最高级之后,经验依然可以稍微溢出一些,以备下一次提升等级
// let nextExpObj = getExpByLv(newLv + 1);
// let curExpObj = getExpByLv(newLv);
// if(curExpObj && !nextExpObj && newExp > curExpObj.sum) {
// newExp = curExpObj.sum;
// }
role = await RoleModel.levelup(roleId, newLv, newExp);
if(newLv > lv) { // 升级
@@ -37,7 +39,7 @@ export async function roleLevelup(roleId: string, kingExp: number, session: Back
actordata.push({
lv : i,
exp : startExp, // 升级前经验
getExp : getExp, // 获得的经验
getExp : getExp > 0? getExp: 0, // 获得的经验
mostExp : cur
});
}