diff --git a/src/rooms/logic/Handler/BattleHandler.ts b/src/rooms/logic/Handler/BattleHandler.ts index 58ed024..6b17cd3 100644 --- a/src/rooms/logic/Handler/BattleHandler.ts +++ b/src/rooms/logic/Handler/BattleHandler.ts @@ -119,17 +119,17 @@ export class BattleHandler { }else{ if(skill.isAllTarget()){ players.forEach((item: PlayerHandler)=>{ - item.exportAllPets(skill._data.targetid, param, null, lst); + item.exportAllPets(skill, param, null, lst); }); }else{ if(param.srcpet){ players.forEach((item: PlayerHandler)=>{ - item.exportAllPets(skill._data.targetid, param, param.srcpet, lst); + item.exportAllPets(skill, param, param.srcpet, lst); }); }else{ players.forEach((item: PlayerHandler)=>{ if(item != param.srcplayer){ - item.exportAllPets(skill._data.targetid, param, param.srcpet, lst); + item.exportAllPets(skill, param, param.srcpet, lst); } }); } diff --git a/src/rooms/logic/Handler/PlayerHandler.ts b/src/rooms/logic/Handler/PlayerHandler.ts index 0043331..60e5a6e 100644 --- a/src/rooms/logic/Handler/PlayerHandler.ts +++ b/src/rooms/logic/Handler/PlayerHandler.ts @@ -92,27 +92,28 @@ export class PlayerHandler { }) }; - public exportAllPets(ct: GameUnitType, param: SkillParam, expet: PetHandler, dst: SkillTarget[]): SkillTarget[]{ + public exportAllPets(skill: Skill, param: SkillParam, expet: PetHandler, dst: SkillTarget[]): SkillTarget[]{ if(!dst){ return null; } + let ct = skill._data.targetid; switch(ct){ case GameUnitType.BATTLEUNIT: let lst = this._pets.reverse(); lst.forEach(element => { if(expet != element){ - dst.push(new SkillTarget(param.skill, param.srcplayer, param.srcpet, element, GameUnitType.PET)); + dst.push(new SkillTarget(skill, param.srcplayer, param.srcpet, element, GameUnitType.PET)); } }); - (expet != this._self) && dst.push(new SkillTarget(param.skill, param.srcplayer, param.srcpet, this._self, GameUnitType.PET)); + (expet != this._self) && dst.push(new SkillTarget(skill, param.srcplayer, param.srcpet, this._self, GameUnitType.PET)); break; case GameUnitType.HERO: - (expet != this._self) && dst.push(new SkillTarget(param.skill, param.srcplayer, param.srcpet, this._self, GameUnitType.PET)); + (expet != this._self) && dst.push(new SkillTarget(skill, param.srcplayer, param.srcpet, this._self, GameUnitType.PET)); break; case GameUnitType.PET: lst.forEach(element => { if(expet != element){ - dst.push(new SkillTarget(param.skill, param.srcplayer, param.srcpet, element, GameUnitType.PET)); + dst.push(new SkillTarget(skill, param.srcplayer, param.srcpet, element, GameUnitType.PET)); } }); break; @@ -143,17 +144,18 @@ export class PlayerHandler { pet.loadData(cfg.stageunit_id, obj, [cfg.quoteskill1id, cfg.quoteskill2id, cfg.quoteskill3id, cfg.quoteskill4id]); }else if(cfg.type_id == EffectCardType.MAGIC){ - this.useSkills([cfg.quoteskill1id, cfg.quoteskill2id, cfg.quoteskill3id, cfg.quoteskill4id], obj); + let lst = []; + cfg.quoteskill1id && lst.push(cfg.quoteskill1id); + cfg.quoteskill2id && lst.push(cfg.quoteskill2id); + cfg.quoteskill3id && lst.push(cfg.quoteskill3id); + cfg.quoteskill4id && lst.push(cfg.quoteskill4id); + this.useSkills(lst, obj); } }; public useSkills(skills: number[], obj: SkillParam) { - if(!skills){ - return; - } - - skills.forEach((item: number)=>{ + skills && skills.forEach((item: number)=>{ this.useSkill(item, 1, obj); }); }; @@ -172,6 +174,9 @@ export class PlayerHandler { public handleSkill(skillid: number, count: number, param: SkillParam, pet: PetHandler):SkillTarget[]{ let cfg = CfgMan.findSkillCfg(skillid); + if(!cfg){ + return null; + } let lst: Skill[] = []; if(cfg.skill_typeid == SkillType.MAGIC){ for(let i = 0; i < count; i++){ diff --git a/src/rooms/logic/skill/SkillParam.ts b/src/rooms/logic/skill/SkillParam.ts index 8a4b132..17ed188 100644 --- a/src/rooms/logic/skill/SkillParam.ts +++ b/src/rooms/logic/skill/SkillParam.ts @@ -14,8 +14,6 @@ export class SkillParam{ srcpet: PetHandler; - skill: Skill; - constructor(cardid: number, cardpoint: number, effcnt: number, srcplayer: PlayerHandler, srcpet: PetHandler, dstplayer: PlayerHandler, dstpet: PetHandler){ this.cardid = cardid;