将抽卡消息改为统一的方法

This commit is contained in:
zhl 2020-12-04 15:36:55 +08:00
parent a836f6f1c6
commit 78298aebe2
5 changed files with 8 additions and 22 deletions

10
src/global.d.ts vendored
View File

@ -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;
}
}

View File

@ -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()

View File

@ -16,9 +16,7 @@ export class BeginGameCommand extends Command<CardGameState, {}> {
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;
}

View File

@ -40,9 +40,7 @@ export class ChangeCardCommand extends Command<CardGameState, { client: Client,
let curClient = this.room.clients[0];
this.state.currentTurn = curClient.sessionId;
this.state.round = 0;
let curPlayer = this.state.players.get(curClient.sessionId);
let cards = gameUtil.drawCard(this.state.cardQueue, curPlayer, singleton(GameEnv).roundDrawNum);
this.room.sDrawCard(curClient, {player: curClient.sessionId, cards})
this.room.addCard(curClient.sessionId, singleton(GameEnv).roundDrawNum, 0);
this.state.gameState = GameStateConst.STATE_BEGIN_DRAW;
}
}

View File

@ -10,15 +10,6 @@ import gameUtil from "../../utils/game.util";
export class DrawCommand extends Command<CardGameState, {}> {
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);
}
}