From acfe8c7e504d70718f0d39fc751b1ee1aca572fc Mon Sep 17 00:00:00 2001 From: "y.x" Date: Tue, 8 Dec 2020 12:57:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/rooms/logic/Handler/BattleHandler.ts | 32 +++++++++++++++++++++--- src/rooms/logic/Handler/PlayerHandler.ts | 23 +++++++++-------- 2 files changed, 41 insertions(+), 14 deletions(-) diff --git a/src/rooms/logic/Handler/BattleHandler.ts b/src/rooms/logic/Handler/BattleHandler.ts index 6df34e4..310ee45 100644 --- a/src/rooms/logic/Handler/BattleHandler.ts +++ b/src/rooms/logic/Handler/BattleHandler.ts @@ -32,6 +32,13 @@ export class BattleHandler { }; public delPlayer(aplayer: Player){ + let ph = this.getPlayer(aplayer); + this._players.forEach((item: PlayerHandler) =>{ + if(item._friend == ph){ + item._friend = null; + } + }); + this._players.delete(aplayer); }; @@ -156,6 +163,7 @@ export class BattleHandler { return lst; }; + //--------------------对外接口(外部调用)---------------------------- /** * 使用卡片 * @param obj @@ -285,6 +293,19 @@ export class BattleHandler { ph && ph.onRoundEnd(); }; + /** + * 玩家死亡 + * @param aplayer + */ + public onPlayerDead(aplayer: Player){ + let ph = this.getPlayer(aplayer); + ph && ph.die(); + }; + + // end-------------------------------------------------- + + + // --------------------调用外部接口函数-------------------------- public onAddPetNotify(apet: PetHandler){ return this._room.bAddPet(apet.exportData()); }; @@ -293,15 +314,15 @@ export class BattleHandler { return this._room.bRemovePet(apet.exportRemoveData()); }; - public onPlayerAddCard(aplayer: PlayerHandler, count: number, maxcount: number){ + public onPlayerAddCardNotify(aplayer: PlayerHandler, count: number, maxcount: number){ return this._room.addCard(aplayer.getId(), count, maxcount); }; - public onPlayerStealCard(srcplayer: PlayerHandler, dstplayer: PlayerHandler, count: number){ + public onPlayerStealCardNotify(srcplayer: PlayerHandler, dstplayer: PlayerHandler, count: number){ return this._room.drawCardFromPlayer(srcplayer.getId(), dstplayer.getId(), count); }; - public onSkillResult(skillres: SkillTarget[]){ + public onSkillResultNotify(skillres: SkillTarget[]){ if(!skillres || skillres.length <= 0){ return; } @@ -310,5 +331,10 @@ export class BattleHandler { lst.push(item.exportData()); }); this._room.bMsgQueue(lst); + }; + + public onPlayerAddHPNotify(aplayer: PlayerHandler, addhp: number){ + return addhp; } + //end------------------------------------------------ } diff --git a/src/rooms/logic/Handler/PlayerHandler.ts b/src/rooms/logic/Handler/PlayerHandler.ts index 5f42918..8a5ae34 100644 --- a/src/rooms/logic/Handler/PlayerHandler.ts +++ b/src/rooms/logic/Handler/PlayerHandler.ts @@ -189,23 +189,19 @@ export class PlayerHandler { }; public addCard(count: number){ - return this._owner.onPlayerAddCard(this, count, 0); + return this._owner.onPlayerAddCardNotify(this, count, 0); }; public addCardLimit(maxcount: number){ - return this._owner.onPlayerAddCard(this, 0, maxcount); + return this._owner.onPlayerAddCardNotify(this, 0, maxcount); }; public stealCard(dstplayer: PlayerHandler, count: number){ - return this._owner.onPlayerStealCard(this, dstplayer, count); + return this._owner.onPlayerStealCardNotify(this, dstplayer, count); }; public addHP(value: number){ - this._player.hp += value; - if(value < 0){ - this.die(); - } - return value; + return this._owner.onPlayerAddHPNotify(this, value); }; public getHP(){ @@ -230,6 +226,11 @@ export class PlayerHandler { public die(){ //todo: + + }; + + public isDead(){ + this._player.state == 2; }; public onPetBorned(apet: PetHandler, param: SkillParam){ @@ -249,7 +250,7 @@ export class PlayerHandler { }); }); - this._owner.onSkillResult(reslst); + this._owner.onSkillResultNotify(reslst); }; public onPetDied(apet: PetHandler){ @@ -270,7 +271,7 @@ export class PlayerHandler { }); }); - this._owner.onSkillResult(reslst); + this._owner.onSkillResultNotify(reslst); }; public onHaloChanged(apet: PetHandler){ @@ -353,7 +354,7 @@ export class PlayerHandler { }); }); - this._owner.onSkillResult(reslst); + this._owner.onSkillResultNotify(reslst); }; resetTotalCard(){