From 78298aebe2c0c6c52d24c7653efe296272200d3a Mon Sep 17 00:00:00 2001 From: zhl Date: Fri, 4 Dec 2020 15:36:55 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=86=E6=8A=BD=E5=8D=A1=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E6=94=B9=E4=B8=BA=E7=BB=9F=E4=B8=80=E7=9A=84=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/global.d.ts | 10 ++++------ src/index.ts | 1 + src/rooms/commands/BeginGameCommand.ts | 4 +--- src/rooms/commands/ChangeCardCommand.ts | 4 +--- src/rooms/commands/DrawCommand.ts | 11 +---------- 5 files changed, 8 insertions(+), 22 deletions(-) diff --git a/src/global.d.ts b/src/global.d.ts index fa0b88d..48fd4e5 100644 --- a/src/global.d.ts +++ b/src/global.d.ts @@ -134,20 +134,18 @@ declare module "colyseus" { /** * 弃卡, 并广播消息 - * @param srcplayer - * @param dstplayer 目标玩家, 可以和srcplayer相同 + * @param dstplayer 目标玩家 * @param count */ - giveUpCard(srcplayer: string, dstplayer: string, count: number): boolean; + giveUpCard(dstplayer: string, count: number): boolean; /** * 补卡, 并广播消息 - * @param srcplayer - * @param dstplayer 目标玩家, 可以和srcplayer相同 + * @param dstplayer 目标玩家 * @param count 补多少张, 该值和max_count至少一个不为0 * @param max_count 补到多少张, 如果count和max_count都不为0, 则抽 Math.min(count, (max_count - 当前手牌数)) */ - addCard(srcplayer: string, dstplayer: string, count: number, max_count: number): boolean; + addCard(dstplayer: string, count: number, max_count: number): boolean; } } diff --git a/src/index.ts b/src/index.ts index f9ae7b5..a437974 100644 --- a/src/index.ts +++ b/src/index.ts @@ -10,6 +10,7 @@ import {MongooseDriver} from "colyseus/lib/matchmaker/drivers/MongooseDriver"; import {initData} from "./common/GConfig"; require('./rooms/MSender'); +require('./rooms/RoomExtMethod'); const port = Number(process.env.PORT || 2567); const app = express() diff --git a/src/rooms/commands/BeginGameCommand.ts b/src/rooms/commands/BeginGameCommand.ts index 5b14c3b..4609320 100644 --- a/src/rooms/commands/BeginGameCommand.ts +++ b/src/rooms/commands/BeginGameCommand.ts @@ -16,9 +16,7 @@ export class BeginGameCommand extends Command { execute() { this.state.cardQueue = gameUtil.initCardQue(); for (let client of this.room.clients) { - let player = this.state.players.get(client.sessionId); - let cards = gameUtil.drawCard(this.state.cardQueue, player, singleton(GameEnv).initCardNum); - this.room.sDrawCard(client, {player: client.sessionId, cards}); + this.room.addCard(client.sessionId, singleton(GameEnv).initCardNum, 0); } this.state.gameState = GameStateConst.STATE_CHANGE_CARD; } diff --git a/src/rooms/commands/ChangeCardCommand.ts b/src/rooms/commands/ChangeCardCommand.ts index 226a45d..aa61863 100644 --- a/src/rooms/commands/ChangeCardCommand.ts +++ b/src/rooms/commands/ChangeCardCommand.ts @@ -40,9 +40,7 @@ export class ChangeCardCommand extends Command { execute() { let sessionId = this.state.currentTurn; - let curPlayer = this.state.players.get(sessionId); - let curClient; - for (let client of this.room.clients) { - if (client.sessionId === sessionId) { - curClient = client; - break; - } - } - let cards = gameUtil.drawCard(this.state.cardQueue, curPlayer, singleton(GameEnv).roundDrawNum); - this.room.sDrawCard(curClient, {player: sessionId, cards}) + this.room.addCard(sessionId, singleton(GameEnv).roundDrawNum, 0); } }