导表+技能结果重新处理

This commit is contained in:
y.x 2021-01-09 02:10:25 +08:00
parent ed2f5795a9
commit bfad074862
4 changed files with 64 additions and 7 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -204,6 +204,7 @@ export class SkillTarget{
return this.bresok? this.lasttime: 0;
};
// 暂无用
public exportData(): SkillInfoMsg{
let msg = new SkillInfoMsg();
msg.data = new SkillInfoData();
@ -236,10 +237,12 @@ export class SkillTarget{
obj.pos = st.srcpet? st.srcpet._idx: 0;
obj.datas = [];
lst.forEach((item: SkillTarget) => {
item.res && item.res.forEach((skres: SkillResult) => {
let ed = item.exportResData(skres);
ed && obj.datas.push(ed);
});
let eds = item.exportEffDatas();
obj.datas.push(...eds);
// item.res && item.res.forEach((skres: SkillResult) => {
// let ed = item.exportResData(skres);
// ed && obj.datas.push(ed);
// });
});
return msg;
};
@ -271,6 +274,60 @@ export class SkillTarget{
}
return null;
};
public exportEffData(reslst: SkillResult[], bopp: boolean = false): SKillEffectData{
if(!reslst || reslst.length <= 0){
return null;
}
let ed = new SKillEffectData();
let item = this;
if(bopp){
ed.pos = item.srcPet()._idx;
ed.player = item.srcPlayer().getId();
}else{
if(item.dsttype == GameUnitType.PLAYER){
ed.pos = 0;
ed.player = (item.dst as PlayerHandler).getId();
}else {
ed.pos = (item.dst as PetHandler)._idx;
ed.player = (item.dst as PetHandler)._owner.getId();
}
}
reslst.forEach((item: SkillResult) => {
let obj = {
effect_id: item.effect_type,
val: item.bsuccess? item.effect_res: item.err,
result: item.bsuccess? 0: -1,
};
ed.data.push(obj);
});
return ed;
};
public exportEffDatas(): SKillEffectData[]{
let r1: SkillResult[] = [];
let r2: SkillResult[] = [];
this.res.forEach((item: SkillResult) => {
if(item.beffsrc){
r2.push(item);
}else{
r1.push(item);
}
});
let reslst = [];
let res = this.exportEffData(r1);
res && reslst.push(res);
res = this.exportEffData(r2, true);
res && reslst.push(res);
return reslst;
}
};