mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 19:28:01 +00:00
Applied visitor patter to GameEvents - this is aimed to remove switches on (instanceof event) in event consumers (log, fcontrol, sound)
This commit is contained in:
@@ -2,4 +2,5 @@ package forge.game.event;
|
||||
|
||||
public abstract class GameEvent {
|
||||
|
||||
public abstract <T,U> U visit(IGameEventVisitor<T, U> visitor, T params);
|
||||
}
|
||||
|
||||
@@ -1,4 +1,11 @@
|
||||
package forge.game.event;
|
||||
|
||||
public class GameEventBlockerAssigned extends GameEvent {
|
||||
|
||||
@Override
|
||||
public <T, U> U visit(IGameEventVisitor<T, U> visitor, T params) {
|
||||
return visitor.visit(this, params);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,4 +1,10 @@
|
||||
package forge.game.event;
|
||||
|
||||
public class GameEventCardDamaged extends GameEvent {
|
||||
|
||||
@Override
|
||||
public <T, U> U visit(IGameEventVisitor<T, U> visitor, T params) {
|
||||
return visitor.visit(this, params);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,4 +1,10 @@
|
||||
package forge.game.event;
|
||||
|
||||
public class GameEventCardDestroyed extends GameEvent {
|
||||
|
||||
@Override
|
||||
public <T, U> U visit(IGameEventVisitor<T, U> visitor, T params) {
|
||||
return visitor.visit(this, params);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,4 +1,10 @@
|
||||
package forge.game.event;
|
||||
|
||||
public class GameEventCardDiscarded extends GameEvent {
|
||||
|
||||
@Override
|
||||
public <T, U> U visit(IGameEventVisitor<T, U> visitor, T params) {
|
||||
return visitor.visit(this, params);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
package forge.game.event;
|
||||
|
||||
public class GameEventCardEquipped extends GameEvent {
|
||||
|
||||
@Override
|
||||
public <T, U> U visit(IGameEventVisitor<T, U> visitor, T params) {
|
||||
return visitor.visit(this, params);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
package forge.game.event;
|
||||
|
||||
public class GameEventCardRegenerated extends GameEvent {
|
||||
|
||||
@Override
|
||||
public <T, U> U visit(IGameEventVisitor<T, U> visitor, T params) {
|
||||
return visitor.visit(this, params);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
package forge.game.event;
|
||||
|
||||
public class GameEventCardSacrificed extends GameEvent {
|
||||
|
||||
@Override
|
||||
public <T, U> U visit(IGameEventVisitor<T, U> visitor, T params) {
|
||||
return visitor.visit(this, params);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,4 +6,10 @@ public class GameEventCardTapped extends GameEvent {
|
||||
public GameEventCardTapped(boolean tapped) {
|
||||
Tapped = tapped;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public <T, U> U visit(IGameEventVisitor<T, U> visitor, T params) {
|
||||
return visitor.visit(this, params);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,4 +10,10 @@ public class GameEventCardsAnted extends GameEvent {
|
||||
public GameEventCardsAnted(Iterable<Pair<Player,Card>> cardz) {
|
||||
cards = cardz;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public <T, U> U visit(IGameEventVisitor<T, U> visitor, T params) {
|
||||
return visitor.visit(this, params);
|
||||
}
|
||||
}
|
||||
@@ -6,4 +6,9 @@ public class GameEventCounterAdded extends GameEvent {
|
||||
public GameEventCounterAdded(int n) {
|
||||
Amount = n;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T, U> U visit(IGameEventVisitor<T, U> visitor, T params) {
|
||||
return visitor.visit(this, params);
|
||||
}
|
||||
}
|
||||
@@ -10,4 +10,9 @@ public class GameEventCounterRemoved extends GameEvent {
|
||||
public GameEventCounterRemoved(int n) {
|
||||
Amount = n;
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T, U> U visit(IGameEventVisitor<T, U> visitor, T params) {
|
||||
return visitor.visit(this, params);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,10 @@
|
||||
package forge.game.event;
|
||||
|
||||
public class GameEventDrawCard extends GameEvent {
|
||||
|
||||
|
||||
@Override
|
||||
public <T, U> U visit(IGameEventVisitor<T, U> visitor, T params) {
|
||||
return visitor.visit(this, params);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,12 @@
|
||||
package forge.game.event;
|
||||
|
||||
public class GameEventDuelFinished extends GameEvent {} // need this class to launch after log was built via previous event
|
||||
public class GameEventDuelFinished extends GameEvent {
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public <T, U> U visit(IGameEventVisitor<T, U> visitor, T params) {
|
||||
return visitor.visit(this, params);
|
||||
}
|
||||
|
||||
} // need this class to launch after log was built via previous event
|
||||
@@ -12,4 +12,10 @@ public class GameEventDuelOutcome extends GameEvent {
|
||||
this.result = lastOne;
|
||||
this.history = history;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public <T, U> U visit(IGameEventVisitor<T, U> visitor, T params) {
|
||||
return visitor.visit(this, params);
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,10 @@
|
||||
package forge.game.event;
|
||||
|
||||
public class GameEventEndOfTurn extends GameEvent {
|
||||
|
||||
|
||||
@Override
|
||||
public <T, U> U visit(IGameEventVisitor<T, U> visitor, T params) {
|
||||
return visitor.visit(this, params);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,10 @@
|
||||
package forge.game.event;
|
||||
|
||||
public class GameEventFlipCoin extends GameEvent {
|
||||
|
||||
|
||||
@Override
|
||||
public <T, U> U visit(IGameEventVisitor<T, U> visitor, T params) {
|
||||
return visitor.visit(this, params);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,4 +14,9 @@ public class GameEventGameRestarted extends GameEvent {
|
||||
whoRestarted = playerTurn;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public <T, U> U visit(IGameEventVisitor<T, U> visitor, T params) {
|
||||
return visitor.visit(this, params);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,4 +14,9 @@ public class GameEventLandPlayed extends GameEvent {
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public <T, U> U visit(IGameEventVisitor<T, U> visitor, T params) {
|
||||
return visitor.visit(this, params);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
package forge.game.event;
|
||||
|
||||
public class GameEventLifeLoss extends GameEvent {
|
||||
|
||||
@Override
|
||||
public <T, U> U visit(IGameEventVisitor<T, U> visitor, T params) {
|
||||
return visitor.visit(this, params);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,10 @@
|
||||
package forge.game.event;
|
||||
|
||||
public class GameEventManaBurn extends GameEvent {
|
||||
|
||||
|
||||
@Override
|
||||
public <T, U> U visit(IGameEventVisitor<T, U> visitor, T params) {
|
||||
return visitor.visit(this, params);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,4 +12,10 @@ public class GameEventMulligan extends GameEvent {
|
||||
public GameEventMulligan(Player p) {
|
||||
player = p;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public <T, U> U visit(IGameEventVisitor<T, U> visitor, T params) {
|
||||
return visitor.visit(this, params);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,4 +13,10 @@ public class GameEventPlayerControl extends GameEvent {
|
||||
oldController = old;
|
||||
newController = new1;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public <T, U> U visit(IGameEventVisitor<T, U> visitor, T params) {
|
||||
return visitor.visit(this, params);
|
||||
}
|
||||
}
|
||||
@@ -21,4 +21,10 @@ public class GameEventPoisonCounter extends GameEvent {
|
||||
public GameEventPoisonCounter(Player recv, Card src) {
|
||||
this(recv, src, 1);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public <T, U> U visit(IGameEventVisitor<T, U> visitor, T params) {
|
||||
return visitor.visit(this, params);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
package forge.game.event;
|
||||
|
||||
public class GameEventShuffle extends GameEvent {
|
||||
|
||||
@Override
|
||||
public <T, U> U visit(IGameEventVisitor<T, U> visitor, T params) {
|
||||
return visitor.visit(this, params);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,4 +24,9 @@ public class GameEventSpellResolved extends GameEvent {
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public <T, U> U visit(IGameEventVisitor<T, U> visitor, T params) {
|
||||
return visitor.visit(this, params);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,10 @@
|
||||
package forge.game.event;
|
||||
|
||||
public class GameEventTokenCreated extends GameEvent {
|
||||
|
||||
|
||||
@Override
|
||||
public <T, U> U visit(IGameEventVisitor<T, U> visitor, T params) {
|
||||
return visitor.visit(this, params);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,4 +19,9 @@ public class GameEventTurnPhase extends GameEvent {
|
||||
phaseDesc = desc;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public <T, U> U visit(IGameEventVisitor<T, U> visitor, T params) {
|
||||
return visitor.visit(this, params);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user