Fixed (probably) the player1 concedes but other player2 wins. Fixed that if player runs out of timer time or player lose of beeing idle, the match will end correctly.

This commit is contained in:
LevelX2 2014-05-01 19:34:52 +02:00
parent 6d039e4262
commit 473c9e207b
32 changed files with 286 additions and 132 deletions

View file

@ -12,6 +12,7 @@ public interface Action {
/**
* Executes action.
* @throws mage.MageException
*/
void execute() throws MageException;
}

View file

@ -1,11 +1,10 @@
package mage.utils.timer;
import mage.MageException;
import mage.interfaces.Action;
import org.apache.log4j.Logger;
import java.util.Timer;
import java.util.TimerTask;
import mage.MageException;
import mage.interfaces.Action;
import org.apache.log4j.Logger;
/**
* @author noxx
@ -14,14 +13,11 @@ public class PriorityTimer extends TimerTask {
private static final Logger logger = Logger.getLogger(PriorityTimer.class);
private final long delay;
private final Action taskOnTimeout;
private int count;
private long delay;
private Action taskOnTimeout;
private Action taskOnTick;
private States state = States.NONE;
enum States {

View file

@ -72,14 +72,18 @@ public class MatchView implements Serializable {
}
StringBuilder sb1 = new StringBuilder();
StringBuilder sb2 = new StringBuilder();
for (MatchPlayer player: match.getPlayers()) {
sb1.append(player.getName());
if(player.hasQuit()) {
sb1.append(" [quit] ");
for (MatchPlayer matchPlayer: match.getPlayers()) {
sb1.append(matchPlayer.getName());
if(matchPlayer.hasQuit()) {
if (matchPlayer.hasTimerTimeout()) {
sb1.append(" [timer] ");
} else {
sb1.append(" [quit] ");
}
}
sb1.append(", ");
sb2.append(player.getName()).append(" ");
sb2.append(player.getWins()).append("-").append(player.getLoses()).append(", ");
sb2.append(matchPlayer.getName()).append(" ");
sb2.append(matchPlayer.getWins()).append("-").append(matchPlayer.getLoses()).append(", ");
}
players = sb1.substring(0, sb1.length() - 2);
result = sb2.substring(0, sb2.length() - 2);

View file

@ -39,7 +39,6 @@ import mage.game.Seat;
import mage.game.Table;
import mage.game.match.MatchPlayer;
import mage.game.tournament.TournamentPlayer;
import org.jboss.logging.Logger;
/**
*

View file

@ -54,7 +54,7 @@ public class TournamentGameView implements Serializable {
this.matchId = pair.getMatch().getId();
this.gameId = game.getId();
this.players = pair.getPlayer1().getPlayer().getName() + " - " + pair.getPlayer2().getPlayer().getName();
if (game.isGameOver()) {
if (game.hasEnded()) {
this.state = "Finished";
this.result = game.getWinner();
}