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: