fix,添加属性不存在判断
This commit is contained in:
@@ -53,16 +53,17 @@ export function calPlayerCe(globalCeAttr: CeAttr, hero: HeroType, type: number,
|
|||||||
}
|
}
|
||||||
|
|
||||||
addSeidEffect(reIncAttr, hero.ceAttr, addSeidList, removeSeidList); // 处理加值
|
addSeidEffect(reIncAttr, hero.ceAttr, addSeidList, removeSeidList); // 处理加值
|
||||||
console.log(JSON.stringify(reIncAttr))
|
|
||||||
if(!hero.ceAttr) hero.ceAttr = new CeAttr();
|
if(!hero.ceAttr) hero.ceAttr = new CeAttr();
|
||||||
for (let attrName in reIncAttr) {
|
for (let attrName in reIncAttr) {
|
||||||
|
if(!reIncAttr[attrName]) continue;
|
||||||
let originalAttrData: CeAttrData = hero.ceAttr[attrName]||new CeAttrData();
|
let originalAttrData: CeAttrData = hero.ceAttr[attrName]||new CeAttrData();
|
||||||
let oldCe = (originalAttrData.fixUp + (originalAttrData.equipUp||0)) * HERO_CE_RATIO + originalAttrData.base *(HERO_CE_RATIO + originalAttrData.ratioUp + globalCeAttr[attrName].ratioUp);
|
let originalGlobalAttrData: CeAttrData = globalCeAttr[attrName]||new CeAttrData();
|
||||||
|
let oldCe = (originalAttrData.fixUp + (originalAttrData.equipUp||0)) * HERO_CE_RATIO + originalAttrData.base *(HERO_CE_RATIO + originalAttrData.ratioUp + originalGlobalAttrData.ratioUp);
|
||||||
if(!hero.ceAttr[attrName]) hero.ceAttr[attrName] = new CeAttrData();
|
if(!hero.ceAttr[attrName]) hero.ceAttr[attrName] = new CeAttrData();
|
||||||
for (let attrKey in reIncAttr[attrName]) {
|
for (let attrKey in reIncAttr[attrName]) {
|
||||||
hero.ceAttr[attrName][attrKey] = parseInt(reIncAttr[attrName][attrKey]||0);
|
hero.ceAttr[attrName][attrKey] = parseInt(reIncAttr[attrName][attrKey]||0);
|
||||||
}
|
}
|
||||||
incArr[attrName] = (reIncAttr[attrName].fixUp + (reIncAttr[attrName].equipUp||0)) * HERO_CE_RATIO + reIncAttr[attrName].base *(HERO_CE_RATIO + reIncAttr[attrName].ratioUp + globalCeAttr[attrName].ratioUp) - oldCe; //计算属性
|
incArr[attrName] = (reIncAttr[attrName].fixUp + (reIncAttr[attrName].equipUp||0)) * HERO_CE_RATIO + reIncAttr[attrName].base *(HERO_CE_RATIO + reIncAttr[attrName].ratioUp + originalGlobalAttrData.ratioUp) - oldCe; //计算属性
|
||||||
incCe += incArr[attrName] * getAttrCeRatio(attrName);
|
incCe += incArr[attrName] * getAttrCeRatio(attrName);
|
||||||
}
|
}
|
||||||
hero.ce += incCe;
|
hero.ce += incCe;
|
||||||
@@ -405,14 +406,20 @@ function addSeidEffect(reIncAttr: CeAttr, heroCeAttr: CeAttr,addSeidList: Array<
|
|||||||
if(!reIncAttr[attrName]) {
|
if(!reIncAttr[attrName]) {
|
||||||
reIncAttr[attrName] = deepCopy(heroCeAttr[attrName]);
|
reIncAttr[attrName] = deepCopy(heroCeAttr[attrName]);
|
||||||
}
|
}
|
||||||
if(!reIncAttr[attrName]) continue;
|
if(!reIncAttr[attrName]) {
|
||||||
|
delete reIncAttr[attrName];
|
||||||
|
continue;
|
||||||
|
}
|
||||||
reIncAttr[attrName].fixUp += value * multi * HERO_CE_RATIO;
|
reIncAttr[attrName].fixUp += value * multi * HERO_CE_RATIO;
|
||||||
delete reIncAttr[attrName]._id;
|
delete reIncAttr[attrName]._id;
|
||||||
} else if (type == SEID_TYPE.TYPE102) { // 加百分比
|
} else if (type == SEID_TYPE.TYPE102) { // 加百分比
|
||||||
if(!reIncAttr[attrName]) {
|
if(!reIncAttr[attrName]) {
|
||||||
reIncAttr[attrName] = deepCopy(heroCeAttr[attrName]);
|
reIncAttr[attrName] = deepCopy(heroCeAttr[attrName]);
|
||||||
}
|
}
|
||||||
if(!reIncAttr[attrName]) continue;
|
if(!reIncAttr[attrName]) {
|
||||||
|
delete reIncAttr[attrName];
|
||||||
|
continue;
|
||||||
|
}
|
||||||
reIncAttr[attrName].ratioUp += value * multi;
|
reIncAttr[attrName].ratioUp += value * multi;
|
||||||
delete reIncAttr[attrName]._id;
|
delete reIncAttr[attrName]._id;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user