mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 10:48:00 +00:00
Event: use Record
This commit is contained in:
@@ -29,25 +29,25 @@ public class GameLogFormatter extends IGameEventVisitor.Base<GameLogEntry> {
|
||||
@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<GameLogEntry> {
|
||||
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<GameLogEntry> {
|
||||
|
||||
@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<GameLogEntry> {
|
||||
|
||||
@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<GameLogEntry> {
|
||||
|
||||
@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<GameOutcome> gamesPlayed) {
|
||||
@@ -152,8 +152,8 @@ public class GameLogFormatter extends IGameEventVisitor.Base<GameLogEntry> {
|
||||
|
||||
@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<GameLogEntry> {
|
||||
|
||||
@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<GameLogEntry> {
|
||||
*/
|
||||
@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<GameLogEntry> {
|
||||
// Append Defending Player/Planeswalker
|
||||
|
||||
// Not a big fan of the triple nested loop here
|
||||
for (GameEntity k : ev.attackersMap.keySet()) {
|
||||
Collection<Card> attackers = ev.attackersMap.get(k);
|
||||
for (GameEntity k : ev.attackersMap().keySet()) {
|
||||
Collection<Card> 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<GameLogEntry> {
|
||||
|
||||
Collection<Card> blockers = null;
|
||||
|
||||
for (Entry<GameEntity, MapOfLists<Card, Card>> kv : ev.blockers.entrySet()) {
|
||||
for (Entry<GameEntity, MapOfLists<Card, Card>> kv : ev.blockers().entrySet()) {
|
||||
GameEntity defender = kv.getKey();
|
||||
MapOfLists<Card, Card> attackers = kv.getValue();
|
||||
if (attackers == null || attackers.isEmpty()) {
|
||||
@@ -298,7 +298,7 @@ public class GameLogFormatter extends IGameEventVisitor.Base<GameLogEntry> {
|
||||
|
||||
@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);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
package forge.game.event;
|
||||
|
||||
public abstract class Event {
|
||||
public interface Event {
|
||||
|
||||
}
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
package forge.game.event;
|
||||
|
||||
/**
|
||||
* TODO: Write javadoc for this type.
|
||||
*
|
||||
*/
|
||||
public enum EventValueChangeType {
|
||||
Added,
|
||||
Removed,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package forge.game.event;
|
||||
|
||||
public abstract class GameEvent extends Event {
|
||||
public interface GameEvent extends Event {
|
||||
|
||||
public abstract <T> T visit(IGameEventVisitor<T> visitor);
|
||||
}
|
||||
|
||||
@@ -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<Player, Card> cards;
|
||||
public GameEventAnteCardsSelected(Multimap<Player, Card> list) {
|
||||
cards = list;
|
||||
}
|
||||
public record GameEventAnteCardsSelected(Multimap<Player, Card> cards) implements GameEvent {
|
||||
|
||||
@Override
|
||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||
|
||||
@@ -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<GameEntity, Card> attackersMap;
|
||||
|
||||
public GameEventAttackersDeclared(Player playerTurn, Multimap<GameEntity, Card> attackersMap) {
|
||||
this.player = playerTurn;
|
||||
this.attackersMap = attackersMap;
|
||||
}
|
||||
public record GameEventAttackersDeclared(Player player, Multimap<GameEntity, Card> attackersMap) implements GameEvent {
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see forge.game.event.GameEvent#visit(forge.game.event.IGameEventVisitor)
|
||||
*/
|
||||
@Override
|
||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||
// TODO Auto-generated method stub
|
||||
return visitor.visit(this);
|
||||
}
|
||||
|
||||
|
||||
@@ -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<GameEntity, MapOfLists<Card, Card>> blockers;
|
||||
public final Player defendingPlayer;
|
||||
|
||||
public GameEventBlockersDeclared(Player who, Map<GameEntity, MapOfLists<Card, Card>> blockers) {
|
||||
this.blockers = blockers;
|
||||
defendingPlayer = who;
|
||||
}
|
||||
public record GameEventBlockersDeclared(Player defendingPlayer, Map<GameEntity, MapOfLists<Card, Card>> blockers) implements GameEvent {
|
||||
|
||||
@Override
|
||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||
// TODO Auto-generated method stub
|
||||
return visitor.visit(this);
|
||||
}
|
||||
|
||||
|
||||
@@ -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> T visit(IGameEventVisitor<T> visitor) {
|
||||
|
||||
@@ -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> T visit(IGameEventVisitor<T> visitor) {
|
||||
|
||||
@@ -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> T visit(IGameEventVisitor<T> visitor) {
|
||||
return visitor.visit(this);
|
||||
|
||||
@@ -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> T visit(IGameEventVisitor<T> visitor) {
|
||||
return visitor.visit(this);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package forge.game.event;
|
||||
|
||||
public class GameEventCardDestroyed extends GameEvent {
|
||||
public record GameEventCardDestroyed() implements GameEvent {
|
||||
|
||||
@Override
|
||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||
|
||||
@@ -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> T visit(IGameEventVisitor<T> visitor) {
|
||||
|
||||
@@ -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> T visit(IGameEventVisitor<T> visitor) {
|
||||
|
||||
@@ -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> T visit(IGameEventVisitor<T> visitor) {
|
||||
|
||||
@@ -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> T visit(IGameEventVisitor<T> visitor) {
|
||||
|
||||
@@ -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<Card> cards;
|
||||
public record GameEventCardRegenerated(Collection<Card> cards) implements GameEvent {
|
||||
public GameEventCardRegenerated(Card affected) {
|
||||
cards = Arrays.asList(affected);
|
||||
this(Arrays.asList(affected));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -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> T visit(IGameEventVisitor<T> visitor) {
|
||||
|
||||
@@ -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<Card> cards, boolean transform) implements GameEvent {
|
||||
|
||||
public final Collection<Card> 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<Card> affected) {
|
||||
cards = affected;
|
||||
this(affected, false);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
@@ -35,7 +32,6 @@ public class GameEventCardStatsChanged extends GameEvent {
|
||||
*/
|
||||
@Override
|
||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||
// TODO Auto-generated method stub
|
||||
return visitor.visit(this);
|
||||
}
|
||||
|
||||
|
||||
@@ -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> T visit(IGameEventVisitor<T> visitor) {
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
package forge.game.event;
|
||||
|
||||
public class GameEventCombatChanged extends GameEvent {
|
||||
|
||||
public GameEventCombatChanged() {
|
||||
}
|
||||
public record GameEventCombatChanged() implements GameEvent {
|
||||
|
||||
@Override
|
||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||
|
||||
@@ -4,15 +4,7 @@ import java.util.List;
|
||||
|
||||
import forge.game.card.Card;
|
||||
|
||||
public class GameEventCombatEnded extends GameEvent {
|
||||
|
||||
public final List<Card> attackers;
|
||||
public final List<Card> blockers;
|
||||
|
||||
public GameEventCombatEnded(List<Card> attackers, List<Card> blockers) {
|
||||
this.attackers = attackers;
|
||||
this.blockers = blockers;
|
||||
}
|
||||
public record GameEventCombatEnded(List<Card> attackers, List<Card> blockers) implements GameEvent {
|
||||
|
||||
@Override
|
||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||
|
||||
@@ -4,15 +4,7 @@ import java.util.List;
|
||||
|
||||
import forge.game.card.Card;
|
||||
|
||||
public class GameEventCombatUpdate extends GameEvent {
|
||||
|
||||
public final List<Card> attackers;
|
||||
public final List<Card> blockers;
|
||||
|
||||
public GameEventCombatUpdate(List<Card> attackers, List<Card> blockers) {
|
||||
this.attackers = attackers;
|
||||
this.blockers = blockers;
|
||||
}
|
||||
public record GameEventCombatUpdate(List<Card> attackers, List<Card> blockers) implements GameEvent {
|
||||
|
||||
@Override
|
||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||
|
||||
@@ -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> T visit(IGameEventVisitor<T> visitor) {
|
||||
|
||||
@@ -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> T visit(IGameEventVisitor<T> visitor) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package forge.game.event;
|
||||
|
||||
public class GameEventFlipCoin extends GameEvent {
|
||||
public record GameEventFlipCoin() implements GameEvent {
|
||||
|
||||
@Override
|
||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package forge.game.event;
|
||||
|
||||
public class GameEventGameFinished extends GameEvent {
|
||||
public record GameEventGameFinished() implements GameEvent {
|
||||
|
||||
@Override
|
||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||
return visitor.visit(this);
|
||||
|
||||
@@ -4,14 +4,7 @@ import java.util.Collection;
|
||||
|
||||
import forge.game.GameOutcome;
|
||||
|
||||
public class GameEventGameOutcome extends GameEvent {
|
||||
public final GameOutcome result;
|
||||
public final Collection<GameOutcome> history;
|
||||
|
||||
public GameEventGameOutcome(GameOutcome lastOne, Collection<GameOutcome> history) {
|
||||
this.result = lastOne;
|
||||
this.history = history;
|
||||
}
|
||||
public record GameEventGameOutcome(GameOutcome result, Collection<GameOutcome> history) implements GameEvent {
|
||||
|
||||
@Override
|
||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||
|
||||
@@ -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> T visit(IGameEventVisitor<T> visitor) {
|
||||
|
||||
@@ -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<Player> players;
|
||||
public final GameType gameType;
|
||||
|
||||
public GameEventGameStarted(GameType type, Player firstTurn, Iterable<Player> players) {
|
||||
super();
|
||||
this.gameType = type;
|
||||
this.firstTurn = firstTurn;
|
||||
this.players = players;
|
||||
}
|
||||
public record GameEventGameStarted(GameType gameType, Player firstTurn, Iterable<Player> players) implements GameEvent {
|
||||
|
||||
@Override
|
||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||
|
||||
@@ -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> T visit(IGameEventVisitor<T> visitor) {
|
||||
return visitor.visit(this);
|
||||
|
||||
@@ -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> T visit(IGameEventVisitor<T> visitor) {
|
||||
|
||||
@@ -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> T visit(IGameEventVisitor<T> visitor) {
|
||||
|
||||
@@ -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> T visit(IGameEventVisitor<T> visitor) {
|
||||
|
||||
@@ -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> T visit(final IGameEventVisitor<T> visitor) {
|
||||
|
||||
@@ -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> T visit(IGameEventVisitor<T> visitor) {
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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> T visit(IGameEventVisitor<T> visitor) {
|
||||
|
||||
@@ -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> T visit(IGameEventVisitor<T> visitor) {
|
||||
|
||||
@@ -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> T visit(IGameEventVisitor<T> visitor) {
|
||||
|
||||
@@ -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> T visit(IGameEventVisitor<T> visitor) {
|
||||
|
||||
@@ -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> T visit(IGameEventVisitor<T> visitor) {
|
||||
|
||||
@@ -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<Player> players, boolean updateCards) implements GameEvent {
|
||||
|
||||
public final Collection<Player> players;
|
||||
public final boolean updateCards;
|
||||
public GameEventPlayerStatsChanged(Player affected, boolean updateCards) {
|
||||
players = Arrays.asList(affected);
|
||||
this.updateCards = updateCards;
|
||||
}
|
||||
|
||||
public GameEventPlayerStatsChanged(Collection<Player> 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> T visit(IGameEventVisitor<T> visitor) {
|
||||
// TODO Auto-generated method stub
|
||||
return visitor.visit(this);
|
||||
}
|
||||
|
||||
|
||||
@@ -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> T visit(IGameEventVisitor<T> visitor) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package forge.game.event;
|
||||
|
||||
public class GameEventRollDie extends GameEvent {
|
||||
public record GameEventRollDie() implements GameEvent {
|
||||
|
||||
@Override
|
||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||
|
||||
@@ -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> T visit(IGameEventVisitor<T> visitor) {
|
||||
|
||||
@@ -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> T visit(IGameEventVisitor<T> visitor) {
|
||||
|
||||
@@ -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> T visit(IGameEventVisitor<T> visitor) {
|
||||
return visitor.visit(this);
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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> T visit(IGameEventVisitor<T> visitor) {
|
||||
// TODO Auto-generated method stub
|
||||
return visitor.visit(this);
|
||||
}
|
||||
|
||||
|
||||
@@ -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> T visit(IGameEventVisitor<T> visitor) {
|
||||
|
||||
@@ -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> T visit(IGameEventVisitor<T> visitor) {
|
||||
|
||||
@@ -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> T visit(IGameEventVisitor<T> visitor) {
|
||||
return visitor.visit(this);
|
||||
|
||||
@@ -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> T visit(IGameEventVisitor<T> visitor) {
|
||||
|
||||
@@ -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> T visit(IGameEventVisitor<T> visitor) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package forge.game.event;
|
||||
|
||||
public class GameEventTokenCreated extends GameEvent {
|
||||
public record GameEventTokenCreated() implements GameEvent {
|
||||
|
||||
@Override
|
||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||
|
||||
@@ -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> T visit(IGameEventVisitor<T> visitor) {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package forge.game.event;
|
||||
|
||||
public class GameEventTurnEnded extends GameEvent {
|
||||
public record GameEventTurnEnded() implements GameEvent {
|
||||
|
||||
@Override
|
||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||
|
||||
@@ -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> T visit(IGameEventVisitor<T> visitor) {
|
||||
|
||||
@@ -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> T visit(IGameEventVisitor<T> visitor) {
|
||||
// TODO Auto-generated method stub
|
||||
return visitor.visit(this);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
package forge.game.event;
|
||||
|
||||
/**
|
||||
* TODO: Write javadoc for this type.
|
||||
*
|
||||
*/
|
||||
public interface IGameEventVisitor<T> {
|
||||
T visit(GameEventAnteCardsSelected event);
|
||||
T visit(GameEventAttackersDeclared event);
|
||||
|
||||
@@ -547,7 +547,7 @@ public class Player extends GameEntity implements Comparable<Player> {
|
||||
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));
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -190,9 +190,9 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base<Void> {
|
||||
@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<Void> {
|
||||
|
||||
@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<CardView> options = Lists.newArrayList();
|
||||
for (final Entry<Player, Card> kv : ev.cards.entries()) {
|
||||
for (final Entry<Player, Card> 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<Void> {
|
||||
|
||||
@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<Void> {
|
||||
|
||||
@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<Void> {
|
||||
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<Void> {
|
||||
|
||||
@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<Void> {
|
||||
|
||||
@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<Void> {
|
||||
@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<Card> cards = new HashSet<>();
|
||||
for (final MapOfLists<Card, Card> kv : event.blockers.values()) {
|
||||
for (final MapOfLists<Card, Card> kv : event.blockers().values()) {
|
||||
for (final Collection<Card> blockers : kv.values()) {
|
||||
cards.addAll(blockers);
|
||||
}
|
||||
@@ -373,7 +373,7 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base<Void> {
|
||||
|
||||
@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<Void> {
|
||||
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<Void> {
|
||||
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<Void> {
|
||||
@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<Void> {
|
||||
@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<Void> {
|
||||
@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<Void> {
|
||||
@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<Void> {
|
||||
}
|
||||
|
||||
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<Void> {
|
||||
|
||||
@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<Void> {
|
||||
|
||||
@Override
|
||||
public Void visit(final GameEventPlayerCounters event) {
|
||||
return processPlayer(event.receiver, livesUpdate);
|
||||
return processPlayer(event.receiver(), livesUpdate);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -75,9 +75,9 @@ public class FControlGamePlayback extends IGameEventVisitor.Base<Void> {
|
||||
@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<Void> {
|
||||
|
||||
@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<Void> {
|
||||
*/
|
||||
@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;
|
||||
}
|
||||
|
||||
@@ -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> T visit(IUiEventVisitor<T> visitor);
|
||||
}
|
||||
@@ -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> T visit(final IUiEventVisitor<T> visitor) {
|
||||
|
||||
@@ -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> T visit(final IUiEventVisitor<T> visitor) {
|
||||
|
||||
@@ -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> T visit(IUiEventVisitor<T> visitor) {
|
||||
|
||||
@@ -40,8 +40,8 @@ public class EventVisualizer extends IGameEventVisitor.Base<SoundEffectType> 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<SoundEffectType> 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<SoundEffectType> 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<SoundEffectType> 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<SoundEffectType> 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<Card, Card> ab : event.blockers.values()) {
|
||||
for (final MapOfLists<Card, Card> ab : event.blockers().values()) {
|
||||
for(final Collection<Card> bb : ab.values()) {
|
||||
if ( !bb.isEmpty() ) {
|
||||
// hasAnyBlocker = true;
|
||||
@@ -116,7 +116,7 @@ public class EventVisualizer extends IGameEventVisitor.Base<SoundEffectType> 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<SoundEffectType> 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<SoundEffectType> 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<SoundEffectType> 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<SoundEffectType> 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<SoundEffectType> 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) {
|
||||
|
||||
Reference in New Issue
Block a user