fix 技能值处理
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user