From b595957a5d1de813c6f8ec0b6d07636b13399f63 Mon Sep 17 00:00:00 2001 From: yuexin Date: Thu, 3 Dec 2020 19:39:58 +0800 Subject: [PATCH] get room object --- src/rooms/GeneralRoom.ts | 2 +- src/rooms/logic/Handler/BattleHandler.ts | 12 +++++++++++- src/rooms/logic/skill/Skill.ts | 13 ++++++++++++- src/rooms/logic/skill/SkillConst.ts | 7 ++++--- 4 files changed, 28 insertions(+), 6 deletions(-) diff --git a/src/rooms/GeneralRoom.ts b/src/rooms/GeneralRoom.ts index 2be95e8..201ee9f 100644 --- a/src/rooms/GeneralRoom.ts +++ b/src/rooms/GeneralRoom.ts @@ -22,7 +22,7 @@ export class GeneralRoom extends Room { onCreate (options: any) { let cs = new CardGameState(); this.setState(cs); - this.battleMan.init(cs); + this.battleMan.init(cs, this); this.clock.start(); this.state.gameSate = 0; this.onMessage("play_ready_c2s", (client, message) => { diff --git a/src/rooms/logic/Handler/BattleHandler.ts b/src/rooms/logic/Handler/BattleHandler.ts index e2ef72a..cff0994 100644 --- a/src/rooms/logic/Handler/BattleHandler.ts +++ b/src/rooms/logic/Handler/BattleHandler.ts @@ -6,15 +6,18 @@ import CfgMan from "../CfgMan"; import { EffectCardType } from "../skill/SkillConst"; import { Pet } from "rooms/schema/Pet"; import {SkillParam} from "../skill/SkillParam"; +import { Room } from "colyseus"; export class BattleHandler { private _cs: CardGameState; private _players: Map = new Map(); + private _room: Room; - public init(cs: CardGameState){ + public init(cs: CardGameState, room: Room){ this._cs = cs; + this._room = room; }; public addPlayer(aplayer: Player){ @@ -31,6 +34,13 @@ export class BattleHandler { return aplayer? this._players.get(aplayer): null; }; + public getTargetPets(){ + + }; + + public getTargetPlayer(){ + + }; /** * 使用卡片 * @param obj diff --git a/src/rooms/logic/skill/Skill.ts b/src/rooms/logic/skill/Skill.ts index 5652084..d6af788 100644 --- a/src/rooms/logic/skill/Skill.ts +++ b/src/rooms/logic/skill/Skill.ts @@ -127,6 +127,18 @@ export class Skill { return this._data && (this._data.tigger_typeid == TriggerType.NO_COND); }; + isEffectValidPet(apet: PetHandler){ + switch(this._data.rangeid){ + case SkillRangeUnitType.SELF: + return this._owner == apet; + case SkillRangeUnitType.OTHER: + case SkillRangeUnitType.ALL_EXSELF: + return this._owner != apet; + default: + return true; + } + }; + canEffectPet(apet: PetHandler){ switch(this._data.targetid){ case GameUnitType.PLAYER: @@ -140,7 +152,6 @@ export class Skill { default: return true; } - }; canEffectCamp(aplayer: PlayerHandler){ diff --git a/src/rooms/logic/skill/SkillConst.ts b/src/rooms/logic/skill/SkillConst.ts index 318453e..cdcfda5 100644 --- a/src/rooms/logic/skill/SkillConst.ts +++ b/src/rooms/logic/skill/SkillConst.ts @@ -63,9 +63,10 @@ export const enum SkillType{ export const enum SkillRangeUnitType{ NONE = 0, SELF = 1, - OTHER = 2, - ALL = 3, - ALL_EXSELF = 4, + SINGLE = 2, + OTHER = 3, + ALL = 4, + ALL_EXSELF = 5, }; // 技能效果类型