From d6f585a80c78c4a9dae3836c184818e876095f70 Mon Sep 17 00:00:00 2001 From: Hans Mackowiak Date: Wed, 27 Aug 2025 22:05:11 +0200 Subject: [PATCH] Event: use Record --- .../java/forge/game/GameLogFormatter.java | 106 ++++++++--------- .../src/main/java/forge/game/event/Event.java | 2 +- .../game/event/EventValueChangeType.java | 4 - .../main/java/forge/game/event/GameEvent.java | 2 +- .../event/GameEventAnteCardsSelected.java | 6 +- .../event/GameEventAttackersDeclared.java | 15 +-- .../game/event/GameEventBlockersDeclared.java | 15 +-- .../game/event/GameEventCardAttachment.java | 12 +- .../game/event/GameEventCardChangeZone.java | 12 +- .../game/event/GameEventCardCounters.java | 14 +-- .../game/event/GameEventCardDamaged.java | 14 +-- .../game/event/GameEventCardDestroyed.java | 2 +- .../game/event/GameEventCardForetold.java | 7 +- .../game/event/GameEventCardModeChosen.java | 16 +-- .../forge/game/event/GameEventCardPhased.java | 14 +-- .../game/event/GameEventCardPlotted.java | 11 +- .../game/event/GameEventCardRegenerated.java | 6 +- .../game/event/GameEventCardSacrificed.java | 11 +- .../game/event/GameEventCardStatsChanged.java | 10 +- .../forge/game/event/GameEventCardTapped.java | 9 +- .../game/event/GameEventCombatChanged.java | 5 +- .../game/event/GameEventCombatEnded.java | 10 +- .../game/event/GameEventCombatUpdate.java | 10 +- .../game/event/GameEventDayTimeChanged.java | 7 +- .../game/event/GameEventDoorChanged.java | 13 +-- .../forge/game/event/GameEventFlipCoin.java | 2 +- .../game/event/GameEventGameFinished.java | 3 +- .../game/event/GameEventGameOutcome.java | 9 +- .../game/event/GameEventGameRestarted.java | 12 +- .../game/event/GameEventGameStarted.java | 17 +-- .../forge/game/event/GameEventLandPlayed.java | 12 +- .../forge/game/event/GameEventManaBurn.java | 17 +-- .../forge/game/event/GameEventManaPool.java | 15 +-- .../forge/game/event/GameEventMulligan.java | 11 +- .../game/event/GameEventPlayerControl.java | 15 +-- .../game/event/GameEventPlayerCounters.java | 13 +-- .../game/event/GameEventPlayerDamaged.java | 28 +---- .../event/GameEventPlayerLivesChanged.java | 11 +- .../game/event/GameEventPlayerPoisoned.java | 13 +-- .../game/event/GameEventPlayerPriority.java | 16 +-- .../game/event/GameEventPlayerRadiation.java | 11 +- .../event/GameEventPlayerShardsChanged.java | 11 +- .../event/GameEventPlayerStatsChanged.java | 13 +-- .../forge/game/event/GameEventRandomLog.java | 8 +- .../forge/game/event/GameEventRollDie.java | 2 +- .../java/forge/game/event/GameEventScry.java | 11 +- .../forge/game/event/GameEventShuffle.java | 8 +- .../game/event/GameEventSpeedChanged.java | 13 +-- .../game/event/GameEventSpellAbilityCast.java | 16 +-- .../event/GameEventSpellRemovedFromStack.java | 12 +- .../game/event/GameEventSpellResolved.java | 21 +--- .../game/event/GameEventSprocketUpdate.java | 13 +-- .../forge/game/event/GameEventSubgameEnd.java | 10 +- .../game/event/GameEventSubgameStart.java | 9 +- .../forge/game/event/GameEventSurveil.java | 11 +- .../game/event/GameEventTokenCreated.java | 2 +- .../forge/game/event/GameEventTurnBegan.java | 11 +- .../forge/game/event/GameEventTurnEnded.java | 2 +- .../forge/game/event/GameEventTurnPhase.java | 15 +-- .../java/forge/game/event/GameEventZone.java | 21 +--- .../forge/game/event/IGameEventVisitor.java | 4 - .../main/java/forge/game/player/Player.java | 2 +- .../java/forge/screens/match/CMatchUI.java | 6 +- .../forge/gamemodes/match/HostedMatch.java | 28 ++--- .../gamemodes/quest/QuestController.java | 6 +- .../gui/control/FControlGameEventHandler.java | 108 +++++++++--------- .../gui/control/FControlGamePlayback.java | 8 +- .../main/java/forge/gui/events/UiEvent.java | 2 +- .../gui/events/UiEventAttackerDeclared.java | 9 +- .../gui/events/UiEventBlockerAssigned.java | 9 +- .../gui/events/UiEventNextGameDecision.java | 17 +-- .../java/forge/sound/EventVisualizer.java | 49 ++++---- 72 files changed, 225 insertions(+), 770 deletions(-) diff --git a/forge-game/src/main/java/forge/game/GameLogFormatter.java b/forge-game/src/main/java/forge/game/GameLogFormatter.java index 2a2c60eb227..7adab70f9a2 100644 --- a/forge-game/src/main/java/forge/game/GameLogFormatter.java +++ b/forge-game/src/main/java/forge/game/GameLogFormatter.java @@ -29,25 +29,25 @@ public class GameLogFormatter extends IGameEventVisitor.Base { @Override public GameLogEntry visit(GameEventGameOutcome ev) { // Turn number counted from the starting player - int lastTurn = (int)Math.ceil((float)ev.result.getLastTurnNumber() / 2.0); + int lastTurn = (int)Math.ceil((float)ev.result().getLastTurnNumber() / 2.0); log.add(GameLogEntryType.GAME_OUTCOME, localizer.getMessage("lblTurn") + " " + lastTurn); - for (String outcome : ev.result.getOutcomeStrings()) { + for (String outcome : ev.result().getOutcomeStrings()) { log.add(GameLogEntryType.GAME_OUTCOME, outcome); } - return generateSummary(ev.history); + return generateSummary(ev.history()); } @Override public GameLogEntry visit(GameEventScry ev) { String scryOutcome = ""; - if (ev.toTop > 0 && ev.toBottom > 0) { - scryOutcome = localizer.getMessage("lblLogScryTopBottomLibrary").replace("%s", ev.player.toString()).replace("%top", String.valueOf(ev.toTop)).replace("%bottom", String.valueOf(ev.toBottom)); - } else if (ev.toBottom == 0) { - scryOutcome = localizer.getMessage("lblLogScryTopLibrary").replace("%s", ev.player.toString()).replace("%top", String.valueOf(ev.toTop)); + if (ev.toTop() > 0 && ev.toBottom() > 0) { + scryOutcome = localizer.getMessage("lblLogScryTopBottomLibrary").replace("%s", ev.player().toString()).replace("%top", String.valueOf(ev.toTop())).replace("%bottom", String.valueOf(ev.toBottom())); + } else if (ev.toBottom() == 0) { + scryOutcome = localizer.getMessage("lblLogScryTopLibrary").replace("%s", ev.player().toString()).replace("%top", String.valueOf(ev.toTop())); } else { - scryOutcome = localizer.getMessage("lblLogScryBottomLibrary").replace("%s", ev.player.toString()).replace("%bottom", String.valueOf(ev.toBottom)); + scryOutcome = localizer.getMessage("lblLogScryBottomLibrary").replace("%s", ev.player().toString()).replace("%bottom", String.valueOf(ev.toBottom())); } return new GameLogEntry(GameLogEntryType.STACK_RESOLVE, scryOutcome); @@ -57,12 +57,12 @@ public class GameLogFormatter extends IGameEventVisitor.Base { public GameLogEntry visit(GameEventSurveil ev) { String surveilOutcome = ""; - if (ev.toLibrary > 0 && ev.toGraveyard > 0) { - surveilOutcome = localizer.getMessage("lblLogSurveiledToLibraryGraveyard", ev.player.toString(), String.valueOf(ev.toLibrary), String.valueOf(ev.toGraveyard)); - } else if (ev.toGraveyard == 0) { - surveilOutcome = localizer.getMessage("lblLogSurveiledToLibrary", ev.player.toString(), String.valueOf(ev.toLibrary)); + if (ev.toLibrary() > 0 && ev.toGraveyard() > 0) { + surveilOutcome = localizer.getMessage("lblLogSurveiledToLibraryGraveyard", ev.player().toString(), String.valueOf(ev.toLibrary()), String.valueOf(ev.toGraveyard())); + } else if (ev.toGraveyard() == 0) { + surveilOutcome = localizer.getMessage("lblLogSurveiledToLibrary", ev.player().toString(), String.valueOf(ev.toLibrary())); } else { - surveilOutcome = localizer.getMessage("lblLogSurveiledToGraveyard", ev.player.toString(), String.valueOf(ev.toGraveyard)); + surveilOutcome = localizer.getMessage("lblLogSurveiledToGraveyard", ev.player().toString(), String.valueOf(ev.toGraveyard())); } return new GameLogEntry(GameLogEntryType.STACK_RESOLVE, surveilOutcome); @@ -70,26 +70,26 @@ public class GameLogFormatter extends IGameEventVisitor.Base { @Override public GameLogEntry visit(GameEventSpellResolved ev) { - String messageForLog = ev.hasFizzled ? localizer.getMessage("lblLogCardAbilityFizzles", ev.spell.getHostCard().toString()) : ev.spell.getStackDescription(); + String messageForLog = ev.hasFizzled() ? localizer.getMessage("lblLogCardAbilityFizzles", ev.spell().getHostCard().toString()) : ev.spell().getStackDescription(); return new GameLogEntry(GameLogEntryType.STACK_RESOLVE, messageForLog); } @Override public GameLogEntry visit(GameEventSpellAbilityCast event) { - String player = event.sa.getActivatingPlayer().getName(); - String action = event.sa.isSpell() ? localizer.getMessage("lblCast") - : event.sa.isTrigger() ? localizer.getMessage("lblTriggered") + String player = event.sa().getActivatingPlayer().getName(); + String action = event.sa().isSpell() ? localizer.getMessage("lblCast") + : event.sa().isTrigger() ? localizer.getMessage("lblTriggered") : localizer.getMessage("lblActivated"); - String object = event.si.getStackDescription().startsWith("Morph ") + String object = event.si().getStackDescription().startsWith("Morph ") ? localizer.getMessage("lblMorph") - : event.sa.getHostCard().toString(); + : event.sa().getHostCard().toString(); String messageForLog = ""; - if (event.sa.getTargetRestrictions() != null) { + if (event.sa().getTargetRestrictions() != null) { StringBuilder sb = new StringBuilder(); - for (TargetChoices ch : event.sa.getAllTargetChoices()) { + for (TargetChoices ch : event.sa().getAllTargetChoices()) { if (null != ch) { sb.append(ch); } @@ -104,18 +104,18 @@ public class GameLogFormatter extends IGameEventVisitor.Base { @Override public GameLogEntry visit(GameEventCardModeChosen ev) { - if (!ev.log) { + if (!ev.log()) { return null; } String modeChoiceOutcome; - if (ev.random) { - modeChoiceOutcome = localizer.getMessage("lblLogRandomMode", ev.cardName, ev.mode); + if (ev.random()) { + modeChoiceOutcome = localizer.getMessage("lblLogRandomMode", ev.cardName(), ev.mode()); } else { modeChoiceOutcome = localizer.getMessage("lblLogPlayerChosenModeForCard", - ev.player.toString(), ev.mode, ev.cardName); + ev.player().toString(), ev.mode(), ev.cardName()); } - String name = CardTranslation.getTranslatedName(ev.cardName); + String name = CardTranslation.getTranslatedName(ev.cardName()); modeChoiceOutcome = TextUtil.fastReplace(modeChoiceOutcome, "CARDNAME", name); modeChoiceOutcome = TextUtil.fastReplace(modeChoiceOutcome, "NICKNAME", Lang.getInstance().getNickName(name)); @@ -124,7 +124,7 @@ public class GameLogFormatter extends IGameEventVisitor.Base { @Override public GameLogEntry visit(GameEventRandomLog ev) { - return new GameLogEntry(GameLogEntryType.STACK_RESOLVE, ev.message); + return new GameLogEntry(GameLogEntryType.STACK_RESOLVE, ev.message()); } private static GameLogEntry generateSummary(final Collection gamesPlayed) { @@ -152,8 +152,8 @@ public class GameLogFormatter extends IGameEventVisitor.Base { @Override public GameLogEntry visit(final GameEventPlayerControl event) { - final LobbyPlayer newLobbyPlayer = event.newLobbyPlayer; - final Player p = event.player; + final LobbyPlayer newLobbyPlayer = event.newLobbyPlayer(); + final Player p = event.player(); final String message; if (newLobbyPlayer == null) { @@ -166,23 +166,23 @@ public class GameLogFormatter extends IGameEventVisitor.Base { @Override public GameLogEntry visit(GameEventTurnPhase ev) { - Player p = ev.playerTurn; - return new GameLogEntry(GameLogEntryType.PHASE, ev.phaseDesc + Lang.getInstance().getPossessedObject(p.getName(), ev.phase.nameForUi)); + Player p = ev.playerTurn(); + return new GameLogEntry(GameLogEntryType.PHASE, ev.phaseDesc() + Lang.getInstance().getPossessedObject(p.getName(), ev.phase().nameForUi)); } @Override public GameLogEntry visit(GameEventCardDamaged event) { String additionalLog = ""; - if (event.type == DamageType.Deathtouch) { + if (event.type() == DamageType.Deathtouch) { additionalLog = localizer.getMessage("lblDeathtouch"); } - if (event.type == DamageType.M1M1Counters) { + if (event.type() == DamageType.M1M1Counters) { additionalLog = localizer.getMessage("lblAsM1M1Counters"); } - if (event.type == DamageType.LoyaltyLoss) { - additionalLog = localizer.getMessage("lblRemovingNLoyaltyCounter", String.valueOf(event.amount)); + if (event.type() == DamageType.LoyaltyLoss) { + additionalLog = localizer.getMessage("lblRemovingNLoyaltyCounter", String.valueOf(event.amount())); } - String message = localizer.getMessage("lblSourceDealsNDamageToDest", event.source.toString(), String.valueOf(event.amount), additionalLog, event.card.toString()); + String message = localizer.getMessage("lblSourceDealsNDamageToDest", event.source().toString(), String.valueOf(event.amount()), additionalLog, event.card().toString()); return new GameLogEntry(GameLogEntryType.DAMAGE, message); } @@ -191,43 +191,43 @@ public class GameLogFormatter extends IGameEventVisitor.Base { */ @Override public GameLogEntry visit(GameEventLandPlayed ev) { - String message = localizer.getMessage("lblLogPlayerPlayedLand", ev.player.toString(), ev.land.toString()); + String message = localizer.getMessage("lblLogPlayerPlayedLand", ev.player().toString(), ev.land().toString()); return new GameLogEntry(GameLogEntryType.LAND, message); } @Override public GameLogEntry visit(GameEventTurnBegan event) { - String message = localizer.getMessage("lblLogTurnNOwnerByPlayer", String.valueOf(event.turnNumber), event.turnOwner.toString()); + String message = localizer.getMessage("lblLogTurnNOwnerByPlayer", String.valueOf(event.turnNumber()), event.turnOwner().toString()); return new GameLogEntry(GameLogEntryType.TURN, message); } @Override public GameLogEntry visit(GameEventPlayerDamaged ev) { - String extra = ev.infect ? localizer.getMessage("lblLogAsPoisonCounters") : ""; - String damageType = ev.combat ? localizer.getMessage("lblCombat") : localizer.getMessage("lblNonCombat"); - String message = localizer.getMessage("lblLogSourceDealsNDamageOfTypeToDest", ev.source.toString(), - String.valueOf(ev.amount), damageType, ev.target.toString(), extra); + String extra = ev.infect() ? localizer.getMessage("lblLogAsPoisonCounters") : ""; + String damageType = ev.combat() ? localizer.getMessage("lblCombat") : localizer.getMessage("lblNonCombat"); + String message = localizer.getMessage("lblLogSourceDealsNDamageOfTypeToDest", ev.source().toString(), + String.valueOf(ev.amount()), damageType, ev.target().toString(), extra); return new GameLogEntry(GameLogEntryType.DAMAGE, message); } @Override public GameLogEntry visit(GameEventPlayerPoisoned ev) { String message = localizer.getMessage("lblLogPlayerReceivesNPosionCounterFrom", - ev.receiver.toString(), String.valueOf(ev.amount), ev.source.toString()); + ev.receiver().toString(), String.valueOf(ev.amount()), ev.source().toString()); return new GameLogEntry(GameLogEntryType.DAMAGE, message); } @Override public GameLogEntry visit(GameEventPlayerRadiation ev) { String message; - final int change = ev.change; + final int change = ev.change(); String radCtr = CounterEnumType.RAD.getName().toLowerCase() + " " + Localizer.getInstance().getMessage("lblCounter").toLowerCase(); if (change >= 0) message = localizer.getMessage("lblLogPlayerRadiation", - ev.receiver.toString(), Lang.nounWithNumeralExceptOne(String.valueOf(change), radCtr), - ev.source.toString()); + ev.receiver().toString(), Lang.nounWithNumeralExceptOne(String.valueOf(change), radCtr), + ev.source().toString()); else message = localizer.getMessage("lblLogPlayerRadRemove", - ev.receiver.toString(), Lang.nounWithNumeralExceptOne(String.valueOf(Math.abs(change)), radCtr)); + ev.receiver().toString(), Lang.nounWithNumeralExceptOne(String.valueOf(Math.abs(change)), radCtr)); return new GameLogEntry(GameLogEntryType.DAMAGE, message); } @@ -239,16 +239,16 @@ public class GameLogFormatter extends IGameEventVisitor.Base { // Append Defending Player/Planeswalker // Not a big fan of the triple nested loop here - for (GameEntity k : ev.attackersMap.keySet()) { - Collection attackers = ev.attackersMap.get(k); + for (GameEntity k : ev.attackersMap().keySet()) { + Collection attackers = ev.attackersMap().get(k); if (attackers == null || attackers.isEmpty()) { continue; } if (sb.length() > 0) sb.append("\n"); - sb.append(localizer.getMessage("lblLogPlayerAssignedAttackerToAttackTarget", ev.player, Lang.joinHomogenous(attackers), k)); + sb.append(localizer.getMessage("lblLogPlayerAssignedAttackerToAttackTarget", ev.player(), Lang.joinHomogenous(attackers), k)); } if (sb.length() == 0) { - sb.append(localizer.getMessage("lblPlayerDidntAttackThisTurn").replace("%s", ev.player.toString())); + sb.append(localizer.getMessage("lblPlayerDidntAttackThisTurn").replace("%s", ev.player().toString())); } return new GameLogEntry(GameLogEntryType.COMBAT, sb.toString()); } @@ -262,7 +262,7 @@ public class GameLogFormatter extends IGameEventVisitor.Base { Collection blockers = null; - for (Entry> kv : ev.blockers.entrySet()) { + for (Entry> kv : ev.blockers().entrySet()) { GameEntity defender = kv.getKey(); MapOfLists attackers = kv.getValue(); if (attackers == null || attackers.isEmpty()) { @@ -298,7 +298,7 @@ public class GameLogFormatter extends IGameEventVisitor.Base { @Override public GameLogEntry visit(GameEventMulligan ev) { - String message = localizer.getMessage("lblPlayerHasMulliganedDownToNCards").replace("%d", String.valueOf(ev.player.getZone(ZoneType.Hand).size())).replace("%s", ev.player.toString()); + String message = localizer.getMessage("lblPlayerHasMulliganedDownToNCards").replace("%d", String.valueOf(ev.player().getZone(ZoneType.Hand).size())).replace("%s", ev.player().toString()); return new GameLogEntry(GameLogEntryType.MULLIGAN, message); } diff --git a/forge-game/src/main/java/forge/game/event/Event.java b/forge-game/src/main/java/forge/game/event/Event.java index 401c49b0803..02e835658e0 100644 --- a/forge-game/src/main/java/forge/game/event/Event.java +++ b/forge-game/src/main/java/forge/game/event/Event.java @@ -1,5 +1,5 @@ package forge.game.event; -public abstract class Event { +public interface Event { } diff --git a/forge-game/src/main/java/forge/game/event/EventValueChangeType.java b/forge-game/src/main/java/forge/game/event/EventValueChangeType.java index 8b35954a2cc..54797cc68f0 100644 --- a/forge-game/src/main/java/forge/game/event/EventValueChangeType.java +++ b/forge-game/src/main/java/forge/game/event/EventValueChangeType.java @@ -1,9 +1,5 @@ package forge.game.event; -/** - * TODO: Write javadoc for this type. - * - */ public enum EventValueChangeType { Added, Removed, diff --git a/forge-game/src/main/java/forge/game/event/GameEvent.java b/forge-game/src/main/java/forge/game/event/GameEvent.java index 77a7e268f04..8b08775ba03 100644 --- a/forge-game/src/main/java/forge/game/event/GameEvent.java +++ b/forge-game/src/main/java/forge/game/event/GameEvent.java @@ -1,6 +1,6 @@ package forge.game.event; -public abstract class GameEvent extends Event { +public interface GameEvent extends Event { public abstract T visit(IGameEventVisitor visitor); } diff --git a/forge-game/src/main/java/forge/game/event/GameEventAnteCardsSelected.java b/forge-game/src/main/java/forge/game/event/GameEventAnteCardsSelected.java index 1b9c06ece6e..01dd5d7fa87 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventAnteCardsSelected.java +++ b/forge-game/src/main/java/forge/game/event/GameEventAnteCardsSelected.java @@ -5,11 +5,7 @@ import com.google.common.collect.Multimap; import forge.game.card.Card; import forge.game.player.Player; -public class GameEventAnteCardsSelected extends GameEvent { - public final Multimap cards; - public GameEventAnteCardsSelected(Multimap list) { - cards = list; - } +public record GameEventAnteCardsSelected(Multimap cards) implements GameEvent { @Override public T visit(IGameEventVisitor visitor) { diff --git a/forge-game/src/main/java/forge/game/event/GameEventAttackersDeclared.java b/forge-game/src/main/java/forge/game/event/GameEventAttackersDeclared.java index 408fce62614..12b9531bf62 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventAttackersDeclared.java +++ b/forge-game/src/main/java/forge/game/event/GameEventAttackersDeclared.java @@ -6,26 +6,13 @@ import forge.game.GameEntity; import forge.game.card.Card; import forge.game.player.Player; -/** - * TODO: Write javadoc for this type. - * - */ -public class GameEventAttackersDeclared extends GameEvent { - - public final Player player; - public final Multimap attackersMap; - - public GameEventAttackersDeclared(Player playerTurn, Multimap attackersMap) { - this.player = playerTurn; - this.attackersMap = attackersMap; - } +public record GameEventAttackersDeclared(Player player, Multimap attackersMap) implements GameEvent { /* (non-Javadoc) * @see forge.game.event.GameEvent#visit(forge.game.event.IGameEventVisitor) */ @Override public T visit(IGameEventVisitor visitor) { - // TODO Auto-generated method stub return visitor.visit(this); } diff --git a/forge-game/src/main/java/forge/game/event/GameEventBlockersDeclared.java b/forge-game/src/main/java/forge/game/event/GameEventBlockersDeclared.java index 810c727b87c..9ec99ead4e3 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventBlockersDeclared.java +++ b/forge-game/src/main/java/forge/game/event/GameEventBlockersDeclared.java @@ -12,23 +12,10 @@ import forge.util.Lang; import forge.util.TextUtil; import forge.util.maps.MapOfLists; -/** - * TODO: Write javadoc for this type. - * - */ -public class GameEventBlockersDeclared extends GameEvent { - - public final Map> blockers; - public final Player defendingPlayer; - - public GameEventBlockersDeclared(Player who, Map> blockers) { - this.blockers = blockers; - defendingPlayer = who; - } +public record GameEventBlockersDeclared(Player defendingPlayer, Map> blockers) implements GameEvent { @Override public T visit(IGameEventVisitor visitor) { - // TODO Auto-generated method stub return visitor.visit(this); } diff --git a/forge-game/src/main/java/forge/game/event/GameEventCardAttachment.java b/forge-game/src/main/java/forge/game/event/GameEventCardAttachment.java index 8f309884457..4430a9f9357 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventCardAttachment.java +++ b/forge-game/src/main/java/forge/game/event/GameEventCardAttachment.java @@ -3,17 +3,7 @@ package forge.game.event; import forge.game.GameEntity; import forge.game.card.Card; -public class GameEventCardAttachment extends GameEvent { - - public final Card equipment; - public final GameEntity newTarget; // can enchant player, I'm saving a class to enchants - it could be incorrect. - public final GameEntity oldEntity; - - public GameEventCardAttachment(Card attachment, GameEntity formerEntity, GameEntity newEntity) { - this.equipment = attachment; - this.newTarget = newEntity; - this.oldEntity = formerEntity; - } +public record GameEventCardAttachment(Card equipment, GameEntity newTarget, GameEntity oldEntity) implements GameEvent { @Override public T visit(IGameEventVisitor visitor) { diff --git a/forge-game/src/main/java/forge/game/event/GameEventCardChangeZone.java b/forge-game/src/main/java/forge/game/event/GameEventCardChangeZone.java index fce42173208..8a105185a45 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventCardChangeZone.java +++ b/forge-game/src/main/java/forge/game/event/GameEventCardChangeZone.java @@ -4,17 +4,7 @@ import forge.game.card.Card; import forge.game.zone.Zone; import forge.util.TextUtil; -public class GameEventCardChangeZone extends GameEvent { - - public final Card card; - public final Zone from; - public final Zone to; - - public GameEventCardChangeZone(Card c, Zone zoneFrom, Zone zoneTo) { - card = c; - from = zoneFrom; - to = zoneTo; - } +public record GameEventCardChangeZone(Card card, Zone from, Zone to) implements GameEvent { @Override public T visit(IGameEventVisitor visitor) { diff --git a/forge-game/src/main/java/forge/game/event/GameEventCardCounters.java b/forge-game/src/main/java/forge/game/event/GameEventCardCounters.java index 546dd5fd3a5..32a1de9e38b 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventCardCounters.java +++ b/forge-game/src/main/java/forge/game/event/GameEventCardCounters.java @@ -3,19 +3,7 @@ package forge.game.event; import forge.game.card.Card; import forge.game.card.CounterType; -public class GameEventCardCounters extends GameEvent { - public final Card card; - public final CounterType type; - public final int oldValue; - public final int newValue; - - public GameEventCardCounters(Card card, CounterType counterType, int old, int newValue) { - this.card = card; - type = counterType; - this.oldValue = old; - this.newValue = newValue; - } - +public record GameEventCardCounters(Card card, CounterType type, int oldValue, int newValue) implements GameEvent { @Override public T visit(IGameEventVisitor visitor) { return visitor.visit(this); diff --git a/forge-game/src/main/java/forge/game/event/GameEventCardDamaged.java b/forge-game/src/main/java/forge/game/event/GameEventCardDamaged.java index a0992b814fb..f91fe98a910 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventCardDamaged.java +++ b/forge-game/src/main/java/forge/game/event/GameEventCardDamaged.java @@ -2,7 +2,7 @@ package forge.game.event; import forge.game.card.Card; -public class GameEventCardDamaged extends GameEvent { +public record GameEventCardDamaged(Card card, Card source, int amount, DamageType type) implements GameEvent { public enum DamageType { Normal, @@ -11,18 +11,6 @@ public class GameEventCardDamaged extends GameEvent { LoyaltyLoss } - public final Card card; - public final Card source; - public final int amount; - public final DamageType type; - - public GameEventCardDamaged(Card card, Card src, int damageToAdd, DamageType damageType) { - this.card = card; - source = src; - amount = damageToAdd; - type = damageType; - } - @Override public T visit(IGameEventVisitor visitor) { return visitor.visit(this); diff --git a/forge-game/src/main/java/forge/game/event/GameEventCardDestroyed.java b/forge-game/src/main/java/forge/game/event/GameEventCardDestroyed.java index cf0d3f9dd5d..05074aad3c9 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventCardDestroyed.java +++ b/forge-game/src/main/java/forge/game/event/GameEventCardDestroyed.java @@ -1,6 +1,6 @@ package forge.game.event; -public class GameEventCardDestroyed extends GameEvent { +public record GameEventCardDestroyed() implements GameEvent { @Override public T visit(IGameEventVisitor visitor) { diff --git a/forge-game/src/main/java/forge/game/event/GameEventCardForetold.java b/forge-game/src/main/java/forge/game/event/GameEventCardForetold.java index b7003036045..891b6438f48 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventCardForetold.java +++ b/forge-game/src/main/java/forge/game/event/GameEventCardForetold.java @@ -2,12 +2,7 @@ package forge.game.event; import forge.game.player.Player; -public class GameEventCardForetold extends GameEvent { - public final Player activatingPlayer; - - public GameEventCardForetold(Player player) { - activatingPlayer = player; - } +public record GameEventCardForetold(Player activatingPlayer) implements GameEvent { @Override public T visit(IGameEventVisitor visitor) { diff --git a/forge-game/src/main/java/forge/game/event/GameEventCardModeChosen.java b/forge-game/src/main/java/forge/game/event/GameEventCardModeChosen.java index 865cc2cfa4e..a289bb916eb 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventCardModeChosen.java +++ b/forge-game/src/main/java/forge/game/event/GameEventCardModeChosen.java @@ -2,21 +2,7 @@ package forge.game.event; import forge.game.player.Player; -public class GameEventCardModeChosen extends GameEvent { - - public final Player player; - public final String cardName; - public final String mode; - public final boolean log; - public final boolean random; - - public GameEventCardModeChosen(Player player, String cardName, String mode, boolean log, boolean random) { - this.player = player; - this.cardName = cardName; - this.mode = mode; - this.log = log; - this.random = random; - } +public record GameEventCardModeChosen(Player player, String cardName, String mode, boolean log, boolean random) implements GameEvent { @Override public T visit(IGameEventVisitor visitor) { diff --git a/forge-game/src/main/java/forge/game/event/GameEventCardPhased.java b/forge-game/src/main/java/forge/game/event/GameEventCardPhased.java index 132aae4bce7..a7038d21939 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventCardPhased.java +++ b/forge-game/src/main/java/forge/game/event/GameEventCardPhased.java @@ -2,19 +2,7 @@ package forge.game.event; import forge.game.card.Card; -/** - * TODO: Write javadoc for this type. - * - */ -public class GameEventCardPhased extends GameEvent { - - public final Card card; - public final boolean phaseState; - - public GameEventCardPhased(Card card, boolean state) { - this.card = card; - phaseState = state; - } +public record GameEventCardPhased(Card card, boolean phaseState) implements GameEvent { @Override public T visit(IGameEventVisitor visitor) { diff --git a/forge-game/src/main/java/forge/game/event/GameEventCardPlotted.java b/forge-game/src/main/java/forge/game/event/GameEventCardPlotted.java index 785a4d58be7..e789fb522d5 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventCardPlotted.java +++ b/forge-game/src/main/java/forge/game/event/GameEventCardPlotted.java @@ -3,16 +3,7 @@ package forge.game.event; import forge.game.card.Card; import forge.game.player.Player; -public class GameEventCardPlotted extends GameEvent { - - public final Card card; - - public final Player activatingPlayer; - - public GameEventCardPlotted(Card card, Player player) { - this.card = card; - activatingPlayer = player; - } +public record GameEventCardPlotted(Card card, Player activatingPlayer) implements GameEvent { @Override public T visit(IGameEventVisitor visitor) { diff --git a/forge-game/src/main/java/forge/game/event/GameEventCardRegenerated.java b/forge-game/src/main/java/forge/game/event/GameEventCardRegenerated.java index a348a2ad77e..147bfb088e7 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventCardRegenerated.java +++ b/forge-game/src/main/java/forge/game/event/GameEventCardRegenerated.java @@ -5,11 +5,9 @@ import forge.game.card.Card; import java.util.Arrays; import java.util.Collection; -public class GameEventCardRegenerated extends GameEvent { - - public final Collection cards; +public record GameEventCardRegenerated(Collection cards) implements GameEvent { public GameEventCardRegenerated(Card affected) { - cards = Arrays.asList(affected); + this(Arrays.asList(affected)); } @Override diff --git a/forge-game/src/main/java/forge/game/event/GameEventCardSacrificed.java b/forge-game/src/main/java/forge/game/event/GameEventCardSacrificed.java index 82314dd6aa7..bda3c86f631 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventCardSacrificed.java +++ b/forge-game/src/main/java/forge/game/event/GameEventCardSacrificed.java @@ -2,16 +2,7 @@ package forge.game.event; import forge.game.card.Card; -public class GameEventCardSacrificed extends GameEvent { - public final Card card; - - /** - * TODO: Write javadoc for Constructor. - * @param card - */ - public GameEventCardSacrificed(Card card) { - this.card = card; - } +public record GameEventCardSacrificed(Card card) implements GameEvent { @Override public T visit(IGameEventVisitor visitor) { diff --git a/forge-game/src/main/java/forge/game/event/GameEventCardStatsChanged.java b/forge-game/src/main/java/forge/game/event/GameEventCardStatsChanged.java index f58f4c85e11..83ed5146ebb 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventCardStatsChanged.java +++ b/forge-game/src/main/java/forge/game/event/GameEventCardStatsChanged.java @@ -11,23 +11,20 @@ import forge.game.card.Card; /** * This means card's characteristics have changed on server, clients must re-request them */ -public class GameEventCardStatsChanged extends GameEvent { +public record GameEventCardStatsChanged(Collection cards, boolean transform) implements GameEvent { - public final Collection cards; - public boolean transform = false; public GameEventCardStatsChanged(Card affected) { this(affected, false); } public GameEventCardStatsChanged(Card affected, boolean isTransform) { - cards = Arrays.asList(affected); + this(Arrays.asList(affected), false); //the transform should only fire once so the flip effect sound will trigger once every transformation... // disable for now - transform = false; } public GameEventCardStatsChanged(Collection affected) { - cards = affected; + this(affected, false); } /* (non-Javadoc) @@ -35,7 +32,6 @@ public class GameEventCardStatsChanged extends GameEvent { */ @Override public T visit(IGameEventVisitor visitor) { - // TODO Auto-generated method stub return visitor.visit(this); } diff --git a/forge-game/src/main/java/forge/game/event/GameEventCardTapped.java b/forge-game/src/main/java/forge/game/event/GameEventCardTapped.java index 9e95d9c43d2..bfd538e0951 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventCardTapped.java +++ b/forge-game/src/main/java/forge/game/event/GameEventCardTapped.java @@ -2,14 +2,7 @@ package forge.game.event; import forge.game.card.Card; -public class GameEventCardTapped extends GameEvent { - public final boolean tapped; - public final Card card; - - public GameEventCardTapped(final Card card, final boolean tapped) { - this.tapped = tapped; - this.card = card; - } +public record GameEventCardTapped(Card card, boolean tapped) implements GameEvent { @Override public T visit(IGameEventVisitor visitor) { diff --git a/forge-game/src/main/java/forge/game/event/GameEventCombatChanged.java b/forge-game/src/main/java/forge/game/event/GameEventCombatChanged.java index 6b0366f8552..3bcd3e92d00 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventCombatChanged.java +++ b/forge-game/src/main/java/forge/game/event/GameEventCombatChanged.java @@ -1,9 +1,6 @@ package forge.game.event; -public class GameEventCombatChanged extends GameEvent { - - public GameEventCombatChanged() { - } +public record GameEventCombatChanged() implements GameEvent { @Override public T visit(IGameEventVisitor visitor) { diff --git a/forge-game/src/main/java/forge/game/event/GameEventCombatEnded.java b/forge-game/src/main/java/forge/game/event/GameEventCombatEnded.java index 03aaf0d33f7..fc4dbd8ebd6 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventCombatEnded.java +++ b/forge-game/src/main/java/forge/game/event/GameEventCombatEnded.java @@ -4,15 +4,7 @@ import java.util.List; import forge.game.card.Card; -public class GameEventCombatEnded extends GameEvent { - - public final List attackers; - public final List blockers; - - public GameEventCombatEnded(List attackers, List blockers) { - this.attackers = attackers; - this.blockers = blockers; - } +public record GameEventCombatEnded(List attackers, List blockers) implements GameEvent { @Override public T visit(IGameEventVisitor visitor) { diff --git a/forge-game/src/main/java/forge/game/event/GameEventCombatUpdate.java b/forge-game/src/main/java/forge/game/event/GameEventCombatUpdate.java index 50989e9d7eb..73f68ad4352 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventCombatUpdate.java +++ b/forge-game/src/main/java/forge/game/event/GameEventCombatUpdate.java @@ -4,15 +4,7 @@ import java.util.List; import forge.game.card.Card; -public class GameEventCombatUpdate extends GameEvent { - - public final List attackers; - public final List blockers; - - public GameEventCombatUpdate(List attackers, List blockers) { - this.attackers = attackers; - this.blockers = blockers; - } +public record GameEventCombatUpdate(List attackers, List blockers) implements GameEvent { @Override public T visit(IGameEventVisitor visitor) { diff --git a/forge-game/src/main/java/forge/game/event/GameEventDayTimeChanged.java b/forge-game/src/main/java/forge/game/event/GameEventDayTimeChanged.java index e4c67e4cb2f..d41c8b9b046 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventDayTimeChanged.java +++ b/forge-game/src/main/java/forge/game/event/GameEventDayTimeChanged.java @@ -1,11 +1,6 @@ package forge.game.event; -public class GameEventDayTimeChanged extends GameEvent { - public final boolean daytime; - - public GameEventDayTimeChanged(final boolean daytime) { - this.daytime = daytime; - } +public record GameEventDayTimeChanged(boolean daytime) implements GameEvent { @Override public T visit(IGameEventVisitor visitor) { diff --git a/forge-game/src/main/java/forge/game/event/GameEventDoorChanged.java b/forge-game/src/main/java/forge/game/event/GameEventDoorChanged.java index 5f04cf5a7de..1b5d0ba7874 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventDoorChanged.java +++ b/forge-game/src/main/java/forge/game/event/GameEventDoorChanged.java @@ -6,18 +6,7 @@ import forge.game.player.Player; import forge.util.CardTranslation; import forge.util.Lang; -public class GameEventDoorChanged extends GameEvent { - public final Player activatingPlayer; - public final Card card; - public final CardStateName state; - public boolean unlock; - - public GameEventDoorChanged(Player player, Card c, CardStateName state, boolean unlock) { - activatingPlayer = player; - card = c; - this.state = state; - this.unlock = unlock; - } +public record GameEventDoorChanged(Player activatingPlayer, Card card, CardStateName state, boolean unlock) implements GameEvent { @Override public T visit(IGameEventVisitor visitor) { diff --git a/forge-game/src/main/java/forge/game/event/GameEventFlipCoin.java b/forge-game/src/main/java/forge/game/event/GameEventFlipCoin.java index 5c4d2ec42a6..ebed52d2424 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventFlipCoin.java +++ b/forge-game/src/main/java/forge/game/event/GameEventFlipCoin.java @@ -1,6 +1,6 @@ package forge.game.event; -public class GameEventFlipCoin extends GameEvent { +public record GameEventFlipCoin() implements GameEvent { @Override public T visit(IGameEventVisitor visitor) { diff --git a/forge-game/src/main/java/forge/game/event/GameEventGameFinished.java b/forge-game/src/main/java/forge/game/event/GameEventGameFinished.java index 31ba2ec60ad..7e0078d07de 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventGameFinished.java +++ b/forge-game/src/main/java/forge/game/event/GameEventGameFinished.java @@ -1,6 +1,7 @@ package forge.game.event; -public class GameEventGameFinished extends GameEvent { +public record GameEventGameFinished() implements GameEvent { + @Override public T visit(IGameEventVisitor visitor) { return visitor.visit(this); diff --git a/forge-game/src/main/java/forge/game/event/GameEventGameOutcome.java b/forge-game/src/main/java/forge/game/event/GameEventGameOutcome.java index c781e1771a8..3351dffb1f8 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventGameOutcome.java +++ b/forge-game/src/main/java/forge/game/event/GameEventGameOutcome.java @@ -4,14 +4,7 @@ import java.util.Collection; import forge.game.GameOutcome; -public class GameEventGameOutcome extends GameEvent { - public final GameOutcome result; - public final Collection history; - - public GameEventGameOutcome(GameOutcome lastOne, Collection history) { - this.result = lastOne; - this.history = history; - } +public record GameEventGameOutcome(GameOutcome result, Collection history) implements GameEvent { @Override public T visit(IGameEventVisitor visitor) { diff --git a/forge-game/src/main/java/forge/game/event/GameEventGameRestarted.java b/forge-game/src/main/java/forge/game/event/GameEventGameRestarted.java index e997831a714..0ad85a4e068 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventGameRestarted.java +++ b/forge-game/src/main/java/forge/game/event/GameEventGameRestarted.java @@ -2,17 +2,7 @@ package forge.game.event; import forge.game.player.Player; -/** - * TODO: Write javadoc for this type. - * - */ -public class GameEventGameRestarted extends GameEvent { - - public final Player whoRestarted; - - public GameEventGameRestarted(Player playerTurn) { - whoRestarted = playerTurn; - } +public record GameEventGameRestarted(Player whoRestarted) implements GameEvent { @Override public T visit(IGameEventVisitor visitor) { diff --git a/forge-game/src/main/java/forge/game/event/GameEventGameStarted.java b/forge-game/src/main/java/forge/game/event/GameEventGameStarted.java index 550a439d5e5..3bf5f55b436 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventGameStarted.java +++ b/forge-game/src/main/java/forge/game/event/GameEventGameStarted.java @@ -5,22 +5,7 @@ import forge.game.player.Player; import forge.util.Lang; import forge.util.TextUtil; -/** - * TODO: Write javadoc for this type. - * - */ -public class GameEventGameStarted extends GameEvent { - - public final Player firstTurn; - public final Iterable players; - public final GameType gameType; - - public GameEventGameStarted(GameType type, Player firstTurn, Iterable players) { - super(); - this.gameType = type; - this.firstTurn = firstTurn; - this.players = players; - } +public record GameEventGameStarted(GameType gameType, Player firstTurn, Iterable players) implements GameEvent { @Override public T visit(IGameEventVisitor visitor) { diff --git a/forge-game/src/main/java/forge/game/event/GameEventLandPlayed.java b/forge-game/src/main/java/forge/game/event/GameEventLandPlayed.java index b02d5746dca..6a6224239a2 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventLandPlayed.java +++ b/forge-game/src/main/java/forge/game/event/GameEventLandPlayed.java @@ -3,17 +3,7 @@ package forge.game.event; import forge.game.card.Card; import forge.game.player.Player; -public class GameEventLandPlayed extends GameEvent { - - public final Player player; - public final Card land; - - public GameEventLandPlayed(Player player, Card land) { - this.player = player; - this.land = land; - - } - +public record GameEventLandPlayed(Player player, Card land) implements GameEvent { @Override public T visit(IGameEventVisitor visitor) { return visitor.visit(this); diff --git a/forge-game/src/main/java/forge/game/event/GameEventManaBurn.java b/forge-game/src/main/java/forge/game/event/GameEventManaBurn.java index 5b9a06367f1..db8e4790316 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventManaBurn.java +++ b/forge-game/src/main/java/forge/game/event/GameEventManaBurn.java @@ -3,22 +3,7 @@ package forge.game.event; import forge.game.player.Player; // This special event denotes loss of mana due to phase end -public class GameEventManaBurn extends GameEvent { - - public final Player player; - public final boolean causedLifeLoss; - public final int amount; - - /** - * TODO: Write javadoc for Constructor. - * @param dealDamage - * @param burn - */ - public GameEventManaBurn(Player who, int burn, boolean dealDamage) { - player = who; - amount = burn; - causedLifeLoss = dealDamage; - } +public record GameEventManaBurn(Player player, boolean causedLifeLoss, int amount) implements GameEvent { @Override public T visit(IGameEventVisitor visitor) { diff --git a/forge-game/src/main/java/forge/game/event/GameEventManaPool.java b/forge-game/src/main/java/forge/game/event/GameEventManaPool.java index 473e25f6191..6602376dfec 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventManaPool.java +++ b/forge-game/src/main/java/forge/game/event/GameEventManaPool.java @@ -4,20 +4,7 @@ import forge.game.mana.Mana; import forge.game.player.Player; import forge.util.Lang; -/** - * TODO: Write javadoc for this type. - * - */ -public class GameEventManaPool extends GameEvent { - public final Player player; - public final EventValueChangeType mode; - public final Mana mana; - - public GameEventManaPool(Player owner, EventValueChangeType changeMode, Mana mana) { - this.mana = mana; - player = owner; - mode = changeMode; - } +public record GameEventManaPool(Player player, EventValueChangeType mode, Mana mana) implements GameEvent { @Override public T visit(IGameEventVisitor visitor) { diff --git a/forge-game/src/main/java/forge/game/event/GameEventMulligan.java b/forge-game/src/main/java/forge/game/event/GameEventMulligan.java index e37606d514d..34c763253d7 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventMulligan.java +++ b/forge-game/src/main/java/forge/game/event/GameEventMulligan.java @@ -2,16 +2,7 @@ package forge.game.event; import forge.game.player.Player; -/** - * TODO: Write javadoc for this type. - * - */ -public class GameEventMulligan extends GameEvent { - - public final Player player; - public GameEventMulligan(Player p) { - player = p; - } +public record GameEventMulligan(Player player) implements GameEvent { @Override public T visit(IGameEventVisitor visitor) { diff --git a/forge-game/src/main/java/forge/game/event/GameEventPlayerControl.java b/forge-game/src/main/java/forge/game/event/GameEventPlayerControl.java index 224aa4956a8..e3c28ca37d3 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventPlayerControl.java +++ b/forge-game/src/main/java/forge/game/event/GameEventPlayerControl.java @@ -4,20 +4,7 @@ import forge.LobbyPlayer; import forge.game.player.Player; import forge.game.player.PlayerController; -public class GameEventPlayerControl extends GameEvent { - public final Player player; - public final LobbyPlayer oldLobbyPlayer; - public final PlayerController oldController; - public final LobbyPlayer newLobbyPlayer; - public final PlayerController newController; - - public GameEventPlayerControl(final Player p, final LobbyPlayer oldLobbyPlayer, final PlayerController oldController, final LobbyPlayer newLobbyPlayer, final PlayerController newController) { - this.player = p; - this.oldLobbyPlayer = oldLobbyPlayer; - this.oldController = oldController; - this.newLobbyPlayer = newLobbyPlayer; - this.newController = newController; - } +public record GameEventPlayerControl(Player player, LobbyPlayer oldLobbyPlayer, PlayerController oldController, LobbyPlayer newLobbyPlayer, PlayerController newController) implements GameEvent { @Override public T visit(final IGameEventVisitor visitor) { diff --git a/forge-game/src/main/java/forge/game/event/GameEventPlayerCounters.java b/forge-game/src/main/java/forge/game/event/GameEventPlayerCounters.java index 46fe264b60f..e79b1e1a6d8 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventPlayerCounters.java +++ b/forge-game/src/main/java/forge/game/event/GameEventPlayerCounters.java @@ -3,18 +3,7 @@ package forge.game.event; import forge.game.card.CounterType; import forge.game.player.Player; -public class GameEventPlayerCounters extends GameEvent { - public final Player receiver; - public final CounterType type; - public final int oldValue; - public final int amount; - - public GameEventPlayerCounters(Player recv, CounterType t, int old, int num) { - receiver = recv; - type = t; - oldValue = old; - amount = num; - } +public record GameEventPlayerCounters(Player receiver, CounterType type, int oldValue, int amount) implements GameEvent { @Override public T visit(IGameEventVisitor visitor) { diff --git a/forge-game/src/main/java/forge/game/event/GameEventPlayerDamaged.java b/forge-game/src/main/java/forge/game/event/GameEventPlayerDamaged.java index 3563c1fcb2b..499a2cd924f 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventPlayerDamaged.java +++ b/forge-game/src/main/java/forge/game/event/GameEventPlayerDamaged.java @@ -3,33 +3,7 @@ package forge.game.event; import forge.game.card.Card; import forge.game.player.Player; - -/** - * TODO: Write javadoc for this type. - * - */ -public class GameEventPlayerDamaged extends GameEvent { - public final Player target; - public final Card source; - public final int amount; - final public boolean infect; - public final boolean combat; - - /** - * TODO: Write javadoc for Constructor. - * @param player - * @param source - * @param amount - * @param isCombat - * @param infect - */ - public GameEventPlayerDamaged(Player player, Card source, int amount, boolean isCombat, boolean infect) { - target = player; - this.source = source; - this.amount = amount; - combat = isCombat; - this.infect = infect; - } +public record GameEventPlayerDamaged(Player target, Card source, int amount, boolean combat, boolean infect) implements GameEvent { /* (non-Javadoc) * @see forge.game.event.GameEvent#visit(forge.game.event.IGameEventVisitor) diff --git a/forge-game/src/main/java/forge/game/event/GameEventPlayerLivesChanged.java b/forge-game/src/main/java/forge/game/event/GameEventPlayerLivesChanged.java index c84ab7edea5..cb3d8686618 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventPlayerLivesChanged.java +++ b/forge-game/src/main/java/forge/game/event/GameEventPlayerLivesChanged.java @@ -4,16 +4,7 @@ import forge.game.player.Player; import forge.util.Lang; import forge.util.TextUtil; -public class GameEventPlayerLivesChanged extends GameEvent { - public final Player player; - public final int oldLives; - public final int newLives; - - public GameEventPlayerLivesChanged(Player who, int oldValue, int newValue) { - player = who; - oldLives = oldValue; - newLives = newValue; - } +public record GameEventPlayerLivesChanged(Player player, int oldLives, int newLives) implements GameEvent { @Override public T visit(IGameEventVisitor visitor) { diff --git a/forge-game/src/main/java/forge/game/event/GameEventPlayerPoisoned.java b/forge-game/src/main/java/forge/game/event/GameEventPlayerPoisoned.java index 7e4c24efcad..e53d08b0e9f 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventPlayerPoisoned.java +++ b/forge-game/src/main/java/forge/game/event/GameEventPlayerPoisoned.java @@ -6,18 +6,7 @@ import forge.game.player.Player; * * */ -public class GameEventPlayerPoisoned extends GameEvent { - public final Player receiver; - public final Player source; - public final int oldValue; - public final int amount; - - public GameEventPlayerPoisoned(Player recv, Player src, int old, int num) { - receiver = recv; - source = src; - oldValue = old; - amount = num; - } +public record GameEventPlayerPoisoned(Player receiver, Player source, int oldValue, int amount) implements GameEvent { @Override public T visit(IGameEventVisitor visitor) { diff --git a/forge-game/src/main/java/forge/game/event/GameEventPlayerPriority.java b/forge-game/src/main/java/forge/game/event/GameEventPlayerPriority.java index 0a748996269..bfc9e87c3cc 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventPlayerPriority.java +++ b/forge-game/src/main/java/forge/game/event/GameEventPlayerPriority.java @@ -4,21 +4,7 @@ import forge.game.phase.PhaseType; import forge.game.player.Player; import forge.util.TextUtil; -/** - * TODO: Write javadoc for this type. - * - */ -public class GameEventPlayerPriority extends GameEvent { - - public final Player turn; - public final PhaseType phase; - public final Player priority; - - public GameEventPlayerPriority(Player playerTurn, PhaseType phase, Player priorityPlayer) { - turn = playerTurn; - this.phase = phase; - priority = priorityPlayer; - } +public record GameEventPlayerPriority(Player turn, PhaseType phase, Player priority) implements GameEvent { @Override public T visit(IGameEventVisitor visitor) { diff --git a/forge-game/src/main/java/forge/game/event/GameEventPlayerRadiation.java b/forge-game/src/main/java/forge/game/event/GameEventPlayerRadiation.java index b9214b15b63..af7347dab51 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventPlayerRadiation.java +++ b/forge-game/src/main/java/forge/game/event/GameEventPlayerRadiation.java @@ -2,16 +2,7 @@ package forge.game.event; import forge.game.player.Player; -public class GameEventPlayerRadiation extends GameEvent { - public final Player receiver; - public final Player source; - public final int change; - - public GameEventPlayerRadiation(Player recv, Player src, int chng) { - receiver = recv; - source = src; - change = chng; - } +public record GameEventPlayerRadiation(Player receiver, Player source, int change) implements GameEvent { @Override public T visit(IGameEventVisitor visitor) { diff --git a/forge-game/src/main/java/forge/game/event/GameEventPlayerShardsChanged.java b/forge-game/src/main/java/forge/game/event/GameEventPlayerShardsChanged.java index 4ff56fc6bae..6edd2c33bbc 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventPlayerShardsChanged.java +++ b/forge-game/src/main/java/forge/game/event/GameEventPlayerShardsChanged.java @@ -4,16 +4,7 @@ import forge.game.player.Player; import forge.util.Lang; import forge.util.TextUtil; -public class GameEventPlayerShardsChanged extends GameEvent { - public final Player player; - public final int oldShards; - public final int newShards; - - public GameEventPlayerShardsChanged(Player who, int oldValue, int newValue) { - player = who; - oldShards = oldValue; - newShards = newValue; - } +public record GameEventPlayerShardsChanged(Player player, int oldShards, int newShards) implements GameEvent { @Override public T visit(IGameEventVisitor visitor) { diff --git a/forge-game/src/main/java/forge/game/event/GameEventPlayerStatsChanged.java b/forge-game/src/main/java/forge/game/event/GameEventPlayerStatsChanged.java index b077517cc24..fcaf4887dbb 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventPlayerStatsChanged.java +++ b/forge-game/src/main/java/forge/game/event/GameEventPlayerStatsChanged.java @@ -10,18 +10,10 @@ import forge.util.TextUtil; /** * This means card's characteristics have changed on server, clients must re-request them */ -public class GameEventPlayerStatsChanged extends GameEvent { +public record GameEventPlayerStatsChanged(Collection players, boolean updateCards) implements GameEvent { - public final Collection players; - public final boolean updateCards; public GameEventPlayerStatsChanged(Player affected, boolean updateCards) { - players = Arrays.asList(affected); - this.updateCards = updateCards; - } - - public GameEventPlayerStatsChanged(Collection affected, boolean updateCards) { - players = affected; - this.updateCards = updateCards; + this(Arrays.asList(affected), updateCards); } /* (non-Javadoc) @@ -29,7 +21,6 @@ public class GameEventPlayerStatsChanged extends GameEvent { */ @Override public T visit(IGameEventVisitor visitor) { - // TODO Auto-generated method stub return visitor.visit(this); } diff --git a/forge-game/src/main/java/forge/game/event/GameEventRandomLog.java b/forge-game/src/main/java/forge/game/event/GameEventRandomLog.java index 3fa778bbd74..4552e1fbf19 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventRandomLog.java +++ b/forge-game/src/main/java/forge/game/event/GameEventRandomLog.java @@ -1,12 +1,6 @@ package forge.game.event; -public class GameEventRandomLog extends GameEvent { - - public final String message; - - public GameEventRandomLog(String message) { - this.message = message; - } +public record GameEventRandomLog(String message) implements GameEvent { @Override public T visit(IGameEventVisitor visitor) { diff --git a/forge-game/src/main/java/forge/game/event/GameEventRollDie.java b/forge-game/src/main/java/forge/game/event/GameEventRollDie.java index b44674e924e..a3046fb04d8 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventRollDie.java +++ b/forge-game/src/main/java/forge/game/event/GameEventRollDie.java @@ -1,6 +1,6 @@ package forge.game.event; -public class GameEventRollDie extends GameEvent { +public record GameEventRollDie() implements GameEvent { @Override public T visit(IGameEventVisitor visitor) { diff --git a/forge-game/src/main/java/forge/game/event/GameEventScry.java b/forge-game/src/main/java/forge/game/event/GameEventScry.java index e9f32d2d920..96221a0c6b4 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventScry.java +++ b/forge-game/src/main/java/forge/game/event/GameEventScry.java @@ -2,16 +2,7 @@ package forge.game.event; import forge.game.player.Player; -public class GameEventScry extends GameEvent { - - public final Player player; - public final int toTop, toBottom; - - public GameEventScry(Player player, int toTop, int toBottom) { - this.player = player; - this.toTop = toTop; - this.toBottom = toBottom; - } +public record GameEventScry(Player player, int toTop, int toBottom) implements GameEvent { @Override public T visit(IGameEventVisitor visitor) { diff --git a/forge-game/src/main/java/forge/game/event/GameEventShuffle.java b/forge-game/src/main/java/forge/game/event/GameEventShuffle.java index a1cc18bdf1a..96502a89597 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventShuffle.java +++ b/forge-game/src/main/java/forge/game/event/GameEventShuffle.java @@ -4,13 +4,7 @@ import forge.game.player.Player; import forge.util.Lang; import forge.util.TextUtil; -public class GameEventShuffle extends GameEvent { - - public final Player player; - - public GameEventShuffle(Player player) { - this.player = player; - } +public record GameEventShuffle(Player player) implements GameEvent { @Override public T visit(IGameEventVisitor visitor) { diff --git a/forge-game/src/main/java/forge/game/event/GameEventSpeedChanged.java b/forge-game/src/main/java/forge/game/event/GameEventSpeedChanged.java index 5320fef0626..31fb2abf7c9 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventSpeedChanged.java +++ b/forge-game/src/main/java/forge/game/event/GameEventSpeedChanged.java @@ -2,18 +2,7 @@ package forge.game.event; import forge.game.player.Player; -public class GameEventSpeedChanged extends GameEvent { - - public final Player player; - public final int oldValue; - public final int newValue; - - public GameEventSpeedChanged(Player affected, int oldValue, int newValue) { - player = affected; - this.oldValue = oldValue; - this.newValue = newValue; - } - +public record GameEventSpeedChanged(Player player, int oldValue, int newValue) implements GameEvent { @Override public T visit(IGameEventVisitor visitor) { return visitor.visit(this); diff --git a/forge-game/src/main/java/forge/game/event/GameEventSpellAbilityCast.java b/forge-game/src/main/java/forge/game/event/GameEventSpellAbilityCast.java index 24798aaacba..e38c374abde 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventSpellAbilityCast.java +++ b/forge-game/src/main/java/forge/game/event/GameEventSpellAbilityCast.java @@ -3,21 +3,7 @@ package forge.game.event; import forge.game.spellability.SpellAbility; import forge.game.spellability.SpellAbilityStackInstance; -/** - * TODO: Write javadoc for this type. - * - */ -public class GameEventSpellAbilityCast extends GameEvent { - - public final SpellAbility sa; - public final SpellAbilityStackInstance si; - public final int stackIndex; - - public GameEventSpellAbilityCast(SpellAbility sp, SpellAbilityStackInstance si, int stackIndex) { - sa = sp; - this.si = si; - this.stackIndex = stackIndex; - } +public record GameEventSpellAbilityCast(SpellAbility sa, SpellAbilityStackInstance si, int stackIndex) implements GameEvent { /* (non-Javadoc) * @see forge.game.event.GameEvent#visit(forge.game.event.IGameEventVisitor) diff --git a/forge-game/src/main/java/forge/game/event/GameEventSpellRemovedFromStack.java b/forge-game/src/main/java/forge/game/event/GameEventSpellRemovedFromStack.java index 089e6ef20b0..5a089f6a7d1 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventSpellRemovedFromStack.java +++ b/forge-game/src/main/java/forge/game/event/GameEventSpellRemovedFromStack.java @@ -2,20 +2,10 @@ package forge.game.event; import forge.game.spellability.SpellAbility; -/** - * TODO: Write javadoc for this type. - * - */ -public class GameEventSpellRemovedFromStack extends GameEvent { - public final SpellAbility sa; - - public GameEventSpellRemovedFromStack(SpellAbility spellAbility) { - sa = spellAbility; - } +public record GameEventSpellRemovedFromStack(SpellAbility sa) implements GameEvent { @Override public T visit(IGameEventVisitor visitor) { - // TODO Auto-generated method stub return visitor.visit(this); } diff --git a/forge-game/src/main/java/forge/game/event/GameEventSpellResolved.java b/forge-game/src/main/java/forge/game/event/GameEventSpellResolved.java index 1da0588092a..c54571a26ea 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventSpellResolved.java +++ b/forge-game/src/main/java/forge/game/event/GameEventSpellResolved.java @@ -2,26 +2,7 @@ package forge.game.event; import forge.game.spellability.SpellAbility; -/** - * TODO: Write javadoc for this type. - * - */ -public class GameEventSpellResolved extends GameEvent { - - public final SpellAbility spell; - public final boolean hasFizzled; - - /** - * TODO: Write javadoc for Constructor. - * @param source - * @param sa - * @param hasFizzled - */ - public GameEventSpellResolved(SpellAbility sa, boolean hasFizzled) { - // TODO Auto-generated constructor stub - this.spell = sa; - this.hasFizzled = hasFizzled; - } +public record GameEventSpellResolved(SpellAbility spell, boolean hasFizzled) implements GameEvent { @Override public T visit(IGameEventVisitor visitor) { diff --git a/forge-game/src/main/java/forge/game/event/GameEventSprocketUpdate.java b/forge-game/src/main/java/forge/game/event/GameEventSprocketUpdate.java index 601ee1bafff..690f57422d4 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventSprocketUpdate.java +++ b/forge-game/src/main/java/forge/game/event/GameEventSprocketUpdate.java @@ -2,18 +2,7 @@ package forge.game.event; import forge.game.card.Card; -public class GameEventSprocketUpdate extends GameEvent { - - public final Card contraption; - public final int oldSprocket; - public final int sprocket; - - public GameEventSprocketUpdate(Card contraption, int oldSprocket, int sprocket) { - this.contraption = contraption; - this.oldSprocket = oldSprocket; - this.sprocket = sprocket; - } - +public record GameEventSprocketUpdate(Card contraption, int oldSprocket, int sprocket) implements GameEvent { @Override public T visit(IGameEventVisitor visitor) { diff --git a/forge-game/src/main/java/forge/game/event/GameEventSubgameEnd.java b/forge-game/src/main/java/forge/game/event/GameEventSubgameEnd.java index 5fcaf2a9256..89a9ed7d99a 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventSubgameEnd.java +++ b/forge-game/src/main/java/forge/game/event/GameEventSubgameEnd.java @@ -2,15 +2,7 @@ package forge.game.event; import forge.game.Game; -public class GameEventSubgameEnd extends GameEvent { - public final Game maingame; - public final String message; - - public GameEventSubgameEnd(Game game, String message0) { - maingame = game; - message = message0; - } - +public record GameEventSubgameEnd(Game maingame, String message) implements GameEvent { @Override public T visit(IGameEventVisitor visitor) { return visitor.visit(this); diff --git a/forge-game/src/main/java/forge/game/event/GameEventSubgameStart.java b/forge-game/src/main/java/forge/game/event/GameEventSubgameStart.java index 8d9f733a52b..eb13c72f7ca 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventSubgameStart.java +++ b/forge-game/src/main/java/forge/game/event/GameEventSubgameStart.java @@ -2,14 +2,7 @@ package forge.game.event; import forge.game.Game; -public class GameEventSubgameStart extends GameEvent { - public final Game subgame; - public final String message; - - public GameEventSubgameStart(Game subgame0, String message0) { - subgame = subgame0; - message = message0; - } +public record GameEventSubgameStart(Game subgame, String message) implements GameEvent { @Override public T visit(IGameEventVisitor visitor) { diff --git a/forge-game/src/main/java/forge/game/event/GameEventSurveil.java b/forge-game/src/main/java/forge/game/event/GameEventSurveil.java index 278b8cae107..3e2f11d27f0 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventSurveil.java +++ b/forge-game/src/main/java/forge/game/event/GameEventSurveil.java @@ -2,16 +2,7 @@ package forge.game.event; import forge.game.player.Player; -public class GameEventSurveil extends GameEvent { - - public final Player player; - public final int toLibrary, toGraveyard; - - public GameEventSurveil(Player player, int toLibrary, int toGraveyard) { - this.player = player; - this.toLibrary = toLibrary; - this.toGraveyard = toGraveyard; - } +public record GameEventSurveil(Player player, int toLibrary, int toGraveyard) implements GameEvent { @Override public T visit(IGameEventVisitor visitor) { diff --git a/forge-game/src/main/java/forge/game/event/GameEventTokenCreated.java b/forge-game/src/main/java/forge/game/event/GameEventTokenCreated.java index 929229ea059..d72bec6ece7 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventTokenCreated.java +++ b/forge-game/src/main/java/forge/game/event/GameEventTokenCreated.java @@ -1,6 +1,6 @@ package forge.game.event; -public class GameEventTokenCreated extends GameEvent { +public record GameEventTokenCreated() implements GameEvent { @Override public T visit(IGameEventVisitor visitor) { diff --git a/forge-game/src/main/java/forge/game/event/GameEventTurnBegan.java b/forge-game/src/main/java/forge/game/event/GameEventTurnBegan.java index 198e4c86614..eecb4281f08 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventTurnBegan.java +++ b/forge-game/src/main/java/forge/game/event/GameEventTurnBegan.java @@ -3,16 +3,7 @@ package forge.game.event; import forge.game.player.Player; import forge.util.TextUtil; -public class GameEventTurnBegan extends GameEvent { - - public final Player turnOwner; - public final int turnNumber; - - public GameEventTurnBegan(Player turnOwner, int turnNumber) { - super(); - this.turnOwner = turnOwner; - this.turnNumber = turnNumber; - } +public record GameEventTurnBegan(Player turnOwner, int turnNumber) implements GameEvent { @Override public T visit(IGameEventVisitor visitor) { diff --git a/forge-game/src/main/java/forge/game/event/GameEventTurnEnded.java b/forge-game/src/main/java/forge/game/event/GameEventTurnEnded.java index 92baeacf5fb..b9bb4ab86a2 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventTurnEnded.java +++ b/forge-game/src/main/java/forge/game/event/GameEventTurnEnded.java @@ -1,6 +1,6 @@ package forge.game.event; -public class GameEventTurnEnded extends GameEvent { +public record GameEventTurnEnded() implements GameEvent { @Override public T visit(IGameEventVisitor visitor) { diff --git a/forge-game/src/main/java/forge/game/event/GameEventTurnPhase.java b/forge-game/src/main/java/forge/game/event/GameEventTurnPhase.java index e0b99b5ce49..79fd40657fd 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventTurnPhase.java +++ b/forge-game/src/main/java/forge/game/event/GameEventTurnPhase.java @@ -5,20 +5,7 @@ import forge.game.player.Player; import forge.util.Lang; import forge.util.TextUtil; -/** - * TODO: Write javadoc for this type. - * - */ -public class GameEventTurnPhase extends GameEvent { - public final Player playerTurn; - public final PhaseType phase; - public final String phaseDesc; - - public GameEventTurnPhase(Player player, PhaseType ph, String desc) { - playerTurn = player; - phase = ph; - phaseDesc = desc; - } +public record GameEventTurnPhase(Player playerTurn, PhaseType phase, String phaseDesc) implements GameEvent { @Override public T visit(IGameEventVisitor visitor) { diff --git a/forge-game/src/main/java/forge/game/event/GameEventZone.java b/forge-game/src/main/java/forge/game/event/GameEventZone.java index 8e457b24e24..706cd2e1690 100644 --- a/forge-game/src/main/java/forge/game/event/GameEventZone.java +++ b/forge-game/src/main/java/forge/game/event/GameEventZone.java @@ -12,33 +12,18 @@ import forge.util.TextUtil; * Stores information about the affected zone, player, card, and spell ability. * Used for tracking zone changes such as casting, moving, or activating cards and abilities. */ -public class GameEventZone extends GameEvent { - - public final ZoneType zoneType; - public final Player player; - public final EventValueChangeType mode; - public final Card card; - public final SpellAbility sa; +public record GameEventZone(ZoneType zoneType, Player player, EventValueChangeType mode, Card card, SpellAbility sa) implements GameEvent { public GameEventZone(ZoneType zoneType, Player player, EventValueChangeType added, Card c) { - this.zoneType = zoneType; - this.player = player; - this.mode = added; - this.card = c; - this.sa = null; + this(zoneType, player, added, c, null); } public GameEventZone(ZoneType zoneType, SpellAbility sa, EventValueChangeType added) { - this.zoneType = zoneType; - this.player = sa.getActivatingPlayer(); - this.mode = added; - this.card = sa.getHostCard(); - this.sa = sa; + this(zoneType, sa.getActivatingPlayer(), added, sa.getHostCard(), sa); } @Override public T visit(IGameEventVisitor visitor) { - // TODO Auto-generated method stub return visitor.visit(this); } diff --git a/forge-game/src/main/java/forge/game/event/IGameEventVisitor.java b/forge-game/src/main/java/forge/game/event/IGameEventVisitor.java index f07f5bb031a..4e55f671d7f 100644 --- a/forge-game/src/main/java/forge/game/event/IGameEventVisitor.java +++ b/forge-game/src/main/java/forge/game/event/IGameEventVisitor.java @@ -1,9 +1,5 @@ package forge.game.event; -/** - * TODO: Write javadoc for this type. - * - */ public interface IGameEventVisitor { T visit(GameEventAnteCardsSelected event); T visit(GameEventAttackersDeclared event); diff --git a/forge-game/src/main/java/forge/game/player/Player.java b/forge-game/src/main/java/forge/game/player/Player.java index 3ed02eac612..ca06d5b9231 100644 --- a/forge-game/src/main/java/forge/game/player/Player.java +++ b/forge-game/src/main/java/forge/game/player/Player.java @@ -547,7 +547,7 @@ public class Player extends GameEntity implements Comparable { life -= toLose; view.updateLife(this); if (manaBurn) { - game.fireEvent(new GameEventManaBurn(this, toLose, true)); + game.fireEvent(new GameEventManaBurn(this, true, toLose)); } else { game.fireEvent(new GameEventPlayerLivesChanged(this, oldLife, life)); } diff --git a/forge-gui-desktop/src/main/java/forge/screens/match/CMatchUI.java b/forge-gui-desktop/src/main/java/forge/screens/match/CMatchUI.java index 79b3652b991..bd76f15756b 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/match/CMatchUI.java +++ b/forge-gui-desktop/src/main/java/forge/screens/match/CMatchUI.java @@ -1269,15 +1269,15 @@ public final class CMatchUI @Override public void notifyStackAddition(GameEventSpellAbilityCast event) { - SpellAbility sa = event.sa; + SpellAbility sa = event.sa(); String stackNotificationPolicy = FModel.getPreferences().getPref(FPref.UI_STACK_EFFECT_NOTIFICATION_POLICY); boolean isAi = sa.getActivatingPlayer().isAI(); boolean isTrigger = sa.isTrigger(); - int stackIndex = event.stackIndex; + int stackIndex = event.stackIndex(); if (stackIndex == nextNotifiableStackIndex) { if (ForgeConstants.STACK_EFFECT_NOTIFICATION_ALWAYS.equals(stackNotificationPolicy) || (ForgeConstants.STACK_EFFECT_NOTIFICATION_AI_AND_TRIGGERED.equals(stackNotificationPolicy) && (isAi || isTrigger))) { // We can go and show the modal - SpellAbilityStackInstance si = event.si; + SpellAbilityStackInstance si = event.si(); MigLayout migLayout = new MigLayout("insets 15, left, gap 30, fill"); JPanel mainPanel = new JPanel(migLayout); diff --git a/forge-gui/src/main/java/forge/gamemodes/match/HostedMatch.java b/forge-gui/src/main/java/forge/gamemodes/match/HostedMatch.java index 7d9d879b8bb..5226a923e36 100644 --- a/forge-gui/src/main/java/forge/gamemodes/match/HostedMatch.java +++ b/forge-gui/src/main/java/forge/gamemodes/match/HostedMatch.java @@ -350,9 +350,9 @@ public class HostedMatch { @Override public Void visit(final UiEventBlockerAssigned event) { for (final PlayerControllerHuman humanController : humanControllers) { - humanController.getGui().updateSingleCard(event.blocker); + humanController.getGui().updateSingleCard(event.blocker()); final PlayerView p = humanController.getPlayer().getView(); - if (event.attackerBeingBlocked != null && event.attackerBeingBlocked.getController().equals(p)) { + if (event.attackerBeingBlocked() != null && event.attackerBeingBlocked().getController().equals(p)) { humanController.getGui().autoPassCancel(p); } } @@ -362,27 +362,27 @@ public class HostedMatch { @Override public Void visit(final UiEventAttackerDeclared event) { for (final PlayerControllerHuman humanController : humanControllers) { - humanController.getGui().updateSingleCard(event.attacker); + humanController.getGui().updateSingleCard(event.attacker()); } return null; } @Override public Void visit(final UiEventNextGameDecision event) { - addNextGameDecision(event.getController(), event.getDecision()); + addNextGameDecision(event.controller(), event.decision()); return null; } @Override public Void visit(final GameEventSubgameStart event) { subGameCount++; - event.subgame.subscribeToEvents(SoundSystem.instance); - event.subgame.subscribeToEvents(visitor); + event.subgame().subscribeToEvents(SoundSystem.instance); + event.subgame().subscribeToEvents(visitor); - final GameView gameView = event.subgame.getView(); + final GameView gameView = event.subgame().getView(); Runnable switchGameView = () -> { - for (final Player p : event.subgame.getPlayers()) { + for (final Player p : event.subgame().getPlayers()) { if (p.getController() instanceof PlayerControllerHuman) { final PlayerControllerHuman humanController = (PlayerControllerHuman) p.getController(); final IGuiGame gui = guis.get(p.getRegisteredPlayer()); @@ -393,8 +393,8 @@ public class HostedMatch { gui.openView(new TrackableCollection<>(p.getView())); gui.setGameView(null); gui.setGameView(gameView); - event.subgame.subscribeToEvents(new FControlGameEventHandler(humanController)); - gui.message(event.message); + event.subgame().subscribeToEvents(new FControlGameEventHandler(humanController)); + gui.message(event.message()); } } }; @@ -404,7 +404,7 @@ public class HostedMatch { GuiBase.getInterface().invokeInEdtAndWait(switchGameView); //ensure opponents set properly - for (final Player p : event.subgame.getPlayers()) { + for (final Player p : event.subgame().getPlayers()) { p.updateOpponentsForView(); } @@ -413,9 +413,9 @@ public class HostedMatch { @Override public Void visit(final GameEventSubgameEnd event) { - final GameView gameView = event.maingame.getView(); + final GameView gameView = event.maingame().getView(); Runnable switchGameView = () -> { - for (final Player p : event.maingame.getPlayers()) { + for (final Player p : event.maingame().getPlayers()) { if (p.getController() instanceof PlayerControllerHuman) { final PlayerControllerHuman humanController = (PlayerControllerHuman) p.getController(); final IGuiGame gui = guis.get(p.getRegisteredPlayer()); @@ -426,7 +426,7 @@ public class HostedMatch { gui.setGameView(null); gui.setGameView(gameView); gui.updatePhase(true); - gui.message(event.message); + gui.message(event.message()); } } }; diff --git a/forge-gui/src/main/java/forge/gamemodes/quest/QuestController.java b/forge-gui/src/main/java/forge/gamemodes/quest/QuestController.java index 5bd6af0bb2d..6cb61c47c51 100644 --- a/forge-gui/src/main/java/forge/gamemodes/quest/QuestController.java +++ b/forge-gui/src/main/java/forge/gamemodes/quest/QuestController.java @@ -549,9 +549,9 @@ public class QuestController { if (ev instanceof GameEventMulligan) { GameEventMulligan mev = (GameEventMulligan) ev; // First mulligan is free - if (mev.player.getLobbyPlayer() == GamePlayerUtil.getGuiPlayer() - && getAssets().hasItem(QuestItemType.SLEIGHT) && mev.player.getStats().getMulliganCount() < 7) { - mev.player.drawCard(); + if (mev.player().getLobbyPlayer().equals(GamePlayerUtil.getGuiPlayer()) + && getAssets().hasItem(QuestItemType.SLEIGHT) && mev.player().getStats().getMulliganCount() < 7) { + mev.player().drawCard(); } } } diff --git a/forge-gui/src/main/java/forge/gui/control/FControlGameEventHandler.java b/forge-gui/src/main/java/forge/gui/control/FControlGameEventHandler.java index ef4154f4733..d0319ca3135 100644 --- a/forge-gui/src/main/java/forge/gui/control/FControlGameEventHandler.java +++ b/forge-gui/src/main/java/forge/gui/control/FControlGameEventHandler.java @@ -190,9 +190,9 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base { @Override public Void visit(final GameEventTurnPhase ev) { needPhaseUpdate = true; - needSaveState = !"dev".equals(ev.phaseDesc); + needSaveState = !"dev".equals(ev.phaseDesc()); - Player ap = ev.playerTurn; + Player ap = ev.playerTurn(); boolean refreshField = !ap.getTokensInPlay().isEmpty() || (FModel.getPreferences().getPrefBoolean(FPref.UI_STACK_CREATURES) && !ap.getCreaturesInPlay().isEmpty()); if (refreshField) { updateZone(ap, ZoneType.Battlefield); @@ -209,15 +209,15 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base { @Override public Void visit(final GameEventTurnBegan event) { - turnUpdate = event.turnOwner.getView(); - processPlayer(event.turnOwner, livesUpdate); + turnUpdate = event.turnOwner().getView(); + processPlayer(event.turnOwner(), livesUpdate); return processEvent(); } @Override public Void visit(final GameEventAnteCardsSelected ev) { final List options = Lists.newArrayList(); - for (final Entry kv : ev.cards.entries()) { + for (final Entry kv : ev.cards().entries()) { //use fake card so real cards appear with proper formatting final CardView fakeCard = new CardView(-1, null, " -- From " + Lang.getInstance().getPossesive(kv.getKey().getName()) + " deck --"); options.add(fakeCard); @@ -229,17 +229,17 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base { @Override public Void visit(final GameEventPlayerControl ev) { - if (ev.player.getGame().isGameOver()) { + if (ev.player().getGame().isGameOver()) { return null; } final PlayerControllerHuman newController; - if (ev.newController instanceof PlayerControllerHuman) { - newController = (PlayerControllerHuman) ev.newController; + if (ev.newController() instanceof PlayerControllerHuman) { + newController = (PlayerControllerHuman) ev.newController(); } else { newController = null; } - matchController.setGameController(PlayerView.get(ev.player), newController); + matchController.setGameController(PlayerView.get(ev.player()), newController); needPlayerControlUpdate = true; return processEvent(); @@ -293,8 +293,8 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base { @Override public Void visit(final GameEventSubgameEnd event) { - if (event.maingame != null) { - for (Player p : event.maingame.getPlayers()) { + if (event.maingame() != null) { + for (Player p : event.maingame().getPlayers()) { updateZone(p, ZoneType.Battlefield); updateZone(p, ZoneType.Hand); updateZone(p, ZoneType.Graveyard); @@ -302,9 +302,9 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base { updateZone(p, ZoneType.Command); } //update matchscreen view to reflect maingame/previous daytime - if (event.maingame.isDay()) + if (event.maingame().isDay()) matchController.updateDayTime("Day"); - else if (event.maingame.isNight()) + else if (event.maingame().isNight()) matchController.updateDayTime("Night"); return processEvent(); } @@ -313,9 +313,9 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base { @Override public Void visit(final GameEventZone event) { - if (event.player != null) { + if (event.player() != null) { // anything except stack will get here - updateZone(event.player, event.zoneType); + updateZone(event.player(), event.zoneType()); return processEvent(); } return null; @@ -323,13 +323,13 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base { @Override public Void visit(final GameEventCardAttachment event) { - final Game game = event.equipment.getGame(); - final Zone zEq = game.getZoneOf(event.equipment); - if (event.oldEntity instanceof Card) { - updateZone(game.getZoneOf((Card)event.oldEntity)); + final Game game = event.equipment().getGame(); + final Zone zEq = game.getZoneOf(event.equipment()); + if (event.oldEntity() instanceof Card oldCard) { + updateZone(game.getZoneOf(oldCard)); } - if (event.newTarget instanceof Card) { - updateZone(game.getZoneOf((Card)event.newTarget)); + if (event.newTarget() instanceof Card newCard) { + updateZone(game.getZoneOf(newCard)); } updateZone(zEq); return processEvent(); @@ -338,32 +338,32 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base { @Override public Void visit(final GameEventCardTapped event) { refreshFieldUpdate = true; //update all players field when event un/tapped - processCard(event.card, cardsUpdate); + processCard(event.card(), cardsUpdate); return processEvent(); } @Override public Void visit(final GameEventCardPhased event) { - processCard(event.card, cardsUpdate); + processCard(event.card(), cardsUpdate); return processEvent(); } @Override public Void visit(final GameEventCardDamaged event) { - processCard(event.card, cardsUpdate); + processCard(event.card(), cardsUpdate); return processEvent(); } @Override public Void visit(final GameEventCardCounters event) { - processCard(event.card, cardsUpdate); + processCard(event.card(), cardsUpdate); return processEvent(); } @Override public Void visit(final GameEventBlockersDeclared event) { final Set cards = new HashSet<>(); - for (final MapOfLists kv : event.blockers.values()) { + for (final MapOfLists kv : event.blockers().values()) { for (final Collection blockers : kv.values()) { cards.addAll(blockers); } @@ -373,7 +373,7 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base { @Override public Void visit(final GameEventAttackersDeclared event) { - return processCards(event.attackersMap.values(), cardsUpdate); + return processCards(event.attackersMap().values(), cardsUpdate); } @Override @@ -387,8 +387,8 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base { needCombatUpdate = true; // This should remove sword/shield icons from combatants by the time game moves to M2 - processCards(event.attackers, cardsUpdate); - return processCards(event.blockers, cardsUpdate); + processCards(event.attackers(), cardsUpdate); + return processCards(event.blockers(), cardsUpdate); } @Override @@ -397,8 +397,8 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base { return null; //not needed if single player only... final CardCollection cards = new CardCollection(); - cards.addAll(event.attackers); - cards.addAll(event.blockers); + cards.addAll(event.attackers()); + cards.addAll(event.blockers()); refreshFieldUpdate = true; @@ -409,8 +409,8 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base { @Override public Void visit(final GameEventCardChangeZone event) { if (GuiBase.getInterface().isLibgdxPort()) { - updateZone(event.from); - return updateZone(event.to); + updateZone(event.from()); + return updateZone(event.to()); } else { return processEvent(); } @@ -419,14 +419,14 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base { @Override public Void visit(final GameEventCardStatsChanged event) { refreshFieldUpdate = true; - processCards(event.cards, cardsRefreshDetails); - return processCards(event.cards, cardsUpdate); + processCards(event.cards(), cardsRefreshDetails); + return processCards(event.cards(), cardsUpdate); } @Override public Void visit(final GameEventCardForetold event) { showExileUpdate = true; - activatingPlayer = event.activatingPlayer.getView(); + activatingPlayer = event.activatingPlayer().getView(); playersWithValidTargets.put(activatingPlayer, null); return processEvent(); } @@ -434,7 +434,7 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base { @Override public Void visit(final GameEventCardPlotted event) { showExileUpdate = true; - activatingPlayer = event.activatingPlayer.getView(); + activatingPlayer = event.activatingPlayer().getView(); playersWithValidTargets.put(activatingPlayer, null); return processEvent(); } @@ -442,8 +442,8 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base { @Override public Void visit(final GameEventPlayerStatsChanged event) { final CardCollection cards = new CardCollection(); - for (final Player p : event.players) { - if (event.updateCards) { + for (final Player p : event.players()) { + if (event.updateCards()) { cards.addAll(p.getAllCards()); } processPlayer(p, livesUpdate); @@ -453,22 +453,22 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base { } public Void visit(final GameEventLandPlayed event) { - processPlayer(event.player, livesUpdate); - matchController.handleLandPlayed(event.land); - return processCard(event.land, cardsRefreshDetails); + processPlayer(event.player(), livesUpdate); + matchController.handleLandPlayed(event.land()); + return processCard(event.land(), cardsRefreshDetails); } @Override public Void visit(final GameEventCardRegenerated event) { refreshFieldUpdate = true; - processCards(event.cards, cardsRefreshDetails); - return processCards(event.cards, cardsUpdate); + processCards(event.cards(), cardsRefreshDetails); + return processCards(event.cards(), cardsUpdate); } @Override public Void visit(final GameEventShuffle event) { if (GuiBase.getInterface().isLibgdxPort()) { - return updateZone(event.player.getZone(ZoneType.Library)); + return updateZone(event.player().getZone(ZoneType.Library)); } else { return processEvent(); } @@ -476,44 +476,44 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base { @Override public Void visit(final GameEventDayTimeChanged event) { - matchController.updateDayTime(event.daytime ? "Day" : "Night"); + matchController.updateDayTime(event.daytime() ? "Day" : "Night"); return processEvent(); } @Override public Void visit(GameEventSprocketUpdate event) { - updateZone(event.contraption.getZone()); + updateZone(event.contraption().getZone()); return processEvent(); } @Override public Void visit(final GameEventManaPool event) { - return processPlayer(event.player, manaPoolUpdate); + return processPlayer(event.player(), manaPoolUpdate); } @Override public Void visit(final GameEventPlayerLivesChanged event) { - return processPlayer(event.player, livesUpdate); + return processPlayer(event.player(), livesUpdate); } @Override public Void visit(final GameEventPlayerShardsChanged event) { - return processPlayer(event.player, shardsUpdate); + return processPlayer(event.player(), shardsUpdate); } @Override public Void visit(GameEventManaBurn event) { - return processPlayer(event.player, livesUpdate); + return processPlayer(event.player(), livesUpdate); } @Override public Void visit(final GameEventPlayerPoisoned event) { - return processPlayer(event.receiver, livesUpdate); + return processPlayer(event.receiver(), livesUpdate); } @Override public Void visit(final GameEventPlayerRadiation event) { - return processPlayer(event.receiver, livesUpdate); + return processPlayer(event.receiver(), livesUpdate); } @Override @@ -523,6 +523,6 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base { @Override public Void visit(final GameEventPlayerCounters event) { - return processPlayer(event.receiver, livesUpdate); + return processPlayer(event.receiver(), livesUpdate); } } diff --git a/forge-gui/src/main/java/forge/gui/control/FControlGamePlayback.java b/forge-gui/src/main/java/forge/gui/control/FControlGamePlayback.java index 0430f64fef1..a9f720f2684 100644 --- a/forge-gui/src/main/java/forge/gui/control/FControlGamePlayback.java +++ b/forge-gui/src/main/java/forge/gui/control/FControlGamePlayback.java @@ -75,9 +75,9 @@ public class FControlGamePlayback extends IGameEventVisitor.Base { @Override public Void visit(final GameEventTurnPhase ev) { try { - final boolean isUiToStop = !humanController.getGui().isUiSetToSkipPhase(ev.playerTurn.getView(), ev.phase); + final boolean isUiToStop = !humanController.getGui().isUiSetToSkipPhase(ev.playerTurn().getView(), ev.phase()); - switch (ev.phase) { + switch (ev.phase()) { case COMBAT_END: case COMBAT_DECLARE_ATTACKERS: case COMBAT_DECLARE_BLOCKERS: @@ -121,7 +121,7 @@ public class FControlGamePlayback extends IGameEventVisitor.Base { @Override public Void visit(final GameEventSpellResolved event) { - FThreads.invokeInEdtNowOrLater(() -> humanController.getGui().setCard(CardView.get(event.spell.getHostCard()))); + FThreads.invokeInEdtNowOrLater(() -> humanController.getGui().setCard(CardView.get(event.spell().getHostCard()))); pauseForEvent(resolveDelay); return null; } @@ -131,7 +131,7 @@ public class FControlGamePlayback extends IGameEventVisitor.Base { */ @Override public Void visit(final GameEventSpellAbilityCast event) { - FThreads.invokeInEdtNowOrLater(() -> humanController.getGui().setCard(CardView.get(event.sa.getHostCard()))); + FThreads.invokeInEdtNowOrLater(() -> humanController.getGui().setCard(CardView.get(event.sa().getHostCard()))); pauseForEvent(castDelay); return null; } diff --git a/forge-gui/src/main/java/forge/gui/events/UiEvent.java b/forge-gui/src/main/java/forge/gui/events/UiEvent.java index 5d809973830..b3ece37a1be 100644 --- a/forge-gui/src/main/java/forge/gui/events/UiEvent.java +++ b/forge-gui/src/main/java/forge/gui/events/UiEvent.java @@ -2,7 +2,7 @@ package forge.gui.events; import forge.game.event.Event; -public abstract class UiEvent extends Event { +public interface UiEvent extends Event { public abstract T visit(IUiEventVisitor visitor); } \ No newline at end of file diff --git a/forge-gui/src/main/java/forge/gui/events/UiEventAttackerDeclared.java b/forge-gui/src/main/java/forge/gui/events/UiEventAttackerDeclared.java index a90cc213417..cba1099721f 100644 --- a/forge-gui/src/main/java/forge/gui/events/UiEventAttackerDeclared.java +++ b/forge-gui/src/main/java/forge/gui/events/UiEventAttackerDeclared.java @@ -3,14 +3,7 @@ package forge.gui.events; import forge.game.GameEntityView; import forge.game.card.CardView; -public class UiEventAttackerDeclared extends UiEvent { - public final CardView attacker; - public final GameEntityView defender; - - public UiEventAttackerDeclared(final CardView card, final GameEntityView currentDefender) { - attacker = card; - defender = currentDefender; - } +public record UiEventAttackerDeclared(CardView attacker, GameEntityView defender) implements UiEvent { @Override public T visit(final IUiEventVisitor visitor) { diff --git a/forge-gui/src/main/java/forge/gui/events/UiEventBlockerAssigned.java b/forge-gui/src/main/java/forge/gui/events/UiEventBlockerAssigned.java index c169140285c..8858a126ad3 100644 --- a/forge-gui/src/main/java/forge/gui/events/UiEventBlockerAssigned.java +++ b/forge-gui/src/main/java/forge/gui/events/UiEventBlockerAssigned.java @@ -2,14 +2,7 @@ package forge.gui.events; import forge.game.card.CardView; -public class UiEventBlockerAssigned extends UiEvent { - public final CardView blocker; - public final CardView attackerBeingBlocked; - - public UiEventBlockerAssigned(final CardView card, final CardView currentAttacker) { - blocker = card; - attackerBeingBlocked = currentAttacker; - } +public record UiEventBlockerAssigned(CardView blocker, CardView attackerBeingBlocked) implements UiEvent { @Override public T visit(final IUiEventVisitor visitor) { diff --git a/forge-gui/src/main/java/forge/gui/events/UiEventNextGameDecision.java b/forge-gui/src/main/java/forge/gui/events/UiEventNextGameDecision.java index e4d6ed80044..bdc73e860c9 100644 --- a/forge-gui/src/main/java/forge/gui/events/UiEventNextGameDecision.java +++ b/forge-gui/src/main/java/forge/gui/events/UiEventNextGameDecision.java @@ -3,22 +3,7 @@ package forge.gui.events; import forge.gamemodes.match.NextGameDecision; import forge.player.PlayerControllerHuman; -public final class UiEventNextGameDecision extends UiEvent { - - private final PlayerControllerHuman controller; - private final NextGameDecision decision; - - public UiEventNextGameDecision(final PlayerControllerHuman controller, final NextGameDecision decision) { - this.controller = controller; - this.decision = decision; - } - - public PlayerControllerHuman getController() { - return controller; - } - public NextGameDecision getDecision() { - return decision; - } +public record UiEventNextGameDecision(PlayerControllerHuman controller, NextGameDecision decision) implements UiEvent { @Override public T visit(IUiEventVisitor visitor) { diff --git a/forge-gui/src/main/java/forge/sound/EventVisualizer.java b/forge-gui/src/main/java/forge/sound/EventVisualizer.java index 3cc118fcce4..14dc4a1582d 100644 --- a/forge-gui/src/main/java/forge/sound/EventVisualizer.java +++ b/forge-gui/src/main/java/forge/sound/EventVisualizer.java @@ -40,8 +40,8 @@ public class EventVisualizer extends IGameEventVisitor.Base imp public SoundEffectType visit(final GameEventCardAttachment event) { return SoundEffectType.Equip; } @Override public SoundEffectType visit(final GameEventCardChangeZone event) { - final ZoneType from = event.from == null ? null : event.from.getZoneType(); - final ZoneType to = event.to.getZoneType(); + final ZoneType from = event.from() == null ? null : event.from().getZoneType(); + final ZoneType to = event.to().getZoneType(); if( from == ZoneType.Library && to == ZoneType.Hand) { return SoundEffectType.Draw; } @@ -54,7 +54,7 @@ public class EventVisualizer extends IGameEventVisitor.Base imp @Override public SoundEffectType visit(GameEventCardStatsChanged event) { - return event.transform ? SoundEffectType.FlipCard : null ; + return event.transform() ? SoundEffectType.FlipCard : null ; } @Override @@ -62,7 +62,7 @@ public class EventVisualizer extends IGameEventVisitor.Base imp @Override public SoundEffectType visit(final GameEventCardSacrificed event) { return SoundEffectType.Sacrifice; } @Override - public SoundEffectType visit(final GameEventCardCounters event) { return event.newValue > event.oldValue ? SoundEffectType.AddCounter : event.newValue < event.oldValue ? SoundEffectType.RemoveCounter : null; } + public SoundEffectType visit(final GameEventCardCounters event) { return event.newValue() > event.oldValue() ? SoundEffectType.AddCounter : event.newValue() < event.oldValue() ? SoundEffectType.RemoveCounter : null; } @Override public SoundEffectType visit(final GameEventTurnEnded event) { return SoundEffectType.EndOfTurn; } @Override @@ -70,7 +70,7 @@ public class EventVisualizer extends IGameEventVisitor.Base imp @Override public SoundEffectType visit(final GameEventRollDie event) { return SoundEffectType.RollDie; } @Override - public SoundEffectType visit(final GameEventPlayerLivesChanged event) { return event.newLives < event.oldLives ? SoundEffectType.LifeLoss : SoundEffectType.LifeGain; } + public SoundEffectType visit(final GameEventPlayerLivesChanged event) { return event.newLives() < event.oldLives() ? SoundEffectType.LifeLoss : SoundEffectType.LifeGain; } @Override public SoundEffectType visit(final GameEventPlayerShardsChanged event) { return SoundEffectType.TakeShard; } @Override @@ -80,27 +80,27 @@ public class EventVisualizer extends IGameEventVisitor.Base imp @Override public SoundEffectType visit(final GameEventShuffle event) { return SoundEffectType.Shuffle; } @Override - public SoundEffectType visit(final GameEventSpeedChanged event) { return event.newValue > event.oldValue ? SoundEffectType.SpeedUp : null; } + public SoundEffectType visit(final GameEventSpeedChanged event) { return event.newValue() > event.oldValue() ? SoundEffectType.SpeedUp : null; } @Override public SoundEffectType visit(final GameEventTokenCreated event) { return SoundEffectType.Token; } @Override public SoundEffectType visit(final GameEventSprocketUpdate event) { - if(event.oldSprocket == event.sprocket || event.sprocket <= 0) + if(event.oldSprocket() == event.sprocket() || event.sprocket() <= 0) return null; return SoundEffectType.Sprocket; } @Override public SoundEffectType visit(final GameEventDayTimeChanged event) { - return event.daytime ? SoundEffectType.Daytime : SoundEffectType.Nighttime; + return event.daytime() ? SoundEffectType.Daytime : SoundEffectType.Nighttime; } @Override public SoundEffectType visit(final GameEventBlockersDeclared event) { - final boolean isLocalHuman = event.defendingPlayer.getLobbyPlayer() == player; + final boolean isLocalHuman = event.defendingPlayer().getLobbyPlayer().equals(player); if (isLocalHuman) { return null; // already played sounds in interactive mode } - for (final MapOfLists ab : event.blockers.values()) { + for (final MapOfLists ab : event.blockers().values()) { for(final Collection bb : ab.values()) { if ( !bb.isEmpty() ) { // hasAnyBlocker = true; @@ -116,7 +116,7 @@ public class EventVisualizer extends IGameEventVisitor.Base imp */ @Override public SoundEffectType visit(final GameEventGameOutcome event) { - final boolean humanWonTheDuel = event.result.getWinningLobbyPlayer() == player; + final boolean humanWonTheDuel = event.result().getWinningLobbyPlayer().equals(player); return humanWonTheDuel ? SoundEffectType.WinDuel : SoundEffectType.LoseDuel; } @@ -126,12 +126,12 @@ public class EventVisualizer extends IGameEventVisitor.Base imp */ @Override public SoundEffectType visit(final GameEventSpellResolved evt) { - if (evt.spell == null ) { + if (evt.spell() == null ) { return null; } - final Card source = evt.spell.getHostCard(); - if (evt.spell.isSpell()) { + final Card source = evt.spell().getHostCard(); + if (evt.spell().isSpell()) { // if there's a specific effect for this particular card, play it and // we're done. if (hasSpecificCardEffect(source)) { @@ -167,7 +167,7 @@ public class EventVisualizer extends IGameEventVisitor.Base imp */ @Override public SoundEffectType visit(final GameEventCardTapped event) { - return event.tapped ? SoundEffectType.Tap : SoundEffectType.Untap; + return event.tapped() ? SoundEffectType.Tap : SoundEffectType.Untap; } /** @@ -185,9 +185,9 @@ public class EventVisualizer extends IGameEventVisitor.Base imp @Override public SoundEffectType visit(GameEventZone event) { - Card card = event.card; - ZoneType zoneTo = event.zoneType; - EventValueChangeType zoneEventMode = event.mode; + Card card = event.card(); + ZoneType zoneTo = event.zoneType(); + EventValueChangeType zoneEventMode = event.mode(); SoundEffectType resultSound = null; if(zoneEventMode == EventValueChangeType.Added && zoneTo == ZoneType.Battlefield) { if(card.isLand()) { @@ -335,12 +335,11 @@ public class EventVisualizer extends IGameEventVisitor.Base imp public String getScriptedSoundEffectName(final GameEvent evt) { Card c = null; - if (evt instanceof GameEventSpellResolved) { - c = ((GameEventSpellResolved) evt).spell.getHostCard(); - } else if (evt instanceof GameEventZone) { - GameEventZone evZone = (GameEventZone)evt; - if (evZone.zoneType == ZoneType.Battlefield && evZone.mode == EventValueChangeType.Added && evZone.card.isLand()) { - c = evZone.card; // assuming a land is played or otherwise put on the battlefield + if (evt instanceof GameEventSpellResolved evSpell) { + c = evSpell.spell().getHostCard(); + } else if (evt instanceof GameEventZone evZone) { + if (evZone.zoneType() == ZoneType.Battlefield && evZone.mode() == EventValueChangeType.Added && evZone.card().isLand()) { + c = evZone.card(); // assuming a land is played or otherwise put on the battlefield } } @@ -360,7 +359,7 @@ public class EventVisualizer extends IGameEventVisitor.Base imp @Override public SoundEffectType visit(final UiEventBlockerAssigned event) { - return event.attackerBeingBlocked == null ? null : SoundEffectType.Block; + return event.attackerBeingBlocked() == null ? null : SoundEffectType.Block; } @Override public SoundEffectType visit(final UiEventAttackerDeclared event) {