武将:一键升星
This commit is contained in:
@@ -365,12 +365,12 @@ export function comBtlRanges() {
|
||||
}
|
||||
|
||||
|
||||
export function getHeroStarByQuality(quality: number, star: number) {
|
||||
return gameData.heroStar.get(`${quality}_${star}`);
|
||||
export function getHeroStarByQuality(classType: number, quality: number, star: number) {
|
||||
return gameData.heroStar.get(`${classType}_${quality}_${star}`);
|
||||
}
|
||||
|
||||
export function getHeroWakeByQuality(quality: number, star: number) {
|
||||
return gameData.heroWake.get(`${quality}_${star}`);
|
||||
export function getHeroWakeByQuality(classType: number, quality: number, star: number) {
|
||||
return gameData.heroWake.get(`${classType}_${quality}_${star}`);
|
||||
}
|
||||
|
||||
export function getMaxGradeByjobClass(jobClass: number) {
|
||||
|
||||
@@ -7,6 +7,8 @@ export interface DicHeroStar {
|
||||
|
||||
// 唯一id
|
||||
readonly id: number;
|
||||
// 职业类型
|
||||
readonly classType: number;
|
||||
// 品质
|
||||
readonly quality: number;
|
||||
// 星级
|
||||
@@ -20,7 +22,7 @@ export interface DicHeroStar {
|
||||
|
||||
|
||||
type KeysEnum<T> = { [P in keyof Required<T>]: true };
|
||||
const DicHeroStarKeys: KeysEnum<DicHeroStar> = {id: true, quality: true, star: true, advanceUpFragmentNum: true, ceAttr: true};
|
||||
const DicHeroStarKeys: KeysEnum<DicHeroStar> = {id: true, classType: true, quality: true, star: true, advanceUpFragmentNum: true, ceAttr: true};
|
||||
|
||||
export const dicHeroStar = new Map<string, DicHeroStar>();
|
||||
export function loadHeroStar() {
|
||||
@@ -28,7 +30,8 @@ export function loadHeroStar() {
|
||||
|
||||
arr.forEach(o => {
|
||||
o.ceAttr = parseCeAttr(o);
|
||||
dicHeroStar.set(`${o.quality}_${o.star}`, _.pick(o, Object.keys(DicHeroStarKeys)));
|
||||
o.classType = o.class_type;
|
||||
dicHeroStar.set(`${o.classType}_${o.quality}_${o.star}`, _.pick(o, Object.keys(DicHeroStarKeys)));
|
||||
});
|
||||
arr = undefined;
|
||||
}
|
||||
|
||||
@@ -8,6 +8,8 @@ export interface DicHeroWake {
|
||||
|
||||
// 唯一id
|
||||
readonly id: number;
|
||||
// 职业类型
|
||||
readonly classType: number;
|
||||
// 品质
|
||||
readonly quality: number;
|
||||
// 彩星级
|
||||
@@ -22,7 +24,7 @@ export interface DicHeroWake {
|
||||
}
|
||||
|
||||
type KeysEnum<T> = { [P in keyof Required<T>]: true };
|
||||
const DicHeroWakeKeys: KeysEnum<DicHeroWake> = {id: true, quality: true, star: true, fragmentNum: true, consume: true, ceAttr: true};
|
||||
const DicHeroWakeKeys: KeysEnum<DicHeroWake> = {id: true, classType: true, quality: true, star: true, fragmentNum: true, consume: true, ceAttr: true};
|
||||
|
||||
export const dicHeroWake = new Map<string, DicHeroWake>();
|
||||
export function loadHeroWake() {
|
||||
@@ -31,7 +33,8 @@ export function loadHeroWake() {
|
||||
arr.forEach(o => {
|
||||
o.consume = parseGoodStr(o.consume);
|
||||
o.ceAttr = parseCeAttr(o);
|
||||
dicHeroWake.set(`${o.quality}_${o.star}`, _.pick(o, Object.keys(DicHeroWakeKeys)));
|
||||
o.classType = o.class_type;
|
||||
dicHeroWake.set(`${o.classType}_${o.quality}_${o.star}`, _.pick(o, Object.keys(DicHeroWakeKeys)));
|
||||
});
|
||||
arr = undefined;
|
||||
}
|
||||
|
||||
@@ -293,7 +293,8 @@ export function calHeroStarIncAttr(originHero: HeroType, update: HeroUpdate, typ
|
||||
if(starStage == ABI_STAGE.START) star--;
|
||||
if(colorStarStage == ABI_STAGE.START) colorStar--;
|
||||
|
||||
const dicStar = isWake ? getHeroWakeByQuality(dicHero.quality, colorStar) : getHeroStarByQuality(quality, star); // 星级表
|
||||
const dicJob = gameData.job.get(dicHero.jobid);
|
||||
const dicStar = isWake ? getHeroWakeByQuality(dicJob.job_class, dicHero.quality, colorStar) : getHeroStarByQuality(dicJob.job_class, quality, star); // 星级表
|
||||
|
||||
|
||||
let stages = new Array<number>(); // 需要升级的阶
|
||||
@@ -302,6 +303,14 @@ export function calHeroStarIncAttr(originHero: HeroType, update: HeroUpdate, typ
|
||||
} else if (type == HERO_SYSTEM_TYPE.LVUP) {
|
||||
stages = getAllAttrStage();
|
||||
} else if (type == HERO_SYSTEM_TYPE.STAR) {
|
||||
let end = isUpStar? ABI_STAGE.END: starStage;
|
||||
if(end < originStarStage) {
|
||||
stages = getAllAttrStage();
|
||||
} else {
|
||||
for(let i = originStarStage; i < end; i++) {
|
||||
stages.push(i + 1);
|
||||
}
|
||||
}
|
||||
stages.push(isUpStar? ABI_STAGE.END: starStage);
|
||||
} else if (type == HERO_SYSTEM_TYPE.QUALITY) {
|
||||
stages = getAllAttrStage();
|
||||
@@ -309,7 +318,14 @@ export function calHeroStarIncAttr(originHero: HeroType, update: HeroUpdate, typ
|
||||
if (isFirstWake) { // 首次觉醒
|
||||
stages = getAllAttrStage();
|
||||
} else {
|
||||
stages.push(isUpStar ? ABI_STAGE.END : colorStarStage);
|
||||
let end = isUpStar? ABI_STAGE.END: colorStarStage;
|
||||
if(end < originColorStarStage) {
|
||||
stages = getAllAttrStage();
|
||||
} else {
|
||||
for(let i = originColorStarStage; i < end; i++) {
|
||||
stages.push(i + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
for (let stage of stages) {
|
||||
|
||||
Reference in New Issue
Block a user