diff --git a/src/rooms/logic/Handler/BattleHandler.ts b/src/rooms/logic/Handler/BattleHandler.ts index b7fcbbd..b522295 100644 --- a/src/rooms/logic/Handler/BattleHandler.ts +++ b/src/rooms/logic/Handler/BattleHandler.ts @@ -155,7 +155,6 @@ export class BattleHandler { } return lst; }; - /** * 使用卡片 @@ -217,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); }; /** @@ -226,7 +227,8 @@ export class BattleHandler { * @param linkcards :吃到的牌组信息 */ public onCardLinkOver(aplayer: Player, linkcards: Card[]){ - + let ph = this.getPlayer(aplayer); + ph && ph.onCardLinkEnd(linkcards); }; /** @@ -236,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(); }; /** @@ -246,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); }; /** @@ -256,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); }; /** @@ -264,7 +274,8 @@ export class BattleHandler { * @param aplayer */ public onPlayerRoundStart(aplayer: Player){ - + let ph = this.getPlayer(aplayer); + ph && ph.onRoundStart(); }; /** @@ -272,7 +283,8 @@ export class BattleHandler { * @param aplayer */ public onPlayerRoundEnd(aplayer: Player){ - + let ph = this.getPlayer(aplayer); + ph && ph.onRoundEnd(); }; public onAddPetNotify(apet: PetHandler){ @@ -280,7 +292,7 @@ export class BattleHandler { }; public onDelPetNotify(apet: PetHandler){ - + return this._room.bRemovePet(apet.exportRemoveData()); }; public onPlayerAddCard(aplayer: PlayerHandler, count: number, maxcount: number){ @@ -292,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(){ + + } } 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;