Encapsulated game.getEvents into game - now fireEvent and subscribe methods are visible

This commit is contained in:
Maxmtg
2013-05-29 11:23:43 +00:00
parent f82e39df9c
commit 81c98d6000
17 changed files with 65 additions and 56 deletions

2
.gitattributes vendored
View File

@@ -14239,6 +14239,7 @@ src/main/java/forge/game/ai/ComputerUtilCombat.java -text
src/main/java/forge/game/ai/ComputerUtilCost.java -text src/main/java/forge/game/ai/ComputerUtilCost.java -text
src/main/java/forge/game/ai/ComputerUtilMana.java -text src/main/java/forge/game/ai/ComputerUtilMana.java -text
src/main/java/forge/game/event/GameEvent.java -text src/main/java/forge/game/event/GameEvent.java -text
src/main/java/forge/game/event/GameEventAnteCardsSelected.java -text
src/main/java/forge/game/event/GameEventBlockerAssigned.java -text src/main/java/forge/game/event/GameEventBlockerAssigned.java -text
src/main/java/forge/game/event/GameEventCardDamaged.java -text src/main/java/forge/game/event/GameEventCardDamaged.java -text
src/main/java/forge/game/event/GameEventCardDestroyed.java -text src/main/java/forge/game/event/GameEventCardDestroyed.java -text
@@ -14247,7 +14248,6 @@ src/main/java/forge/game/event/GameEventCardEquipped.java -text
src/main/java/forge/game/event/GameEventCardRegenerated.java -text src/main/java/forge/game/event/GameEventCardRegenerated.java -text
src/main/java/forge/game/event/GameEventCardSacrificed.java -text src/main/java/forge/game/event/GameEventCardSacrificed.java -text
src/main/java/forge/game/event/GameEventCardTapped.java -text src/main/java/forge/game/event/GameEventCardTapped.java -text
src/main/java/forge/game/event/GameEventCardsAnted.java -text
src/main/java/forge/game/event/GameEventCounterAdded.java -text src/main/java/forge/game/event/GameEventCounterAdded.java -text
src/main/java/forge/game/event/GameEventCounterRemoved.java -text src/main/java/forge/game/event/GameEventCounterRemoved.java -text
src/main/java/forge/game/event/GameEventDrawCard.java -text src/main/java/forge/game/event/GameEventDrawCard.java -text

View File

