From b76a3c3efa831da3b4735c0bb4d460fa311b9703 Mon Sep 17 00:00:00 2001 From: Ryan1729 Date: Wed, 11 Sep 2019 21:23:27 -0600 Subject: [PATCH 1/5] several mechanical refactorings --- .../src/main/java/forge/game/GameAction.java | 29 ++++++++-------- .../src/main/java/forge/game/GameEntity.java | 13 ++++---- .../forge/game/GameEntityCounterTable.java | 7 ++-- .../src/main/java/forge/game/PlanarDice.java | 12 ++++--- .../java/forge/game/ability/AbilityKey.java | 20 ++++++++++- .../game/ability/effects/AbandonEffect.java | 7 ++-- .../ability/effects/BecomesBlockedEffect.java | 15 +++++---- .../game/ability/effects/BlockEffect.java | 33 ++++++++++--------- .../ability/effects/ChangeZoneAllEffect.java | 9 ++--- .../ability/effects/ChangeZoneEffect.java | 16 ++++----- .../game/ability/effects/ClashEffect.java | 12 ++++--- .../ability/effects/CountersPutEffect.java | 27 +++++++-------- .../gamesimulationtests/util/GameWrapper.java | 4 +-- 13 files changed, 117 insertions(+), 87 deletions(-) diff --git a/forge-game/src/main/java/forge/game/GameAction.java b/forge-game/src/main/java/forge/game/GameAction.java index 69b1d10f3e0..c5b5c47c041 100644 --- a/forge-game/src/main/java/forge/game/GameAction.java +++ b/forge-game/src/main/java/forge/game/GameAction.java @@ -894,10 +894,10 @@ public class GameAction { // preList means that this is run by a pre Check with LKI objects // in that case Always trigger should not Run if (preList.isEmpty()) { - final Map runParams = Maps.newHashMap(); - game.getTriggerHandler().runTriggerOld(TriggerType.Always, runParams, false); + final Map runParams = AbilityKey.newMap(); + game.getTriggerHandler().runTrigger(TriggerType.Always, runParams, false); - game.getTriggerHandler().runTriggerOld(TriggerType.Immediate, runParams, false); + game.getTriggerHandler().runTrigger(TriggerType.Immediate, runParams, false); } // Update P/T and type in the view only once after all the cards have been processed, to avoid flickering @@ -1416,10 +1416,10 @@ public class GameAction { game.fireEvent(new GameEventCardDestroyed()); // Run triggers - final Map runParams = Maps.newHashMap(); - runParams.put("Card", c); - runParams.put("Causer", activator); - game.getTriggerHandler().runTriggerOld(TriggerType.Destroyed, runParams, false); + final Map runParams = AbilityKey.newMap(); + runParams.put(AbilityKey.Card, c); + runParams.put(AbilityKey.Causer, activator); + game.getTriggerHandler().runTrigger(TriggerType.Destroyed, runParams, false); final Card sacrificed = sacrificeDestroy(c, sa, table); return sacrificed != null; @@ -1596,8 +1596,7 @@ public class GameAction { checkStateEffects(true); // why? // Run Trigger beginning of the game - final Map runParams = Maps.newHashMap(); - game.getTriggerHandler().runTriggerOld(TriggerType.NewGame, runParams, true); + game.getTriggerHandler().runTrigger(TriggerType.NewGame, AbilityKey.newMap(), true); // @@ -1760,9 +1759,9 @@ public class GameAction { game.setMonarch(p); // Run triggers - final Map runParams = Maps.newHashMap(); - runParams.put("Player", p); - game.getTriggerHandler().runTriggerOld(TriggerType.BecomeMonarch, runParams, false); + final Map runParams = AbilityKey.newMap(); + runParams.put(AbilityKey.Player, p); + game.getTriggerHandler().runTrigger(TriggerType.BecomeMonarch, runParams, false); } // Make scry an action function so that it can be used for mulligans (with a null cause) @@ -1822,9 +1821,9 @@ public class GameAction { if (cause != null) { // set up triggers (but not actually do them until later) - final Map runParams = Maps.newHashMap(); - runParams.put("Player", p); - game.getTriggerHandler().runTriggerOld(TriggerType.Scry, runParams, false); + final Map runParams = AbilityKey.newMap(); + runParams.put(AbilityKey.Player, p); + game.getTriggerHandler().runTrigger(TriggerType.Scry, runParams, false); } } } diff --git a/forge-game/src/main/java/forge/game/GameEntity.java b/forge-game/src/main/java/forge/game/GameEntity.java index 17e9d24350b..3445ce9a5ad 100644 --- a/forge-game/src/main/java/forge/game/GameEntity.java +++ b/forge-game/src/main/java/forge/game/GameEntity.java @@ -17,6 +17,7 @@ */ package forge.game; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.card.CardCollection; import forge.game.card.CardCollectionView; @@ -214,13 +215,13 @@ public abstract class GameEntity extends GameObject implements IIdentifiable { int prevent = damage - restDamage; preventMap.put(source, this, damage - restDamage); - final Map runParams = Maps.newHashMap(); - runParams.put("DamageTarget", this); - runParams.put("DamageAmount", prevent); - runParams.put("DamageSource", source); - runParams.put("IsCombatDamage", isCombat); + final Map runParams = AbilityKey.newMap(); + runParams.put(AbilityKey.DamageTarget, this); + runParams.put(AbilityKey.DamageAmount, prevent); + runParams.put(AbilityKey.DamageSource, source); + runParams.put(AbilityKey.IsCombatDamage, isCombat); - getGame().getTriggerHandler().runTriggerOld(TriggerType.DamagePrevented, runParams, false); + getGame().getTriggerHandler().runTrigger(TriggerType.DamagePrevented, runParams, false); } return restDamage; diff --git a/forge-game/src/main/java/forge/game/GameEntityCounterTable.java b/forge-game/src/main/java/forge/game/GameEntityCounterTable.java index 2c563dc2ad5..d8c7b9b3403 100644 --- a/forge-game/src/main/java/forge/game/GameEntityCounterTable.java +++ b/forge-game/src/main/java/forge/game/GameEntityCounterTable.java @@ -7,6 +7,7 @@ import com.google.common.collect.HashBasedTable; import com.google.common.collect.Maps; import com.google.common.collect.Table; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.card.CounterType; import forge.game.spellability.SpellAbility; @@ -47,9 +48,9 @@ public class GameEntityCounterTable extends ForwardingTable runParams = Maps.newHashMap(); - runParams.put("Objects", this); - game.getTriggerHandler().runTriggerOld(TriggerType.CounterAddedAll, runParams, false); + final Map runParams = AbilityKey.newMap(); + runParams.put(AbilityKey.Objects, this); + game.getTriggerHandler().runTrigger(TriggerType.CounterAddedAll, runParams, false); } } } diff --git a/forge-game/src/main/java/forge/game/PlanarDice.java b/forge-game/src/main/java/forge/game/PlanarDice.java index 0d1f34454e0..f2e813d2464 100644 --- a/forge-game/src/main/java/forge/game/PlanarDice.java +++ b/forge-game/src/main/java/forge/game/PlanarDice.java @@ -1,9 +1,11 @@ package forge.game; +import forge.game.ability.AbilityKey; import forge.game.player.Player; import forge.game.trigger.TriggerType; import java.util.HashMap; +import java.util.Map; import com.google.common.collect.ImmutableList; @@ -35,11 +37,11 @@ public enum PlanarDice { { trigRes = Chaos; } - - HashMap runParams = new HashMap<>(); - runParams.put("Player", roller); - runParams.put("Result", trigRes); - roller.getGame().getTriggerHandler().runTriggerOld(TriggerType.PlanarDice, runParams,false); + + final Map runParams = AbilityKey.newMap(); + runParams.put(AbilityKey.Player, roller); + runParams.put(AbilityKey.Result, trigRes); + roller.getGame().getTriggerHandler().runTrigger(TriggerType.PlanarDice, runParams,false); return res; diff --git a/forge-game/src/main/java/forge/game/ability/AbilityKey.java b/forge-game/src/main/java/forge/game/ability/AbilityKey.java index ca91b6b9cb8..1bc101b9679 100644 --- a/forge-game/src/main/java/forge/game/ability/AbilityKey.java +++ b/forge-game/src/main/java/forge/game/ability/AbilityKey.java @@ -7,23 +7,41 @@ import java.util.EnumMap; */ public enum AbilityKey { Affected("Affected"), + Attacker("Attacker"), Attackers("Attackers"), AttackingPlayer("AttackingPlayer"), AttackedTarget("AttackedTarget"), + Blocker("Blocker"), + Blockers("Blockers"), Card("Card"), CardLKI("CardLKI"), Cause("Cause"), + Causer("Causer"), + Championed("Championed"), CounteredSA("CounteredSA"), + DamageAmount("DamageAmount"), + DamageSource("DamageSource"), + DamageTarget("DamageTarget"), + Defender("Defender"), + DefendingPlayer("DefendingPlayer"), Destination("Destination"), Event("Event"), Fizzle("Fizzle"), + IsCombatDamage("IsCombatDamage"), Player("Player"), IndividualCostPaymentInstance("IndividualCostPaymentInstance"), + MonstrosityAmount("MonstrosityAmount"), + NumBlockers("NumBlockers"), + Objects("Objects"), Origin("Origin"), OriginalController("OriginalController"), + Result("Result"), + Scheme("Scheme"), SpellAbilityStackInstance("SpellAbilityStackInstance"), StackSa("StackSa"), - StackSi("StackSi"); + StackSi("StackSi"), + Target("Target"), + Won("Won"); private String key; diff --git a/forge-game/src/main/java/forge/game/ability/effects/AbandonEffect.java b/forge-game/src/main/java/forge/game/ability/effects/AbandonEffect.java index d8b5a8da432..93775b47b26 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/AbandonEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/AbandonEffect.java @@ -2,6 +2,7 @@ package forge.game.ability.effects; import com.google.common.collect.Maps; import forge.game.Game; +import forge.game.ability.AbilityKey; import forge.game.ability.SpellAbilityEffect; import forge.game.card.Card; import forge.game.player.Player; @@ -40,9 +41,9 @@ public class AbandonEffect extends SpellAbilityEffect { controller.getZone(ZoneType.SchemeDeck).add(source); // Run triggers - final Map runParams = Maps.newHashMap(); - runParams.put("Scheme", source); - game.getTriggerHandler().runTriggerOld(TriggerType.Abandoned, runParams, false); + final Map runParams = AbilityKey.newMap(); + runParams.put(AbilityKey.Scheme, source); + game.getTriggerHandler().runTrigger(TriggerType.Abandoned, runParams, false); } } diff --git a/forge-game/src/main/java/forge/game/ability/effects/BecomesBlockedEffect.java b/forge-game/src/main/java/forge/game/ability/effects/BecomesBlockedEffect.java index 439d3a3427e..3e8a614f416 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/BecomesBlockedEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/BecomesBlockedEffect.java @@ -1,6 +1,7 @@ package forge.game.ability.effects; import forge.game.Game; +import forge.game.ability.AbilityKey; import forge.game.ability.SpellAbilityEffect; import forge.game.card.Card; import forge.game.event.GameEventCombatChanged; @@ -40,13 +41,13 @@ public class BecomesBlockedEffect extends SpellAbilityEffect { game.getCombat().setBlocked(c, true); if (!c.getDamageHistory().getCreatureGotBlockedThisCombat()) { isCombatChanged = true; - final Map runParams = Maps.newHashMap(); - runParams.put("Attacker", c); - runParams.put("Blockers", Lists.newArrayList()); - runParams.put("NumBlockers", 0); - runParams.put("Defender", game.getCombat().getDefenderByAttacker(c)); - runParams.put("DefendingPlayer", game.getCombat().getDefenderPlayerByAttacker(c)); - game.getTriggerHandler().runTriggerOld(TriggerType.AttackerBlocked, runParams, false); + final Map runParams = AbilityKey.newMap(); + runParams.put(AbilityKey.Attacker, c); + runParams.put(AbilityKey.Blockers, Lists.newArrayList()); + runParams.put(AbilityKey.NumBlockers, 0); + runParams.put(AbilityKey.Defender, game.getCombat().getDefenderByAttacker(c)); + runParams.put(AbilityKey.DefendingPlayer, game.getCombat().getDefenderPlayerByAttacker(c)); + game.getTriggerHandler().runTrigger(TriggerType.AttackerBlocked, runParams, false); } } } diff --git a/forge-game/src/main/java/forge/game/ability/effects/BlockEffect.java b/forge-game/src/main/java/forge/game/ability/effects/BlockEffect.java index 0cf19582560..65ae08c6cb2 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/BlockEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/BlockEffect.java @@ -1,6 +1,7 @@ package forge.game.ability.effects; import com.google.common.collect.Maps; +import forge.game.ability.AbilityKey; import forge.game.ability.AbilityUtils; import forge.game.ability.SpellAbilityEffect; import forge.game.card.Card; @@ -53,26 +54,28 @@ public class BlockEffect extends SpellAbilityEffect { blocker.addBlockedThisTurn(attacker); attacker.addBlockedByThisTurn(blocker); - Map runParams = Maps.newHashMap(); - runParams.put("Attacker", attacker); - runParams.put("Blocker", blocker); - game.getTriggerHandler().runTriggerOld(TriggerType.AttackerBlockedByCreature, runParams, false); + { + final Map runParams = AbilityKey.newMap(); + runParams.put(AbilityKey.Attacker, attacker); + runParams.put(AbilityKey.Blocker, blocker); + game.getTriggerHandler().runTrigger(TriggerType.AttackerBlockedByCreature, runParams, false); + } - runParams = Maps.newHashMap(); - runParams.put("Blocker", blocker); - runParams.put("Attackers", attacker); - game.getTriggerHandler().runTriggerOld(TriggerType.Blocks, runParams, false); + final Map runParams = AbilityKey.newMap(); + runParams.put(AbilityKey.Blocker, blocker); + runParams.put(AbilityKey.Attackers, attacker); + game.getTriggerHandler().runTrigger(TriggerType.Blocks, runParams, false); } attacker.getDamageHistory().setCreatureGotBlockedThisCombat(true); if (!wasBlocked) { - final Map runParams = Maps.newHashMap(); - runParams.put("Attacker", attacker); - runParams.put("Blockers", blockers); - runParams.put("NumBlockers", blockers.size()); - runParams.put("Defender", combat.getDefenderByAttacker(attacker)); - runParams.put("DefendingPlayer", combat.getDefenderPlayerByAttacker(attacker)); - game.getTriggerHandler().runTriggerOld(TriggerType.AttackerBlocked, runParams, false); + final Map runParams = AbilityKey.newMap(); + runParams.put(AbilityKey.Attacker, attacker); + runParams.put(AbilityKey.Blockers, blockers); + runParams.put(AbilityKey.NumBlockers, blockers.size()); + runParams.put(AbilityKey.Defender, combat.getDefenderByAttacker(attacker)); + runParams.put(AbilityKey.DefendingPlayer, combat.getDefenderPlayerByAttacker(attacker)); + game.getTriggerHandler().runTrigger(TriggerType.AttackerBlocked, runParams, false); combat.orderBlockersForDamageAssignment(attacker, new CardCollection(blockers)); } diff --git a/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneAllEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneAllEffect.java index f8e4cf98f94..27c5373d882 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneAllEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneAllEffect.java @@ -4,6 +4,7 @@ import com.google.common.collect.Iterables; import com.google.common.collect.Maps; import forge.game.Game; import forge.game.GameActionUtil; +import forge.game.ability.AbilityKey; import forge.game.ability.AbilityUtils; import forge.game.ability.SpellAbilityEffect; import forge.game.card.*; @@ -79,10 +80,10 @@ public class ChangeZoneAllEffect extends SpellAbilityEffect { if (!libCards.isEmpty()) { sa.getActivatingPlayer().getController().reveal(libCards, ZoneType.Library, libCards.get(0).getOwner()); } - final Map runParams = Maps.newHashMap(); - runParams.put("Player", sa.getActivatingPlayer()); - runParams.put("Target", tgtPlayers); - game.getTriggerHandler().runTriggerOld(TriggerType.SearchedLibrary, runParams, false); + final Map runParams = AbilityKey.newMap(); + runParams.put(AbilityKey.Player, sa.getActivatingPlayer()); + runParams.put(AbilityKey.Target, tgtPlayers); + game.getTriggerHandler().runTrigger(TriggerType.SearchedLibrary, runParams, false); } if (origin.contains(ZoneType.Hand) && sa.hasParam("Search")) { CardCollection handCards = CardLists.filterControlledBy(CardLists.getValidCards(cards, "Card.inZoneHand", sa.getActivatingPlayer(), source), diff --git a/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java index 15bf33bec46..4f51bc6a346 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java @@ -831,10 +831,10 @@ public class ChangeZoneEffect extends SpellAbilityEffect { } } } - final Map runParams = Maps.newHashMap(); - runParams.put("Player", decider); - runParams.put("Target", Lists.newArrayList(player)); - decider.getGame().getTriggerHandler().runTriggerOld(TriggerType.SearchedLibrary, runParams, false); + final Map runParams = AbilityKey.newMap(); + runParams.put(AbilityKey.Player, decider); + runParams.put(AbilityKey.Target, Lists.newArrayList(player)); + decider.getGame().getTriggerHandler().runTrigger(TriggerType.SearchedLibrary, runParams, false); } if (!defined && changeType != null) { @@ -1132,10 +1132,10 @@ public class ChangeZoneEffect extends SpellAbilityEffect { } if (champion) { - final Map runParams = Maps.newHashMap(); - runParams.put("Card", source); - runParams.put("Championed", c); - game.getTriggerHandler().runTriggerOld(TriggerType.Championed, runParams, false); + final Map runParams = AbilityKey.newMap(); + runParams.put(AbilityKey.Card, source); + runParams.put(AbilityKey.Championed, c); + game.getTriggerHandler().runTrigger(TriggerType.Championed, runParams, false); } if (remember) { diff --git a/forge-game/src/main/java/forge/game/ability/effects/ClashEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ClashEffect.java index 7e3b4ce2b90..72b976e24bc 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ClashEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ClashEffect.java @@ -2,6 +2,7 @@ package forge.game.ability.effects; import forge.game.GameAction; import forge.game.GameLogEntryType; +import forge.game.ability.AbilityKey; import forge.game.ability.AbilityUtils; import forge.game.ability.SpellAbilityEffect; import forge.game.card.Card; @@ -13,6 +14,7 @@ import forge.game.zone.PlayerZone; import forge.game.zone.ZoneType; import java.util.HashMap; +import java.util.Map; public class ClashEffect extends SpellAbilityEffect { @@ -32,8 +34,8 @@ public class ClashEffect extends SpellAbilityEffect { final boolean victory = clashWithOpponent(sa); // Run triggers - final HashMap runParams = new HashMap<>(); - runParams.put("Player", sa.getHostCard().getController()); + final Map runParams = AbilityKey.newMap(); + runParams.put(AbilityKey.Player, sa.getHostCard().getController()); if (victory) { @@ -42,18 +44,18 @@ public class ClashEffect extends SpellAbilityEffect { AbilityUtils.resolve(sub); } - runParams.put("Won", "True"); + runParams.put(AbilityKey.Won, "True"); } else { AbilitySub sub = sa.getAdditionalAbility("OtherwiseSubAbility"); if (sub != null) { AbilityUtils.resolve(sub); } - runParams.put("Won", "False"); + runParams.put(AbilityKey.Won, "False"); } - sa.getHostCard().getGame().getTriggerHandler().runTriggerOld(TriggerType.Clashed, runParams, false); + sa.getHostCard().getGame().getTriggerHandler().runTrigger(TriggerType.Clashed, runParams, false); } /** diff --git a/forge-game/src/main/java/forge/game/ability/effects/CountersPutEffect.java b/forge-game/src/main/java/forge/game/ability/effects/CountersPutEffect.java index 794c1d12794..d987813a7b8 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/CountersPutEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/CountersPutEffect.java @@ -8,6 +8,7 @@ import forge.game.Game; import forge.game.GameEntity; import forge.game.GameEntityCounterTable; import forge.game.GameObject; +import forge.game.ability.AbilityKey; import forge.game.ability.AbilityUtils; import forge.game.ability.SpellAbilityEffect; import forge.game.card.Card; @@ -260,29 +261,29 @@ public class CountersPutEffect extends SpellAbilityEffect { } if (sa.hasParam("Evolve")) { - final Map runParams = Maps.newHashMap(); - runParams.put("Card", tgtCard); - game.getTriggerHandler().runTriggerOld(TriggerType.Evolved, runParams, false); + final Map runParams = AbilityKey.newMap(); + runParams.put(AbilityKey.Card, tgtCard); + game.getTriggerHandler().runTrigger(TriggerType.Evolved, runParams, false); } if (sa.hasParam("Monstrosity")) { tgtCard.setMonstrous(true); - final Map runParams = Maps.newHashMap(); - runParams.put("Card", tgtCard); - runParams.put("MonstrosityAmount", counterAmount); - game.getTriggerHandler().runTriggerOld(TriggerType.BecomeMonstrous, runParams, false); + final Map runParams = AbilityKey.newMap(); + runParams.put(AbilityKey.Card, tgtCard); + runParams.put(AbilityKey.MonstrosityAmount, counterAmount); + game.getTriggerHandler().runTrigger(TriggerType.BecomeMonstrous, runParams, false); } if (sa.hasParam("Renown")) { tgtCard.setRenowned(true); - final Map runParams = Maps.newHashMap(); - runParams.put("Card", tgtCard); - game.getTriggerHandler().runTriggerOld(TriggerType.BecomeRenowned, runParams, false); + final Map runParams = AbilityKey.newMap(); + runParams.put(AbilityKey.Card, tgtCard); + game.getTriggerHandler().runTrigger(TriggerType.BecomeRenowned, runParams, false); } if (sa.hasParam("Adapt")) { // need to remove special keyword tgtCard.removeHiddenExtrinsicKeyword("CARDNAME adapts as though it had no +1/+1 counters"); - final Map runParams = Maps.newHashMap(); - runParams.put("Card", tgtCard); - game.getTriggerHandler().runTriggerOld(TriggerType.Adapt, runParams, false); + final Map runParams = AbilityKey.newMap(); + runParams.put(AbilityKey.Card, tgtCard); + game.getTriggerHandler().runTrigger(TriggerType.Adapt, runParams, false); } } else { // adding counters to something like re-suspend cards diff --git a/forge-gui-desktop/src/test/java/forge/gamesimulationtests/util/GameWrapper.java b/forge-gui-desktop/src/test/java/forge/gamesimulationtests/util/GameWrapper.java index c24457047fc..2e0c1b8ab31 100644 --- a/forge-gui-desktop/src/test/java/forge/gamesimulationtests/util/GameWrapper.java +++ b/forge-gui-desktop/src/test/java/forge/gamesimulationtests/util/GameWrapper.java @@ -2,6 +2,7 @@ package forge.gamesimulationtests.util; import forge.deck.Deck; import forge.game.*; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.event.GameEventGameFinished; import forge.game.player.Player; @@ -137,8 +138,7 @@ public class GameWrapper { //game.getAction().startGame( null ) determines starting player, draws starting hands, handles mulligans, and initiates the first turn //skip drawing initial hand and mulliganing game.setAge( GameStage.Play ); - final HashMap runParams = new HashMap<>(); - game.getTriggerHandler().runTriggerOld( TriggerType.NewGame, runParams, false ); + game.getTriggerHandler().runTrigger(TriggerType.NewGame, AbilityKey.newMap(), false); //first player in the list starts, no coin toss etc game.getPhaseHandler().startFirstTurn( game.getPlayers().get( 0 ) ); From 1dc5dc1ff6912b30e4be52f876eb867e395eddd3 Mon Sep 17 00:00:00 2001 From: Ryan1729 Date: Wed, 11 Sep 2019 21:24:11 -0600 Subject: [PATCH 2/5] automatically inline redundant variable --- .../ability/effects/CountersPutEffect.java | 49 +++++++++---------- 1 file changed, 24 insertions(+), 25 deletions(-) diff --git a/forge-game/src/main/java/forge/game/ability/effects/CountersPutEffect.java b/forge-game/src/main/java/forge/game/ability/effects/CountersPutEffect.java index d987813a7b8..9252f59957e 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/CountersPutEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/CountersPutEffect.java @@ -190,11 +190,10 @@ public class CountersPutEffect extends SpellAbilityEffect { } if (obj instanceof Card) { - Card tgtCard = gameCard; - counterAmount = sa.usesTargeting() && sa.hasParam("DividedAsYouChoose") ? sa.getTargetRestrictions().getDividedValue(tgtCard) : counterAmount; - if (!sa.usesTargeting() || tgtCard.canBeTargetedBy(sa)) { + counterAmount = sa.usesTargeting() && sa.hasParam("DividedAsYouChoose") ? sa.getTargetRestrictions().getDividedValue(gameCard) : counterAmount; + if (!sa.usesTargeting() || gameCard.canBeTargetedBy(sa)) { if (max != -1) { - counterAmount = Math.max(Math.min(max - tgtCard.getCounters(counterType), counterAmount), 0); + counterAmount = Math.max(Math.min(max - gameCard.getCounters(counterType), counterAmount), 0); } if (sa.hasParam("UpTo")) { Map params = Maps.newHashMap(); @@ -205,15 +204,15 @@ public class CountersPutEffect extends SpellAbilityEffect { // Adapt need extra logic if (sa.hasParam("Adapt")) { - if (!(tgtCard.getCounters(CounterType.P1P1) == 0 - || tgtCard.hasKeyword("CARDNAME adapts as though it had no +1/+1 counters"))) { + if (!(gameCard.getCounters(CounterType.P1P1) == 0 + || gameCard.hasKeyword("CARDNAME adapts as though it had no +1/+1 counters"))) { continue; } } if (sa.hasParam("Tribute")) { // make a copy to check if it would be on the battlefield - Card noTributeLKI = CardUtil.getLKICopy(tgtCard); + Card noTributeLKI = CardUtil.getLKICopy(gameCard); // this check needs to check if this card would be on the battlefield noTributeLKI.setLastKnownZone(activator.getZone(ZoneType.Battlefield)); @@ -236,65 +235,65 @@ public class CountersPutEffect extends SpellAbilityEffect { continue; } - String message = "Do you want to put " + counterAmount + " +1/+1 counters on " + tgtCard + " ?"; + String message = "Do you want to put " + counterAmount + " +1/+1 counters on " + gameCard + " ?"; Player chooser = pc.chooseSingleEntityForEffect(activator.getOpponents(), sa, "Choose an opponent"); if (chooser.getController().confirmAction(sa, PlayerActionConfirmMode.Tribute, message)) { - tgtCard.setTributed(true); + gameCard.setTributed(true); } else { continue; } } if (rememberCards) { - card.addRemembered(tgtCard); + card.addRemembered(gameCard); } - final Zone zone = tgtCard.getGame().getZoneOf(tgtCard); + final Zone zone = gameCard.getGame().getZoneOf(gameCard); if (zone == null || zone.is(ZoneType.Battlefield) || zone.is(ZoneType.Stack)) { if (etbcounter) { - tgtCard.addEtbCounter(counterType, counterAmount, placer); + gameCard.addEtbCounter(counterType, counterAmount, placer); } else { - tgtCard.addCounter(counterType, counterAmount, placer, true, table); + gameCard.addCounter(counterType, counterAmount, placer, true, table); } if (remember) { - final int value = tgtCard.getTotalCountersToAdd(); - tgtCard.addCountersAddedBy(card, counterType, value); + final int value = gameCard.getTotalCountersToAdd(); + gameCard.addCountersAddedBy(card, counterType, value); } if (sa.hasParam("Evolve")) { final Map runParams = AbilityKey.newMap(); - runParams.put(AbilityKey.Card, tgtCard); + runParams.put(AbilityKey.Card, gameCard); game.getTriggerHandler().runTrigger(TriggerType.Evolved, runParams, false); } if (sa.hasParam("Monstrosity")) { - tgtCard.setMonstrous(true); + gameCard.setMonstrous(true); final Map runParams = AbilityKey.newMap(); - runParams.put(AbilityKey.Card, tgtCard); + runParams.put(AbilityKey.Card, gameCard); runParams.put(AbilityKey.MonstrosityAmount, counterAmount); game.getTriggerHandler().runTrigger(TriggerType.BecomeMonstrous, runParams, false); } if (sa.hasParam("Renown")) { - tgtCard.setRenowned(true); + gameCard.setRenowned(true); final Map runParams = AbilityKey.newMap(); - runParams.put(AbilityKey.Card, tgtCard); + runParams.put(AbilityKey.Card, gameCard); game.getTriggerHandler().runTrigger(TriggerType.BecomeRenowned, runParams, false); } if (sa.hasParam("Adapt")) { // need to remove special keyword - tgtCard.removeHiddenExtrinsicKeyword("CARDNAME adapts as though it had no +1/+1 counters"); + gameCard.removeHiddenExtrinsicKeyword("CARDNAME adapts as though it had no +1/+1 counters"); final Map runParams = AbilityKey.newMap(); - runParams.put(AbilityKey.Card, tgtCard); + runParams.put(AbilityKey.Card, gameCard); game.getTriggerHandler().runTrigger(TriggerType.Adapt, runParams, false); } } else { // adding counters to something like re-suspend cards // etbcounter should apply multiplier if (etbcounter) { - tgtCard.addEtbCounter(counterType, counterAmount, placer); + gameCard.addEtbCounter(counterType, counterAmount, placer); } else { - tgtCard.addCounter(counterType, counterAmount, placer, false, table); + gameCard.addCounter(counterType, counterAmount, placer, false, table); } } - game.updateLastStateForCard(tgtCard); + game.updateLastStateForCard(gameCard); } } else if (obj instanceof Player) { // Add Counters to players! From bbcb59f64fe8b41afdb20818ceb70a7905ae7ff1 Mon Sep 17 00:00:00 2001 From: Ryan1729 Date: Wed, 11 Sep 2019 22:00:38 -0600 Subject: [PATCH 3/5] more mechanical transformations --- .../main/java/forge/game/ability/AbilityKey.java | 2 ++ .../forge/game/ability/effects/ExploreEffect.java | 7 ++++--- .../forge/game/ability/effects/FightEffect.java | 7 ++++--- .../forge/game/ability/effects/FlipCoinEffect.java | 9 +++++---- .../game/ability/effects/PlayLandVariantEffect.java | 7 ++++--- .../forge/game/spellability/AbilityManaPart.java | 13 ++++++------- 6 files changed, 25 insertions(+), 20 deletions(-) diff --git a/forge-game/src/main/java/forge/game/ability/AbilityKey.java b/forge-game/src/main/java/forge/game/ability/AbilityKey.java index 1bc101b9679..36de93230a6 100644 --- a/forge-game/src/main/java/forge/game/ability/AbilityKey.java +++ b/forge-game/src/main/java/forge/game/ability/AbilityKey.java @@ -26,6 +26,7 @@ public enum AbilityKey { DefendingPlayer("DefendingPlayer"), Destination("Destination"), Event("Event"), + Fighter("Fighter"), Fizzle("Fizzle"), IsCombatDamage("IsCombatDamage"), Player("Player"), @@ -35,6 +36,7 @@ public enum AbilityKey { Objects("Objects"), Origin("Origin"), OriginalController("OriginalController"), + Produced("Produced"), Result("Result"), Scheme("Scheme"), SpellAbilityStackInstance("SpellAbilityStackInstance"), diff --git a/forge-game/src/main/java/forge/game/ability/effects/ExploreEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ExploreEffect.java index 84f3011eae5..8af4bbe7f12 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ExploreEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ExploreEffect.java @@ -4,6 +4,7 @@ import com.google.common.collect.Lists; import com.google.common.collect.Maps; import forge.game.Game; import forge.game.GameEntityCounterTable; +import forge.game.ability.AbilityKey; import forge.game.ability.SpellAbilityEffect; import forge.game.card.Card; import forge.game.card.CardCollection; @@ -83,9 +84,9 @@ public class ExploreEffect extends SpellAbilityEffect { } // a creature does explore even if it isn't on the battlefield anymore - final Map runParams = Maps.newHashMap(); - runParams.put("Card", c); - game.getTriggerHandler().runTriggerOld(TriggerType.Explores, runParams, false); + final Map runParams = AbilityKey.newMap(); + runParams.put(AbilityKey.Card, c); + game.getTriggerHandler().runTrigger(TriggerType.Explores, runParams, false); } table.triggerCountersPutAll(game); } diff --git a/forge-game/src/main/java/forge/game/ability/effects/FightEffect.java b/forge-game/src/main/java/forge/game/ability/effects/FightEffect.java index 7a37952795e..e6db4b4f643 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/FightEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/FightEffect.java @@ -5,6 +5,7 @@ import com.google.common.collect.Maps; import forge.game.Game; import forge.game.GameEntityCounterTable; +import forge.game.ability.AbilityKey; import forge.game.ability.AbilityUtils; import forge.game.card.Card; import forge.game.card.CardDamageMap; @@ -59,9 +60,9 @@ public class FightEffect extends DamageBaseEffect { dealDamage(sa, fighters.get(0), fighters.get(1)); for (Card c : fighters) { - final Map runParams = Maps.newHashMap(); - runParams.put("Fighter", c); - game.getTriggerHandler().runTriggerOld(TriggerType.Fight, runParams, false); + final Map runParams = AbilityKey.newMap(); + runParams.put(AbilityKey.Fighter, c); + game.getTriggerHandler().runTrigger(TriggerType.Fight, runParams, false); } } diff --git a/forge-game/src/main/java/forge/game/ability/effects/FlipCoinEffect.java b/forge-game/src/main/java/forge/game/ability/effects/FlipCoinEffect.java index b8277d91df2..a504e4e9997 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/FlipCoinEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/FlipCoinEffect.java @@ -2,6 +2,7 @@ package forge.game.ability.effects; import com.google.common.collect.Maps; import forge.game.GameObject; +import forge.game.ability.AbilityKey; import forge.game.ability.AbilityUtils; import forge.game.ability.SpellAbilityEffect; import forge.game.card.Card; @@ -209,10 +210,10 @@ public class FlipCoinEffect extends SpellAbilityEffect { caller.getGame().getAction().nofityOfValue(sa, caller, wonFlip ? "win" : "lose", null); // Run triggers - Map runParams = Maps.newHashMap(); - runParams.put("Player", caller); - runParams.put("Result", Boolean.valueOf(wonFlip)); - caller.getGame().getTriggerHandler().runTriggerOld(TriggerType.FlippedCoin, runParams, false); + final Map runParams = AbilityKey.newMap(); + runParams.put(AbilityKey.Player, caller); + runParams.put(AbilityKey.Result, wonFlip); + caller.getGame().getTriggerHandler().runTrigger(TriggerType.FlippedCoin, runParams, false); } while (sa.hasParam("FlipUntilYouLose") && wonFlip); if (sa.hasParam("FlipUntilYouLose") && sa.hasAdditionalAbility("LoseSubAbility")) { diff --git a/forge-game/src/main/java/forge/game/ability/effects/PlayLandVariantEffect.java b/forge-game/src/main/java/forge/game/ability/effects/PlayLandVariantEffect.java index 3ebc5ea63bb..50f3c3bc214 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/PlayLandVariantEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/PlayLandVariantEffect.java @@ -10,6 +10,7 @@ import forge.card.CardRulesPredicates; import forge.card.ColorSet; import forge.card.MagicColor; import forge.game.Game; +import forge.game.ability.AbilityKey; import forge.game.ability.SpellAbilityEffect; import forge.game.card.Card; import forge.game.card.CardFactory; @@ -80,9 +81,9 @@ public class PlayLandVariantEffect extends SpellAbilityEffect { game.fireEvent(new GameEventLandPlayed(activator, source)); // Run triggers - final Map runParams = Maps.newHashMap(); - runParams.put("Card", source); - game.getTriggerHandler().runTriggerOld(TriggerType.LandPlayed, runParams, false); + final Map runParams = AbilityKey.newMap(); + runParams.put(AbilityKey.Card, source); + game.getTriggerHandler().runTrigger(TriggerType.LandPlayed, runParams, false); game.getStack().unfreezeStack(); activator.addLandPlayedThisTurn(); } diff --git a/forge-game/src/main/java/forge/game/spellability/AbilityManaPart.java b/forge-game/src/main/java/forge/game/spellability/AbilityManaPart.java index fb9c486269b..031843a49a0 100644 --- a/forge-game/src/main/java/forge/game/spellability/AbilityManaPart.java +++ b/forge-game/src/main/java/forge/game/spellability/AbilityManaPart.java @@ -23,6 +23,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import forge.card.mana.ManaAtom; +import forge.game.ability.AbilityKey; import forge.game.trigger.Trigger; import forge.game.trigger.TriggerHandler; import forge.util.TextUtil; @@ -166,13 +167,11 @@ public class AbilityManaPart implements java.io.Serializable { manaPool.add(this.lastManaProduced); // Run triggers - final Map runParams = Maps.newHashMap(); - - runParams.put("Card", source); - runParams.put("Player", player); - runParams.put("AbilityMana", sa); - runParams.put("Produced", afterReplace); - player.getGame().getTriggerHandler().runTriggerOld(TriggerType.TapsForMana, runParams, false); + final Map runParams = AbilityKey.mapFromCard(source); + runParams.put(AbilityKey.Player, player); + runParams.put(AbilityKey.AbilityMana, sa); + runParams.put(AbilityKey.Produced, afterReplace); + player.getGame().getTriggerHandler().runTrigger(TriggerType.TapsForMana, runParams, false); if (source.isLand()) { player.setTappedLandForManaThisTurn(true); } From d4ad098293077a0695354d1b7d62e0cecc6f6df1 Mon Sep 17 00:00:00 2001 From: Ryan1729 Date: Wed, 11 Sep 2019 22:13:02 -0600 Subject: [PATCH 4/5] add helper method for the common case of passing down the card --- .../src/main/java/forge/game/GameAction.java | 15 +++++---------- .../main/java/forge/game/ability/AbilityKey.java | 11 +++++++++++ .../game/ability/effects/ChangeZoneEffect.java | 3 +-- .../forge/game/ability/effects/CounterEffect.java | 3 +-- .../game/ability/effects/CountersPutEffect.java | 15 ++++----------- .../forge/game/ability/effects/ExploreEffect.java | 4 +--- .../ability/effects/PlayLandVariantEffect.java | 4 +--- 7 files changed, 24 insertions(+), 31 deletions(-) diff --git a/forge-game/src/main/java/forge/game/GameAction.java b/forge-game/src/main/java/forge/game/GameAction.java index c5b5c47c041..cebd914147e 100644 --- a/forge-game/src/main/java/forge/game/GameAction.java +++ b/forge-game/src/main/java/forge/game/GameAction.java @@ -400,8 +400,7 @@ public class GameAction { // play the change zone sound game.fireEvent(new GameEventCardChangeZone(c, zoneFrom, zoneTo)); - final Map runParams = AbilityKey.newMap(); - runParams.put(AbilityKey.Card, lastKnownInfo); + final Map runParams = AbilityKey.mapFromCard(lastKnownInfo); runParams.put(AbilityKey.Cause, cause); runParams.put(AbilityKey.Origin, zoneFrom != null ? zoneFrom.getZoneType().name() : null); runParams.put(AbilityKey.Destination, zoneTo.getZoneType().name()); @@ -414,8 +413,7 @@ public class GameAction { game.getTriggerHandler().runTrigger(TriggerType.ChangesZone, runParams, true); if (zoneFrom != null && zoneFrom.is(ZoneType.Battlefield) && !zoneFrom.getPlayer().equals(zoneTo.getPlayer())) { - final Map runParams2 = AbilityKey.newMap(); - runParams2.put(AbilityKey.Card, lastKnownInfo); + final Map runParams2 = AbilityKey.mapFromCard(lastKnownInfo); runParams2.put(AbilityKey.OriginalController, zoneFrom.getPlayer()); if(params != null) { runParams2.putAll(params); @@ -600,8 +598,7 @@ public class GameAction { c.setTurnInZone(tiz); c.setCameUnderControlSinceLastUpkeep(true); - final Map runParams = AbilityKey.newMap(); - runParams.put(AbilityKey.Card, c); + final Map runParams = AbilityKey.mapFromCard(c); runParams.put(AbilityKey.OriginalController, original); game.getTriggerHandler().runTrigger(TriggerType.ChangesController, runParams, false); @@ -699,8 +696,7 @@ public class GameAction { final Card copied = moveTo(removed, c, cause, params); // Run triggers - final Map runParams = AbilityKey.newMap(); - runParams.put(AbilityKey.Card, c); + final Map runParams = AbilityKey.mapFromCard(c); runParams.put(AbilityKey.Cause, cause); runParams.put(AbilityKey.Origin, origin.getZoneType().name()); if (params != null) { @@ -1416,8 +1412,7 @@ public class GameAction { game.fireEvent(new GameEventCardDestroyed()); // Run triggers - final Map runParams = AbilityKey.newMap(); - runParams.put(AbilityKey.Card, c); + final Map runParams = AbilityKey.mapFromCard(c); runParams.put(AbilityKey.Causer, activator); game.getTriggerHandler().runTrigger(TriggerType.Destroyed, runParams, false); diff --git a/forge-game/src/main/java/forge/game/ability/AbilityKey.java b/forge-game/src/main/java/forge/game/ability/AbilityKey.java index 36de93230a6..8e9edbb1619 100644 --- a/forge-game/src/main/java/forge/game/ability/AbilityKey.java +++ b/forge-game/src/main/java/forge/game/ability/AbilityKey.java @@ -1,11 +1,15 @@ package forge.game.ability; +import forge.game.card.Card; + import java.util.EnumMap; +import java.util.Map; /** * Keys for Ability parameter maps. */ public enum AbilityKey { + AbilityMana("AbilityMana"), Affected("Affected"), Attacker("Attacker"), Attackers("Attackers"), @@ -60,4 +64,11 @@ public enum AbilityKey { public static EnumMap newMap() { return new EnumMap<>(AbilityKey.class); } + + public static Map mapFromCard(forge.game.card.Card card) { + final Map runParams = newMap(); + + runParams.put(Card, card); + return runParams; + } } diff --git a/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java index 4f51bc6a346..dd42e5314f6 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java @@ -1132,8 +1132,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect { } if (champion) { - final Map runParams = AbilityKey.newMap(); - runParams.put(AbilityKey.Card, source); + final Map runParams = AbilityKey.mapFromCard(source); runParams.put(AbilityKey.Championed, c); game.getTriggerHandler().runTrigger(TriggerType.Championed, runParams, false); } diff --git a/forge-game/src/main/java/forge/game/ability/effects/CounterEffect.java b/forge-game/src/main/java/forge/game/ability/effects/CounterEffect.java index aec5f8f4e28..54b961f0954 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/CounterEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/CounterEffect.java @@ -209,9 +209,8 @@ public class CounterEffect extends SpellAbilityEffect { + srcSA.getHostCard().getName()); } // Run triggers - final Map runParams = AbilityKey.newMap(); + final Map runParams = AbilityKey.mapFromCard(tgtSA.getHostCard()); runParams.put(AbilityKey.Player, tgtSA.getActivatingPlayer()); - runParams.put(AbilityKey.Card, tgtSA.getHostCard()); runParams.put(AbilityKey.Cause, srcSA.getHostCard()); runParams.put(AbilityKey.CounteredSA, tgtSA); game.getTriggerHandler().runTrigger(TriggerType.Countered, runParams, false); diff --git a/forge-game/src/main/java/forge/game/ability/effects/CountersPutEffect.java b/forge-game/src/main/java/forge/game/ability/effects/CountersPutEffect.java index 9252f59957e..607e12f3593 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/CountersPutEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/CountersPutEffect.java @@ -260,29 +260,22 @@ public class CountersPutEffect extends SpellAbilityEffect { } if (sa.hasParam("Evolve")) { - final Map runParams = AbilityKey.newMap(); - runParams.put(AbilityKey.Card, gameCard); - game.getTriggerHandler().runTrigger(TriggerType.Evolved, runParams, false); + game.getTriggerHandler().runTrigger(TriggerType.Evolved, AbilityKey.mapFromCard(gameCard), false); } if (sa.hasParam("Monstrosity")) { gameCard.setMonstrous(true); - final Map runParams = AbilityKey.newMap(); - runParams.put(AbilityKey.Card, gameCard); + final Map runParams = AbilityKey.mapFromCard(gameCard); runParams.put(AbilityKey.MonstrosityAmount, counterAmount); game.getTriggerHandler().runTrigger(TriggerType.BecomeMonstrous, runParams, false); } if (sa.hasParam("Renown")) { gameCard.setRenowned(true); - final Map runParams = AbilityKey.newMap(); - runParams.put(AbilityKey.Card, gameCard); - game.getTriggerHandler().runTrigger(TriggerType.BecomeRenowned, runParams, false); + game.getTriggerHandler().runTrigger(TriggerType.BecomeRenowned, AbilityKey.mapFromCard(gameCard), false); } if (sa.hasParam("Adapt")) { // need to remove special keyword gameCard.removeHiddenExtrinsicKeyword("CARDNAME adapts as though it had no +1/+1 counters"); - final Map runParams = AbilityKey.newMap(); - runParams.put(AbilityKey.Card, gameCard); - game.getTriggerHandler().runTrigger(TriggerType.Adapt, runParams, false); + game.getTriggerHandler().runTrigger(TriggerType.Adapt, AbilityKey.mapFromCard(gameCard), false); } } else { // adding counters to something like re-suspend cards diff --git a/forge-game/src/main/java/forge/game/ability/effects/ExploreEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ExploreEffect.java index 8af4bbe7f12..729db2de1e6 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ExploreEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ExploreEffect.java @@ -84,9 +84,7 @@ public class ExploreEffect extends SpellAbilityEffect { } // a creature does explore even if it isn't on the battlefield anymore - final Map runParams = AbilityKey.newMap(); - runParams.put(AbilityKey.Card, c); - game.getTriggerHandler().runTrigger(TriggerType.Explores, runParams, false); + game.getTriggerHandler().runTrigger(TriggerType.Explores, AbilityKey.mapFromCard(c), false); } table.triggerCountersPutAll(game); } diff --git a/forge-game/src/main/java/forge/game/ability/effects/PlayLandVariantEffect.java b/forge-game/src/main/java/forge/game/ability/effects/PlayLandVariantEffect.java index 50f3c3bc214..04221428240 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/PlayLandVariantEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/PlayLandVariantEffect.java @@ -81,9 +81,7 @@ public class PlayLandVariantEffect extends SpellAbilityEffect { game.fireEvent(new GameEventLandPlayed(activator, source)); // Run triggers - final Map runParams = AbilityKey.newMap(); - runParams.put(AbilityKey.Card, source); - game.getTriggerHandler().runTrigger(TriggerType.LandPlayed, runParams, false); + game.getTriggerHandler().runTrigger(TriggerType.LandPlayed, AbilityKey.mapFromCard(source), false); game.getStack().unfreezeStack(); activator.addLandPlayedThisTurn(); } From 520c5290acdf7921242d6f7b954e5a049a6e8df5 Mon Sep 17 00:00:00 2001 From: Ryan1729 Date: Wed, 11 Sep 2019 22:22:55 -0600 Subject: [PATCH 5/5] remove unneeded imports --- forge-game/src/main/java/forge/game/PlanarDice.java | 1 - forge-game/src/main/java/forge/game/ability/AbilityKey.java | 2 -- .../src/main/java/forge/game/ability/effects/AbandonEffect.java | 1 - .../java/forge/game/ability/effects/BecomesBlockedEffect.java | 1 - .../src/main/java/forge/game/ability/effects/BlockEffect.java | 1 - .../java/forge/game/ability/effects/ChangeZoneAllEffect.java | 1 - .../main/java/forge/game/ability/effects/ChangeZoneEffect.java | 1 - .../src/main/java/forge/game/ability/effects/ClashEffect.java | 1 - .../src/main/java/forge/game/ability/effects/ExploreEffect.java | 2 -- .../src/main/java/forge/game/ability/effects/FightEffect.java | 1 - .../main/java/forge/game/ability/effects/FlipCoinEffect.java | 1 - .../java/forge/game/ability/effects/PlayLandVariantEffect.java | 2 -- 12 files changed, 15 deletions(-) diff --git a/forge-game/src/main/java/forge/game/PlanarDice.java b/forge-game/src/main/java/forge/game/PlanarDice.java index f2e813d2464..a0aef3692bb 100644 --- a/forge-game/src/main/java/forge/game/PlanarDice.java +++ b/forge-game/src/main/java/forge/game/PlanarDice.java @@ -4,7 +4,6 @@ import forge.game.ability.AbilityKey; import forge.game.player.Player; import forge.game.trigger.TriggerType; -import java.util.HashMap; import java.util.Map; import com.google.common.collect.ImmutableList; diff --git a/forge-game/src/main/java/forge/game/ability/AbilityKey.java b/forge-game/src/main/java/forge/game/ability/AbilityKey.java index 8e9edbb1619..8564a6e92bb 100644 --- a/forge-game/src/main/java/forge/game/ability/AbilityKey.java +++ b/forge-game/src/main/java/forge/game/ability/AbilityKey.java @@ -1,7 +1,5 @@ package forge.game.ability; -import forge.game.card.Card; - import java.util.EnumMap; import java.util.Map; diff --git a/forge-game/src/main/java/forge/game/ability/effects/AbandonEffect.java b/forge-game/src/main/java/forge/game/ability/effects/AbandonEffect.java index 93775b47b26..b748ce2d4a5 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/AbandonEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/AbandonEffect.java @@ -1,6 +1,5 @@ package forge.game.ability.effects; -import com.google.common.collect.Maps; import forge.game.Game; import forge.game.ability.AbilityKey; import forge.game.ability.SpellAbilityEffect; diff --git a/forge-game/src/main/java/forge/game/ability/effects/BecomesBlockedEffect.java b/forge-game/src/main/java/forge/game/ability/effects/BecomesBlockedEffect.java index 3e8a614f416..e5e1c594061 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/BecomesBlockedEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/BecomesBlockedEffect.java @@ -12,7 +12,6 @@ import forge.game.trigger.TriggerType; import org.apache.commons.lang3.StringUtils; import com.google.common.collect.Lists; -import com.google.common.collect.Maps; import java.util.List; import java.util.Map; diff --git a/forge-game/src/main/java/forge/game/ability/effects/BlockEffect.java b/forge-game/src/main/java/forge/game/ability/effects/BlockEffect.java index 65ae08c6cb2..5737a68e3e2 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/BlockEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/BlockEffect.java @@ -1,6 +1,5 @@ package forge.game.ability.effects; -import com.google.common.collect.Maps; import forge.game.ability.AbilityKey; import forge.game.ability.AbilityUtils; import forge.game.ability.SpellAbilityEffect; diff --git a/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneAllEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneAllEffect.java index 27c5373d882..c636bfd9117 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneAllEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneAllEffect.java @@ -1,7 +1,6 @@ package forge.game.ability.effects; import com.google.common.collect.Iterables; -import com.google.common.collect.Maps; import forge.game.Game; import forge.game.GameActionUtil; import forge.game.ability.AbilityKey; diff --git a/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java index dd42e5314f6..7debeb1d96a 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ChangeZoneEffect.java @@ -4,7 +4,6 @@ import com.google.common.base.Predicate; import com.google.common.base.Predicates; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; -import com.google.common.collect.Maps; import forge.GameCommand; import forge.card.CardStateName; import forge.game.Game; diff --git a/forge-game/src/main/java/forge/game/ability/effects/ClashEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ClashEffect.java index 72b976e24bc..332d0ced088 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ClashEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ClashEffect.java @@ -13,7 +13,6 @@ import forge.game.trigger.TriggerType; import forge.game.zone.PlayerZone; import forge.game.zone.ZoneType; -import java.util.HashMap; import java.util.Map; public class ClashEffect extends SpellAbilityEffect { diff --git a/forge-game/src/main/java/forge/game/ability/effects/ExploreEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ExploreEffect.java index 729db2de1e6..4b4586fb1de 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ExploreEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ExploreEffect.java @@ -1,7 +1,6 @@ package forge.game.ability.effects; import com.google.common.collect.Lists; -import com.google.common.collect.Maps; import forge.game.Game; import forge.game.GameEntityCounterTable; import forge.game.ability.AbilityKey; @@ -17,7 +16,6 @@ import forge.game.zone.ZoneType; import forge.util.Lang; import java.util.List; -import java.util.Map; public class ExploreEffect extends SpellAbilityEffect { diff --git a/forge-game/src/main/java/forge/game/ability/effects/FightEffect.java b/forge-game/src/main/java/forge/game/ability/effects/FightEffect.java index e6db4b4f643..1596cbea793 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/FightEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/FightEffect.java @@ -1,7 +1,6 @@ package forge.game.ability.effects; import com.google.common.collect.Lists; -import com.google.common.collect.Maps; import forge.game.Game; import forge.game.GameEntityCounterTable; diff --git a/forge-game/src/main/java/forge/game/ability/effects/FlipCoinEffect.java b/forge-game/src/main/java/forge/game/ability/effects/FlipCoinEffect.java index a504e4e9997..be2dc1333f1 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/FlipCoinEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/FlipCoinEffect.java @@ -1,6 +1,5 @@ package forge.game.ability.effects; -import com.google.common.collect.Maps; import forge.game.GameObject; import forge.game.ability.AbilityKey; import forge.game.ability.AbilityUtils; diff --git a/forge-game/src/main/java/forge/game/ability/effects/PlayLandVariantEffect.java b/forge-game/src/main/java/forge/game/ability/effects/PlayLandVariantEffect.java index 04221428240..89a522c63e5 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/PlayLandVariantEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/PlayLandVariantEffect.java @@ -4,7 +4,6 @@ import com.google.common.base.Predicate; import com.google.common.base.Predicates; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; -import com.google.common.collect.Maps; import forge.StaticData; import forge.card.CardRulesPredicates; import forge.card.ColorSet; @@ -24,7 +23,6 @@ import forge.item.PaperCard; import forge.util.Aggregates; import java.util.List; -import java.util.Map; public class PlayLandVariantEffect extends SpellAbilityEffect {