增加吃牌的超时设置
This commit is contained in:
parent
a8c44ea05a
commit
cffd7f8db1
@ -6,6 +6,8 @@ import {NextSubCommand} from "./NextSubCommand";
|
||||
import {GameStateConst} from "../../constants/GameStateConst";
|
||||
import {singleton} from "../../common/Singleton";
|
||||
import {GameEnv} from "../../cfg/GameEnv";
|
||||
import {debugRoom} from "../../common/Debug";
|
||||
import {TurnEndCommand} from "./TurnEndCommand";
|
||||
|
||||
/**
|
||||
* 出牌
|
||||
@ -42,7 +44,7 @@ export class DiscardCommand extends Command<CardGameState, { client: Client, car
|
||||
}
|
||||
this.state.cards.clear();
|
||||
//停止计时, 并更新player.extraTime;
|
||||
if (this.room.mainClock) {
|
||||
if (this.room.mainClock && this.room.mainClock.active) {
|
||||
let maxTime = singleton(GameEnv).maxDiscardTime * 1000;
|
||||
let count = this.room.mainClock.elapsedTime - maxTime;
|
||||
let newCount = player.extraTime - count;
|
||||
@ -64,6 +66,14 @@ export class DiscardCommand extends Command<CardGameState, { client: Client, car
|
||||
return [new NextSubCommand()];
|
||||
} else {
|
||||
this.state.gameState = GameStateConst.STATE_PICK_PET;
|
||||
let self = this;
|
||||
let time = singleton(GameEnv).playerActTime * 1000 + player.extraTime;
|
||||
this.room.mainClock = this.clock.setTimeout(function (){
|
||||
player.extraTime = 0;
|
||||
self.room.mainClock.clear();
|
||||
debugRoom('选随从或者法术时间到, 自动出牌, 自动进入下一轮');
|
||||
self.room.dispatcher.dispatch(new TurnEndCommand());
|
||||
}.bind(this), time);
|
||||
// return [new NextTurnCommand()];
|
||||
}
|
||||
}
|
||||
|
@ -22,6 +22,7 @@ export class DrawCommand extends Command<CardGameState, {}> {
|
||||
let client = self.room.getClient(sessionId);
|
||||
let card = player.cards.values().next().value;
|
||||
debugRoom('出牌时间到, 自动出牌: ', card.id);
|
||||
player.extraTime = 0;
|
||||
self.room.dispatcher.dispatch(new DiscardCommand(), {client, cards: [card.id], dtype: 1});
|
||||
}
|
||||
}, maxTime + player.extraTime)
|
||||
|
@ -3,6 +3,10 @@ import {CardGameState} from "../schema/CardGameState";
|
||||
import {Client} from "colyseus";
|
||||
import gameUtil from "../../utils/game.util";
|
||||
import {GameStateConst} from "../../constants/GameStateConst";
|
||||
import {singleton} from "../../common/Singleton";
|
||||
import {GameEnv} from "../../cfg/GameEnv";
|
||||
import {debugRoom} from "../../common/Debug";
|
||||
import {TurnEndCommand} from "./TurnEndCommand";
|
||||
|
||||
/**
|
||||
* 吃牌
|
||||
@ -45,6 +49,14 @@ export class EatCardCommand extends Command<CardGameState, { client: Client, car
|
||||
player.cardSet.delete(id+'');
|
||||
}
|
||||
this.state.gameState = GameStateConst.STATE_PICK_PET;
|
||||
let time = singleton(GameEnv).playerActTime * 1000 + player.extraTime;
|
||||
let self = this;
|
||||
this.room.mainClock = this.clock.setTimeout(function (){
|
||||
player.extraTime = 0;
|
||||
self.room.mainClock.clear();
|
||||
debugRoom('选随从或者法术时间到, 自动出牌, 自动进入下一轮');
|
||||
self.room.dispatcher.dispatch(new TurnEndCommand());
|
||||
}.bind(this), time);
|
||||
let fromPlayer = this.state.players.get(this.state.currentTurn);
|
||||
if (fromPlayer.id !== player.id) {
|
||||
this.room.battleMan.onCardLinkReady(player, fromPlayer);
|
||||
|
@ -5,6 +5,7 @@ import {singleton} from "../../common/Singleton";
|
||||
import {GameEnv} from "../../cfg/GameEnv";
|
||||
import {NextTurnCommand} from "./NextTurnCommand";
|
||||
import {TurnEndCommand} from "./TurnEndCommand";
|
||||
import {debugRoom, error} from "../../common/Debug";
|
||||
|
||||
/**
|
||||
* 下一个吃牌轮
|
||||
@ -16,7 +17,9 @@ export class NextSubCommand extends Command<CardGameState, {}> {
|
||||
this.state.giveUpCount = 0;
|
||||
let time = singleton(GameEnv).maxEatTime * 1000;
|
||||
let self = this;
|
||||
// 启动定时, 到时后自动进入下一轮
|
||||
this.room.mainClock = this.clock.setTimeout(function (){
|
||||
debugRoom('吃牌时间到, 进入下一轮')
|
||||
self.room.mainClock.clear();
|
||||
self.room.dispatcher.dispatch(new TurnEndCommand());
|
||||
}, time);
|
||||
|
@ -71,7 +71,13 @@ export class SelectPetCommand extends Command<CardGameState, {client: Client,
|
||||
if (!targetCard) {
|
||||
return;
|
||||
}
|
||||
|
||||
//停止计时, 并更新player.extraTime;
|
||||
if (this.room.mainClock && this.room.mainClock.active) {
|
||||
let count = this.room.mainClock.elapsedTime - singleton(GameEnv).playerActTime * 1000;
|
||||
let newCount = player.extraTime - count;
|
||||
player.extraTime = Math.max(newCount, 0);
|
||||
this.room.mainClock.clear();
|
||||
}
|
||||
|
||||
let dstplayer = this.state.players.get(playerId);
|
||||
let dstpet;
|
||||
|
Loading…
x
Reference in New Issue
Block a user