fix 技能值处理

This commit is contained in:
luying
2020-12-14 09:44:39 +08:00
parent 27e66ae302
commit 5897b37ef6

View File

@@ -28,7 +28,7 @@ export function calPlayerCe(hero: any, type: number, args: Array<number>) {
reIncAttr = calHeroTrainIncAttr(hero);
}
addSeidEffect(hero, reIncAttr, addSeidList, removeSeidList); // 处理加值
addSeidEffect(reIncAttr, addSeidList, removeSeidList); // 处理加值
if(!hero.ceAttr) hero.ceAttr = new CeAttr();
for (let attrName in reIncAttr) {
let originalAttrData: CeAttrData = hero.ceAttr[attrName]||new CeAttrData();
@@ -174,24 +174,30 @@ function getFieldByStage(stage: number, jobid: number) {
// 添加技能增加的被动属性
function addSeidEffect(hero: Hero, reIncAttr: CeAttr, addSeidList: Array<number>, removeSeidList: Array<number>) {
function addSeidEffect(reIncAttr: CeAttr, addSeidList: Array<number>, removeSeidList: Array<number>) {
let effectList = new Array<any>(); // any: dic_zyz_se表内容
for(let seid of addSeidList) {
let dicSeid = getSeidById(seid);
if(dicSeid && dicSeid.id > 0){
addSeid(effectList, dicSeid.id, dicSeid.gainValueArr)
let otiginalSeidList = [
{list: addSeidList, multi: 1},
{list: removeSeidList, multi: -1}
];
for(let {list, multi} of otiginalSeidList) {
let effectList = new Array<any>(); // any: dic_zyz_se表内容
for(let seid of list) {
let dicSeid = getSeidById(seid);
if(dicSeid && dicSeid.id > 0){
addSeid(effectList, dicSeid.id, dicSeid.gainValueArr)
}
}
}
for(let {type, gainValueArr: [ability, value]} of effectList) {
if(!reIncAttr[HERO_ATTR[ability]]) {
reIncAttr[HERO_ATTR[ability]] = new CeAttrData();
}
if(type == SEID_TYPE.TYPE101) { // 加值
reIncAttr[HERO_ATTR[ability]].ratioUp += value;
} else if (type == SEID_TYPE.TYPE102) { // 加百分比
reIncAttr[HERO_ATTR[ability]].fixUp += value;
for(let {type, gainValueArr: [ability, value]} of effectList) {
if(!reIncAttr[HERO_ATTR[ability]]) {
reIncAttr[HERO_ATTR[ability]] = new CeAttrData();
}
if(type == SEID_TYPE.TYPE101) { // 加值
reIncAttr[HERO_ATTR[ability]].ratioUp += value * multi;
} else if (type == SEID_TYPE.TYPE102) { // 加百分比
reIncAttr[HERO_ATTR[ability]].fixUp += value * multi;
}
}
}
}