战力:装备战力修复
This commit is contained in:
@@ -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; }
|
||||
|
||||
Reference in New Issue
Block a user