diff --git a/src/rooms/logic/Handler/BattleHandler.ts b/src/rooms/logic/Handler/BattleHandler.ts index 289340d..bd0b0e7 100644 --- a/src/rooms/logic/Handler/BattleHandler.ts +++ b/src/rooms/logic/Handler/BattleHandler.ts @@ -98,12 +98,18 @@ export class BattleHandler { } }; - public getFinalTarget(ut: SkillRangeUnitType, players: PlayerHandler[], apet: PetHandler, expet: PetHandler, ct: GameUnitType, + public getFinalTarget(ut: SkillRangeUnitType, players: PlayerHandler[], dstpet: PetHandler, srcpet: PetHandler, ct: GameUnitType, checktaunt: boolean=false): PetHandler { - let pet = apet; + let pet = dstpet; let bok = false; switch(ut){ + case SkillRangeUnitType.SELF: + if(!pet){ + pet = srcpet; + } + bok = !!pet; + break; case SkillRangeUnitType.RANDOM_ONE: if(checktaunt){ let lst:PetHandler[] = []; @@ -130,7 +136,7 @@ export class BattleHandler { if(checktaunt){ let lst:PetHandler[] = []; players.forEach((item:PlayerHandler)=>{ - item.findAllTauntPets(lst, expet); + item.findAllTauntPets(lst, srcpet); }); if(lst.length > 0){ pet = arrUtil.randomOne(lst); @@ -140,7 +146,7 @@ export class BattleHandler { if(!bok){ let lst:PetHandler[] = []; players.forEach((item:PlayerHandler)=>{ - item.findAllPets(lst, expet); + item.findAllPets(lst, srcpet); }); if(lst.length > 0){ pet = arrUtil.randomOne(lst); diff --git a/src/rooms/logic/Handler/PlayerHandler.ts b/src/rooms/logic/Handler/PlayerHandler.ts index 80daba6..b3058aa 100644 --- a/src/rooms/logic/Handler/PlayerHandler.ts +++ b/src/rooms/logic/Handler/PlayerHandler.ts @@ -541,6 +541,7 @@ export class PlayerHandler { }); this._pets.forEach((item: PetHandler) => { + sp.srcpet = item; item.checkSkills(tgttype, tgtvalue, sp, (skill: Skill, ap: SkillParam, res: SkillTarget[])=>{ if(res){ reslst = reslst.concat(res);