添加升星等的战力计算,计算方式修改为返回余量

This commit is contained in:
luying
2020-12-12 11:04:41 +08:00
parent b411c5efe0
commit a08ce42936
7 changed files with 162 additions and 24 deletions

View File

@@ -1,6 +1,6 @@
import fs = require('fs');
import path = require('path');
import { ABI_TYPE } from '../consts/abilityConst';
import { ABI_TYPE, ABI_STAGE } from '../consts/abilityConst';
import { decodeIdCntArrayStr, getRandEelm } from './util';
import { IT_TYPE } from '../consts/consts';
@@ -30,6 +30,26 @@ const blueprtCompose = new Map<number, any>();
const fiendShips = new Map<string, any>();
const fashions = new Map<number, any>();
const fiendShipHidAandIds = new Map<number, {actorId: number, level:number}>();
interface dicStar {
id: number;
quality: number;
star: number;
advanceUpFragmentNum: number;
ceAttr: Map<number, number>
}
const heroStarList = new Map<string, dicStar>();
interface dicWake {
id: number;
quality: number;
star: number;
fragmentNum: number;
consume: string;
ceAttr: Map<number, number>
}
const heroWakeList = new Map<string, dicWake>();
function parseWarData() {
let result = null;
for (let filename of wars) {
@@ -297,6 +317,43 @@ function initData (folder: string) {
});
}
function parseHeroStar() {
const file = 'dic_zyz_hero_star';
const data = gamedata['jsons'][file] || [];
data.forEach(elem => {
if (elem.id) {
let ceAttr = new Map<number, number>();
ceAttr.set(ABI_STAGE.HP, elem.hp_up);
ceAttr.set(ABI_STAGE.ATK, elem.atk_up);
ceAttr.set(ABI_STAGE.DEF, elem.def_up);
ceAttr.set(ABI_STAGE.MDEF, elem.mdef_up);
ceAttr.set(ABI_STAGE.AGI, elem.agi_up);
ceAttr.set(ABI_STAGE.LUK, elem.luk_up);
heroStarList.set(`${elem.quality}_${elem.star}`,{ceAttr, ...elem});
}
});
}
function parseHeroWake() {
const file = 'dic_zyz_hero_wake';
const data = gamedata['jsons'][file] || [];
data.forEach(elem => {
if (elem.id) {
let ceAttr = new Map<number, number>();
ceAttr.set(ABI_STAGE.HP, elem.hp_up);
ceAttr.set(ABI_STAGE.ATK, elem.atk_up);
ceAttr.set(ABI_STAGE.DEF, elem.def_up);
ceAttr.set(ABI_STAGE.MDEF, elem.mdef_up);
ceAttr.set(ABI_STAGE.AGI, elem.agi_up);
ceAttr.set(ABI_STAGE.LUK, elem.luk_up);
heroWakeList.set(`${elem.quality}_${elem.star}`,{ceAttr, ...elem});
}
});
}
function parseData() {
parseWarData();
parseTowerData();
@@ -316,6 +373,8 @@ function parseData() {
parseFashions();
parseFiendShips();
parseFiendShipLevels();
parseHeroStar();
parseHeroWake();
}
initData('jsons'); // 加载一般json
@@ -498,4 +557,12 @@ export function getFriendShipLevels() {
export function getJobByGradeAndClass(jobClass: number, grade: number) {
return jobClassAndgrades.get(jobClass +'_' + grade);
}
export function getHeroStar(quality: number, star: number) {
return heroStarList.get(`${quality}_${star}`);
}
export function getHeroWake(quality: number, star: number) {
return heroWakeList.get(`${quality}_${star}`);
}