diff --git a/src/rooms/logic/Handler/BattleHandler.ts b/src/rooms/logic/Handler/BattleHandler.ts index 16353fa..398f437 100644 --- a/src/rooms/logic/Handler/BattleHandler.ts +++ b/src/rooms/logic/Handler/BattleHandler.ts @@ -30,7 +30,15 @@ export class BattleHandler { public addPlayer(aplayer: Player): PlayerHandler{ let ph = new PlayerHandler(); ph.init(aplayer, this); + this._players.forEach((item: PlayerHandler) => { + if(item._player.team == aplayer.team && item._player != aplayer){ + item._friend = ph; + ph._friend = item; + } + }); + this._players.set(aplayer, ph); + return ph; }; @@ -302,6 +310,16 @@ export class BattleHandler { ph && ph.onCardLinkEnd(linkcards, fromph); }; + /** + * 出牌结束(出单张牌) + * @param aplayer : 玩家 + * @param card : 单张牌 + */ + public onCardDiscarded(aplayer: Player, card: Card){ + let ph = this.getPlayer(aplayer); + ph && ph.onCardDiscarded(card); + }; + /** * 使用卡牌结束(暂时自动回调,无需外部触发) * @param sp :使用卡牌相关操作 diff --git a/src/rooms/logic/Handler/PlayerHandler.ts b/src/rooms/logic/Handler/PlayerHandler.ts index 1705507..6888168 100644 --- a/src/rooms/logic/Handler/PlayerHandler.ts +++ b/src/rooms/logic/Handler/PlayerHandler.ts @@ -391,6 +391,10 @@ export class PlayerHandler { this.checkSkills(TriggerType.CARD_DROP_MYROUND); }; + onCardDiscarded(discardcard: Card){ + this.checkSkills(TriggerType.CARD_DISCARD_MYROUND); + }; + onCardGetted(getcards: Card[], srcplayer: PlayerHandler){ getcards && (this._totalcc += getcards.length); this.checkSkills(TriggerType.CARD_GETTED); diff --git a/src/rooms/logic/skill/SkillConst.ts b/src/rooms/logic/skill/SkillConst.ts index 13668bb..3a72830 100644 --- a/src/rooms/logic/skill/SkillConst.ts +++ b/src/rooms/logic/skill/SkillConst.ts @@ -47,13 +47,13 @@ export const enum TriggerType CARD_USED = 3, - CARD_DROP_MYROUND = 4, + CARD_DISCARD_MYROUND = 4, ROUND_END_MYSELF = 5, CARD_GETTED = 6, - CARD_DROP_OTHERROUND = 7, + CARD_DROP_MYROUND = 7, ROUND_START_MYSELF = 8, }; diff --git a/src/rooms/logic/skill/TriggerMan.ts b/src/rooms/logic/skill/TriggerMan.ts index c50bba9..77b2626 100644 --- a/src/rooms/logic/skill/TriggerMan.ts +++ b/src/rooms/logic/skill/TriggerMan.ts @@ -58,11 +58,12 @@ let TriggerManager = { this._triggermap.set(tg_type, tobj); } - let cobj = this._conditionmap.get(tg_cond); + let key = Number(tg_cond) + '|' + Number(tg_cond_decide) + '|' + tg_cond_v; + let cobj = this._conditionmap.get(key); if (!cobj) { cobj = new Condition(); cobj.init(tg_cond, tg_cond_decide, tg_cond_v); - this._conditionmap.set(tg_cond, cobj); + this._conditionmap.set(key, cobj); } let obj = new TriggerCtrl();