card_svr/src/rooms/schema/CardGameState.ts
2020-12-02 10:14:45 +08:00

51 lines
936 B
TypeScript

import { Schema, MapSchema, type } from "@colyseus/schema";
import {Player} from "./Player";
import {Card} from "./Card";
export class CardGameState extends Schema {
@type({ map: Player })
players = new MapSchema<Player>();
/**
* 游戏装备
* 0: 等待玩家加入
* 1: 等待玩家准备
* 2: 游戏进行中-出牌轮
* 3: 游戏进行中-吃碰轮
* 4: 游戏中吃牌后的选随从轮
* 9: 游戏结束
*/
@type("number")
gameState: number = 0;
@type("string")
currentTurn: string;
/**
* 用于吃牌时的计轮, 只有在gameState==3的时候才需要判断
*/
@type("string")
subTurn: string;
/**
* 轮次
*/
@type("number")
round: number;
/**
* 当局游戏卡组队列
*/
cardQueue: Card[] = [];
/**
* 上轮玩家出的牌
*/
@type({map: Card})
cards = new MapSchema<Card>() ;
/**
* 先手玩家
*/
firstPlayer: string;
}