移除结算command, 改为每个turn结束就判断一次游戏结束

This commit is contained in:
zhl 2020-12-18 17:22:08 +08:00
parent c9aaf18a82
commit 8257a9b71f

View File

@ -3,6 +3,9 @@ import {CardGameState} from "../schema/CardGameState";
import {GameEnv} from "../../cfg/GameEnv";
import {PartResultCommand} from "./PartResultCommand";
import {NextTurnCommand} from "./NextTurnCommand";
import {PlayerStateConst} from "../../constants/PlayerStateConst";
import {Wait} from "./Wait";
import {GameResultCommand} from "./GameResultCommand";
/**
*
@ -17,14 +20,30 @@ export class TurnEndCommand extends Command<CardGameState, {}> {
this.room.battleMan.onPlayerRoundEnd(player);
}
}
if (this.state.currentTurn
&& sessionIds.indexOf(this.state.currentTurn) == (sessionIds.length - 1)) {
// 每n轮结束的时候结算一次
const roundNum = new GameEnv().duelRoundNum;
if (this.state.round % roundNum == (roundNum - 1)) {
return [new PartResultCommand()];
// if (this.state.currentTurn
// && sessionIds.indexOf(this.state.currentTurn) == (sessionIds.length - 1)) {
// // 每n轮结束的时候结算一次
// const roundNum = new GameEnv().duelRoundNum;
// if (this.state.round % roundNum == (roundNum - 1)) {
// return [new PartResultCommand()];
// }
// }
// 判断是否胜利
let deadCount0 = 0;
let deadCount1 = 0;
for (let [, player] of this.state.players) {
if (player.team == 0 && player.state == PlayerStateConst.PLAYER_DEAD ) {
deadCount0 ++;
} else if (player.team == 1 && player.state == PlayerStateConst.PLAYER_DEAD ){
deadCount1 ++;
}
}
const roundNum = new GameEnv().duelRoundNum;
const totalRound = roundNum * new GameEnv().maxDuelNum;
if ((deadCount0 == 2 || deadCount1 == 2) || (this.state.round >= totalRound - 1)) { // 游戏结束
return [new GameResultCommand()];
}
return [new NextTurnCommand()]
}