From 2633d197247f10200f3e0b55a549c4504b6eb7aa Mon Sep 17 00:00:00 2001 From: "y.x" Date: Mon, 7 Dec 2020 13:43:03 +0800 Subject: [PATCH 1/2] condition handle(not finish) --- src/rooms/logic/Handler/BattleHandler.ts | 1 - src/rooms/logic/skill/Condition.ts | 12 +++++------- src/rooms/logic/skill/Skill.ts | 4 ++++ src/rooms/logic/skill/TriggerCtrl.ts | 3 ++- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/rooms/logic/Handler/BattleHandler.ts b/src/rooms/logic/Handler/BattleHandler.ts index b7fcbbd..ca5338d 100644 --- a/src/rooms/logic/Handler/BattleHandler.ts +++ b/src/rooms/logic/Handler/BattleHandler.ts @@ -155,7 +155,6 @@ export class BattleHandler { } return lst; }; - /** * 使用卡片 diff --git a/src/rooms/logic/skill/Condition.ts b/src/rooms/logic/skill/Condition.ts index 54bbf98..b9d51ea 100644 --- a/src/rooms/logic/skill/Condition.ts +++ b/src/rooms/logic/skill/Condition.ts @@ -34,12 +34,6 @@ export class Condition { case CondType.CARD_COUNT_TOTAL: v = tg_owner.getTotalCardCount(); return this._isok(v,this._v,this._cdt); - case CondType.CARD_ACTION_LINK: - return (tg_value == this._type); - case CondType.CARD_ACTION_LINK_OTHER: - return (tg_value == this._type); - case CondType.CARD_ACTION_LINK_SELF: - return (tg_value == this._type); default: break; } @@ -59,7 +53,11 @@ export class Condition { default: return false; } - } + }; + + public isTempTotalCard(){ + return this._type == CondType.CARD_COUNT_TOTAL; + }; }; // module.exports = Condition; diff --git a/src/rooms/logic/skill/Skill.ts b/src/rooms/logic/skill/Skill.ts index 2b36715..9755074 100644 --- a/src/rooms/logic/skill/Skill.ts +++ b/src/rooms/logic/skill/Skill.ts @@ -315,6 +315,10 @@ export class Skill { this._cb = cb; }; + isTotalCardSkill(){ + return this._tgctrl._cond.isTempTotalCard(); + }; + clone() { let obj = new Skill(); obj._currCount = 0; // 当前计数 diff --git a/src/rooms/logic/skill/TriggerCtrl.ts b/src/rooms/logic/skill/TriggerCtrl.ts index 9d243dd..18165cb 100644 --- a/src/rooms/logic/skill/TriggerCtrl.ts +++ b/src/rooms/logic/skill/TriggerCtrl.ts @@ -16,7 +16,8 @@ import { Trigger } from "./Trigger"; export class TriggerCtrl{ private _id: number; private _tg: Trigger; - private _cond: Condition; + + _cond: Condition; init(id:number, tgobj:Trigger, condobj: Condition){ this._id = id; From 05c53de3d9750337a2f4ed74beaa8296a9b81e4d Mon Sep 17 00:00:00 2001 From: "y.x" Date: Mon, 7 Dec 2020 14:00:31 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=A4=84=E7=90=86?= =?UTF-8?q?=EF=BC=88=E5=A7=94=E5=A9=89=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/rooms/logic/Handler/BattleHandler.ts | 30 ++++++++++++++++------- src/rooms/logic/Handler/PetHandler.ts | 9 +++++++ src/rooms/logic/Handler/PlayerHandler.ts | 31 +++++++++++++++++++++++- 3 files changed, 60 insertions(+), 10 deletions(-) diff --git a/src/rooms/logic/Handler/BattleHandler.ts b/src/rooms/logic/Handler/BattleHandler.ts index ca5338d..b522295 100644 --- a/src/rooms/logic/Handler/BattleHandler.ts +++ b/src/rooms/logic/Handler/BattleHandler.ts @@ -216,7 +216,9 @@ export class BattleHandler { * @param fromplayer : 吃别人的牌,自己胡牌时此参数传空 */ public onCardLinkReady(aplayer: Player, fromplayer?: Player){ - + let ph = this.getPlayer(aplayer); + let fromph = this.getPlayer(fromplayer); + ph && ph.onCardLinkReady(fromph); }; /** @@ -225,7 +227,8 @@ export class BattleHandler { * @param linkcards :吃到的牌组信息 */ public onCardLinkOver(aplayer: Player, linkcards: Card[]){ - + let ph = this.getPlayer(aplayer); + ph && ph.onCardLinkEnd(linkcards); }; /** @@ -235,7 +238,11 @@ export class BattleHandler { public onUseCardEnd(obj: {srcplayer: Player, card: number, cardpoint: number, dbpt_cnt: number, eff_cnt: number, dstplayer: Player, dstpet: Pet} ){ - + if(!obj){ + return; + } + let ph = this.getPlayer(obj.srcplayer); + ph && ph.onUseCardEnd(); }; /** @@ -245,7 +252,9 @@ export class BattleHandler { * @param dropcards : 弃掉的牌组 */ public onCardDroped(aplayer: Player, dropcards: Card[], fromplayer?: Player){ - + let ph = this.getPlayer(aplayer); + let fromph = this.getPlayer(fromplayer); + ph && ph.onCardDroped(dropcards, fromph); }; /** @@ -255,7 +264,9 @@ export class BattleHandler { * @param dropcards : 获得的牌组 */ public onCardGetted(aplayer: Player, getcards: Card[], fromplayer?: Player){ - + let ph = this.getPlayer(aplayer); + let fromph = this.getPlayer(fromplayer); + ph && ph.onCardGetted(getcards, fromph); }; /** @@ -263,7 +274,8 @@ export class BattleHandler { * @param aplayer */ public onPlayerRoundStart(aplayer: Player){ - + let ph = this.getPlayer(aplayer); + ph && ph.onRoundStart(); }; /** @@ -271,7 +283,8 @@ export class BattleHandler { * @param aplayer */ public onPlayerRoundEnd(aplayer: Player){ - + let ph = this.getPlayer(aplayer); + ph && ph.onRoundEnd(); }; public onAddPetNotify(apet: PetHandler){ @@ -279,7 +292,7 @@ export class BattleHandler { }; public onDelPetNotify(apet: PetHandler){ - + return this._room.bRemovePet(apet.exportRemoveData()); }; public onPlayerAddCard(aplayer: PlayerHandler, count: number, maxcount: number){ @@ -291,7 +304,6 @@ export class BattleHandler { }; public onSkillResult(skillres: SkillTarget[]){ - //todo: build skillrest json -> client let lst: SkillInfoMsg[] = []; skillres.forEach((item: SkillTarget)=>{ lst.push(item.exportData()); diff --git a/src/rooms/logic/Handler/PetHandler.ts b/src/rooms/logic/Handler/PetHandler.ts index 7918e9e..28b3fd9 100644 --- a/src/rooms/logic/Handler/PetHandler.ts +++ b/src/rooms/logic/Handler/PetHandler.ts @@ -9,6 +9,7 @@ import { EnhanceEffectType, PowerValueType } from "../skill/SkillConst"; import { PlayerHandler } from "./PlayerHandler"; import { PetInfoMsg } from "../../../message/PetInfo"; import { SkillParam } from "../skill/SkillParam"; +import { RemovePetMsg } from "message/RemovePetMsg"; export class PetHandler { _pet: Pet; @@ -218,4 +219,12 @@ export class PetHandler { }); return obj; }; + + public exportRemoveData(): RemovePetMsg{ + return new RemovePetMsg({ + id: this._id, + player: this._owner.getId(), + pos: this._idx + }) + }; } diff --git a/src/rooms/logic/Handler/PlayerHandler.ts b/src/rooms/logic/Handler/PlayerHandler.ts index 983a557..dd212f1 100644 --- a/src/rooms/logic/Handler/PlayerHandler.ts +++ b/src/rooms/logic/Handler/PlayerHandler.ts @@ -9,6 +9,7 @@ import { UnitCfg } from "cfg/parsers/UnitCfg"; import { Skill } from "../skill/Skill"; import { SkillParam, SkillTarget } from "../skill/SkillParam"; import SkillMan from "../skill/SkillMan"; +import { Card } from "rooms/schema/Card"; export class PlayerHandler { public _player: Player; @@ -60,7 +61,7 @@ export class PlayerHandler { let n = 0; for(let [key, obj] of this._player.pets){ if(n != 0){ - if(obj.ap == 0){ + if(obj.state == 0 || obj.state == 2){ res = obj; break; } @@ -296,4 +297,32 @@ export class PlayerHandler { } return bok; }; + + onCardLinkReady(fromplayer: PlayerHandler){ + + }; + + onCardLinkEnd(linkcards: Card[]){ + + }; + + onCardDroped(dropcards: Card[], srcplayer: PlayerHandler){ + + }; + + onCardGetted(getcards: Card[], srcplayer: PlayerHandler){ + + }; + + onUseCardEnd(){ + + }; + + onRoundStart(){ + + }; + + onRoundEnd(){ + + } }