From e1cbcf3789429d907d1e21879628cdf8519f492f Mon Sep 17 00:00:00 2001 From: yuexin Date: Mon, 4 Jan 2021 17:44:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E8=AE=A2=E5=85=89=E7=8E=AF=E4=B8=8D?= =?UTF-8?q?=E8=B5=B7=E6=95=88=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/rooms/logic/Handler/BattleHandler.ts | 6 ++---- src/rooms/logic/Handler/PetHandler.ts | 2 +- src/rooms/logic/skill/Skill.ts | 22 +++++++++++++++++----- 3 files changed, 20 insertions(+), 10 deletions(-) diff --git a/src/rooms/logic/Handler/BattleHandler.ts b/src/rooms/logic/Handler/BattleHandler.ts index 6e35d39..82a6bad 100644 --- a/src/rooms/logic/Handler/BattleHandler.ts +++ b/src/rooms/logic/Handler/BattleHandler.ts @@ -544,13 +544,11 @@ export class BattleHandler { return 0; } - // this.beginFlow('onCardLinkReady'); + this.beginFlow('onCardLinkReady'); ph.onCardLinkReady(fromph); - // return this.endFlow('onCardLinkReady'); - - return 0; + return this.endFlow('onCardLinkReady'); }; /** diff --git a/src/rooms/logic/Handler/PetHandler.ts b/src/rooms/logic/Handler/PetHandler.ts index 44a991c..d29dbc8 100644 --- a/src/rooms/logic/Handler/PetHandler.ts +++ b/src/rooms/logic/Handler/PetHandler.ts @@ -517,7 +517,7 @@ export class PetHandler { public addEffHalo(apet: PetHandler): boolean{ let bok = false; this._halos.forEach((item: Skill)=>{ - if(item.isEffSelfPet(this, apet)){ + if(item.canEffect(this, apet)){ if(item.isAPHaloSkill()){ bok = true; if(apet._addEffHalo(item)){ diff --git a/src/rooms/logic/skill/Skill.ts b/src/rooms/logic/skill/Skill.ts index 4b74497..84d0d31 100644 --- a/src/rooms/logic/skill/Skill.ts +++ b/src/rooms/logic/skill/Skill.ts @@ -134,7 +134,7 @@ export class Skill { return this._data.rangeid == SkillRangeUnitType.ALL; }; - isInRange(srcpet: PetHandler, dstpet: PetHandler){ + isInRange(srcpet: PetHandler, dstpet: PetHandler, exself: boolean){ switch(this._data.rangeid){ case SkillRangeUnitType.SELF: return srcpet == dstpet; @@ -145,28 +145,40 @@ export class Skill { case SkillRangeUnitType.ALL: return true; case SkillRangeUnitType.ALL_EXSELF: + case SkillRangeUnitType.RANDOM_ONE_EXSELF: return srcpet != dstpet; + case SkillRangeUnitType.RANDOM_ONE: + return !!dstpet; + case SkillRangeUnitType.OWNER: + return dstpet == this._petowner; + case SkillRangeUnitType.ALL_EXOWNER: + case SkillRangeUnitType.RANDOM_ONE_EXOWNER: + return dstpet != this._petowner; + case SkillRangeUnitType.MAXAP_ONE: + return dstpet == this._owner.getMaxAPPet(exself); + case SkillRangeUnitType.MINAP_ONE: + return dstpet == this._owner.getMinAPPet(exself); default: return false; } }; - // 是否能影响自己 - isEffSelfPet(srcpet: PetHandler, dstpet: PetHandler){ + // 技能光环是否能影响dst + canEffect(srcpet: PetHandler, dstpet: PetHandler){ if(this._data.friendlyid != GameCampType.SELF){ return false; } let tgok = false; switch(this._data.targetid){ case GameUnitType.BATTLEUNIT: - tgok = this.isInRange(srcpet, dstpet); + tgok = this.isInRange(srcpet, dstpet, false); break; case GameUnitType.HERO: tgok = dstpet._isHero; break; case GameUnitType.PET: if(!dstpet._isHero){ - tgok = this.isInRange(srcpet, dstpet); + tgok = this.isInRange(srcpet, dstpet, true); } break; default: