战力:操作细节
This commit is contained in:
@@ -10,11 +10,11 @@ export enum HERO_SYSTEM_TYPE {
|
||||
SKIN =7, // 皮肤
|
||||
FAVOUR =8, // 好感
|
||||
CONNECT =9, // 羁绊
|
||||
EQUIP = 10, // 装备穿脱
|
||||
EQUIP_BASE = 11, // 装备栏升级,装备精炼等
|
||||
RESTRENGTHEN = 12, // 洗练
|
||||
JEWEL_ON = 13, // 穿宝石
|
||||
JEWEL_OFF = 14, // 脱宝石
|
||||
// EQUIP = 10, // 装备穿脱
|
||||
// EQUIP_BASE = 11, // 装备栏升级,装备精炼等
|
||||
// RESTRENGTHEN = 12, // 洗练
|
||||
// JEWEL_ON = 13, // 穿宝石
|
||||
// JEWEL_OFF = 14, // 脱宝石
|
||||
ADD_SKIN = 15, // 第一次获取皮肤(全局)
|
||||
SCHOOL = 16, // 百家学宫
|
||||
SCROLL = 17, // 名将谱
|
||||
|
||||
@@ -23,8 +23,10 @@ export interface DicJob {
|
||||
readonly trainingConsume: Array<RewardInter>;
|
||||
// 升阶消耗
|
||||
readonly upGradeConsume: Array<RewardInter>;
|
||||
// 每阶升级属性
|
||||
// 每阶升级属性 stage => {}
|
||||
readonly ceAttr: Map<number, {id: number, attr: number}>;
|
||||
// 次级属性基础 attr => value attr1
|
||||
readonly baseSubAttr: {id: number, val: number}[];
|
||||
// 一共有多少阶升级
|
||||
readonly maxStage: number;
|
||||
// 到这一阶能获得多少天赋点
|
||||
@@ -32,7 +34,7 @@ export interface DicJob {
|
||||
}
|
||||
|
||||
type KeysEnum<T> = { [P in keyof Required<T>]: true };
|
||||
const DicJobKeys: KeysEnum<DicJob> = {jobid: true, name: true, grade: true, unlockLevel: true, job_class: true, type: true, trainingConsume: true, upGradeConsume: true, ceAttr: true, maxStage: true, talentPoint: true};
|
||||
const DicJobKeys: KeysEnum<DicJob> = {jobid: true, name: true, grade: true, unlockLevel: true, job_class: true, type: true, trainingConsume: true, upGradeConsume: true, ceAttr: true, maxStage: true, talentPoint: true, baseSubAttr: true};
|
||||
|
||||
export const dicJob = new Map<number, DicJob>();
|
||||
export const jobClassMaxGrades = new Map<number, {grade:number, jobid:number}>();
|
||||
@@ -54,6 +56,7 @@ export function loadJob() {
|
||||
o.maxStage = o.trainingConsume.length;
|
||||
o.upGradeConsume = parseGoodStr(o.upGradeConsume);
|
||||
o.ceAttr = parseCeAttr(o.maxStage, o.attr);
|
||||
o.baseSubAttr = parseAttribute(o.baseSecondAttr||'');
|
||||
dicJob.set(o.jobid, _.pick(o, Object.keys(DicJobKeys)));
|
||||
let jobClass = jobClassMaxGrades.get(o.job_class);
|
||||
if (!jobClass || jobClass.grade < o.grade) {
|
||||
@@ -93,4 +96,17 @@ function parseCeAttr(maxStage: number, str: string) {
|
||||
result.set(i, { id: parseInt(id), attr: parseFloat(attr) });
|
||||
}
|
||||
return result
|
||||
}
|
||||
}
|
||||
|
||||
function parseAttribute(str: string) {
|
||||
let result = new Array<{ id: number, val: number }>();
|
||||
if (!str) return result;
|
||||
let decodeArr = decodeArrayListStr(str);
|
||||
for (let [id, val] of decodeArr) {
|
||||
if (isNaN(parseInt(id)) || isNaN(parseInt(val))) {
|
||||
throw new Error('data table format wrong');
|
||||
}
|
||||
result.push({ id: parseInt(id), val: parseInt(val) });
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user