diff --git a/src/rooms/GeneralRoom.ts b/src/rooms/GeneralRoom.ts index 737c2ec..9074e8b 100644 --- a/src/rooms/GeneralRoom.ts +++ b/src/rooms/GeneralRoom.ts @@ -37,7 +37,7 @@ export class GeneralRoom extends Room { this.onMessage("give_up_eat_c2s", (client, message) => { console.log('give_up_take from ', client.sessionId, message); - this.dispatcher.dispatch(new NextSubCommand(), {}); + // this.dispatcher.dispatch(new NextSubCommand(), {}); }); this.onMessage("select_pet_c2s", (client, message) => { diff --git a/src/rooms/commands/DiscardCommand.ts b/src/rooms/commands/DiscardCommand.ts index 7715509..e724594 100644 --- a/src/rooms/commands/DiscardCommand.ts +++ b/src/rooms/commands/DiscardCommand.ts @@ -2,7 +2,6 @@ import { Command } from "@colyseus/command"; import { CardGameState } from "../schema/CardGameState"; import gameUtil from "../../utils/game.util"; import {Client} from "colyseus"; -import {NextTurnCommand} from "./NextTurnCommand"; import {NextSubCommand} from "./NextSubCommand"; import {GameStateConst} from "../../constants/GameStateConst"; diff --git a/src/rooms/commands/EatCardCommand.ts b/src/rooms/commands/EatCardCommand.ts index db9b2ba..319c966 100644 --- a/src/rooms/commands/EatCardCommand.ts +++ b/src/rooms/commands/EatCardCommand.ts @@ -2,6 +2,7 @@ import {Command} from "@colyseus/command"; import {CardGameState} from "../schema/CardGameState"; import {Client} from "colyseus"; import gameUtil from "../../utils/game.util"; +import {GameStateConst} from "../../constants/GameStateConst"; /** * 吃牌 @@ -17,11 +18,35 @@ export class EatCardCommand extends Command { execute() { this.state.gameState = GameStateConst.STATE_BEGIN_EAT; - const sessionIds = [...this.state.players.keys()]; - let nextSubTurn = this.state.subTurn ? - sessionIds[(sessionIds.indexOf(this.state.subTurn) + 1) % sessionIds.length] - : sessionIds[(sessionIds.indexOf(this.state.currentTurn) + 1) % sessionIds.length]; - if (nextSubTurn !== this.state.currentTurn) { - this.state.subTurn = nextSubTurn; - } else { - return [new NextTurnCommand()]; - } + // const sessionIds = [...this.state.players.keys()]; + // let nextSubTurn = this.state.subTurn ? + // sessionIds[(sessionIds.indexOf(this.state.subTurn) + 1) % sessionIds.length] + // : sessionIds[(sessionIds.indexOf(this.state.currentTurn) + 1) % sessionIds.length]; + // if (nextSubTurn !== this.state.currentTurn) { + // this.state.subTurn = nextSubTurn; + // } else { + // return [new NextTurnCommand()]; + // } } } diff --git a/src/rooms/commands/OnJoinCommand.ts b/src/rooms/commands/OnJoinCommand.ts index 05e77b8..a841d0e 100644 --- a/src/rooms/commands/OnJoinCommand.ts +++ b/src/rooms/commands/OnJoinCommand.ts @@ -11,7 +11,8 @@ export class OnJoinCommand extends Command { execute({client}: { client: Client }) { - this.state.players.set(client.sessionId, new Player(0)); + let team = this.state.players.size / 2 | 0; + this.state.players.set(client.sessionId, new Player(0, team)); if (this.state.players.size >= this.room.maxClients) { this.room.lock(); this.state.gameState = 1; diff --git a/src/rooms/schema/Player.ts b/src/rooms/schema/Player.ts index 50c786d..0f26b6e 100644 --- a/src/rooms/schema/Player.ts +++ b/src/rooms/schema/Player.ts @@ -1,6 +1,8 @@ import {MapSchema, SetSchema, Schema, type} from "@colyseus/schema"; import {Pet} from "./Pet"; import {Card} from "./Card"; +import {singleton} from "../../common/Singleton"; +import {GameEnv} from "../../cfg/GameEnv"; export class Player extends Schema { @@ -39,15 +41,21 @@ export class Player extends Schema { @type({ map: Pet }) pets = new MapSchema(); + /** + * 队伍 + */ + @type("number") + team: number; + //TODO: set hp, ap from cfg - constructor(heroId: number) { + constructor(heroId: number, team: number) { super(); this.state = 0; this.hp = 200; this.ap = 30; this.heroId = heroId; - for (let i = 0; i < 6; i++) { + for (let i = 0; i < singleton(GameEnv).maxPlayerPetCount; i++) { this.pets.set(i+'', new Pet()); } }