diff --git a/src/rooms/logic/Handler/BattleHandler.ts b/src/rooms/logic/Handler/BattleHandler.ts index a0e259b..6df34e4 100644 --- a/src/rooms/logic/Handler/BattleHandler.ts +++ b/src/rooms/logic/Handler/BattleHandler.ts @@ -302,6 +302,9 @@ export class BattleHandler { }; public onSkillResult(skillres: SkillTarget[]){ + if(!skillres || skillres.length <= 0){ + return; + } let lst: SkillInfoMsg[] = []; skillres.forEach((item: SkillTarget)=>{ lst.push(item.exportData()); diff --git a/src/rooms/logic/Handler/PetHandler.ts b/src/rooms/logic/Handler/PetHandler.ts index 000f9b0..892ba86 100644 --- a/src/rooms/logic/Handler/PetHandler.ts +++ b/src/rooms/logic/Handler/PetHandler.ts @@ -213,9 +213,9 @@ export class PetHandler { }); }; - public checkSkills(tgtype: TriggerType){ + public checkSkills(tgtype: TriggerType, tgtv: any, sp: SkillParam, cb?: any){ this._waitskills.forEach((item: Skill) => { - item.checkTrigger(tgtype, ) + item.checkTrigger(tgtype, tgtv, sp, cb); }); }; diff --git a/src/rooms/logic/Handler/PlayerHandler.ts b/src/rooms/logic/Handler/PlayerHandler.ts index b95e188..5f42918 100644 --- a/src/rooms/logic/Handler/PlayerHandler.ts +++ b/src/rooms/logic/Handler/PlayerHandler.ts @@ -331,8 +331,18 @@ export class PlayerHandler { sp = new SkillParam(0, 0, 0, this, this._self, null, null); } let reslst: SkillTarget[] = []; - this._self._waitskills.forEach((item:Skill) => { - item.checkTrigger(tgttype, tgtvalue, sp, (skill: Skill, ap: SkillParam, res: SkillTarget[])=>{ + this._self.checkSkills(tgttype, tgtvalue, sp, (skill: Skill, ap: SkillParam, res: SkillTarget[])=>{ + if(res){ + reslst = reslst.concat(res); + }else{ + let st = new SkillTarget(skill); + st.LoadParam(sp); + reslst.push(st); + } + }); + + this._pets.forEach((item: PetHandler) => { + item.checkSkills(tgttype, tgtvalue, sp, (skill: Skill, ap: SkillParam, res: SkillTarget[])=>{ if(res){ reslst = reslst.concat(res); }else{ @@ -342,6 +352,8 @@ export class PlayerHandler { } }); }); + + this._owner.onSkillResult(reslst); }; resetTotalCard(){