战力:装备战力修复

This commit is contained in:
luying
2021-05-07 16:57:54 +08:00
parent 3642133586
commit 6e7081d4be

View File

@@ -347,24 +347,29 @@ export function calHeroStarIncAttr(originHero: HeroType, update: HeroUpdate, typ
type updateCeAttr = Partial<CeAttrData>;
function updateHeroAttr(heroAttrs: CeAttrData[], id: number, update: { inc?: updateCeAttr, set?: updateCeAttr }) {
let curAttr = heroAttrs.find(cur => cur.id == id);
let index = heroAttrs.findIndex(cur => cur.id == id);
let curAttr = heroAttrs[index];
if(!curAttr) {
curAttr = new CeAttrData(id);
heroAttrs.push(curAttr);
index = heroAttrs.length - 1;
}
if(update.inc) {
let { base, equipUp, fixUp, ratioUp } = update.inc;
if(base) curAttr.base += base;
if(equipUp) curAttr.equipUp += equipUp;
if(fixUp) curAttr.fixUp += fixUp;
if(ratioUp) curAttr.ratioUp += ratioUp;
if(base != undefined) curAttr.base += base;
if(equipUp != undefined) curAttr.equipUp += equipUp;
if(fixUp != undefined) curAttr.fixUp += fixUp;
if(ratioUp != undefined) curAttr.ratioUp += ratioUp;
}
if(update.set) {
let { base, equipUp, fixUp, ratioUp } = update.set;
if(base) curAttr.base = base;
if(equipUp) curAttr.equipUp = equipUp;
if(fixUp) curAttr.fixUp = fixUp;
if(ratioUp) curAttr.ratioUp = ratioUp;
if(base != undefined) curAttr.base = base;
if(equipUp != undefined) curAttr.equipUp = equipUp;
if(fixUp != undefined) curAttr.fixUp = fixUp;
if(ratioUp != undefined) curAttr.ratioUp = ratioUp;
}
if(curAttr.base <= 0 && curAttr.equipUp <=0 && curAttr.fixUp <=0 && curAttr.ratioUp <= 0) {
heroAttrs.splice(index, 1);
}
}
@@ -685,7 +690,7 @@ export function calEquipSeids(hero: HeroType) {
}
}
}
suits.forEach((suitId, count) => {
suits.forEach((count, suitId) => {
let { effect } = gameData.suit.get(suitId);
for (let e of effect) {
if (count >= e.count) {
@@ -703,6 +708,7 @@ export function calEquipSeids(hero: HeroType) {
export function calHeroEquipIncAttr(hero: HeroType) {
let { ePlace, attr: heroAttrs } = hero;
let setMap = new Map<number, number>();
for (let { equip, lv, refineLv } of ePlace) {
if (equip) {
let e = <EquipType>equip;
@@ -728,7 +734,7 @@ export function calHeroEquipIncAttr(hero: HeroType) {
}
for (let i = ABI_TYPE.ABI_HP; i < ABI_TYPE.ABI_MAX; i++) {
// console.log('***', i, attrName);
// console.log('***', i);
let value1 = goodsAbility.get(i) || 0 * (HERO_CE_RATIO + e.randRange);
// console.log('基础值', value1);
let valueup = goodsAbilityUp.get(i) || 0;
@@ -739,12 +745,22 @@ export function calHeroEquipIncAttr(hero: HeroType) {
// console.log('jewel', valueJewel);
let attr = (value1 + lv * valueup) * (HERO_CE_RATIO + valueRefine) + valueJewel * HERO_CE_RATIO;
if(attr > 0) {
if(attr >= 0) {
// console.log('装备战力:', i, attr);
updateHeroAttr(heroAttrs, i, { set: { equipUp: attr } })
if(setMap.has(i)) {
setMap.set(i, setMap.get(i) + attr);
} else {
setMap.set(i, attr);
}
}
}
}
}
for (let i = ABI_TYPE.ABI_HP; i < ABI_TYPE.ABI_MAX; i++) {
let attr = setMap.get(i)||0;
updateHeroAttr(heroAttrs, i, { set: { equipUp: attr } })
}
hero.attr = heroAttrs;
@@ -782,8 +798,8 @@ export function calRestrengthenIncAttr(hero: HeroType, ePaceId: number, seids: A
// 添加技能增加的被动属性
function addSeidEffect(heroAttrs: CeAttrData[], addSeidList: Array<number>, removeSeidList: Array<number>) {
console.log('addSeidList', addSeidList)
console.log('removeSeidList', removeSeidList)
// console.log('addSeidList', addSeidList.join())
// console.log('removeSeidList', removeSeidList.join())
let otiginalSeidList = [
{ list: addSeidList, multi: 1 },
{ list: removeSeidList, multi: -1 }
@@ -801,6 +817,7 @@ function addSeidEffect(heroAttrs: CeAttrData[], addSeidList: Array<number>, remo
}
}
// console.log('effectList', JSON.stringify(effectList));
for (let { type, gainValueArr: [ability, value] } of effectList) {
if (type == SEID_TYPE.TYPE101) { // 加值
updateHeroAttr(heroAttrs, ability, { inc: {fixUp: value * multi * HERO_CE_RATIO} });
@@ -818,7 +835,6 @@ function addSeidEffect(heroAttrs: CeAttrData[], addSeidList: Array<number>, remo
// 获取dic_zyz_se内容
function addSeid(effectList: Array<any>, seidId: number, rand: number, seidValue = new Array<number>()) {
// console.log('addSeidEffect', seidId, seidValue)
let curSeid: DicSe | DicRandomEffectPool = gameData.se.get(seidId);
if (!curSeid) curSeid = gameData.randomEffectPool.get(seidId);
if (!curSeid) { console.log("seidId not found:" + seidId); return; }