装备:升星次级属性读取

This commit is contained in:
luying
2022-02-26 10:25:24 +08:00
parent ec6e51ea45
commit 5f133e62a3
2 changed files with 17 additions and 11 deletions
+10 -4
View File
@@ -810,17 +810,23 @@ export function getPreEquipStar(equipId: number, star: number) {
return null; return null;
} }
export function getEquipStarMainAttrByStage(equipId: number, star: number, starStage: number) { export function getEquipStarAttrByStage(equipId: number, star: number, starStage: number) {
if(starStage == 0) { if(starStage == 0) {
let preEquipStar = getPreEquipStar(equipId, star); let preEquipStar = getPreEquipStar(equipId, star);
if(!preEquipStar || preEquipStar.equipId != equipId) { if(!preEquipStar || preEquipStar.equipId != equipId) {
return []; return { mainAttr: [], subAttr: [] };
} else { } else {
return preEquipStar.mainAttr.get(preEquipStar.count); return {
mainAttr: preEquipStar.mainAttr.get(preEquipStar.count),
subAttr: preEquipStar.subAttr,
}
} }
} else { } else {
let equipStar = getEquipStarIdByEquipId(equipId, star); let equipStar = getEquipStarIdByEquipId(equipId, star);
return equipStar.mainAttr.get(starStage); return {
mainAttr: equipStar.mainAttr.get(starStage),
subAttr: equipStar.subAttr,
}
} }
} }
+7 -7
View File
@@ -9,7 +9,7 @@ import { HeroModel, HeroType, HeroUpdate, CeAttrData, EPlace, Stone } from '../d
import { RoleModel, RoleType, RoleUpdate, CeAttrDataRole } from '../db/Role'; import { RoleModel, RoleType, RoleUpdate, CeAttrDataRole } from '../db/Role';
import { AttributeCal } from '../domain/roleField/attribute'; import { AttributeCal } from '../domain/roleField/attribute';
import { ABI_STAGE, SEID_TYPE } from '../consts'; 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 { DicSe } from './dictionary/DicSe';
import { DicRandomEffectPool } from './dictionary/DicRandomEffectPool'; import { DicRandomEffectPool } from './dictionary/DicRandomEffectPool';
import { SchoolModel } from '../db/School'; 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 oldEquip = oldEplace.find(cur => cur.id == eplaceId);
let newEquip = newEplace.find(cur => cur.id == eplaceId); let newEquip = newEplace.find(cur => cur.id == eplaceId);
if(newEquip && oldEquip) { if(newEquip && oldEquip) {
let dicOldEquipStar = getEquipStarIdByEquipId(oldEquip.equipId, oldEquip.star); let { mainAttr: oldMainAttr, subAttr: oldSubAttr } = getEquipStarAttrByStage(oldEquip.equipId, oldEquip.star, oldEquip.starStage);
let dicNewEquipStar = getEquipStarIdByEquipId(newEquip.equipId, newEquip.star); 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 } }); 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 } }); 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 } }); 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 } }); updateHeroAttr(heroAttrs, attr.id, { inc: { fixUp: attr.num * HERO_CE_RATIO } });
} }
} }