@@ -1154,7 +1154,7 @@ public class Card extends GameEntity implements Comparable<Card> {
} }
// play the Add Counter sound // play the Add Counter sound
getGame().getEvents().post(new GameEventCounterAdded(addAmount)); getGame().fireEvent(new GameEventCounterAdded(addAmount));
this.updateObservers(); this.updateObservers();
} }
@@ -1235,7 +1235,7 @@ public class Card extends GameEntity implements Comparable<Card> {
} }
// Play the Subtract Counter sound // Play the Subtract Counter sound
getGame().getEvents().post(new GameEventCounterRemoved(delta)); getGame().fireEvent(new GameEventCounterRemoved(delta));
this.updateObservers(); this.updateObservers();
} }
@@ -3184,7 +3184,7 @@ public class Card extends GameEntity implements Comparable<Card> {
c.addEquippedBy(this); c.addEquippedBy(this);
// Play the Equip sound // Play the Equip sound
getGame().getEvents().post(new GameEventCardEquipped()); getGame().fireEvent(new GameEventCardEquipped());
// run trigger // run trigger
final HashMap<String, Object> runParams = new HashMap<String, Object>(); final HashMap<String, Object> runParams = new HashMap<String, Object>();
runParams.put("AttachSource", this); runParams.put("AttachSource", this);
@@ -4078,7 +4078,7 @@ public class Card extends GameEntity implements Comparable<Card> {
this.setTapped(true); this.setTapped(true);
// Play the Tap sound // Play the Tap sound
getGame().getEvents().post(new GameEventCardTapped(true)); getGame().fireEvent(new GameEventCardTapped(this, true));
} }
/** /**
@@ -4094,7 +4094,7 @@ public class Card extends GameEntity implements Comparable<Card> {
getGame().getTriggerHandler().runTrigger(TriggerType.Untaps, runParams, false); getGame().getTriggerHandler().runTrigger(TriggerType.Untaps, runParams, false);
// Play the Untap sound // Play the Untap sound
getGame().getEvents().post(new GameEventCardTapped(false)); getGame().fireEvent(new GameEventCardTapped(this, false));
} }
for (final Command var : this.untapCommandList) { for (final Command var : this.untapCommandList) {
@@ -7406,7 +7406,7 @@ public class Card extends GameEntity implements Comparable<Card> {
} }
// Play the Damage sound // Play the Damage sound
game.getEvents().post(new GameEventCardDamaged()); game.fireEvent(new GameEventCardDamaged());
} }
getGame().getGameLog().add(GameEventType.DAMAGE, String.format("Dealing %d damage to %s. %s", damageToAdd, this.getName(), additionalLog)); getGame().getGameLog().add(GameEventType.DAMAGE, String.format("Dealing %d damage to %s. %s", damageToAdd, this.getName(), additionalLog));

View File

@@ -131,7 +131,7 @@ public class FlipCoinEffect extends SpellAbilityEffect {
public static boolean flipCoinNoCall(final Card source, final Player flipper) { public static boolean flipCoinNoCall(final Card source, final Player flipper) {
final boolean resultIsHeads = MyRandom.getRandom().nextBoolean(); final boolean resultIsHeads = MyRandom.getRandom().nextBoolean();
flipper.getGame().getEvents().post(new GameEventFlipCoin()); flipper.getGame().fireEvent(new GameEventFlipCoin());
final StringBuilder result = new StringBuilder(); final StringBuilder result = new StringBuilder();
result.append(flipper.getName()); result.append(flipper.getName());
result.append("'s flip comes up"); result.append("'s flip comes up");

View File

@@ -209,7 +209,7 @@ public class TokenEffect extends SpellAbilityEffect {
for(Card tok : tokens) { for(Card tok : tokens) {
controller.getGame().getAction().moveToPlay(tok); controller.getGame().getAction().moveToPlay(tok);
} }
controller.getGame().getEvents().post(new GameEventTokenCreated()); controller.getGame().fireEvent(new GameEventTokenCreated());
// Grant rule changes // Grant rule changes
if (this.tokenHiddenKeywords != null) { if (this.tokenHiddenKeywords != null) {

View File

@@ -43,7 +43,7 @@ import forge.control.KeyboardShortcuts.Shortcut;
import forge.control.input.InputQueue; import forge.control.input.InputQueue;
import forge.game.GameState; import forge.game.GameState;
import forge.game.ai.AiProfileUtil; import forge.game.ai.AiProfileUtil;
import forge.game.event.GameEventCardsAnted; import forge.game.event.GameEventAnteCardsSelected;
import forge.game.event.GameEventDuelFinished; import forge.game.event.GameEventDuelFinished;
import forge.game.event.GameEvent; import forge.game.event.GameEvent;
import forge.game.event.GameEventTurnPhase; import forge.game.event.GameEventTurnPhase;
@@ -377,7 +377,7 @@ public enum FControl {
inputQueue = new InputQueue(); inputQueue = new InputQueue();
this.game = game0; this.game = game0;
game.getEvents().register(Singletons.getControl().getSoundSystem()); game.subscribeToEvents(Singletons.getControl().getSoundSystem());
LobbyPlayer humanLobbyPlayer = getLobby().getGuiPlayer(); LobbyPlayer humanLobbyPlayer = getLobby().getGuiPlayer();
// The UI controls should use these game data as models // The UI controls should use these game data as models
@@ -401,7 +401,7 @@ public enum FControl {
// some observers were set in CMatchUI.initMatch // some observers were set in CMatchUI.initMatch
// Listen to DuelOutcome event to show ViewWinLose // Listen to DuelOutcome event to show ViewWinLose
game.getEvents().register(this); game.subscribeToEvents(this);
VAntes.SINGLETON_INSTANCE.setModel(game.getRegisteredPlayers()); VAntes.SINGLETON_INSTANCE.setModel(game.getRegisteredPlayers());
@@ -425,11 +425,11 @@ public enum FControl {
new ViewWinLose(game.getMatch()); new ViewWinLose(game.getMatch());
SOverlayUtils.showOverlay(); SOverlayUtils.showOverlay();
} }); } });
} else if ( ev instanceof GameEventCardsAnted ) { } else if ( ev instanceof GameEventAnteCardsSelected ) {
// Require EDT here? // Require EDT here?
final String nl = System.getProperty("line.separator"); final String nl = System.getProperty("line.separator");
final StringBuilder msg = new StringBuilder(); final StringBuilder msg = new StringBuilder();
for (final Pair<Player, Card> kv : ((GameEventCardsAnted) ev).cards) { for (final Pair<Player, Card> kv : ((GameEventAnteCardsSelected) ev).cards) {
msg.append(kv.getKey().getName()).append(" ante: ").append(kv.getValue()).append(nl); msg.append(kv.getKey().getName()).append(" ante: ").append(kv.getValue()).append(nl);
} }
GuiDialog.message(msg.toString(), "Ante"); GuiDialog.message(msg.toString(), "Ante");

View File

@@ -1110,7 +1110,7 @@ public class GameAction {
if (c.getCounters(CounterType.LOYALTY) <= 0) { if (c.getCounters(CounterType.LOYALTY) <= 0) {
moveToGraveyard(c); moveToGraveyard(c);
// Play the Destroy sound // Play the Destroy sound
game.getEvents().post(new GameEventCardDestroyed()); game.fireEvent(new GameEventCardDestroyed());
recheck = true; recheck = true;
} }
@@ -1164,7 +1164,7 @@ public class GameAction {
} }
recheck = true; recheck = true;
// Play the Destroy sound // Play the Destroy sound
game.getEvents().post(new GameEventCardDestroyed()); game.fireEvent(new GameEventCardDestroyed());
} }
} }
@@ -1179,7 +1179,7 @@ public class GameAction {
this.sacrificeDestroy(c); this.sacrificeDestroy(c);
// Play the Sacrifice sound // Play the Sacrifice sound
game.getEvents().post(new GameEventCardSacrificed()); game.fireEvent(new GameEventCardSacrificed());
// Run triggers // Run triggers
final HashMap<String, Object> runParams = new HashMap<String, Object>(); final HashMap<String, Object> runParams = new HashMap<String, Object>();
@@ -1211,7 +1211,7 @@ public class GameAction {
game.getCombat().removeFromCombat(c); game.getCombat().removeFromCombat(c);
// Play the Regen sound // Play the Regen sound
game.getEvents().post(new GameEventCardRegenerated()); game.fireEvent(new GameEventCardRegenerated());
return false; return false;
} }
@@ -1263,7 +1263,7 @@ public class GameAction {
card.setDamage(0); card.setDamage(0);
// Play the Destroy sound // Play the Destroy sound
game.getEvents().post(new GameEventCardDestroyed()); game.fireEvent(new GameEventCardDestroyed());
} }
}; };
@@ -1280,7 +1280,7 @@ public class GameAction {
} }
// Play the Destroy sound // Play the Destroy sound
game.getEvents().post(new GameEventCardDestroyed()); game.fireEvent(new GameEventCardDestroyed());
// Run triggers // Run triggers
final HashMap<String, Object> runParams = new HashMap<String, Object>(); final HashMap<String, Object> runParams = new HashMap<String, Object>();
runParams.put("Card", c); runParams.put("Card", c);

View File

@@ -24,7 +24,6 @@ import java.util.Map;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import com.google.common.base.Function; import com.google.common.base.Function;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
@@ -37,6 +36,7 @@ import forge.CardUtil;
import forge.Command; import forge.Command;
import forge.Constant; import forge.Constant;
import forge.CounterType; import forge.CounterType;
import forge.card.MagicColor; import forge.card.MagicColor;
import forge.card.ability.AbilityFactory; import forge.card.ability.AbilityFactory;
import forge.card.ability.AbilityFactory.AbilityRecordType; import forge.card.ability.AbilityFactory.AbilityRecordType;
@@ -55,12 +55,12 @@ import forge.card.spellability.SpellAbility;
import forge.card.spellability.SpellAbilityRestriction; import forge.card.spellability.SpellAbilityRestriction;
import forge.game.ai.AiController; import forge.game.ai.AiController;
import forge.game.player.HumanPlay; import forge.game.player.HumanPlay;
import forge.game.event.GameEventLifeLoss;
import forge.game.player.Player; import forge.game.player.Player;
import forge.game.player.PlayerControllerAi; import forge.game.player.PlayerControllerAi;
import forge.game.zone.ZoneType; import forge.game.zone.ZoneType;
import forge.gui.GuiChoose; import forge.gui.GuiChoose;
import forge.gui.GuiDialog; import forge.gui.GuiDialog;
import forge.sound.SoundEffectType;
import forge.util.TextUtil; import forge.util.TextUtil;
@@ -439,7 +439,7 @@ public final class GameActionUtil {
c.getDamageHistory().registerCombatDamage(player); c.getDamageHistory().registerCombatDamage(player);
// Play the Life Loss sound // Play the Life Loss sound
player.getGame().getEvents().post(SoundEffectType.LifeLoss); player.getGame().fireEvent(new GameEventLifeLoss());
} // executeCombatDamageToPlayerEffects } // executeCombatDamageToPlayerEffects
/** /**

View File

@@ -38,6 +38,7 @@ import forge.card.spellability.SpellAbility;
import forge.card.spellability.SpellAbilityStackInstance; import forge.card.spellability.SpellAbilityStackInstance;
import forge.card.trigger.TriggerHandler; import forge.card.trigger.TriggerHandler;
import forge.card.trigger.TriggerType; import forge.card.trigger.TriggerType;
import forge.game.event.GameEvent;
import forge.game.phase.Cleanup; import forge.game.phase.Cleanup;
import forge.game.phase.Combat; import forge.game.phase.Combat;
import forge.game.phase.EndOfCombat; import forge.game.phase.EndOfCombat;
@@ -521,10 +522,14 @@ public class GameState {
} }
/** /**
* @return the events * Fire only the events after they became real for gamestate and won't get replaced.<br>
* The events are sent to UI, log and sound system. Network listeners are under development.
*/ */
public EventBus getEvents() { public void fireEvent(GameEvent event) {
return events; events.post(event);
}
public void subscribeToEvents(Object subscriber) {
events.register(subscriber);
} }
/** /**

View File

@@ -9,7 +9,7 @@ import com.google.common.collect.Lists;
import forge.Card; import forge.Card;
import forge.Singletons; import forge.Singletons;
import forge.game.event.GameEventCardsAnted; import forge.game.event.GameEventAnteCardsSelected;
import forge.game.event.GameEventDuelFinished; import forge.game.event.GameEventDuelFinished;
import forge.game.event.GameEventDuelOutcome; import forge.game.event.GameEventDuelOutcome;
import forge.game.event.GameEventFlipCoin; import forge.game.event.GameEventFlipCoin;
@@ -88,10 +88,10 @@ public class MatchState {
gamesPlayed.add(result); gamesPlayed.add(result);
// The log shall listen to events and generate text internally // The log shall listen to events and generate text internally
game.getEvents().post(new GameEventDuelOutcome(result, gamesPlayedRo)); game.fireEvent(new GameEventDuelOutcome(result, gamesPlayedRo));
// will pull UI // will pull UI
game.getEvents().post(new GameEventDuelFinished()); game.fireEvent(new GameEventDuelFinished());
} }
@@ -110,7 +110,7 @@ public class MatchState {
if (useAnte) { // Deciding which cards go to ante if (useAnte) { // Deciding which cards go to ante
List<Pair<Player, Card>> list = GameNew.chooseCardsForAnte(currentGame); List<Pair<Player, Card>> list = GameNew.chooseCardsForAnte(currentGame);
GameNew.moveCardsToAnte(list); GameNew.moveCardsToAnte(list);
currentGame.getEvents().post(new GameEventCardsAnted(list)); currentGame.fireEvent(new GameEventAnteCardsSelected(list));
} }
// This code was run from EDT. // This code was run from EDT.
@@ -229,7 +229,7 @@ public class MatchState {
boolean isFirstGame = lastGameOutcome == null; boolean isFirstGame = lastGameOutcome == null;
if (isFirstGame) { if (isFirstGame) {
game.getEvents().post(new GameEventFlipCoin()); // Play the Flip Coin sound game.fireEvent(new GameEventFlipCoin()); // Play the Flip Coin sound
goesFirst = Aggregates.random(game.getPlayers()); goesFirst = Aggregates.random(game.getPlayers());
} else { } else {
for(Player p : game.getPlayers()) { for(Player p : game.getPlayers()) {

View File

@@ -5,9 +5,9 @@ import org.apache.commons.lang3.tuple.Pair;
import forge.Card; import forge.Card;
import forge.game.player.Player; import forge.game.player.Player;
public class GameEventCardsAnted extends GameEvent { public class GameEventAnteCardsSelected extends GameEvent {
public final Iterable<Pair<Player,Card>> cards; public final Iterable<Pair<Player,Card>> cards;
public GameEventCardsAnted(Iterable<Pair<Player,Card>> cardz) { public GameEventAnteCardsSelected(Iterable<Pair<Player,Card>> cardz) {
cards = cardz; cards = cardz;
} }

View File

@@ -1,10 +1,14 @@
package forge.game.event; package forge.game.event;
public class GameEventCardTapped extends GameEvent { import forge.Card;
public final boolean Tapped;
public GameEventCardTapped(boolean tapped) { public class GameEventCardTapped extends GameEvent {
Tapped = tapped; public final boolean tapped;
public final Card card;
public GameEventCardTapped(final Card card, final boolean tapped) {
this.tapped = tapped;
this.card = card;
} }

View File

@@ -374,7 +374,7 @@ public class Combat {
} else { } else {
this.blockerMap.get(blocker).add(attacker); this.blockerMap.get(blocker).add(attacker);
} }
attacker.getGame().getEvents().post(new GameEventBlockerAssigned()); attacker.getGame().fireEvent(new GameEventBlockerAssigned());
} }
public final void removeBlockAssignment(final Card attacker, final Card blocker) { public final void removeBlockAssignment(final Card attacker, final Card blocker) {

View File

@@ -200,7 +200,7 @@ public class PhaseHandler extends MyObservable implements java.io.Serializable {
game.getGameLog().add(GameEventType.TURN, "Turn " + this.turn + " (" + this.getPlayerTurn() + ")"); game.getGameLog().add(GameEventType.TURN, "Turn " + this.turn + " (" + this.getPlayerTurn() + ")");
} }
game.getEvents().post(new GameEventTurnPhase(this.getPlayerTurn(), this.getPhase(), phaseType)); game.fireEvent(new GameEventTurnPhase(this.getPlayerTurn(), this.getPhase(), phaseType));
} }
@@ -393,7 +393,7 @@ public class PhaseHandler extends MyObservable implements java.io.Serializable {
p.loseLife(burn); p.loseLife(burn);
// Play the Mana Burn sound // Play the Mana Burn sound
game.getEvents().post(new GameEventManaBurn()); game.fireEvent(new GameEventManaBurn());
} }
p.updateObservers(); p.updateObservers();
} }
@@ -426,7 +426,7 @@ public class PhaseHandler extends MyObservable implements java.io.Serializable {
} }
this.planarDiceRolledthisTurn = 0; this.planarDiceRolledthisTurn = 0;
// Play the End Turn sound // Play the End Turn sound
game.getEvents().post(new GameEventEndOfTurn()); game.fireEvent(new GameEventEndOfTurn());
break; break;
default: // no action default: // no action
} }
@@ -716,7 +716,7 @@ public class PhaseHandler extends MyObservable implements java.io.Serializable {
// If ever the karn's ultimate resolved // If ever the karn's ultimate resolved
if( game.getAge() == GameAge.RestartedByKarn) { if( game.getAge() == GameAge.RestartedByKarn) {
phase = null; phase = null;
game.getEvents().post(new GameEventGameRestarted(playerTurn)); game.fireEvent(new GameEventGameRestarted(playerTurn));
return; return;
} }

View File

@@ -509,7 +509,7 @@ public class Player extends GameEntity implements Comparable<Player> {
if (toLose > 0) { if (toLose > 0) {
this.subtractLife(toLose); this.subtractLife(toLose);
lifeLost = toLose; lifeLost = toLose;
game.getEvents().post(new GameEventLifeLoss()); game.fireEvent(new GameEventLifeLoss());
this.updateObservers(); this.updateObservers();
} else if (toLose == 0) { } else if (toLose == 0) {
// Rule 118.4 // Rule 118.4
@@ -656,7 +656,7 @@ public class Player extends GameEntity implements Comparable<Player> {
source.getController().gainLife(damageToDo, source); source.getController().gainLife(damageToDo, source);
} }
source.getDamageHistory().registerDamage(this); source.getDamageHistory().registerDamage(this);
this.getGame().getEvents().post(new GameEventLifeLoss()); this.getGame().fireEvent(new GameEventLifeLoss());
if (isCombat) { if (isCombat) {
final ArrayList<String> types = source.getType(); final ArrayList<String> types = source.getType();
@@ -1020,7 +1020,7 @@ public class Player extends GameEntity implements Comparable<Player> {
if (!this.hasKeyword("You can't get poison counters")) { if (!this.hasKeyword("You can't get poison counters")) {
this.poisonCounters += num; this.poisonCounters += num;
game.getEvents().post(new GameEventPoisonCounter(this, source, num)); game.fireEvent(new GameEventPoisonCounter(this, source, num));
game.getGameLog().add(GameEventType.DAMAGE_POISON, this + " receives a poison counter from " + source); game.getGameLog().add(GameEventType.DAMAGE_POISON, this + " receives a poison counter from " + source);
this.updateObservers(); this.updateObservers();
@@ -1267,7 +1267,7 @@ public class Player extends GameEntity implements Comparable<Player> {
} }
// Play the Draw sound // Play the Draw sound
game.getEvents().post(new GameEventDrawCard()); game.fireEvent(new GameEventDrawCard());
return drawn; return drawn;
} }
@@ -1605,13 +1605,13 @@ public class Player extends GameEntity implements Comparable<Player> {
if (discardToTopOfLibrary) { if (discardToTopOfLibrary) {
game.getAction().moveToLibrary(c, 0); game.getAction().moveToLibrary(c, 0);
// Play the Discard sound // Play the Discard sound
game.getEvents().post(new GameEventCardDiscarded()); game.fireEvent(new GameEventCardDiscarded());
this.numDiscardedThisTurn++; this.numDiscardedThisTurn++;
} else { } else {
game.getAction().moveToGraveyard(c); game.getAction().moveToGraveyard(c);
// Play the Discard sound // Play the Discard sound
game.getEvents().post(new GameEventCardDiscarded()); game.fireEvent(new GameEventCardDiscarded());
this.numDiscardedThisTurn++; this.numDiscardedThisTurn++;
} }
@@ -1738,7 +1738,7 @@ public class Player extends GameEntity implements Comparable<Player> {
game.getTriggerHandler().runTrigger(TriggerType.Shuffled, runParams, false); game.getTriggerHandler().runTrigger(TriggerType.Shuffled, runParams, false);
// Play the shuffle sound // Play the shuffle sound
game.getEvents().post(new GameEventShuffle()); game.fireEvent(new GameEventShuffle());
} // shuffle } // shuffle
// ////////////////////////////// // //////////////////////////////
@@ -1771,7 +1771,7 @@ public class Player extends GameEntity implements Comparable<Player> {
game.getGameLog().add(GameEventType.LAND, this + " played " + land); game.getGameLog().add(GameEventType.LAND, this + " played " + land);
// play a sound // play a sound
game.getEvents().post(new GameEventLandPlayed(this, land)); game.fireEvent(new GameEventLandPlayed(this, land));
// Run triggers // Run triggers
final HashMap<String, Object> runParams = new HashMap<String, Object>(); final HashMap<String, Object> runParams = new HashMap<String, Object>();
@@ -2719,13 +2719,13 @@ public class Player extends GameEntity implements Comparable<Player> {
public final void releaseControl() { public final void releaseControl() {
controller = controllerCreator; controller = controllerCreator;
game.getEvents().post(new GameEventPlayerControl(this, getLobbyPlayer(), null)); game.fireEvent(new GameEventPlayerControl(this, getLobbyPlayer(), null));
} }
public final void obeyNewMaster(PlayerController pc) { public final void obeyNewMaster(PlayerController pc) {
LobbyPlayer oldController = getLobbyPlayer(); LobbyPlayer oldController = getLobbyPlayer();
controller = pc; controller = pc;
game.getEvents().post(new GameEventPlayerControl(this, oldController, pc.getLobbyPlayer())); game.fireEvent(new GameEventPlayerControl(this, oldController, pc.getLobbyPlayer()));
} }
@@ -3126,7 +3126,7 @@ public class Player extends GameEntity implements Comparable<Player> {
* TODO: Write javadoc for this method. * TODO: Write javadoc for this method.
*/ */
public void onMulliganned() { public void onMulliganned() {
game.getEvents().post(new GameEventMulligan(this)); // quest listener may interfere here game.fireEvent(new GameEventMulligan(this)); // quest listener may interfere here
final int newHand = getCardsIn(ZoneType.Hand).size(); final int newHand = getCardsIn(ZoneType.Hand).size();
game.getGameLog().add(GameEventType.MULLIGAN, this + " has mulliganed down to " + newHand + " cards."); game.getGameLog().add(GameEventType.MULLIGAN, this + " has mulliganed down to " + newHand + " cards.");
stats.notifyHasMulliganed(); stats.notifyHasMulliganed();

View File

@@ -617,7 +617,7 @@ public class MagicStack extends MyObservable implements Iterable<SpellAbilitySta
} }
sa.getSourceCard().setXManaCostPaid(0); sa.getSourceCard().setXManaCostPaid(0);
game.getEvents().post(new GameEventSpellResolved(source, sa)); game.fireEvent(new GameEventSpellResolved(source, sa));
if (source.hasStartOfKeyword("Haunt") && !source.isCreature() if (source.hasStartOfKeyword("Haunt") && !source.isCreature()
&& game.getZoneOf(source).is(ZoneType.Graveyard)) { && game.getZoneOf(source).is(ZoneType.Graveyard)) {

View File

@@ -100,7 +100,7 @@ public class GuiDialog {
final String winMsg = winFlip ? " wins flip." : " loses flip."; final String winMsg = winFlip ? " wins flip." : " loses flip.";
// Play the Flip A Coin sound // Play the Flip A Coin sound
caller.getGame().getEvents().post(new GameEventFlipCoin()); caller.getGame().fireEvent(new GameEventFlipCoin());
JOptionPane.showMessageDialog(null, source.getName() + " - " + caller + winMsg, source.getName(), JOptionPane.showMessageDialog(null, source.getName() + " - " + caller + winMsg, source.getName(),
JOptionPane.PLAIN_MESSAGE); JOptionPane.PLAIN_MESSAGE);

View File

@@ -78,7 +78,7 @@ public class EventVisualizer {
} }
} }
if (evt instanceof GameEventCardTapped) { if (evt instanceof GameEventCardTapped) {
return getSoundEffectForTapState(((GameEventCardTapped) evt).Tapped); return getSoundEffectForTapState(((GameEventCardTapped) evt).tapped);
} }
if (evt instanceof GameEventDuelOutcome) { if (evt instanceof GameEventDuelOutcome) {
return getSoundEffectForDuelOutcome(((GameEventDuelOutcome) evt).result.getWinner() == Singletons.getControl().getLobby().getGuiPlayer()); return getSoundEffectForDuelOutcome(((GameEventDuelOutcome) evt).result.getWinner() == Singletons.getControl().getLobby().getGuiPlayer());