diff --git a/shared/pubUtils/playerCe.ts b/shared/pubUtils/playerCe.ts index 0bcce29a8..c3e2638c4 100644 --- a/shared/pubUtils/playerCe.ts +++ b/shared/pubUtils/playerCe.ts @@ -281,8 +281,8 @@ function calHeroAddSkin(role: RoleType, skinIds: Array) { */ export function calHeroStarIncAttr(originHero: HeroType, update: HeroUpdate, type: number, addSeidList: Array, removeSeidList: Array) { let isInit = type == HERO_SYSTEM_TYPE.INIT; - let { hid, star: originStar, starStage: originStarStage, quality: originQuality, colorStar: originColorStar, colorStarStage: originColorStarStage, attr: heroAttrs, skins, lv } = originHero; - let { star = originStar, starStage = originStarStage, quality = originQuality, colorStar = originColorStar, colorStarStage = originColorStarStage } = update; + let { hid, star: originStar, starStage: originStarStage, quality: originQuality, colorStar: originColorStar, colorStarStage: originColorStarStage, attr: heroAttrs, skins, lv: oldLv } = originHero; + let { star = originStar, starStage = originStarStage, quality = originQuality, colorStar = originColorStar, colorStarStage = originColorStarStage, lv = oldLv } = update; const dicHero = gameData.hero.get(hid); @@ -290,8 +290,11 @@ export function calHeroStarIncAttr(originHero: HeroType, update: HeroUpdate, typ const isFirstWake = colorStar > 0 && originColorStar <= 0; // 是否是初次觉醒 const isUpStar = originStar != star || originColorStar != colorStar; // 是否有升星 // console.log('*isUpstar', isUpStar, originStar, star, originColorStar, colorStar) + if(starStage == ABI_STAGE.START) star--; + if(colorStarStage == ABI_STAGE.START) colorStar--; + + const dicStar = isWake ? getHeroWakeByQuality(dicHero.quality, colorStar) : getHeroStarByQuality(quality, star); // 星级表 - const dicStar = isWake ? getHeroWakeByQuality(dicHero.quality, originColorStar) : getHeroStarByQuality(quality, originStar); // 星级表 let stages = new Array(); // 需要升级的阶 if (type == HERO_SYSTEM_TYPE.INIT) { @@ -318,7 +321,6 @@ export function calHeroStarIncAttr(originHero: HeroType, update: HeroUpdate, typ if (!!dicStar && !!dicStar.ceAttr) { starUp = dicStar.ceAttr.get(stage); } - let newBase = (heroAttr + (lv - 1) * (heroUpAttr + starUp)) * HERO_CE_RATIO; updateHeroAttr(heroAttrs, targetAttrId, { set: { base: newBase } }); }