From 9e4aa72b158bf9ffa930b25f63efa2cdeab4c359 Mon Sep 17 00:00:00 2001 From: Maxmtg Date: Thu, 28 Mar 2013 20:28:48 +0000 Subject: [PATCH] Win duel event uses lobby player, match does not make difference. --- src/main/java/forge/game/MatchController.java | 14 +++++++------- .../java/forge/game/event/DuelOutcomeEvent.java | 10 ++++++---- src/main/java/forge/sound/EventVisualizer.java | 3 ++- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/src/main/java/forge/game/MatchController.java b/src/main/java/forge/game/MatchController.java index f94a1666756..1119eb528d6 100644 --- a/src/main/java/forge/game/MatchController.java +++ b/src/main/java/forge/game/MatchController.java @@ -94,15 +94,18 @@ public class MatchController { result.setTurnsPlayed(game.getPhaseHandler().getTurn()); gamesPlayed.add(result); + // Play the win/lose sound + game.getEvents().post(new DuelOutcomeEvent(result.getWinner())); + game.getGameLog().add("Final", result.getWinner() + " won", 0); + // add result entries to the game log LobbyPlayer human = Singletons.getControl().getPlayer().getLobbyPlayer(); String title = result.isWinner(human) ? "You Win" : "You Lost"; - game.getGameLog().add("Final", title, 0); - + List outcomes = new ArrayList(); for (Entry p : result) { - String outcome = String.format("%s %s", p.getKey().equals(human) ? "You have" : p.getKey().getName() + " has", - p.getValue().getOutcome().toString()); + String whoHas = p.getKey().equals(human) ? "You have" : p.getKey().getName() + " has"; + String outcome = String.format("%s %s", whoHas, p.getValue().getOutcome().toString()); outcomes.add(outcome); game.getGameLog().add("Final", outcome, 0); } @@ -117,9 +120,6 @@ public class MatchController { v.setTitle(title); v.setOutcomes(outcomes); v.setStatsSummary(statsSummary); - - // Play the win/lose sound - game.getEvents().post(new DuelOutcomeEvent(result.isWinner(human))); } diff --git a/src/main/java/forge/game/event/DuelOutcomeEvent.java b/src/main/java/forge/game/event/DuelOutcomeEvent.java index 82ef800c907..e6e6ab1a54e 100644 --- a/src/main/java/forge/game/event/DuelOutcomeEvent.java +++ b/src/main/java/forge/game/event/DuelOutcomeEvent.java @@ -1,9 +1,11 @@ package forge.game.event; -public class DuelOutcomeEvent extends Event { - public final boolean humanWonTheDuel; +import forge.game.player.LobbyPlayer; - public DuelOutcomeEvent(boolean humanWon) { - humanWonTheDuel = humanWon; +public class DuelOutcomeEvent extends Event { + public final LobbyPlayer winner; + + public DuelOutcomeEvent(LobbyPlayer winner) { + this.winner = winner; } } diff --git a/src/main/java/forge/sound/EventVisualizer.java b/src/main/java/forge/sound/EventVisualizer.java index e10c5a10700..1ef2d575fae 100644 --- a/src/main/java/forge/sound/EventVisualizer.java +++ b/src/main/java/forge/sound/EventVisualizer.java @@ -27,6 +27,7 @@ import forge.game.event.SetTappedEvent; import forge.game.event.ShuffleEvent; import forge.game.event.SpellResolvedEvent; import forge.game.event.TokenCreatedEvent; +import forge.game.player.PlayerType; /** * This class is in charge of converting any forge.game.event.Event to a SoundEffectType. @@ -80,7 +81,7 @@ public class EventVisualizer { return getSoundEffectForTapState(((SetTappedEvent) evt).Tapped); } if (evt instanceof DuelOutcomeEvent) { - return getSoundEffectForDuelOutcome(((DuelOutcomeEvent) evt).humanWonTheDuel); + return getSoundEffectForDuelOutcome(((DuelOutcomeEvent) evt).winner.getType() == PlayerType.HUMAN); } return fromMap;