添加主角等级升级逻辑
This commit is contained in:
@@ -170,6 +170,12 @@ export default class Role extends BaseModel {
|
||||
let role = await RoleModel.findOneAndUpdate({roleId}, {$inc: { expeditionPoint: point }}, {new: true}).lean(lean);
|
||||
return role;
|
||||
}
|
||||
|
||||
public static async levelup(roleId: string, lv: number, exp: number, lean = true) {
|
||||
console.log(lv, exp)
|
||||
let role = await RoleModel.findOneAndUpdate({roleId}, {$set: { exp, lv }}, {new: true}).lean(lean);
|
||||
return role;
|
||||
}
|
||||
}
|
||||
|
||||
export const RoleModel = getModelForClass(Role);
|
||||
|
||||
@@ -9,6 +9,7 @@ const towerTaskInfos = new Map<number, any>();
|
||||
const towerTasksByQuality = new Map<number, Array<number>>();
|
||||
const heroInfos = new Map<number, any>();
|
||||
const jobInfos = new Map<number, any>();
|
||||
const levelInfos = new Map<number, {sum: number, cur: number}>();
|
||||
|
||||
function parseWarData() {
|
||||
let result = null;
|
||||
@@ -66,6 +67,19 @@ function parseJobData() {
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function parseLevelInfo() {
|
||||
const jobFile = 'dic_zyz_kingexp';
|
||||
const levelData = gamedata['jsons'][jobFile] || [];
|
||||
let exp = 0;
|
||||
levelData.forEach(elem => {
|
||||
if (elem && elem.level) {
|
||||
exp += elem.exp;
|
||||
levelInfos.set(elem.level, { sum: exp, cur: elem.exp });
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function initData (folder: string) {
|
||||
if(!gamedata.hasOwnProperty(folder)) {
|
||||
gamedata[folder] = {};
|
||||
@@ -96,6 +110,7 @@ function parseData() {
|
||||
parseTowerTaskData();
|
||||
parseHeroData();
|
||||
parseJobData();
|
||||
parseLevelInfo();
|
||||
}
|
||||
|
||||
initData('jsons'); // 加载一般json
|
||||
@@ -151,4 +166,22 @@ export function getHeroInfoById(hid: number) {
|
||||
export function getJobInfoById(jid: number) {
|
||||
const jobInfo = jobInfos.get(jid);
|
||||
return jobInfo;
|
||||
}
|
||||
|
||||
export function getLvByExp(exp: number) {
|
||||
let curLv = 0;
|
||||
let entries = levelInfos.entries();
|
||||
for (let [lv, {sum}] of entries) {
|
||||
console.log(lv, sum)
|
||||
if(exp < sum) {
|
||||
curLv = lv; break;
|
||||
}
|
||||
}
|
||||
|
||||
return curLv;
|
||||
}
|
||||
|
||||
export function getExpByLv(lv: number) {
|
||||
console.log(lv)
|
||||
return levelInfos.get(lv);
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
[{"level":1,"exp":1000},{"level":2,"exp":4000},{"level":3,"exp":9000},{"level":4,"exp":16000},{"level":5,"exp":25000},{"level":6,"exp":36000},{"level":7,"exp":49000},{"level":8,"exp":64000},{"level":9,"exp":81000},{"level":10,"exp":100000},{"level":11,"exp":121000},{"level":12,"exp":144000},{"level":13,"exp":169000},{"level":14,"exp":196000},{"level":15,"exp":225000},{"level":16,"exp":256000},{"level":17,"exp":289000},{"level":18,"exp":324000},{"level":19,"exp":361000},{"level":20,"exp":400000},{"level":21,"exp":441000},{"level":22,"exp":484000},{"level":23,"exp":529000},{"level":24,"exp":576000},{"level":25,"exp":625000},{"level":26,"exp":676000},{"level":27,"exp":729000},{"level":28,"exp":784000},{"level":29,"exp":841000},{"level":30,"exp":900000},{"level":31,"exp":961000},{"level":32,"exp":1024000},{"level":33,"exp":1089000},{"level":34,"exp":1156000},{"level":35,"exp":1225000},{"level":36,"exp":1296000},{"level":37,"exp":1369000},{"level":38,"exp":1444000},{"level":39,"exp":1521000},{"level":40,"exp":1600000},{"level":41,"exp":1681000},{"level":42,"exp":1764000},{"level":43,"exp":1849000},{"level":44,"exp":1936000},{"level":45,"exp":2025000},{"level":46,"exp":2116000},{"level":47,"exp":2209000},{"level":48,"exp":2304000},{"level":49,"exp":2401000},{"level":50,"exp":2500000},{"level":51,"exp":2601000},{"level":52,"exp":2704000},{"level":53,"exp":2809000},{"level":54,"exp":2916000},{"level":55,"exp":3025000},{"level":56,"exp":3136000},{"level":57,"exp":3249000},{"level":58,"exp":3364000},{"level":59,"exp":3481000},{"level":60,"exp":3600000},{"level":61,"exp":3721000},{"level":62,"exp":3844000},{"level":63,"exp":3969000},{"level":64,"exp":4096000},{"level":65,"exp":4225000},{"level":66,"exp":4356000},{"level":67,"exp":4489000},{"level":68,"exp":4624000},{"level":69,"exp":4761000},{"level":70,"exp":4900000},{"level":71,"exp":5041000},{"level":72,"exp":5184000},{"level":73,"exp":5329000},{"level":74,"exp":5476000},{"level":75,"exp":5625000},{"level":76,"exp":5776000},{"level":77,"exp":5929000},{"level":78,"exp":6084000},{"level":79,"exp":6241000},{"level":80,"exp":6400000},{"level":81,"exp":6561000},{"level":82,"exp":6724000},{"level":83,"exp":6889000},{"level":84,"exp":7056000},{"level":85,"exp":7225000},{"level":86,"exp":7396000},{"level":87,"exp":7569000},{"level":88,"exp":7744000},{"level":89,"exp":7921000},{"level":90,"exp":8100000},{"level":91,"exp":8281000},{"level":92,"exp":8464000},{"level":93,"exp":8649000},{"level":94,"exp":8836000},{"level":95,"exp":9025000},{"level":96,"exp":9216000},{"level":97,"exp":9409000},{"level":98,"exp":9604000},{"level":99,"exp":9801000},{"level":100,"exp":10000000}]
|
||||
@@ -0,0 +1 @@
|
||||
[{"level":1,"exp":100},{"level":2,"exp":400},{"level":3,"exp":900},{"level":4,"exp":1600},{"level":5,"exp":2500},{"level":6,"exp":3600},{"level":7,"exp":4900},{"level":8,"exp":6400},{"level":9,"exp":8100},{"level":10,"exp":10000},{"level":11,"exp":12100},{"level":12,"exp":14400},{"level":13,"exp":16900},{"level":14,"exp":19600},{"level":15,"exp":22500},{"level":16,"exp":25600},{"level":17,"exp":28900},{"level":18,"exp":32400},{"level":19,"exp":36100},{"level":20,"exp":40000},{"level":21,"exp":44100},{"level":22,"exp":48400},{"level":23,"exp":52900},{"level":24,"exp":57600},{"level":25,"exp":62500},{"level":26,"exp":67600},{"level":27,"exp":72900},{"level":28,"exp":78400},{"level":29,"exp":84100},{"level":30,"exp":90000},{"level":31,"exp":96100},{"level":32,"exp":102400},{"level":33,"exp":108900},{"level":34,"exp":115600},{"level":35,"exp":122500},{"level":36,"exp":129600},{"level":37,"exp":136900},{"level":38,"exp":144400},{"level":39,"exp":152100},{"level":40,"exp":160000},{"level":41,"exp":168100},{"level":42,"exp":176400},{"level":43,"exp":184900},{"level":44,"exp":193600},{"level":45,"exp":202500},{"level":46,"exp":211600},{"level":47,"exp":220900},{"level":48,"exp":230400},{"level":49,"exp":240100},{"level":50,"exp":250000},{"level":51,"exp":260100},{"level":52,"exp":270400},{"level":53,"exp":280900},{"level":54,"exp":291600},{"level":55,"exp":302500},{"level":56,"exp":313600},{"level":57,"exp":324900},{"level":58,"exp":336400},{"level":59,"exp":348100},{"level":60,"exp":360000},{"level":61,"exp":372100},{"level":62,"exp":384400},{"level":63,"exp":396900},{"level":64,"exp":409600},{"level":65,"exp":422500},{"level":66,"exp":435600},{"level":67,"exp":448900},{"level":68,"exp":462400},{"level":69,"exp":476100},{"level":70,"exp":490000},{"level":71,"exp":504100},{"level":72,"exp":518400},{"level":73,"exp":532900},{"level":74,"exp":547600},{"level":75,"exp":562500},{"level":76,"exp":577600},{"level":77,"exp":592900},{"level":78,"exp":608400},{"level":79,"exp":624100},{"level":80,"exp":640000},{"level":81,"exp":656100},{"level":82,"exp":672400},{"level":83,"exp":688900},{"level":84,"exp":705600},{"level":85,"exp":722500},{"level":86,"exp":739600},{"level":87,"exp":756900},{"level":88,"exp":774400},{"level":89,"exp":792100},{"level":90,"exp":810000},{"level":91,"exp":828100},{"level":92,"exp":846400},{"level":93,"exp":864900},{"level":94,"exp":883600},{"level":95,"exp":902500},{"level":96,"exp":921600},{"level":97,"exp":940900},{"level":98,"exp":960400},{"level":99,"exp":980100},{"level":100,"exp":1000000}]
|
||||
Reference in New Issue
Block a user