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 class GameEvent {
|
||||||
|
|
||||||
|
public abstract <T,U> U visit(IGameEventVisitor<T, U> visitor, T params);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,11 @@
|
|||||||
package forge.game.event;
|
package forge.game.event;
|
||||||
|
|
||||||
public class GameEventBlockerAssigned extends GameEvent {
|
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;
|
package forge.game.event;
|
||||||
|
|
||||||
public class GameEventCardDamaged extends GameEvent {
|
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;
|
package forge.game.event;
|
||||||
|
|
||||||
public class GameEventCardDestroyed extends GameEvent {
|
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;
|
package forge.game.event;
|
||||||
|
|
||||||
public class GameEventCardDiscarded extends GameEvent {
|
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;
|
package forge.game.event;
|
||||||
|
|
||||||
public class GameEventCardEquipped extends GameEvent {
|
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;
|
package forge.game.event;
|
||||||
|
|
||||||
public class GameEventCardRegenerated extends GameEvent {
|
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;
|
package forge.game.event;
|
||||||
|
|
||||||
public class GameEventCardSacrificed extends GameEvent {
|
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) {
|
public GameEventCardTapped(boolean tapped) {
|
||||||
Tapped = 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) {
|
public GameEventCardsAnted(Iterable<Pair<Player,Card>> cardz) {
|
||||||
cards = 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) {
|
public GameEventCounterAdded(int n) {
|
||||||
Amount = 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) {
|
public GameEventCounterRemoved(int n) {
|
||||||
Amount = 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;
|
package forge.game.event;
|
||||||
|
|
||||||
public class GameEventDrawCard extends GameEvent {
|
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;
|
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.result = lastOne;
|
||||||
this.history = history;
|
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;
|
package forge.game.event;
|
||||||
|
|
||||||
public class GameEventEndOfTurn extends GameEvent {
|
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;
|
package forge.game.event;
|
||||||
|
|
||||||
public class GameEventFlipCoin extends GameEvent {
|
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;
|
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;
|
package forge.game.event;
|
||||||
|
|
||||||
public class GameEventLifeLoss extends GameEvent {
|
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;
|
package forge.game.event;
|
||||||
|
|
||||||
public class GameEventManaBurn extends GameEvent {
|
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) {
|
public GameEventMulligan(Player p) {
|
||||||
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;
|
oldController = old;
|
||||||
newController = new1;
|
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) {
|
public GameEventPoisonCounter(Player recv, Card src) {
|
||||||
this(recv, src, 1);
|
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;
|
package forge.game.event;
|
||||||
|
|
||||||
public class GameEventShuffle extends GameEvent {
|
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;
|
package forge.game.event;
|
||||||
|
|
||||||
public class GameEventTokenCreated extends GameEvent {
|
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;
|
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