mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 19:28:01 +00:00
Event: use Record
This commit is contained in:
@@ -29,25 +29,25 @@ public class GameLogFormatter extends IGameEventVisitor.Base<GameLogEntry> {
|
|||||||
@Override
|
@Override
|
||||||
public GameLogEntry visit(GameEventGameOutcome ev) {
|
public GameLogEntry visit(GameEventGameOutcome ev) {
|
||||||
// Turn number counted from the starting player
|
// 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);
|
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);
|
log.add(GameLogEntryType.GAME_OUTCOME, outcome);
|
||||||
}
|
}
|
||||||
return generateSummary(ev.history);
|
return generateSummary(ev.history());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public GameLogEntry visit(GameEventScry ev) {
|
public GameLogEntry visit(GameEventScry ev) {
|
||||||
String scryOutcome = "";
|
String scryOutcome = "";
|
||||||
|
|
||||||
if (ev.toTop > 0 && ev.toBottom > 0) {
|
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));
|
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) {
|
} else if (ev.toBottom() == 0) {
|
||||||
scryOutcome = localizer.getMessage("lblLogScryTopLibrary").replace("%s", ev.player.toString()).replace("%top", String.valueOf(ev.toTop));
|
scryOutcome = localizer.getMessage("lblLogScryTopLibrary").replace("%s", ev.player().toString()).replace("%top", String.valueOf(ev.toTop()));
|
||||||
} else {
|
} 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);
|
return new GameLogEntry(GameLogEntryType.STACK_RESOLVE, scryOutcome);
|
||||||
@@ -57,12 +57,12 @@ public class GameLogFormatter extends IGameEventVisitor.Base<GameLogEntry> {
|
|||||||
public GameLogEntry visit(GameEventSurveil ev) {
|
public GameLogEntry visit(GameEventSurveil ev) {
|
||||||
String surveilOutcome = "";
|
String surveilOutcome = "";
|
||||||
|
|
||||||
if (ev.toLibrary > 0 && ev.toGraveyard > 0) {
|
if (ev.toLibrary() > 0 && ev.toGraveyard() > 0) {
|
||||||
surveilOutcome = localizer.getMessage("lblLogSurveiledToLibraryGraveyard", ev.player.toString(), String.valueOf(ev.toLibrary), String.valueOf(ev.toGraveyard));
|
surveilOutcome = localizer.getMessage("lblLogSurveiledToLibraryGraveyard", ev.player().toString(), String.valueOf(ev.toLibrary()), String.valueOf(ev.toGraveyard()));
|
||||||
} else if (ev.toGraveyard == 0) {
|
} else if (ev.toGraveyard() == 0) {
|
||||||
surveilOutcome = localizer.getMessage("lblLogSurveiledToLibrary", ev.player.toString(), String.valueOf(ev.toLibrary));
|
surveilOutcome = localizer.getMessage("lblLogSurveiledToLibrary", ev.player().toString(), String.valueOf(ev.toLibrary()));
|
||||||
} else {
|
} 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);
|
return new GameLogEntry(GameLogEntryType.STACK_RESOLVE, surveilOutcome);
|
||||||
@@ -70,26 +70,26 @@ public class GameLogFormatter extends IGameEventVisitor.Base<GameLogEntry> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public GameLogEntry visit(GameEventSpellResolved ev) {
|
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);
|
return new GameLogEntry(GameLogEntryType.STACK_RESOLVE, messageForLog);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public GameLogEntry visit(GameEventSpellAbilityCast event) {
|
public GameLogEntry visit(GameEventSpellAbilityCast event) {
|
||||||
String player = event.sa.getActivatingPlayer().getName();
|
String player = event.sa().getActivatingPlayer().getName();
|
||||||
String action = event.sa.isSpell() ? localizer.getMessage("lblCast")
|
String action = event.sa().isSpell() ? localizer.getMessage("lblCast")
|
||||||
: event.sa.isTrigger() ? localizer.getMessage("lblTriggered")
|
: event.sa().isTrigger() ? localizer.getMessage("lblTriggered")
|
||||||
: localizer.getMessage("lblActivated");
|
: localizer.getMessage("lblActivated");
|
||||||
String object = event.si.getStackDescription().startsWith("Morph ")
|
String object = event.si().getStackDescription().startsWith("Morph ")
|
||||||
? localizer.getMessage("lblMorph")
|
? localizer.getMessage("lblMorph")
|
||||||
: event.sa.getHostCard().toString();
|
: event.sa().getHostCard().toString();
|
||||||
|
|
||||||
String messageForLog = "";
|
String messageForLog = "";
|
||||||
|
|
||||||
if (event.sa.getTargetRestrictions() != null) {
|
if (event.sa().getTargetRestrictions() != null) {
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
|
|
||||||
for (TargetChoices ch : event.sa.getAllTargetChoices()) {
|
for (TargetChoices ch : event.sa().getAllTargetChoices()) {
|
||||||
if (null != ch) {
|
if (null != ch) {
|
||||||
sb.append(ch);
|
sb.append(ch);
|
||||||
}
|
}
|
||||||
@@ -104,18 +104,18 @@ public class GameLogFormatter extends IGameEventVisitor.Base<GameLogEntry> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public GameLogEntry visit(GameEventCardModeChosen ev) {
|
public GameLogEntry visit(GameEventCardModeChosen ev) {
|
||||||
if (!ev.log) {
|
if (!ev.log()) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
String modeChoiceOutcome;
|
String modeChoiceOutcome;
|
||||||
if (ev.random) {
|
if (ev.random()) {
|
||||||
modeChoiceOutcome = localizer.getMessage("lblLogRandomMode", ev.cardName, ev.mode);
|
modeChoiceOutcome = localizer.getMessage("lblLogRandomMode", ev.cardName(), ev.mode());
|
||||||
} else {
|
} else {
|
||||||
modeChoiceOutcome = localizer.getMessage("lblLogPlayerChosenModeForCard",
|
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, "CARDNAME", name);
|
||||||
modeChoiceOutcome = TextUtil.fastReplace(modeChoiceOutcome, "NICKNAME",
|
modeChoiceOutcome = TextUtil.fastReplace(modeChoiceOutcome, "NICKNAME",
|
||||||
Lang.getInstance().getNickName(name));
|
Lang.getInstance().getNickName(name));
|
||||||
@@ -124,7 +124,7 @@ public class GameLogFormatter extends IGameEventVisitor.Base<GameLogEntry> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public GameLogEntry visit(GameEventRandomLog ev) {
|
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) {
|
private static GameLogEntry generateSummary(final Collection<GameOutcome> gamesPlayed) {
|
||||||
@@ -152,8 +152,8 @@ public class GameLogFormatter extends IGameEventVisitor.Base<GameLogEntry> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public GameLogEntry visit(final GameEventPlayerControl event) {
|
public GameLogEntry visit(final GameEventPlayerControl event) {
|
||||||
final LobbyPlayer newLobbyPlayer = event.newLobbyPlayer;
|
final LobbyPlayer newLobbyPlayer = event.newLobbyPlayer();
|
||||||
final Player p = event.player;
|
final Player p = event.player();
|
||||||
|
|
||||||
final String message;
|
final String message;
|
||||||
if (newLobbyPlayer == null) {
|
if (newLobbyPlayer == null) {
|
||||||
@@ -166,23 +166,23 @@ public class GameLogFormatter extends IGameEventVisitor.Base<GameLogEntry> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public GameLogEntry visit(GameEventTurnPhase ev) {
|
public GameLogEntry visit(GameEventTurnPhase ev) {
|
||||||
Player p = ev.playerTurn;
|
Player p = ev.playerTurn();
|
||||||
return new GameLogEntry(GameLogEntryType.PHASE, ev.phaseDesc + Lang.getInstance().getPossessedObject(p.getName(), ev.phase.nameForUi));
|
return new GameLogEntry(GameLogEntryType.PHASE, ev.phaseDesc() + Lang.getInstance().getPossessedObject(p.getName(), ev.phase().nameForUi));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public GameLogEntry visit(GameEventCardDamaged event) {
|
public GameLogEntry visit(GameEventCardDamaged event) {
|
||||||
String additionalLog = "";
|
String additionalLog = "";
|
||||||
if (event.type == DamageType.Deathtouch) {
|
if (event.type() == DamageType.Deathtouch) {
|
||||||
additionalLog = localizer.getMessage("lblDeathtouch");
|
additionalLog = localizer.getMessage("lblDeathtouch");
|
||||||
}
|
}
|
||||||
if (event.type == DamageType.M1M1Counters) {
|
if (event.type() == DamageType.M1M1Counters) {
|
||||||
additionalLog = localizer.getMessage("lblAsM1M1Counters");
|
additionalLog = localizer.getMessage("lblAsM1M1Counters");
|
||||||
}
|
}
|
||||||
if (event.type == DamageType.LoyaltyLoss) {
|
if (event.type() == DamageType.LoyaltyLoss) {
|
||||||
additionalLog = localizer.getMessage("lblRemovingNLoyaltyCounter", String.valueOf(event.amount));
|
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);
|
return new GameLogEntry(GameLogEntryType.DAMAGE, message);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -191,43 +191,43 @@ public class GameLogFormatter extends IGameEventVisitor.Base<GameLogEntry> {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public GameLogEntry visit(GameEventLandPlayed ev) {
|
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);
|
return new GameLogEntry(GameLogEntryType.LAND, message);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public GameLogEntry visit(GameEventTurnBegan event) {
|
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);
|
return new GameLogEntry(GameLogEntryType.TURN, message);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public GameLogEntry visit(GameEventPlayerDamaged ev) {
|
public GameLogEntry visit(GameEventPlayerDamaged ev) {
|
||||||
String extra = ev.infect ? localizer.getMessage("lblLogAsPoisonCounters") : "";
|
String extra = ev.infect() ? localizer.getMessage("lblLogAsPoisonCounters") : "";
|
||||||
String damageType = ev.combat ? localizer.getMessage("lblCombat") : localizer.getMessage("lblNonCombat");
|
String damageType = ev.combat() ? localizer.getMessage("lblCombat") : localizer.getMessage("lblNonCombat");
|
||||||
String message = localizer.getMessage("lblLogSourceDealsNDamageOfTypeToDest", ev.source.toString(),
|
String message = localizer.getMessage("lblLogSourceDealsNDamageOfTypeToDest", ev.source().toString(),
|
||||||
String.valueOf(ev.amount), damageType, ev.target.toString(), extra);
|
String.valueOf(ev.amount()), damageType, ev.target().toString(), extra);
|
||||||
return new GameLogEntry(GameLogEntryType.DAMAGE, message);
|
return new GameLogEntry(GameLogEntryType.DAMAGE, message);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public GameLogEntry visit(GameEventPlayerPoisoned ev) {
|
public GameLogEntry visit(GameEventPlayerPoisoned ev) {
|
||||||
String message = localizer.getMessage("lblLogPlayerReceivesNPosionCounterFrom",
|
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);
|
return new GameLogEntry(GameLogEntryType.DAMAGE, message);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public GameLogEntry visit(GameEventPlayerRadiation ev) {
|
public GameLogEntry visit(GameEventPlayerRadiation ev) {
|
||||||
String message;
|
String message;
|
||||||
final int change = ev.change;
|
final int change = ev.change();
|
||||||
String radCtr = CounterEnumType.RAD.getName().toLowerCase() + " " +
|
String radCtr = CounterEnumType.RAD.getName().toLowerCase() + " " +
|
||||||
Localizer.getInstance().getMessage("lblCounter").toLowerCase();
|
Localizer.getInstance().getMessage("lblCounter").toLowerCase();
|
||||||
if (change >= 0) message = localizer.getMessage("lblLogPlayerRadiation",
|
if (change >= 0) message = localizer.getMessage("lblLogPlayerRadiation",
|
||||||
ev.receiver.toString(), Lang.nounWithNumeralExceptOne(String.valueOf(change), radCtr),
|
ev.receiver().toString(), Lang.nounWithNumeralExceptOne(String.valueOf(change), radCtr),
|
||||||
ev.source.toString());
|
ev.source().toString());
|
||||||
else message = localizer.getMessage("lblLogPlayerRadRemove",
|
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);
|
return new GameLogEntry(GameLogEntryType.DAMAGE, message);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -239,16 +239,16 @@ public class GameLogFormatter extends IGameEventVisitor.Base<GameLogEntry> {
|
|||||||
// Append Defending Player/Planeswalker
|
// Append Defending Player/Planeswalker
|
||||||
|
|
||||||
// Not a big fan of the triple nested loop here
|
// Not a big fan of the triple nested loop here
|
||||||
for (GameEntity k : ev.attackersMap.keySet()) {
|
for (GameEntity k : ev.attackersMap().keySet()) {
|
||||||
Collection<Card> attackers = ev.attackersMap.get(k);
|
Collection<Card> attackers = ev.attackersMap().get(k);
|
||||||
if (attackers == null || attackers.isEmpty()) {
|
if (attackers == null || attackers.isEmpty()) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (sb.length() > 0) sb.append("\n");
|
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) {
|
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());
|
return new GameLogEntry(GameLogEntryType.COMBAT, sb.toString());
|
||||||
}
|
}
|
||||||
@@ -262,7 +262,7 @@ public class GameLogFormatter extends IGameEventVisitor.Base<GameLogEntry> {
|
|||||||
|
|
||||||
Collection<Card> blockers = null;
|
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();
|
GameEntity defender = kv.getKey();
|
||||||
MapOfLists<Card, Card> attackers = kv.getValue();
|
MapOfLists<Card, Card> attackers = kv.getValue();
|
||||||
if (attackers == null || attackers.isEmpty()) {
|
if (attackers == null || attackers.isEmpty()) {
|
||||||
@@ -298,7 +298,7 @@ public class GameLogFormatter extends IGameEventVisitor.Base<GameLogEntry> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public GameLogEntry visit(GameEventMulligan ev) {
|
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);
|
return new GameLogEntry(GameLogEntryType.MULLIGAN, message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
package forge.game.event;
|
package forge.game.event;
|
||||||
|
|
||||||
public abstract class Event {
|
public interface Event {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,5 @@
|
|||||||
package forge.game.event;
|
package forge.game.event;
|
||||||
|
|
||||||
/**
|
|
||||||
* TODO: Write javadoc for this type.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public enum EventValueChangeType {
|
public enum EventValueChangeType {
|
||||||
Added,
|
Added,
|
||||||
Removed,
|
Removed,
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package forge.game.event;
|
package forge.game.event;
|
||||||
|
|
||||||
public abstract class GameEvent extends Event {
|
public interface GameEvent extends Event {
|
||||||
|
|
||||||
public abstract <T> T visit(IGameEventVisitor<T> visitor);
|
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.card.Card;
|
||||||
import forge.game.player.Player;
|
import forge.game.player.Player;
|
||||||
|
|
||||||
public class GameEventAnteCardsSelected extends GameEvent {
|
public record GameEventAnteCardsSelected(Multimap<Player, Card> cards) implements GameEvent {
|
||||||
public final Multimap<Player, Card> cards;
|
|
||||||
public GameEventAnteCardsSelected(Multimap<Player, Card> list) {
|
|
||||||
cards = list;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
|
|||||||
@@ -6,26 +6,13 @@ import forge.game.GameEntity;
|
|||||||
import forge.game.card.Card;
|
import forge.game.card.Card;
|
||||||
import forge.game.player.Player;
|
import forge.game.player.Player;
|
||||||
|
|
||||||
/**
|
public record GameEventAttackersDeclared(Player player, Multimap<GameEntity, Card> attackersMap) implements GameEvent {
|
||||||
* 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see forge.game.event.GameEvent#visit(forge.game.event.IGameEventVisitor)
|
* @see forge.game.event.GameEvent#visit(forge.game.event.IGameEventVisitor)
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return visitor.visit(this);
|
return visitor.visit(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,23 +12,10 @@ import forge.util.Lang;
|
|||||||
import forge.util.TextUtil;
|
import forge.util.TextUtil;
|
||||||
import forge.util.maps.MapOfLists;
|
import forge.util.maps.MapOfLists;
|
||||||
|
|
||||||
/**
|
public record GameEventBlockersDeclared(Player defendingPlayer, Map<GameEntity, MapOfLists<Card, Card>> blockers) implements GameEvent {
|
||||||
* 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return visitor.visit(this);
|
return visitor.visit(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,17 +3,7 @@ package forge.game.event;
|
|||||||
import forge.game.GameEntity;
|
import forge.game.GameEntity;
|
||||||
import forge.game.card.Card;
|
import forge.game.card.Card;
|
||||||
|
|
||||||
public class GameEventCardAttachment extends GameEvent {
|
public record GameEventCardAttachment(Card equipment, GameEntity newTarget, GameEntity oldEntity) implements 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
|
|||||||
@@ -4,17 +4,7 @@ import forge.game.card.Card;
|
|||||||
import forge.game.zone.Zone;
|
import forge.game.zone.Zone;
|
||||||
import forge.util.TextUtil;
|
import forge.util.TextUtil;
|
||||||
|
|
||||||
public class GameEventCardChangeZone extends GameEvent {
|
public record GameEventCardChangeZone(Card card, Zone from, Zone to) implements 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
|
|||||||
@@ -3,19 +3,7 @@ package forge.game.event;
|
|||||||
import forge.game.card.Card;
|
import forge.game.card.Card;
|
||||||
import forge.game.card.CounterType;
|
import forge.game.card.CounterType;
|
||||||
|
|
||||||
public class GameEventCardCounters extends GameEvent {
|
public record GameEventCardCounters(Card card, CounterType type, int oldValue, int newValue) implements 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
return visitor.visit(this);
|
return visitor.visit(this);
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ package forge.game.event;
|
|||||||
|
|
||||||
import forge.game.card.Card;
|
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 {
|
public enum DamageType {
|
||||||
Normal,
|
Normal,
|
||||||
@@ -11,18 +11,6 @@ public class GameEventCardDamaged extends GameEvent {
|
|||||||
LoyaltyLoss
|
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
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
return visitor.visit(this);
|
return visitor.visit(this);
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package forge.game.event;
|
package forge.game.event;
|
||||||
|
|
||||||
public class GameEventCardDestroyed extends GameEvent {
|
public record GameEventCardDestroyed() implements GameEvent {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
|
|||||||
@@ -2,12 +2,7 @@ package forge.game.event;
|
|||||||
|
|
||||||
import forge.game.player.Player;
|
import forge.game.player.Player;
|
||||||
|
|
||||||
public class GameEventCardForetold extends GameEvent {
|
public record GameEventCardForetold(Player activatingPlayer) implements GameEvent {
|
||||||
public final Player activatingPlayer;
|
|
||||||
|
|
||||||
public GameEventCardForetold(Player player) {
|
|
||||||
activatingPlayer = player;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
|
|||||||
@@ -2,21 +2,7 @@ package forge.game.event;
|
|||||||
|
|
||||||
import forge.game.player.Player;
|
import forge.game.player.Player;
|
||||||
|
|
||||||
public class GameEventCardModeChosen extends GameEvent {
|
public record GameEventCardModeChosen(Player player, String cardName, String mode, boolean log, boolean random) implements 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
|
|||||||
@@ -2,19 +2,7 @@ package forge.game.event;
|
|||||||
|
|
||||||
import forge.game.card.Card;
|
import forge.game.card.Card;
|
||||||
|
|
||||||
/**
|
public record GameEventCardPhased(Card card, boolean phaseState) implements GameEvent {
|
||||||
* 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
|
|||||||
@@ -3,16 +3,7 @@ package forge.game.event;
|
|||||||
import forge.game.card.Card;
|
import forge.game.card.Card;
|
||||||
import forge.game.player.Player;
|
import forge.game.player.Player;
|
||||||
|
|
||||||
public class GameEventCardPlotted extends GameEvent {
|
public record GameEventCardPlotted(Card card, Player activatingPlayer) implements GameEvent {
|
||||||
|
|
||||||
public final Card card;
|
|
||||||
|
|
||||||
public final Player activatingPlayer;
|
|
||||||
|
|
||||||
public GameEventCardPlotted(Card card, Player player) {
|
|
||||||
this.card = card;
|
|
||||||
activatingPlayer = player;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
|
|||||||
@@ -5,11 +5,9 @@ import forge.game.card.Card;
|
|||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
|
||||||
public class GameEventCardRegenerated extends GameEvent {
|
public record GameEventCardRegenerated(Collection<Card> cards) implements GameEvent {
|
||||||
|
|
||||||
public final Collection<Card> cards;
|
|
||||||
public GameEventCardRegenerated(Card affected) {
|
public GameEventCardRegenerated(Card affected) {
|
||||||
cards = Arrays.asList(affected);
|
this(Arrays.asList(affected));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -2,16 +2,7 @@ package forge.game.event;
|
|||||||
|
|
||||||
import forge.game.card.Card;
|
import forge.game.card.Card;
|
||||||
|
|
||||||
public class GameEventCardSacrificed extends GameEvent {
|
public record GameEventCardSacrificed(Card card) implements GameEvent {
|
||||||
public final Card card;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* TODO: Write javadoc for Constructor.
|
|
||||||
* @param card
|
|
||||||
*/
|
|
||||||
public GameEventCardSacrificed(Card card) {
|
|
||||||
this.card = card;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
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
|
* 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) {
|
public GameEventCardStatsChanged(Card affected) {
|
||||||
this(affected, false);
|
this(affected, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public GameEventCardStatsChanged(Card affected, boolean isTransform) {
|
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...
|
//the transform should only fire once so the flip effect sound will trigger once every transformation...
|
||||||
// disable for now
|
// disable for now
|
||||||
transform = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public GameEventCardStatsChanged(Collection<Card> affected) {
|
public GameEventCardStatsChanged(Collection<Card> affected) {
|
||||||
cards = affected;
|
this(affected, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
@@ -35,7 +32,6 @@ public class GameEventCardStatsChanged extends GameEvent {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return visitor.visit(this);
|
return visitor.visit(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,14 +2,7 @@ package forge.game.event;
|
|||||||
|
|
||||||
import forge.game.card.Card;
|
import forge.game.card.Card;
|
||||||
|
|
||||||
public class GameEventCardTapped extends GameEvent {
|
public record GameEventCardTapped(Card card, boolean tapped) implements GameEvent {
|
||||||
public final boolean tapped;
|
|
||||||
public final Card card;
|
|
||||||
|
|
||||||
public GameEventCardTapped(final Card card, final boolean tapped) {
|
|
||||||
this.tapped = tapped;
|
|
||||||
this.card = card;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
|
|||||||
@@ -1,9 +1,6 @@
|
|||||||
package forge.game.event;
|
package forge.game.event;
|
||||||
|
|
||||||
public class GameEventCombatChanged extends GameEvent {
|
public record GameEventCombatChanged() implements GameEvent {
|
||||||
|
|
||||||
public GameEventCombatChanged() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
|
|||||||
@@ -4,15 +4,7 @@ import java.util.List;
|
|||||||
|
|
||||||
import forge.game.card.Card;
|
import forge.game.card.Card;
|
||||||
|
|
||||||
public class GameEventCombatEnded extends GameEvent {
|
public record GameEventCombatEnded(List<Card> attackers, List<Card> blockers) implements 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
|
|||||||
@@ -4,15 +4,7 @@ import java.util.List;
|
|||||||
|
|
||||||
import forge.game.card.Card;
|
import forge.game.card.Card;
|
||||||
|
|
||||||
public class GameEventCombatUpdate extends GameEvent {
|
public record GameEventCombatUpdate(List<Card> attackers, List<Card> blockers) implements 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
|
|||||||
@@ -1,11 +1,6 @@
|
|||||||
package forge.game.event;
|
package forge.game.event;
|
||||||
|
|
||||||
public class GameEventDayTimeChanged extends GameEvent {
|
public record GameEventDayTimeChanged(boolean daytime) implements GameEvent {
|
||||||
public final boolean daytime;
|
|
||||||
|
|
||||||
public GameEventDayTimeChanged(final boolean daytime) {
|
|
||||||
this.daytime = daytime;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
|
|||||||
@@ -6,18 +6,7 @@ import forge.game.player.Player;
|
|||||||
import forge.util.CardTranslation;
|
import forge.util.CardTranslation;
|
||||||
import forge.util.Lang;
|
import forge.util.Lang;
|
||||||
|
|
||||||
public class GameEventDoorChanged extends GameEvent {
|
public record GameEventDoorChanged(Player activatingPlayer, Card card, CardStateName state, boolean unlock) implements 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package forge.game.event;
|
package forge.game.event;
|
||||||
|
|
||||||
public class GameEventFlipCoin extends GameEvent {
|
public record GameEventFlipCoin() implements GameEvent {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package forge.game.event;
|
package forge.game.event;
|
||||||
|
|
||||||
public class GameEventGameFinished extends GameEvent {
|
public record GameEventGameFinished() implements GameEvent {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
return visitor.visit(this);
|
return visitor.visit(this);
|
||||||
|
|||||||
@@ -4,14 +4,7 @@ import java.util.Collection;
|
|||||||
|
|
||||||
import forge.game.GameOutcome;
|
import forge.game.GameOutcome;
|
||||||
|
|
||||||
public class GameEventGameOutcome extends GameEvent {
|
public record GameEventGameOutcome(GameOutcome result, Collection<GameOutcome> history) implements GameEvent {
|
||||||
public final GameOutcome result;
|
|
||||||
public final Collection<GameOutcome> history;
|
|
||||||
|
|
||||||
public GameEventGameOutcome(GameOutcome lastOne, Collection<GameOutcome> history) {
|
|
||||||
this.result = lastOne;
|
|
||||||
this.history = history;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
|
|||||||
@@ -2,17 +2,7 @@ package forge.game.event;
|
|||||||
|
|
||||||
import forge.game.player.Player;
|
import forge.game.player.Player;
|
||||||
|
|
||||||
/**
|
public record GameEventGameRestarted(Player whoRestarted) implements GameEvent {
|
||||||
* TODO: Write javadoc for this type.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public class GameEventGameRestarted extends GameEvent {
|
|
||||||
|
|
||||||
public final Player whoRestarted;
|
|
||||||
|
|
||||||
public GameEventGameRestarted(Player playerTurn) {
|
|
||||||
whoRestarted = playerTurn;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
|
|||||||
@@ -5,22 +5,7 @@ import forge.game.player.Player;
|
|||||||
import forge.util.Lang;
|
import forge.util.Lang;
|
||||||
import forge.util.TextUtil;
|
import forge.util.TextUtil;
|
||||||
|
|
||||||
/**
|
public record GameEventGameStarted(GameType gameType, Player firstTurn, Iterable<Player> players) implements GameEvent {
|
||||||
* 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
|
|||||||
@@ -3,17 +3,7 @@ package forge.game.event;
|
|||||||
import forge.game.card.Card;
|
import forge.game.card.Card;
|
||||||
import forge.game.player.Player;
|
import forge.game.player.Player;
|
||||||
|
|
||||||
public class GameEventLandPlayed extends GameEvent {
|
public record GameEventLandPlayed(Player player, Card land) implements GameEvent {
|
||||||
|
|
||||||
public final Player player;
|
|
||||||
public final Card land;
|
|
||||||
|
|
||||||
public GameEventLandPlayed(Player player, Card land) {
|
|
||||||
this.player = player;
|
|
||||||
this.land = land;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
return visitor.visit(this);
|
return visitor.visit(this);
|
||||||
|
|||||||
@@ -3,22 +3,7 @@ package forge.game.event;
|
|||||||
import forge.game.player.Player;
|
import forge.game.player.Player;
|
||||||
|
|
||||||
// This special event denotes loss of mana due to phase end
|
// This special event denotes loss of mana due to phase end
|
||||||
public class GameEventManaBurn extends GameEvent {
|
public record GameEventManaBurn(Player player, boolean causedLifeLoss, int amount) implements 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
|
|||||||
@@ -4,20 +4,7 @@ import forge.game.mana.Mana;
|
|||||||
import forge.game.player.Player;
|
import forge.game.player.Player;
|
||||||
import forge.util.Lang;
|
import forge.util.Lang;
|
||||||
|
|
||||||
/**
|
public record GameEventManaPool(Player player, EventValueChangeType mode, Mana mana) implements GameEvent {
|
||||||
* 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
|
|||||||
@@ -2,16 +2,7 @@ package forge.game.event;
|
|||||||
|
|
||||||
import forge.game.player.Player;
|
import forge.game.player.Player;
|
||||||
|
|
||||||
/**
|
public record GameEventMulligan(Player player) implements GameEvent {
|
||||||
* TODO: Write javadoc for this type.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public class GameEventMulligan extends GameEvent {
|
|
||||||
|
|
||||||
public final Player player;
|
|
||||||
public GameEventMulligan(Player p) {
|
|
||||||
player = p;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
|
|||||||
@@ -4,20 +4,7 @@ import forge.LobbyPlayer;
|
|||||||
import forge.game.player.Player;
|
import forge.game.player.Player;
|
||||||
import forge.game.player.PlayerController;
|
import forge.game.player.PlayerController;
|
||||||
|
|
||||||
public class GameEventPlayerControl extends GameEvent {
|
public record GameEventPlayerControl(Player player, LobbyPlayer oldLobbyPlayer, PlayerController oldController, LobbyPlayer newLobbyPlayer, PlayerController newController) implements 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(final IGameEventVisitor<T> visitor) {
|
public <T> T visit(final IGameEventVisitor<T> visitor) {
|
||||||
|
|||||||
@@ -3,18 +3,7 @@ package forge.game.event;
|
|||||||
import forge.game.card.CounterType;
|
import forge.game.card.CounterType;
|
||||||
import forge.game.player.Player;
|
import forge.game.player.Player;
|
||||||
|
|
||||||
public class GameEventPlayerCounters extends GameEvent {
|
public record GameEventPlayerCounters(Player receiver, CounterType type, int oldValue, int amount) implements 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
|
|||||||
@@ -3,33 +3,7 @@ package forge.game.event;
|
|||||||
import forge.game.card.Card;
|
import forge.game.card.Card;
|
||||||
import forge.game.player.Player;
|
import forge.game.player.Player;
|
||||||
|
|
||||||
|
public record GameEventPlayerDamaged(Player target, Card source, int amount, boolean combat, boolean infect) implements GameEvent {
|
||||||
/**
|
|
||||||
* 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see forge.game.event.GameEvent#visit(forge.game.event.IGameEventVisitor)
|
* @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.Lang;
|
||||||
import forge.util.TextUtil;
|
import forge.util.TextUtil;
|
||||||
|
|
||||||
public class GameEventPlayerLivesChanged extends GameEvent {
|
public record GameEventPlayerLivesChanged(Player player, int oldLives, int newLives) implements 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
|
|||||||
@@ -6,18 +6,7 @@ import forge.game.player.Player;
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class GameEventPlayerPoisoned extends GameEvent {
|
public record GameEventPlayerPoisoned(Player receiver, Player source, int oldValue, int amount) implements 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
|
|||||||
@@ -4,21 +4,7 @@ import forge.game.phase.PhaseType;
|
|||||||
import forge.game.player.Player;
|
import forge.game.player.Player;
|
||||||
import forge.util.TextUtil;
|
import forge.util.TextUtil;
|
||||||
|
|
||||||
/**
|
public record GameEventPlayerPriority(Player turn, PhaseType phase, Player priority) implements GameEvent {
|
||||||
* 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
|
|||||||
@@ -2,16 +2,7 @@ package forge.game.event;
|
|||||||
|
|
||||||
import forge.game.player.Player;
|
import forge.game.player.Player;
|
||||||
|
|
||||||
public class GameEventPlayerRadiation extends GameEvent {
|
public record GameEventPlayerRadiation(Player receiver, Player source, int change) implements 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
|
|||||||
@@ -4,16 +4,7 @@ import forge.game.player.Player;
|
|||||||
import forge.util.Lang;
|
import forge.util.Lang;
|
||||||
import forge.util.TextUtil;
|
import forge.util.TextUtil;
|
||||||
|
|
||||||
public class GameEventPlayerShardsChanged extends GameEvent {
|
public record GameEventPlayerShardsChanged(Player player, int oldShards, int newShards) implements 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
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
|
* 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) {
|
public GameEventPlayerStatsChanged(Player affected, boolean updateCards) {
|
||||||
players = Arrays.asList(affected);
|
this(Arrays.asList(affected), updateCards);
|
||||||
this.updateCards = updateCards;
|
|
||||||
}
|
|
||||||
|
|
||||||
public GameEventPlayerStatsChanged(Collection<Player> affected, boolean updateCards) {
|
|
||||||
players = affected;
|
|
||||||
this.updateCards = updateCards;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
@@ -29,7 +21,6 @@ public class GameEventPlayerStatsChanged extends GameEvent {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return visitor.visit(this);
|
return visitor.visit(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,6 @@
|
|||||||
package forge.game.event;
|
package forge.game.event;
|
||||||
|
|
||||||
public class GameEventRandomLog extends GameEvent {
|
public record GameEventRandomLog(String message) implements GameEvent {
|
||||||
|
|
||||||
public final String message;
|
|
||||||
|
|
||||||
public GameEventRandomLog(String message) {
|
|
||||||
this.message = message;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package forge.game.event;
|
package forge.game.event;
|
||||||
|
|
||||||
public class GameEventRollDie extends GameEvent {
|
public record GameEventRollDie() implements GameEvent {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
|
|||||||
@@ -2,16 +2,7 @@ package forge.game.event;
|
|||||||
|
|
||||||
import forge.game.player.Player;
|
import forge.game.player.Player;
|
||||||
|
|
||||||
public class GameEventScry extends GameEvent {
|
public record GameEventScry(Player player, int toTop, int toBottom) implements 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
|
|||||||
@@ -4,13 +4,7 @@ import forge.game.player.Player;
|
|||||||
import forge.util.Lang;
|
import forge.util.Lang;
|
||||||
import forge.util.TextUtil;
|
import forge.util.TextUtil;
|
||||||
|
|
||||||
public class GameEventShuffle extends GameEvent {
|
public record GameEventShuffle(Player player) implements GameEvent {
|
||||||
|
|
||||||
public final Player player;
|
|
||||||
|
|
||||||
public GameEventShuffle(Player player) {
|
|
||||||
this.player = player;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
|
|||||||
@@ -2,18 +2,7 @@ package forge.game.event;
|
|||||||
|
|
||||||
import forge.game.player.Player;
|
import forge.game.player.Player;
|
||||||
|
|
||||||
public class GameEventSpeedChanged extends GameEvent {
|
public record GameEventSpeedChanged(Player player, int oldValue, int newValue) implements 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
return visitor.visit(this);
|
return visitor.visit(this);
|
||||||
|
|||||||
@@ -3,21 +3,7 @@ package forge.game.event;
|
|||||||
import forge.game.spellability.SpellAbility;
|
import forge.game.spellability.SpellAbility;
|
||||||
import forge.game.spellability.SpellAbilityStackInstance;
|
import forge.game.spellability.SpellAbilityStackInstance;
|
||||||
|
|
||||||
/**
|
public record GameEventSpellAbilityCast(SpellAbility sa, SpellAbilityStackInstance si, int stackIndex) implements GameEvent {
|
||||||
* 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see forge.game.event.GameEvent#visit(forge.game.event.IGameEventVisitor)
|
* @see forge.game.event.GameEvent#visit(forge.game.event.IGameEventVisitor)
|
||||||
|
|||||||
@@ -2,20 +2,10 @@ package forge.game.event;
|
|||||||
|
|
||||||
import forge.game.spellability.SpellAbility;
|
import forge.game.spellability.SpellAbility;
|
||||||
|
|
||||||
/**
|
public record GameEventSpellRemovedFromStack(SpellAbility sa) implements GameEvent {
|
||||||
* TODO: Write javadoc for this type.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public class GameEventSpellRemovedFromStack extends GameEvent {
|
|
||||||
public final SpellAbility sa;
|
|
||||||
|
|
||||||
public GameEventSpellRemovedFromStack(SpellAbility spellAbility) {
|
|
||||||
sa = spellAbility;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return visitor.visit(this);
|
return visitor.visit(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,26 +2,7 @@ package forge.game.event;
|
|||||||
|
|
||||||
import forge.game.spellability.SpellAbility;
|
import forge.game.spellability.SpellAbility;
|
||||||
|
|
||||||
/**
|
public record GameEventSpellResolved(SpellAbility spell, boolean hasFizzled) implements GameEvent {
|
||||||
* 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
|
|||||||
@@ -2,18 +2,7 @@ package forge.game.event;
|
|||||||
|
|
||||||
import forge.game.card.Card;
|
import forge.game.card.Card;
|
||||||
|
|
||||||
public class GameEventSprocketUpdate extends GameEvent {
|
public record GameEventSprocketUpdate(Card contraption, int oldSprocket, int sprocket) implements 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
|
|||||||
@@ -2,15 +2,7 @@ package forge.game.event;
|
|||||||
|
|
||||||
import forge.game.Game;
|
import forge.game.Game;
|
||||||
|
|
||||||
public class GameEventSubgameEnd extends GameEvent {
|
public record GameEventSubgameEnd(Game maingame, String message) implements GameEvent {
|
||||||
public final Game maingame;
|
|
||||||
public final String message;
|
|
||||||
|
|
||||||
public GameEventSubgameEnd(Game game, String message0) {
|
|
||||||
maingame = game;
|
|
||||||
message = message0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
return visitor.visit(this);
|
return visitor.visit(this);
|
||||||
|
|||||||
@@ -2,14 +2,7 @@ package forge.game.event;
|
|||||||
|
|
||||||
import forge.game.Game;
|
import forge.game.Game;
|
||||||
|
|
||||||
public class GameEventSubgameStart extends GameEvent {
|
public record GameEventSubgameStart(Game subgame, String message) implements GameEvent {
|
||||||
public final Game subgame;
|
|
||||||
public final String message;
|
|
||||||
|
|
||||||
public GameEventSubgameStart(Game subgame0, String message0) {
|
|
||||||
subgame = subgame0;
|
|
||||||
message = message0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
|
|||||||
@@ -2,16 +2,7 @@ package forge.game.event;
|
|||||||
|
|
||||||
import forge.game.player.Player;
|
import forge.game.player.Player;
|
||||||
|
|
||||||
public class GameEventSurveil extends GameEvent {
|
public record GameEventSurveil(Player player, int toLibrary, int toGraveyard) implements 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package forge.game.event;
|
package forge.game.event;
|
||||||
|
|
||||||
public class GameEventTokenCreated extends GameEvent {
|
public record GameEventTokenCreated() implements GameEvent {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
|
|||||||
@@ -3,16 +3,7 @@ package forge.game.event;
|
|||||||
import forge.game.player.Player;
|
import forge.game.player.Player;
|
||||||
import forge.util.TextUtil;
|
import forge.util.TextUtil;
|
||||||
|
|
||||||
public class GameEventTurnBegan extends GameEvent {
|
public record GameEventTurnBegan(Player turnOwner, int turnNumber) implements GameEvent {
|
||||||
|
|
||||||
public final Player turnOwner;
|
|
||||||
public final int turnNumber;
|
|
||||||
|
|
||||||
public GameEventTurnBegan(Player turnOwner, int turnNumber) {
|
|
||||||
super();
|
|
||||||
this.turnOwner = turnOwner;
|
|
||||||
this.turnNumber = turnNumber;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package forge.game.event;
|
package forge.game.event;
|
||||||
|
|
||||||
public class GameEventTurnEnded extends GameEvent {
|
public record GameEventTurnEnded() implements GameEvent {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
|
|||||||
@@ -5,20 +5,7 @@ import forge.game.player.Player;
|
|||||||
import forge.util.Lang;
|
import forge.util.Lang;
|
||||||
import forge.util.TextUtil;
|
import forge.util.TextUtil;
|
||||||
|
|
||||||
/**
|
public record GameEventTurnPhase(Player playerTurn, PhaseType phase, String phaseDesc) implements GameEvent {
|
||||||
* 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
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.
|
* 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.
|
* Used for tracking zone changes such as casting, moving, or activating cards and abilities.
|
||||||
*/
|
*/
|
||||||
public class GameEventZone extends GameEvent {
|
public record GameEventZone(ZoneType zoneType, Player player, EventValueChangeType mode, Card card, SpellAbility sa) implements GameEvent {
|
||||||
|
|
||||||
public final ZoneType zoneType;
|
|
||||||
public final Player player;
|
|
||||||
public final EventValueChangeType mode;
|
|
||||||
public final Card card;
|
|
||||||
public final SpellAbility sa;
|
|
||||||
|
|
||||||
public GameEventZone(ZoneType zoneType, Player player, EventValueChangeType added, Card c) {
|
public GameEventZone(ZoneType zoneType, Player player, EventValueChangeType added, Card c) {
|
||||||
this.zoneType = zoneType;
|
this(zoneType, player, added, c, null);
|
||||||
this.player = player;
|
|
||||||
this.mode = added;
|
|
||||||
this.card = c;
|
|
||||||
this.sa = null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public GameEventZone(ZoneType zoneType, SpellAbility sa, EventValueChangeType added) {
|
public GameEventZone(ZoneType zoneType, SpellAbility sa, EventValueChangeType added) {
|
||||||
this.zoneType = zoneType;
|
this(zoneType, sa.getActivatingPlayer(), added, sa.getHostCard(), sa);
|
||||||
this.player = sa.getActivatingPlayer();
|
|
||||||
this.mode = added;
|
|
||||||
this.card = sa.getHostCard();
|
|
||||||
this.sa = sa;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IGameEventVisitor<T> visitor) {
|
public <T> T visit(IGameEventVisitor<T> visitor) {
|
||||||
// TODO Auto-generated method stub
|
|
||||||
return visitor.visit(this);
|
return visitor.visit(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,5 @@
|
|||||||
package forge.game.event;
|
package forge.game.event;
|
||||||
|
|
||||||
/**
|
|
||||||
* TODO: Write javadoc for this type.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public interface IGameEventVisitor<T> {
|
public interface IGameEventVisitor<T> {
|
||||||
T visit(GameEventAnteCardsSelected event);
|
T visit(GameEventAnteCardsSelected event);
|
||||||
T visit(GameEventAttackersDeclared event);
|
T visit(GameEventAttackersDeclared event);
|
||||||
|
|||||||
@@ -547,7 +547,7 @@ public class Player extends GameEntity implements Comparable<Player> {
|
|||||||
life -= toLose;
|
life -= toLose;
|
||||||
view.updateLife(this);
|
view.updateLife(this);
|
||||||
if (manaBurn) {
|
if (manaBurn) {
|
||||||
game.fireEvent(new GameEventManaBurn(this, toLose, true));
|
game.fireEvent(new GameEventManaBurn(this, true, toLose));
|
||||||
} else {
|
} else {
|
||||||
game.fireEvent(new GameEventPlayerLivesChanged(this, oldLife, life));
|
game.fireEvent(new GameEventPlayerLivesChanged(this, oldLife, life));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1269,15 +1269,15 @@ public final class CMatchUI
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void notifyStackAddition(GameEventSpellAbilityCast event) {
|
public void notifyStackAddition(GameEventSpellAbilityCast event) {
|
||||||
SpellAbility sa = event.sa;
|
SpellAbility sa = event.sa();
|
||||||
String stackNotificationPolicy = FModel.getPreferences().getPref(FPref.UI_STACK_EFFECT_NOTIFICATION_POLICY);
|
String stackNotificationPolicy = FModel.getPreferences().getPref(FPref.UI_STACK_EFFECT_NOTIFICATION_POLICY);
|
||||||
boolean isAi = sa.getActivatingPlayer().isAI();
|
boolean isAi = sa.getActivatingPlayer().isAI();
|
||||||
boolean isTrigger = sa.isTrigger();
|
boolean isTrigger = sa.isTrigger();
|
||||||
int stackIndex = event.stackIndex;
|
int stackIndex = event.stackIndex();
|
||||||
if (stackIndex == nextNotifiableStackIndex) {
|
if (stackIndex == nextNotifiableStackIndex) {
|
||||||
if (ForgeConstants.STACK_EFFECT_NOTIFICATION_ALWAYS.equals(stackNotificationPolicy) || (ForgeConstants.STACK_EFFECT_NOTIFICATION_AI_AND_TRIGGERED.equals(stackNotificationPolicy) && (isAi || isTrigger))) {
|
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
|
// 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");
|
MigLayout migLayout = new MigLayout("insets 15, left, gap 30, fill");
|
||||||
JPanel mainPanel = new JPanel(migLayout);
|
JPanel mainPanel = new JPanel(migLayout);
|
||||||
|
|||||||
@@ -350,9 +350,9 @@ public class HostedMatch {
|
|||||||
@Override
|
@Override
|
||||||
public Void visit(final UiEventBlockerAssigned event) {
|
public Void visit(final UiEventBlockerAssigned event) {
|
||||||
for (final PlayerControllerHuman humanController : humanControllers) {
|
for (final PlayerControllerHuman humanController : humanControllers) {
|
||||||
humanController.getGui().updateSingleCard(event.blocker);
|
humanController.getGui().updateSingleCard(event.blocker());
|
||||||
final PlayerView p = humanController.getPlayer().getView();
|
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);
|
humanController.getGui().autoPassCancel(p);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -362,27 +362,27 @@ public class HostedMatch {
|
|||||||
@Override
|
@Override
|
||||||
public Void visit(final UiEventAttackerDeclared event) {
|
public Void visit(final UiEventAttackerDeclared event) {
|
||||||
for (final PlayerControllerHuman humanController : humanControllers) {
|
for (final PlayerControllerHuman humanController : humanControllers) {
|
||||||
humanController.getGui().updateSingleCard(event.attacker);
|
humanController.getGui().updateSingleCard(event.attacker());
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visit(final UiEventNextGameDecision event) {
|
public Void visit(final UiEventNextGameDecision event) {
|
||||||
addNextGameDecision(event.getController(), event.getDecision());
|
addNextGameDecision(event.controller(), event.decision());
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visit(final GameEventSubgameStart event) {
|
public Void visit(final GameEventSubgameStart event) {
|
||||||
subGameCount++;
|
subGameCount++;
|
||||||
event.subgame.subscribeToEvents(SoundSystem.instance);
|
event.subgame().subscribeToEvents(SoundSystem.instance);
|
||||||
event.subgame.subscribeToEvents(visitor);
|
event.subgame().subscribeToEvents(visitor);
|
||||||
|
|
||||||
final GameView gameView = event.subgame.getView();
|
final GameView gameView = event.subgame().getView();
|
||||||
|
|
||||||
Runnable switchGameView = () -> {
|
Runnable switchGameView = () -> {
|
||||||
for (final Player p : event.subgame.getPlayers()) {
|
for (final Player p : event.subgame().getPlayers()) {
|
||||||
if (p.getController() instanceof PlayerControllerHuman) {
|
if (p.getController() instanceof PlayerControllerHuman) {
|
||||||
final PlayerControllerHuman humanController = (PlayerControllerHuman) p.getController();
|
final PlayerControllerHuman humanController = (PlayerControllerHuman) p.getController();
|
||||||
final IGuiGame gui = guis.get(p.getRegisteredPlayer());
|
final IGuiGame gui = guis.get(p.getRegisteredPlayer());
|
||||||
@@ -393,8 +393,8 @@ public class HostedMatch {
|
|||||||
gui.openView(new TrackableCollection<>(p.getView()));
|
gui.openView(new TrackableCollection<>(p.getView()));
|
||||||
gui.setGameView(null);
|
gui.setGameView(null);
|
||||||
gui.setGameView(gameView);
|
gui.setGameView(gameView);
|
||||||
event.subgame.subscribeToEvents(new FControlGameEventHandler(humanController));
|
event.subgame().subscribeToEvents(new FControlGameEventHandler(humanController));
|
||||||
gui.message(event.message);
|
gui.message(event.message());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -404,7 +404,7 @@ public class HostedMatch {
|
|||||||
GuiBase.getInterface().invokeInEdtAndWait(switchGameView);
|
GuiBase.getInterface().invokeInEdtAndWait(switchGameView);
|
||||||
|
|
||||||
//ensure opponents set properly
|
//ensure opponents set properly
|
||||||
for (final Player p : event.subgame.getPlayers()) {
|
for (final Player p : event.subgame().getPlayers()) {
|
||||||
p.updateOpponentsForView();
|
p.updateOpponentsForView();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -413,9 +413,9 @@ public class HostedMatch {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visit(final GameEventSubgameEnd event) {
|
public Void visit(final GameEventSubgameEnd event) {
|
||||||
final GameView gameView = event.maingame.getView();
|
final GameView gameView = event.maingame().getView();
|
||||||
Runnable switchGameView = () -> {
|
Runnable switchGameView = () -> {
|
||||||
for (final Player p : event.maingame.getPlayers()) {
|
for (final Player p : event.maingame().getPlayers()) {
|
||||||
if (p.getController() instanceof PlayerControllerHuman) {
|
if (p.getController() instanceof PlayerControllerHuman) {
|
||||||
final PlayerControllerHuman humanController = (PlayerControllerHuman) p.getController();
|
final PlayerControllerHuman humanController = (PlayerControllerHuman) p.getController();
|
||||||
final IGuiGame gui = guis.get(p.getRegisteredPlayer());
|
final IGuiGame gui = guis.get(p.getRegisteredPlayer());
|
||||||
@@ -426,7 +426,7 @@ public class HostedMatch {
|
|||||||
gui.setGameView(null);
|
gui.setGameView(null);
|
||||||
gui.setGameView(gameView);
|
gui.setGameView(gameView);
|
||||||
gui.updatePhase(true);
|
gui.updatePhase(true);
|
||||||
gui.message(event.message);
|
gui.message(event.message());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -549,9 +549,9 @@ public class QuestController {
|
|||||||
if (ev instanceof GameEventMulligan) {
|
if (ev instanceof GameEventMulligan) {
|
||||||
GameEventMulligan mev = (GameEventMulligan) ev;
|
GameEventMulligan mev = (GameEventMulligan) ev;
|
||||||
// First mulligan is free
|
// First mulligan is free
|
||||||
if (mev.player.getLobbyPlayer() == GamePlayerUtil.getGuiPlayer()
|
if (mev.player().getLobbyPlayer().equals(GamePlayerUtil.getGuiPlayer())
|
||||||
&& getAssets().hasItem(QuestItemType.SLEIGHT) && mev.player.getStats().getMulliganCount() < 7) {
|
&& getAssets().hasItem(QuestItemType.SLEIGHT) && mev.player().getStats().getMulliganCount() < 7) {
|
||||||
mev.player.drawCard();
|
mev.player().drawCard();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -190,9 +190,9 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base<Void> {
|
|||||||
@Override
|
@Override
|
||||||
public Void visit(final GameEventTurnPhase ev) {
|
public Void visit(final GameEventTurnPhase ev) {
|
||||||
needPhaseUpdate = true;
|
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());
|
boolean refreshField = !ap.getTokensInPlay().isEmpty() || (FModel.getPreferences().getPrefBoolean(FPref.UI_STACK_CREATURES) && !ap.getCreaturesInPlay().isEmpty());
|
||||||
if (refreshField) {
|
if (refreshField) {
|
||||||
updateZone(ap, ZoneType.Battlefield);
|
updateZone(ap, ZoneType.Battlefield);
|
||||||
@@ -209,15 +209,15 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base<Void> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visit(final GameEventTurnBegan event) {
|
public Void visit(final GameEventTurnBegan event) {
|
||||||
turnUpdate = event.turnOwner.getView();
|
turnUpdate = event.turnOwner().getView();
|
||||||
processPlayer(event.turnOwner, livesUpdate);
|
processPlayer(event.turnOwner(), livesUpdate);
|
||||||
return processEvent();
|
return processEvent();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visit(final GameEventAnteCardsSelected ev) {
|
public Void visit(final GameEventAnteCardsSelected ev) {
|
||||||
final List<CardView> options = Lists.newArrayList();
|
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
|
//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 --");
|
final CardView fakeCard = new CardView(-1, null, " -- From " + Lang.getInstance().getPossesive(kv.getKey().getName()) + " deck --");
|
||||||
options.add(fakeCard);
|
options.add(fakeCard);
|
||||||
@@ -229,17 +229,17 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base<Void> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visit(final GameEventPlayerControl ev) {
|
public Void visit(final GameEventPlayerControl ev) {
|
||||||
if (ev.player.getGame().isGameOver()) {
|
if (ev.player().getGame().isGameOver()) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
final PlayerControllerHuman newController;
|
final PlayerControllerHuman newController;
|
||||||
if (ev.newController instanceof PlayerControllerHuman) {
|
if (ev.newController() instanceof PlayerControllerHuman) {
|
||||||
newController = (PlayerControllerHuman) ev.newController;
|
newController = (PlayerControllerHuman) ev.newController();
|
||||||
} else {
|
} else {
|
||||||
newController = null;
|
newController = null;
|
||||||
}
|
}
|
||||||
matchController.setGameController(PlayerView.get(ev.player), newController);
|
matchController.setGameController(PlayerView.get(ev.player()), newController);
|
||||||
|
|
||||||
needPlayerControlUpdate = true;
|
needPlayerControlUpdate = true;
|
||||||
return processEvent();
|
return processEvent();
|
||||||
@@ -293,8 +293,8 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base<Void> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visit(final GameEventSubgameEnd event) {
|
public Void visit(final GameEventSubgameEnd event) {
|
||||||
if (event.maingame != null) {
|
if (event.maingame() != null) {
|
||||||
for (Player p : event.maingame.getPlayers()) {
|
for (Player p : event.maingame().getPlayers()) {
|
||||||
updateZone(p, ZoneType.Battlefield);
|
updateZone(p, ZoneType.Battlefield);
|
||||||
updateZone(p, ZoneType.Hand);
|
updateZone(p, ZoneType.Hand);
|
||||||
updateZone(p, ZoneType.Graveyard);
|
updateZone(p, ZoneType.Graveyard);
|
||||||
@@ -302,9 +302,9 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base<Void> {
|
|||||||
updateZone(p, ZoneType.Command);
|
updateZone(p, ZoneType.Command);
|
||||||
}
|
}
|
||||||
//update matchscreen view to reflect maingame/previous daytime
|
//update matchscreen view to reflect maingame/previous daytime
|
||||||
if (event.maingame.isDay())
|
if (event.maingame().isDay())
|
||||||
matchController.updateDayTime("Day");
|
matchController.updateDayTime("Day");
|
||||||
else if (event.maingame.isNight())
|
else if (event.maingame().isNight())
|
||||||
matchController.updateDayTime("Night");
|
matchController.updateDayTime("Night");
|
||||||
return processEvent();
|
return processEvent();
|
||||||
}
|
}
|
||||||
@@ -313,9 +313,9 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base<Void> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visit(final GameEventZone event) {
|
public Void visit(final GameEventZone event) {
|
||||||
if (event.player != null) {
|
if (event.player() != null) {
|
||||||
// anything except stack will get here
|
// anything except stack will get here
|
||||||
updateZone(event.player, event.zoneType);
|
updateZone(event.player(), event.zoneType());
|
||||||
return processEvent();
|
return processEvent();
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
@@ -323,13 +323,13 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base<Void> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visit(final GameEventCardAttachment event) {
|
public Void visit(final GameEventCardAttachment event) {
|
||||||
final Game game = event.equipment.getGame();
|
final Game game = event.equipment().getGame();
|
||||||
final Zone zEq = game.getZoneOf(event.equipment);
|
final Zone zEq = game.getZoneOf(event.equipment());
|
||||||
if (event.oldEntity instanceof Card) {
|
if (event.oldEntity() instanceof Card oldCard) {
|
||||||
updateZone(game.getZoneOf((Card)event.oldEntity));
|
updateZone(game.getZoneOf(oldCard));
|
||||||
}
|
}
|
||||||
if (event.newTarget instanceof Card) {
|
if (event.newTarget() instanceof Card newCard) {
|
||||||
updateZone(game.getZoneOf((Card)event.newTarget));
|
updateZone(game.getZoneOf(newCard));
|
||||||
}
|
}
|
||||||
updateZone(zEq);
|
updateZone(zEq);
|
||||||
return processEvent();
|
return processEvent();
|
||||||
@@ -338,32 +338,32 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base<Void> {
|
|||||||
@Override
|
@Override
|
||||||
public Void visit(final GameEventCardTapped event) {
|
public Void visit(final GameEventCardTapped event) {
|
||||||
refreshFieldUpdate = true; //update all players field when event un/tapped
|
refreshFieldUpdate = true; //update all players field when event un/tapped
|
||||||
processCard(event.card, cardsUpdate);
|
processCard(event.card(), cardsUpdate);
|
||||||
return processEvent();
|
return processEvent();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visit(final GameEventCardPhased event) {
|
public Void visit(final GameEventCardPhased event) {
|
||||||
processCard(event.card, cardsUpdate);
|
processCard(event.card(), cardsUpdate);
|
||||||
return processEvent();
|
return processEvent();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visit(final GameEventCardDamaged event) {
|
public Void visit(final GameEventCardDamaged event) {
|
||||||
processCard(event.card, cardsUpdate);
|
processCard(event.card(), cardsUpdate);
|
||||||
return processEvent();
|
return processEvent();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visit(final GameEventCardCounters event) {
|
public Void visit(final GameEventCardCounters event) {
|
||||||
processCard(event.card, cardsUpdate);
|
processCard(event.card(), cardsUpdate);
|
||||||
return processEvent();
|
return processEvent();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visit(final GameEventBlockersDeclared event) {
|
public Void visit(final GameEventBlockersDeclared event) {
|
||||||
final Set<Card> cards = new HashSet<>();
|
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()) {
|
for (final Collection<Card> blockers : kv.values()) {
|
||||||
cards.addAll(blockers);
|
cards.addAll(blockers);
|
||||||
}
|
}
|
||||||
@@ -373,7 +373,7 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base<Void> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visit(final GameEventAttackersDeclared event) {
|
public Void visit(final GameEventAttackersDeclared event) {
|
||||||
return processCards(event.attackersMap.values(), cardsUpdate);
|
return processCards(event.attackersMap().values(), cardsUpdate);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -387,8 +387,8 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base<Void> {
|
|||||||
needCombatUpdate = true;
|
needCombatUpdate = true;
|
||||||
|
|
||||||
// This should remove sword/shield icons from combatants by the time game moves to M2
|
// This should remove sword/shield icons from combatants by the time game moves to M2
|
||||||
processCards(event.attackers, cardsUpdate);
|
processCards(event.attackers(), cardsUpdate);
|
||||||
return processCards(event.blockers, cardsUpdate);
|
return processCards(event.blockers(), cardsUpdate);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -397,8 +397,8 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base<Void> {
|
|||||||
return null; //not needed if single player only...
|
return null; //not needed if single player only...
|
||||||
|
|
||||||
final CardCollection cards = new CardCollection();
|
final CardCollection cards = new CardCollection();
|
||||||
cards.addAll(event.attackers);
|
cards.addAll(event.attackers());
|
||||||
cards.addAll(event.blockers);
|
cards.addAll(event.blockers());
|
||||||
|
|
||||||
refreshFieldUpdate = true;
|
refreshFieldUpdate = true;
|
||||||
|
|
||||||
@@ -409,8 +409,8 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base<Void> {
|
|||||||
@Override
|
@Override
|
||||||
public Void visit(final GameEventCardChangeZone event) {
|
public Void visit(final GameEventCardChangeZone event) {
|
||||||
if (GuiBase.getInterface().isLibgdxPort()) {
|
if (GuiBase.getInterface().isLibgdxPort()) {
|
||||||
updateZone(event.from);
|
updateZone(event.from());
|
||||||
return updateZone(event.to);
|
return updateZone(event.to());
|
||||||
} else {
|
} else {
|
||||||
return processEvent();
|
return processEvent();
|
||||||
}
|
}
|
||||||
@@ -419,14 +419,14 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base<Void> {
|
|||||||
@Override
|
@Override
|
||||||
public Void visit(final GameEventCardStatsChanged event) {
|
public Void visit(final GameEventCardStatsChanged event) {
|
||||||
refreshFieldUpdate = true;
|
refreshFieldUpdate = true;
|
||||||
processCards(event.cards, cardsRefreshDetails);
|
processCards(event.cards(), cardsRefreshDetails);
|
||||||
return processCards(event.cards, cardsUpdate);
|
return processCards(event.cards(), cardsUpdate);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visit(final GameEventCardForetold event) {
|
public Void visit(final GameEventCardForetold event) {
|
||||||
showExileUpdate = true;
|
showExileUpdate = true;
|
||||||
activatingPlayer = event.activatingPlayer.getView();
|
activatingPlayer = event.activatingPlayer().getView();
|
||||||
playersWithValidTargets.put(activatingPlayer, null);
|
playersWithValidTargets.put(activatingPlayer, null);
|
||||||
return processEvent();
|
return processEvent();
|
||||||
}
|
}
|
||||||
@@ -434,7 +434,7 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base<Void> {
|
|||||||
@Override
|
@Override
|
||||||
public Void visit(final GameEventCardPlotted event) {
|
public Void visit(final GameEventCardPlotted event) {
|
||||||
showExileUpdate = true;
|
showExileUpdate = true;
|
||||||
activatingPlayer = event.activatingPlayer.getView();
|
activatingPlayer = event.activatingPlayer().getView();
|
||||||
playersWithValidTargets.put(activatingPlayer, null);
|
playersWithValidTargets.put(activatingPlayer, null);
|
||||||
return processEvent();
|
return processEvent();
|
||||||
}
|
}
|
||||||
@@ -442,8 +442,8 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base<Void> {
|
|||||||
@Override
|
@Override
|
||||||
public Void visit(final GameEventPlayerStatsChanged event) {
|
public Void visit(final GameEventPlayerStatsChanged event) {
|
||||||
final CardCollection cards = new CardCollection();
|
final CardCollection cards = new CardCollection();
|
||||||
for (final Player p : event.players) {
|
for (final Player p : event.players()) {
|
||||||
if (event.updateCards) {
|
if (event.updateCards()) {
|
||||||
cards.addAll(p.getAllCards());
|
cards.addAll(p.getAllCards());
|
||||||
}
|
}
|
||||||
processPlayer(p, livesUpdate);
|
processPlayer(p, livesUpdate);
|
||||||
@@ -453,22 +453,22 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base<Void> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Void visit(final GameEventLandPlayed event) {
|
public Void visit(final GameEventLandPlayed event) {
|
||||||
processPlayer(event.player, livesUpdate);
|
processPlayer(event.player(), livesUpdate);
|
||||||
matchController.handleLandPlayed(event.land);
|
matchController.handleLandPlayed(event.land());
|
||||||
return processCard(event.land, cardsRefreshDetails);
|
return processCard(event.land(), cardsRefreshDetails);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visit(final GameEventCardRegenerated event) {
|
public Void visit(final GameEventCardRegenerated event) {
|
||||||
refreshFieldUpdate = true;
|
refreshFieldUpdate = true;
|
||||||
processCards(event.cards, cardsRefreshDetails);
|
processCards(event.cards(), cardsRefreshDetails);
|
||||||
return processCards(event.cards, cardsUpdate);
|
return processCards(event.cards(), cardsUpdate);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visit(final GameEventShuffle event) {
|
public Void visit(final GameEventShuffle event) {
|
||||||
if (GuiBase.getInterface().isLibgdxPort()) {
|
if (GuiBase.getInterface().isLibgdxPort()) {
|
||||||
return updateZone(event.player.getZone(ZoneType.Library));
|
return updateZone(event.player().getZone(ZoneType.Library));
|
||||||
} else {
|
} else {
|
||||||
return processEvent();
|
return processEvent();
|
||||||
}
|
}
|
||||||
@@ -476,44 +476,44 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base<Void> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visit(final GameEventDayTimeChanged event) {
|
public Void visit(final GameEventDayTimeChanged event) {
|
||||||
matchController.updateDayTime(event.daytime ? "Day" : "Night");
|
matchController.updateDayTime(event.daytime() ? "Day" : "Night");
|
||||||
return processEvent();
|
return processEvent();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visit(GameEventSprocketUpdate event) {
|
public Void visit(GameEventSprocketUpdate event) {
|
||||||
updateZone(event.contraption.getZone());
|
updateZone(event.contraption().getZone());
|
||||||
return processEvent();
|
return processEvent();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visit(final GameEventManaPool event) {
|
public Void visit(final GameEventManaPool event) {
|
||||||
return processPlayer(event.player, manaPoolUpdate);
|
return processPlayer(event.player(), manaPoolUpdate);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visit(final GameEventPlayerLivesChanged event) {
|
public Void visit(final GameEventPlayerLivesChanged event) {
|
||||||
return processPlayer(event.player, livesUpdate);
|
return processPlayer(event.player(), livesUpdate);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visit(final GameEventPlayerShardsChanged event) {
|
public Void visit(final GameEventPlayerShardsChanged event) {
|
||||||
return processPlayer(event.player, shardsUpdate);
|
return processPlayer(event.player(), shardsUpdate);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visit(GameEventManaBurn event) {
|
public Void visit(GameEventManaBurn event) {
|
||||||
return processPlayer(event.player, livesUpdate);
|
return processPlayer(event.player(), livesUpdate);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visit(final GameEventPlayerPoisoned event) {
|
public Void visit(final GameEventPlayerPoisoned event) {
|
||||||
return processPlayer(event.receiver, livesUpdate);
|
return processPlayer(event.receiver(), livesUpdate);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visit(final GameEventPlayerRadiation event) {
|
public Void visit(final GameEventPlayerRadiation event) {
|
||||||
return processPlayer(event.receiver, livesUpdate);
|
return processPlayer(event.receiver(), livesUpdate);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -523,6 +523,6 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base<Void> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visit(final GameEventPlayerCounters event) {
|
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
|
@Override
|
||||||
public Void visit(final GameEventTurnPhase ev) {
|
public Void visit(final GameEventTurnPhase ev) {
|
||||||
try {
|
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_END:
|
||||||
case COMBAT_DECLARE_ATTACKERS:
|
case COMBAT_DECLARE_ATTACKERS:
|
||||||
case COMBAT_DECLARE_BLOCKERS:
|
case COMBAT_DECLARE_BLOCKERS:
|
||||||
@@ -121,7 +121,7 @@ public class FControlGamePlayback extends IGameEventVisitor.Base<Void> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Void visit(final GameEventSpellResolved event) {
|
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);
|
pauseForEvent(resolveDelay);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -131,7 +131,7 @@ public class FControlGamePlayback extends IGameEventVisitor.Base<Void> {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Void visit(final GameEventSpellAbilityCast event) {
|
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);
|
pauseForEvent(castDelay);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ package forge.gui.events;
|
|||||||
|
|
||||||
import forge.game.event.Event;
|
import forge.game.event.Event;
|
||||||
|
|
||||||
public abstract class UiEvent extends Event {
|
public interface UiEvent extends Event {
|
||||||
|
|
||||||
public abstract <T> T visit(IUiEventVisitor<T> visitor);
|
public abstract <T> T visit(IUiEventVisitor<T> visitor);
|
||||||
}
|
}
|
||||||
@@ -3,14 +3,7 @@ package forge.gui.events;
|
|||||||
import forge.game.GameEntityView;
|
import forge.game.GameEntityView;
|
||||||
import forge.game.card.CardView;
|
import forge.game.card.CardView;
|
||||||
|
|
||||||
public class UiEventAttackerDeclared extends UiEvent {
|
public record UiEventAttackerDeclared(CardView attacker, GameEntityView defender) implements UiEvent {
|
||||||
public final CardView attacker;
|
|
||||||
public final GameEntityView defender;
|
|
||||||
|
|
||||||
public UiEventAttackerDeclared(final CardView card, final GameEntityView currentDefender) {
|
|
||||||
attacker = card;
|
|
||||||
defender = currentDefender;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(final IUiEventVisitor<T> visitor) {
|
public <T> T visit(final IUiEventVisitor<T> visitor) {
|
||||||
|
|||||||
@@ -2,14 +2,7 @@ package forge.gui.events;
|
|||||||
|
|
||||||
import forge.game.card.CardView;
|
import forge.game.card.CardView;
|
||||||
|
|
||||||
public class UiEventBlockerAssigned extends UiEvent {
|
public record UiEventBlockerAssigned(CardView blocker, CardView attackerBeingBlocked) implements UiEvent {
|
||||||
public final CardView blocker;
|
|
||||||
public final CardView attackerBeingBlocked;
|
|
||||||
|
|
||||||
public UiEventBlockerAssigned(final CardView card, final CardView currentAttacker) {
|
|
||||||
blocker = card;
|
|
||||||
attackerBeingBlocked = currentAttacker;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(final IUiEventVisitor<T> visitor) {
|
public <T> T visit(final IUiEventVisitor<T> visitor) {
|
||||||
|
|||||||
@@ -3,22 +3,7 @@ package forge.gui.events;
|
|||||||
import forge.gamemodes.match.NextGameDecision;
|
import forge.gamemodes.match.NextGameDecision;
|
||||||
import forge.player.PlayerControllerHuman;
|
import forge.player.PlayerControllerHuman;
|
||||||
|
|
||||||
public final class UiEventNextGameDecision extends UiEvent {
|
public record UiEventNextGameDecision(PlayerControllerHuman controller, NextGameDecision decision) implements 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T visit(IUiEventVisitor<T> visitor) {
|
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; }
|
public SoundEffectType visit(final GameEventCardAttachment event) { return SoundEffectType.Equip; }
|
||||||
@Override
|
@Override
|
||||||
public SoundEffectType visit(final GameEventCardChangeZone event) {
|
public SoundEffectType visit(final GameEventCardChangeZone event) {
|
||||||
final ZoneType from = event.from == null ? null : event.from.getZoneType();
|
final ZoneType from = event.from() == null ? null : event.from().getZoneType();
|
||||||
final ZoneType to = event.to.getZoneType();
|
final ZoneType to = event.to().getZoneType();
|
||||||
if( from == ZoneType.Library && to == ZoneType.Hand) {
|
if( from == ZoneType.Library && to == ZoneType.Hand) {
|
||||||
return SoundEffectType.Draw;
|
return SoundEffectType.Draw;
|
||||||
}
|
}
|
||||||
@@ -54,7 +54,7 @@ public class EventVisualizer extends IGameEventVisitor.Base<SoundEffectType> imp
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SoundEffectType visit(GameEventCardStatsChanged event) {
|
public SoundEffectType visit(GameEventCardStatsChanged event) {
|
||||||
return event.transform ? SoundEffectType.FlipCard : null ;
|
return event.transform() ? SoundEffectType.FlipCard : null ;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -62,7 +62,7 @@ public class EventVisualizer extends IGameEventVisitor.Base<SoundEffectType> imp
|
|||||||
@Override
|
@Override
|
||||||
public SoundEffectType visit(final GameEventCardSacrificed event) { return SoundEffectType.Sacrifice; }
|
public SoundEffectType visit(final GameEventCardSacrificed event) { return SoundEffectType.Sacrifice; }
|
||||||
@Override
|
@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
|
@Override
|
||||||
public SoundEffectType visit(final GameEventTurnEnded event) { return SoundEffectType.EndOfTurn; }
|
public SoundEffectType visit(final GameEventTurnEnded event) { return SoundEffectType.EndOfTurn; }
|
||||||
@Override
|
@Override
|
||||||
@@ -70,7 +70,7 @@ public class EventVisualizer extends IGameEventVisitor.Base<SoundEffectType> imp
|
|||||||
@Override
|
@Override
|
||||||
public SoundEffectType visit(final GameEventRollDie event) { return SoundEffectType.RollDie; }
|
public SoundEffectType visit(final GameEventRollDie event) { return SoundEffectType.RollDie; }
|
||||||
@Override
|
@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
|
@Override
|
||||||
public SoundEffectType visit(final GameEventPlayerShardsChanged event) { return SoundEffectType.TakeShard; }
|
public SoundEffectType visit(final GameEventPlayerShardsChanged event) { return SoundEffectType.TakeShard; }
|
||||||
@Override
|
@Override
|
||||||
@@ -80,27 +80,27 @@ public class EventVisualizer extends IGameEventVisitor.Base<SoundEffectType> imp
|
|||||||
@Override
|
@Override
|
||||||
public SoundEffectType visit(final GameEventShuffle event) { return SoundEffectType.Shuffle; }
|
public SoundEffectType visit(final GameEventShuffle event) { return SoundEffectType.Shuffle; }
|
||||||
@Override
|
@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
|
@Override
|
||||||
public SoundEffectType visit(final GameEventTokenCreated event) { return SoundEffectType.Token; }
|
public SoundEffectType visit(final GameEventTokenCreated event) { return SoundEffectType.Token; }
|
||||||
@Override
|
@Override
|
||||||
public SoundEffectType visit(final GameEventSprocketUpdate event) {
|
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 null;
|
||||||
return SoundEffectType.Sprocket;
|
return SoundEffectType.Sprocket;
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public SoundEffectType visit(final GameEventDayTimeChanged event) {
|
public SoundEffectType visit(final GameEventDayTimeChanged event) {
|
||||||
return event.daytime ? SoundEffectType.Daytime : SoundEffectType.Nighttime;
|
return event.daytime() ? SoundEffectType.Daytime : SoundEffectType.Nighttime;
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public SoundEffectType visit(final GameEventBlockersDeclared event) {
|
public SoundEffectType visit(final GameEventBlockersDeclared event) {
|
||||||
final boolean isLocalHuman = event.defendingPlayer.getLobbyPlayer() == player;
|
final boolean isLocalHuman = event.defendingPlayer().getLobbyPlayer().equals(player);
|
||||||
if (isLocalHuman) {
|
if (isLocalHuman) {
|
||||||
return null; // already played sounds in interactive mode
|
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()) {
|
for(final Collection<Card> bb : ab.values()) {
|
||||||
if ( !bb.isEmpty() ) {
|
if ( !bb.isEmpty() ) {
|
||||||
// hasAnyBlocker = true;
|
// hasAnyBlocker = true;
|
||||||
@@ -116,7 +116,7 @@ public class EventVisualizer extends IGameEventVisitor.Base<SoundEffectType> imp
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public SoundEffectType visit(final GameEventGameOutcome event) {
|
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;
|
return humanWonTheDuel ? SoundEffectType.WinDuel : SoundEffectType.LoseDuel;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -126,12 +126,12 @@ public class EventVisualizer extends IGameEventVisitor.Base<SoundEffectType> imp
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public SoundEffectType visit(final GameEventSpellResolved evt) {
|
public SoundEffectType visit(final GameEventSpellResolved evt) {
|
||||||
if (evt.spell == null ) {
|
if (evt.spell() == null ) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
final Card source = evt.spell.getHostCard();
|
final Card source = evt.spell().getHostCard();
|
||||||
if (evt.spell.isSpell()) {
|
if (evt.spell().isSpell()) {
|
||||||
// if there's a specific effect for this particular card, play it and
|
// if there's a specific effect for this particular card, play it and
|
||||||
// we're done.
|
// we're done.
|
||||||
if (hasSpecificCardEffect(source)) {
|
if (hasSpecificCardEffect(source)) {
|
||||||
@@ -167,7 +167,7 @@ public class EventVisualizer extends IGameEventVisitor.Base<SoundEffectType> imp
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public SoundEffectType visit(final GameEventCardTapped event) {
|
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
|
@Override
|
||||||
public SoundEffectType visit(GameEventZone event) {
|
public SoundEffectType visit(GameEventZone event) {
|
||||||
Card card = event.card;
|
Card card = event.card();
|
||||||
ZoneType zoneTo = event.zoneType;
|
ZoneType zoneTo = event.zoneType();
|
||||||
EventValueChangeType zoneEventMode = event.mode;
|
EventValueChangeType zoneEventMode = event.mode();
|
||||||
SoundEffectType resultSound = null;
|
SoundEffectType resultSound = null;
|
||||||
if(zoneEventMode == EventValueChangeType.Added && zoneTo == ZoneType.Battlefield) {
|
if(zoneEventMode == EventValueChangeType.Added && zoneTo == ZoneType.Battlefield) {
|
||||||
if(card.isLand()) {
|
if(card.isLand()) {
|
||||||
@@ -335,12 +335,11 @@ public class EventVisualizer extends IGameEventVisitor.Base<SoundEffectType> imp
|
|||||||
public String getScriptedSoundEffectName(final GameEvent evt) {
|
public String getScriptedSoundEffectName(final GameEvent evt) {
|
||||||
Card c = null;
|
Card c = null;
|
||||||
|
|
||||||
if (evt instanceof GameEventSpellResolved) {
|
if (evt instanceof GameEventSpellResolved evSpell) {
|
||||||
c = ((GameEventSpellResolved) evt).spell.getHostCard();
|
c = evSpell.spell().getHostCard();
|
||||||
} else if (evt instanceof GameEventZone) {
|
} else if (evt instanceof GameEventZone evZone) {
|
||||||
GameEventZone evZone = (GameEventZone)evt;
|
if (evZone.zoneType() == ZoneType.Battlefield && evZone.mode() == EventValueChangeType.Added && evZone.card().isLand()) {
|
||||||
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
|
||||||
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
|
@Override
|
||||||
public SoundEffectType visit(final UiEventBlockerAssigned event) {
|
public SoundEffectType visit(final UiEventBlockerAssigned event) {
|
||||||
return event.attackerBeingBlocked == null ? null : SoundEffectType.Block;
|
return event.attackerBeingBlocked() == null ? null : SoundEffectType.Block;
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public SoundEffectType visit(final UiEventAttackerDeclared event) {
|
public SoundEffectType visit(final UiEventAttackerDeclared event) {
|
||||||
|
|||||||
Reference in New Issue
Block a user