将抽卡消息改为统一的方法
This commit is contained in:
parent
a836f6f1c6
commit
78298aebe2
10
src/global.d.ts
vendored
10
src/global.d.ts
vendored
@ -134,20 +134,18 @@ declare module "colyseus" {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 弃卡, 并广播消息
|
* 弃卡, 并广播消息
|
||||||
* @param srcplayer
|
* @param dstplayer 目标玩家
|
||||||
* @param dstplayer 目标玩家, 可以和srcplayer相同
|
|
||||||
* @param count
|
* @param count
|
||||||
*/
|
*/
|
||||||
giveUpCard(srcplayer: string, dstplayer: string, count: number): boolean;
|
giveUpCard(dstplayer: string, count: number): boolean;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 补卡, 并广播消息
|
* 补卡, 并广播消息
|
||||||
* @param srcplayer
|
* @param dstplayer 目标玩家
|
||||||
* @param dstplayer 目标玩家, 可以和srcplayer相同
|
|
||||||
* @param count 补多少张, 该值和max_count至少一个不为0
|
* @param count 补多少张, 该值和max_count至少一个不为0
|
||||||
* @param max_count 补到多少张, 如果count和max_count都不为0, 则抽 Math.min(count, (max_count - 当前手牌数))
|
* @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;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,7 @@ import {MongooseDriver} from "colyseus/lib/matchmaker/drivers/MongooseDriver";
|
|||||||
import {initData} from "./common/GConfig";
|
import {initData} from "./common/GConfig";
|
||||||
|
|
||||||
require('./rooms/MSender');
|
require('./rooms/MSender');
|
||||||
|
require('./rooms/RoomExtMethod');
|
||||||
|
|
||||||
const port = Number(process.env.PORT || 2567);
|
const port = Number(process.env.PORT || 2567);
|
||||||
const app = express()
|
const app = express()
|
||||||
|
@ -16,9 +16,7 @@ export class BeginGameCommand extends Command<CardGameState, {}> {
|
|||||||
execute() {
|
execute() {
|
||||||
this.state.cardQueue = gameUtil.initCardQue();
|
this.state.cardQueue = gameUtil.initCardQue();
|
||||||
for (let client of this.room.clients) {
|
for (let client of this.room.clients) {
|
||||||
let player = this.state.players.get(client.sessionId);
|
this.room.addCard(client.sessionId, singleton(GameEnv).initCardNum, 0);
|
||||||
let cards = gameUtil.drawCard(this.state.cardQueue, player, singleton(GameEnv).initCardNum);
|
|
||||||
this.room.sDrawCard(client, {player: client.sessionId, cards});
|
|
||||||
}
|
}
|
||||||
this.state.gameState = GameStateConst.STATE_CHANGE_CARD;
|
this.state.gameState = GameStateConst.STATE_CHANGE_CARD;
|
||||||
}
|
}
|
||||||
|
@ -40,9 +40,7 @@ export class ChangeCardCommand extends Command<CardGameState, { client: Client,
|
|||||||
let curClient = this.room.clients[0];
|
let curClient = this.room.clients[0];
|
||||||
this.state.currentTurn = curClient.sessionId;
|
this.state.currentTurn = curClient.sessionId;
|
||||||
this.state.round = 0;
|
this.state.round = 0;
|
||||||
let curPlayer = this.state.players.get(curClient.sessionId);
|
this.room.addCard(curClient.sessionId, singleton(GameEnv).roundDrawNum, 0);
|
||||||
let cards = gameUtil.drawCard(this.state.cardQueue, curPlayer, singleton(GameEnv).roundDrawNum);
|
|
||||||
this.room.sDrawCard(curClient, {player: curClient.sessionId, cards})
|
|
||||||
this.state.gameState = GameStateConst.STATE_BEGIN_DRAW;
|
this.state.gameState = GameStateConst.STATE_BEGIN_DRAW;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,15 +10,6 @@ import gameUtil from "../../utils/game.util";
|
|||||||
export class DrawCommand extends Command<CardGameState, {}> {
|
export class DrawCommand extends Command<CardGameState, {}> {
|
||||||
execute() {
|
execute() {
|
||||||
let sessionId = this.state.currentTurn;
|
let sessionId = this.state.currentTurn;
|
||||||
let curPlayer = this.state.players.get(sessionId);
|
this.room.addCard(sessionId, singleton(GameEnv).roundDrawNum, 0);
|
||||||
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})
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user