diff --git a/shared/pubUtils/data.ts b/shared/pubUtils/data.ts index 161c78923..5792c801a 100644 --- a/shared/pubUtils/data.ts +++ b/shared/pubUtils/data.ts @@ -810,17 +810,23 @@ export function getPreEquipStar(equipId: number, star: number) { return null; } -export function getEquipStarMainAttrByStage(equipId: number, star: number, starStage: number) { +export function getEquipStarAttrByStage(equipId: number, star: number, starStage: number) { if(starStage == 0) { let preEquipStar = getPreEquipStar(equipId, star); if(!preEquipStar || preEquipStar.equipId != equipId) { - return []; + return { mainAttr: [], subAttr: [] }; } else { - return preEquipStar.mainAttr.get(preEquipStar.count); + return { + mainAttr: preEquipStar.mainAttr.get(preEquipStar.count), + subAttr: preEquipStar.subAttr, + } } } else { let equipStar = getEquipStarIdByEquipId(equipId, star); - return equipStar.mainAttr.get(starStage); + return { + mainAttr: equipStar.mainAttr.get(starStage), + subAttr: equipStar.subAttr, + } } } diff --git a/shared/pubUtils/playerCe.ts b/shared/pubUtils/playerCe.ts index 6e69c54a6..27247286a 100644 --- a/shared/pubUtils/playerCe.ts +++ b/shared/pubUtils/playerCe.ts @@ -9,7 +9,7 @@ import { HeroModel, HeroType, HeroUpdate, CeAttrData, EPlace, Stone } from '../d import { RoleModel, RoleType, RoleUpdate, CeAttrDataRole } from '../db/Role'; import { AttributeCal } from '../domain/roleField/attribute'; import { ABI_STAGE, SEID_TYPE } from '../consts'; -import { gameData, getJobByGradeAndClass, getHeroWakeByQuality, getHeroStarByQuality, getFriendShipById, getSchoolRateByStar, getScollByStar, getTeraph, getEquipQualityIdByEquipIdAndPoint, getEquipStarIdByEquipId, getEquipSuitByHero, getEquipStarMainAttrByStage, getJewelConditionByLvAndSeId } from './data'; +import { gameData, getJobByGradeAndClass, getHeroWakeByQuality, getHeroStarByQuality, getFriendShipById, getSchoolRateByStar, getScollByStar, getTeraph, getEquipQualityIdByEquipIdAndPoint, getEquipSuitByHero, getEquipStarAttrByStage, getJewelConditionByLvAndSeId } from './data'; import { DicSe } from './dictionary/DicSe'; import { DicRandomEffectPool } from './dictionary/DicRandomEffectPool'; import { SchoolModel } from '../db/School'; @@ -666,19 +666,19 @@ export function calEquipStarIncAttr(hero: HeroType, update: HeroUpdate, eplaceId let oldEquip = oldEplace.find(cur => cur.id == eplaceId); let newEquip = newEplace.find(cur => cur.id == eplaceId); if(newEquip && oldEquip) { - let dicOldEquipStar = getEquipStarIdByEquipId(oldEquip.equipId, oldEquip.star); - let dicNewEquipStar = getEquipStarIdByEquipId(newEquip.equipId, newEquip.star); + let { mainAttr: oldMainAttr, subAttr: oldSubAttr } = getEquipStarAttrByStage(oldEquip.equipId, oldEquip.star, oldEquip.starStage); + let { mainAttr: newMainAttr, subAttr: newSubAttr } = getEquipStarAttrByStage(newEquip.equipId, newEquip.star, newEquip.starStage); // 主属性 - for(let attr of getEquipStarMainAttrByStage(oldEquip.equipId, oldEquip.star, oldEquip.starStage)) { + for(let attr of oldMainAttr) { updateHeroAttr(heroAttrs, attr.id, { inc: { fixUp: -1 * attr.num * HERO_CE_RATIO } }); } - for(let attr of getEquipStarMainAttrByStage(newEquip.equipId, newEquip.star, newEquip.starStage)) { + for(let attr of newMainAttr) { updateHeroAttr(heroAttrs, attr.id, { inc: { fixUp: attr.num * HERO_CE_RATIO } }); } - for(let attr of dicOldEquipStar.subAttr) { + for(let attr of oldSubAttr) { updateHeroAttr(heroAttrs, attr.id, { inc: { fixUp: -1 * attr.num * HERO_CE_RATIO } }); } - for(let attr of dicNewEquipStar.subAttr) { + for(let attr of newSubAttr) { updateHeroAttr(heroAttrs, attr.id, { inc: { fixUp: attr.num * HERO_CE_RATIO } }); } }