diff --git a/forge-ai/src/main/java/forge/ai/GameState.java b/forge-ai/src/main/java/forge/ai/GameState.java index 6edd9ffb70e..653a31a799e 100644 --- a/forge-ai/src/main/java/forge/ai/GameState.java +++ b/forge-ai/src/main/java/forge/ai/GameState.java @@ -25,6 +25,7 @@ import forge.game.phase.PhaseType; import forge.game.player.Player; import forge.game.spellability.AbilityManaPart; import forge.game.spellability.SpellAbility; +import forge.game.ability.AbilityKey; import forge.game.trigger.TriggerType; import forge.game.zone.PlayerZone; import forge.game.zone.ZoneType; @@ -719,10 +720,10 @@ public abstract class GameState { for (final Card c : combat.getAttackers()) { attackedTarget.add(combat.getDefenderByAttacker(c)); } - final Map runParams = Maps.newHashMap(); - runParams.put("Attackers", combat.getAttackers()); - runParams.put("AttackingPlayer", combat.getAttackingPlayer()); - runParams.put("AttackedTarget", attackedTarget); + final Map runParams = Maps.newEnumMap(AbilityKey.class); + runParams.put(AbilityKey.Attackers, combat.getAttackers()); + runParams.put(AbilityKey.AttackingPlayer, combat.getAttackingPlayer()); + runParams.put(AbilityKey.AttackedTarget, attackedTarget); game.getTriggerHandler().runTrigger(TriggerType.AttackersDeclared, runParams, false); } diff --git a/forge-game/src/main/java/forge/game/Game.java b/forge-game/src/main/java/forge/game/Game.java index e138ed9a402..6dd97c370c1 100644 --- a/forge-game/src/main/java/forge/game/Game.java +++ b/forge-game/src/main/java/forge/game/Game.java @@ -715,7 +715,7 @@ public class Game { final Map runParams = new TreeMap<>(); runParams.put("Player", p); - getTriggerHandler().runTrigger(TriggerType.LosesGame, runParams, false); + getTriggerHandler().runTriggerOld(TriggerType.LosesGame, runParams, false); } /** diff --git a/forge-game/src/main/java/forge/game/GameAction.java b/forge-game/src/main/java/forge/game/GameAction.java index 39f6041fefd..8176841ed7f 100644 --- a/forge-game/src/main/java/forge/game/GameAction.java +++ b/forge-game/src/main/java/forge/game/GameAction.java @@ -411,7 +411,7 @@ public class GameAction { runParams.putAll(params); } - game.getTriggerHandler().runTrigger(TriggerType.ChangesZone, runParams, true); + game.getTriggerHandler().runTriggerOld(TriggerType.ChangesZone, runParams, true); if (zoneFrom != null && zoneFrom.is(ZoneType.Battlefield) && !zoneFrom.getPlayer().equals(zoneTo.getPlayer())) { final Map runParams2 = Maps.newHashMap(); runParams2.put("Card", lastKnownInfo); @@ -419,7 +419,7 @@ public class GameAction { if(params != null) { runParams2.putAll(params); } - game.getTriggerHandler().runTrigger(TriggerType.ChangesController, runParams2, false); + game.getTriggerHandler().runTriggerOld(TriggerType.ChangesController, runParams2, false); } // AllZone.getStack().chooseOrderOfSimultaneousStackEntryAll(); @@ -602,7 +602,7 @@ public class GameAction { final Map runParams = Maps.newHashMap(); runParams.put("Card", c); runParams.put("OriginalController", original); - game.getTriggerHandler().runTrigger(TriggerType.ChangesController, runParams, false); + game.getTriggerHandler().runTriggerOld(TriggerType.ChangesController, runParams, false); game.getTriggerHandler().clearSuppression(TriggerType.ChangesZone); for (Player p : game.getPlayers()) { @@ -717,7 +717,7 @@ public class GameAction { runParams.putAll(params); } - game.getTriggerHandler().runTrigger(TriggerType.Exiled, runParams, false); + game.getTriggerHandler().runTriggerOld(TriggerType.Exiled, runParams, false); return copied; } @@ -913,9 +913,9 @@ public class GameAction { // in that case Always trigger should not Run if (preList.isEmpty()) { final Map runParams = Maps.newHashMap(); - game.getTriggerHandler().runTrigger(TriggerType.Always, runParams, false); + game.getTriggerHandler().runTriggerOld(TriggerType.Always, runParams, false); - game.getTriggerHandler().runTrigger(TriggerType.Immediate, runParams, false); + game.getTriggerHandler().runTriggerOld(TriggerType.Immediate, runParams, false); } // Update P/T and type in the view only once after all the cards have been processed, to avoid flickering @@ -1437,7 +1437,7 @@ public class GameAction { final Map runParams = Maps.newHashMap(); runParams.put("Card", c); runParams.put("Causer", activator); - game.getTriggerHandler().runTrigger(TriggerType.Destroyed, runParams, false); + game.getTriggerHandler().runTriggerOld(TriggerType.Destroyed, runParams, false); final Card sacrificed = sacrificeDestroy(c, sa, table); return sacrificed != null; @@ -1615,7 +1615,7 @@ public class GameAction { // Run Trigger beginning of the game final Map runParams = Maps.newHashMap(); - game.getTriggerHandler().runTrigger(TriggerType.NewGame, runParams, true); + game.getTriggerHandler().runTriggerOld(TriggerType.NewGame, runParams, true); // @@ -1780,7 +1780,7 @@ public class GameAction { // Run triggers final Map runParams = Maps.newHashMap(); runParams.put("Player", p); - game.getTriggerHandler().runTrigger(TriggerType.BecomeMonarch, runParams, false); + game.getTriggerHandler().runTriggerOld(TriggerType.BecomeMonarch, runParams, false); } // Make scry an action function so that it can be used for mulligans (with a null cause) @@ -1842,7 +1842,7 @@ public class GameAction { // set up triggers (but not actually do them until later) final Map runParams = Maps.newHashMap(); runParams.put("Player", p); - game.getTriggerHandler().runTrigger(TriggerType.Scry, runParams, false); + game.getTriggerHandler().runTriggerOld(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 58ab4d02127..17e9d24350b 100644 --- a/forge-game/src/main/java/forge/game/GameEntity.java +++ b/forge-game/src/main/java/forge/game/GameEntity.java @@ -220,7 +220,7 @@ public abstract class GameEntity extends GameObject implements IIdentifiable { runParams.put("DamageSource", source); runParams.put("IsCombatDamage", isCombat); - getGame().getTriggerHandler().runTrigger(TriggerType.DamagePrevented, runParams, false); + getGame().getTriggerHandler().runTriggerOld(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 23035134714..2c563dc2ad5 100644 --- a/forge-game/src/main/java/forge/game/GameEntityCounterTable.java +++ b/forge-game/src/main/java/forge/game/GameEntityCounterTable.java @@ -49,7 +49,7 @@ public class GameEntityCounterTable extends ForwardingTable runParams = Maps.newHashMap(); runParams.put("Objects", this); - game.getTriggerHandler().runTrigger(TriggerType.CounterAddedAll, runParams, false); + game.getTriggerHandler().runTriggerOld(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 bdf3b292ed0..0d1f34454e0 100644 --- a/forge-game/src/main/java/forge/game/PlanarDice.java +++ b/forge-game/src/main/java/forge/game/PlanarDice.java @@ -39,7 +39,7 @@ public enum PlanarDice { HashMap runParams = new HashMap<>(); runParams.put("Player", roller); runParams.put("Result", trigRes); - roller.getGame().getTriggerHandler().runTrigger(TriggerType.PlanarDice, runParams,false); + roller.getGame().getTriggerHandler().runTriggerOld(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 new file mode 100644 index 00000000000..b48b2712f47 --- /dev/null +++ b/forge-game/src/main/java/forge/game/ability/AbilityKey.java @@ -0,0 +1,21 @@ +package forge.game.ability; + +/** + * Keys for Ability parameter maps. + */ +public enum AbilityKey { + Attackers("Attackers"), + AttackingPlayer("AttackingPlayer"), + AttackedTarget("AttackedTarget"); + + private String key; + + AbilityKey(String key) { + this.key = key; + } + + @Override + public String toString() { + return 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 fd476f789f3..d8b5a8da432 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 @@ -42,7 +42,7 @@ public class AbandonEffect extends SpellAbilityEffect { // Run triggers final Map runParams = Maps.newHashMap(); runParams.put("Scheme", source); - game.getTriggerHandler().runTrigger(TriggerType.Abandoned, runParams, false); + game.getTriggerHandler().runTriggerOld(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 92b882c2166..439d3a3427e 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 @@ -46,7 +46,7 @@ public class BecomesBlockedEffect extends SpellAbilityEffect { runParams.put("NumBlockers", 0); runParams.put("Defender", game.getCombat().getDefenderByAttacker(c)); runParams.put("DefendingPlayer", game.getCombat().getDefenderPlayerByAttacker(c)); - game.getTriggerHandler().runTrigger(TriggerType.AttackerBlocked, runParams, false); + game.getTriggerHandler().runTriggerOld(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 3ec32f0532e..0cf19582560 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 @@ -56,12 +56,12 @@ public class BlockEffect extends SpellAbilityEffect { Map runParams = Maps.newHashMap(); runParams.put("Attacker", attacker); runParams.put("Blocker", blocker); - game.getTriggerHandler().runTrigger(TriggerType.AttackerBlockedByCreature, runParams, false); + game.getTriggerHandler().runTriggerOld(TriggerType.AttackerBlockedByCreature, runParams, false); runParams = Maps.newHashMap(); runParams.put("Blocker", blocker); runParams.put("Attackers", attacker); - game.getTriggerHandler().runTrigger(TriggerType.Blocks, runParams, false); + game.getTriggerHandler().runTriggerOld(TriggerType.Blocks, runParams, false); } attacker.getDamageHistory().setCreatureGotBlockedThisCombat(true); @@ -72,7 +72,7 @@ public class BlockEffect extends SpellAbilityEffect { runParams.put("NumBlockers", blockers.size()); runParams.put("Defender", combat.getDefenderByAttacker(attacker)); runParams.put("DefendingPlayer", combat.getDefenderPlayerByAttacker(attacker)); - game.getTriggerHandler().runTrigger(TriggerType.AttackerBlocked, runParams, false); + game.getTriggerHandler().runTriggerOld(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 7292fcc8325..f8e4cf98f94 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 @@ -82,7 +82,7 @@ public class ChangeZoneAllEffect extends SpellAbilityEffect { final Map runParams = Maps.newHashMap(); runParams.put("Player", sa.getActivatingPlayer()); runParams.put("Target", tgtPlayers); - game.getTriggerHandler().runTrigger(TriggerType.SearchedLibrary, runParams, false); + game.getTriggerHandler().runTriggerOld(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 b18b305f9b9..f34202c6a64 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 @@ -833,7 +833,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect { final Map runParams = Maps.newHashMap(); runParams.put("Player", decider); runParams.put("Target", Lists.newArrayList(player)); - decider.getGame().getTriggerHandler().runTrigger(TriggerType.SearchedLibrary, runParams, false); + decider.getGame().getTriggerHandler().runTriggerOld(TriggerType.SearchedLibrary, runParams, false); } if (!defined && changeType != null) { @@ -1134,7 +1134,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect { final Map runParams = Maps.newHashMap(); runParams.put("Card", source); runParams.put("Championed", c); - game.getTriggerHandler().runTrigger(TriggerType.Championed, runParams, false); + game.getTriggerHandler().runTriggerOld(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 55d43b0c51e..7e3b4ce2b90 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 @@ -53,7 +53,7 @@ public class ClashEffect extends SpellAbilityEffect { } - sa.getHostCard().getGame().getTriggerHandler().runTrigger(TriggerType.Clashed, runParams, false); + sa.getHostCard().getGame().getTriggerHandler().runTriggerOld(TriggerType.Clashed, 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 c72323f4776..d7982b87546 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 @@ -213,7 +213,7 @@ public class CounterEffect extends SpellAbilityEffect { runParams.put("Card", tgtSA.getHostCard()); runParams.put("Cause", srcSA.getHostCard()); runParams.put("CounteredSA", tgtSA); - game.getTriggerHandler().runTrigger(TriggerType.Countered, runParams, false); + game.getTriggerHandler().runTriggerOld(TriggerType.Countered, runParams, false); if (!tgtSA.isAbility()) { 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 a16037a32ed..794c1d12794 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 @@ -262,27 +262,27 @@ public class CountersPutEffect extends SpellAbilityEffect { if (sa.hasParam("Evolve")) { final Map runParams = Maps.newHashMap(); runParams.put("Card", tgtCard); - game.getTriggerHandler().runTrigger(TriggerType.Evolved, runParams, false); + game.getTriggerHandler().runTriggerOld(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().runTrigger(TriggerType.BecomeMonstrous, runParams, false); + game.getTriggerHandler().runTriggerOld(TriggerType.BecomeMonstrous, runParams, false); } if (sa.hasParam("Renown")) { tgtCard.setRenowned(true); final Map runParams = Maps.newHashMap(); runParams.put("Card", tgtCard); - game.getTriggerHandler().runTrigger(TriggerType.BecomeRenowned, runParams, false); + game.getTriggerHandler().runTriggerOld(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().runTrigger(TriggerType.Adapt, runParams, false); + game.getTriggerHandler().runTriggerOld(TriggerType.Adapt, runParams, 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 0b01f6a1b25..84f3011eae5 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 @@ -85,7 +85,7 @@ 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().runTrigger(TriggerType.Explores, runParams, false); + game.getTriggerHandler().runTriggerOld(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 aa57af95f61..7a37952795e 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 @@ -61,7 +61,7 @@ public class FightEffect extends DamageBaseEffect { for (Card c : fighters) { final Map runParams = Maps.newHashMap(); runParams.put("Fighter", c); - game.getTriggerHandler().runTrigger(TriggerType.Fight, runParams, false); + game.getTriggerHandler().runTriggerOld(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 c23c2fb8f78..b8277d91df2 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 @@ -212,7 +212,7 @@ public class FlipCoinEffect extends SpellAbilityEffect { Map runParams = Maps.newHashMap(); runParams.put("Player", caller); runParams.put("Result", Boolean.valueOf(wonFlip)); - caller.getGame().getTriggerHandler().runTrigger(TriggerType.FlippedCoin, runParams, false); + caller.getGame().getTriggerHandler().runTriggerOld(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 a770165c299..3ebc5ea63bb 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 @@ -82,7 +82,7 @@ public class PlayLandVariantEffect extends SpellAbilityEffect { // Run triggers final Map runParams = Maps.newHashMap(); runParams.put("Card", source); - game.getTriggerHandler().runTrigger(TriggerType.LandPlayed, runParams, false); + game.getTriggerHandler().runTriggerOld(TriggerType.LandPlayed, runParams, false); game.getStack().unfreezeStack(); activator.addLandPlayedThisTurn(); } diff --git a/forge-game/src/main/java/forge/game/ability/effects/RegenerationEffect.java b/forge-game/src/main/java/forge/game/ability/effects/RegenerationEffect.java index 5aec79f7b97..b152fdd062e 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/RegenerationEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/RegenerationEffect.java @@ -47,7 +47,7 @@ public class RegenerationEffect extends SpellAbilityEffect { final Map runParams = Maps.newHashMap(); runParams.put("Card", c); runParams.put("Cause", host); - game.getTriggerHandler().runTrigger(TriggerType.Regenerated, runParams, false); + game.getTriggerHandler().runTriggerOld(TriggerType.Regenerated, runParams, false); } } diff --git a/forge-game/src/main/java/forge/game/ability/effects/RevealEffect.java b/forge-game/src/main/java/forge/game/ability/effects/RevealEffect.java index e0c5ac504af..369383598a1 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/RevealEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/RevealEffect.java @@ -81,7 +81,7 @@ public class RevealEffect extends SpellAbilityEffect { runParams.put("Miracle", true); } //*/ - game.getTriggerHandler().runTrigger(TriggerType.Revealed, runParams, false); + game.getTriggerHandler().runTriggerOld(TriggerType.Revealed, runParams, false); if (sa.hasParam("RememberRevealed")) { host.addRemembered(c); } diff --git a/forge-game/src/main/java/forge/game/ability/effects/SacrificeEffect.java b/forge-game/src/main/java/forge/game/ability/effects/SacrificeEffect.java index 367d9785286..25285e6d375 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/SacrificeEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/SacrificeEffect.java @@ -39,7 +39,7 @@ public class SacrificeEffect extends SpellAbilityEffect { final Map runParams = Maps.newHashMap(); runParams.put("EchoPaid", Boolean.valueOf(isPaid)); runParams.put("Card", card); - game.getTriggerHandler().runTrigger(TriggerType.PayEcho, runParams, false); + game.getTriggerHandler().runTriggerOld(TriggerType.PayEcho, runParams, false); if (isPaid || !card.getController().equals(activator)) { return; } @@ -69,7 +69,7 @@ public class SacrificeEffect extends SpellAbilityEffect { runParams.put("CumulativeUpkeepPaid", Boolean.valueOf(isPaid)); runParams.put("Card", card); runParams.put("PayingMana", StringUtils.join(sa.getPayingMana(), "")); - game.getTriggerHandler().runTrigger(TriggerType.PayCumulativeUpkeep, runParams, false); + game.getTriggerHandler().runTriggerOld(TriggerType.PayCumulativeUpkeep, runParams, false); if (isPaid || !card.getController().equals(activator)) { return; } @@ -149,14 +149,14 @@ public class SacrificeEffect extends SpellAbilityEffect { card.addDevoured(lKICopy); final Map runParams = Maps.newHashMap(); runParams.put("Devoured", sac); - game.getTriggerHandler().runTrigger(TriggerType.Devoured, runParams, false); + game.getTriggerHandler().runTriggerOld(TriggerType.Devoured, runParams, false); } if (exploit) { card.addExploited(lKICopy); final Map runParams = Maps.newHashMap(); runParams.put("Exploited", lKICopy); runParams.put("Card", card); - game.getTriggerHandler().runTrigger(TriggerType.Exploited, runParams, false); + game.getTriggerHandler().runTriggerOld(TriggerType.Exploited, runParams, false); } if (wasDestroyed || wasSacrificed) { countSacrificed++; diff --git a/forge-game/src/main/java/forge/game/ability/effects/SetInMotionEffect.java b/forge-game/src/main/java/forge/game/ability/effects/SetInMotionEffect.java index de911c66f39..702e4851a2c 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/SetInMotionEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/SetInMotionEffect.java @@ -48,7 +48,7 @@ public class SetInMotionEffect extends SpellAbilityEffect { // Run triggers final Map runParams = Maps.newHashMap(); runParams.put("Scheme", controller.getActiveScheme()); - game.getTriggerHandler().runTrigger(TriggerType.SetInMotion, runParams, false); + game.getTriggerHandler().runTriggerOld(TriggerType.SetInMotion, runParams, false); } else { controller.setSchemeInMotion(); } diff --git a/forge-game/src/main/java/forge/game/ability/effects/VoteEffect.java b/forge-game/src/main/java/forge/game/ability/effects/VoteEffect.java index 95e23fa199c..5c5e84e7c28 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/VoteEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/VoteEffect.java @@ -101,7 +101,7 @@ public class VoteEffect extends SpellAbilityEffect { final Map runParams = Maps.newHashMap(); runParams.put("AllVotes", votes); - game.getTriggerHandler().runTrigger(TriggerType.Vote, runParams, false); + game.getTriggerHandler().runTriggerOld(TriggerType.Vote, runParams, false); List subAbs = Lists.newArrayList(); final List mostVotes = getMostVotes(votes); diff --git a/forge-game/src/main/java/forge/game/card/Card.java b/forge-game/src/main/java/forge/game/card/Card.java index 9a10954b1f2..e77e4398587 100644 --- a/forge-game/src/main/java/forge/game/card/Card.java +++ b/forge-game/src/main/java/forge/game/card/Card.java @@ -569,7 +569,7 @@ public class Card extends GameEntity implements Comparable { getGame().getTriggerHandler().registerActiveTrigger(this, false); Map runParams = Maps.newHashMap(); runParams.put("Transformer", this); - getGame().getTriggerHandler().runTrigger(TriggerType.Transformed, runParams, false); + getGame().getTriggerHandler().runTriggerOld(TriggerType.Transformed, runParams, false); incrementTransformedTimestamp(); return result; @@ -689,7 +689,7 @@ public class Card extends GameEntity implements Comparable { getGame().getTriggerHandler().registerActiveTrigger(this, false); final Map runParams = Maps.newTreeMap(); runParams.put("Card", this); - getGame().getTriggerHandler().runTrigger(TriggerType.TurnFaceUp, runParams, false); + getGame().getTriggerHandler().runTriggerOld(TriggerType.TurnFaceUp, runParams, false); } return result; } @@ -1287,12 +1287,12 @@ public class Card extends GameEntity implements Comparable { runParams.put("CounterType", counterType); for (int i = 0; i < addAmount; i++) { runParams.put("CounterAmount", oldValue + i + 1); - getGame().getTriggerHandler().runTrigger( + getGame().getTriggerHandler().runTriggerOld( TriggerType.CounterAdded, Maps.newHashMap(runParams), false); } if (addAmount > 0) { runParams.put("CounterAmount", addAmount); - getGame().getTriggerHandler().runTrigger( + getGame().getTriggerHandler().runTriggerOld( TriggerType.CounterAddedOnce, Maps.newHashMap(runParams), false); } } else { @@ -1368,10 +1368,10 @@ public class Card extends GameEntity implements Comparable { runParams.put("CounterType", counterName); for (int i = 0; i < delta && curCounters != 0; i++) { runParams.put("NewCounterAmount", --curCounters); - getGame().getTriggerHandler().runTrigger(TriggerType.CounterRemoved, runParams, false); + getGame().getTriggerHandler().runTriggerOld(TriggerType.CounterRemoved, runParams, false); } runParams.put("CounterAmount", delta); - getGame().getTriggerHandler().runTrigger(TriggerType.CounterRemovedOnce, runParams, false); + getGame().getTriggerHandler().runTriggerOld(TriggerType.CounterRemovedOnce, runParams, false); } @Override @@ -2938,7 +2938,7 @@ public class Card extends GameEntity implements Comparable { final Map runParams = Maps.newHashMap(); runParams.put("AttachSource", this); runParams.put("AttachTarget", entity); - getController().getGame().getTriggerHandler().runTrigger(TriggerType.Attached, runParams, false); + getController().getGame().getTriggerHandler().runTriggerOld(TriggerType.Attached, runParams, false); } @@ -2960,7 +2960,7 @@ public class Card extends GameEntity implements Comparable { final Map runParams = Maps.newTreeMap(); runParams.put("Attach", this); runParams.put("Object", entity); - getGame().getTriggerHandler().runTrigger(TriggerType.Unattach, runParams, false); + getGame().getTriggerHandler().runTriggerOld(TriggerType.Unattach, runParams, false); runUnattachCommands(); } @@ -3519,7 +3519,7 @@ public class Card extends GameEntity implements Comparable { final Map runParams = Maps.newTreeMap(); runParams.put("Card", this); runParams.put("Attacker", attacker); - getGame().getTriggerHandler().runTrigger(TriggerType.Taps, runParams, false); + getGame().getTriggerHandler().runTriggerOld(TriggerType.Taps, runParams, false); setTapped(true); getGame().fireEvent(new GameEventCardTapped(this, true)); @@ -3540,7 +3540,7 @@ public class Card extends GameEntity implements Comparable { // Run triggers final Map runParams = Maps.newTreeMap(); runParams.put("Card", this); - getGame().getTriggerHandler().runTrigger(TriggerType.Untaps, runParams, false); + getGame().getTriggerHandler().runTriggerOld(TriggerType.Untaps, runParams, false); for (final GameCommand var : untapCommandList) { var.run(); @@ -4105,7 +4105,7 @@ public class Card extends GameEntity implements Comparable { if (!isPhasedOut()) { // If this is currently PhasedIn, it's about to phase out. // Run trigger before it does because triggers don't work with phased out objects - getGame().getTriggerHandler().runTrigger(TriggerType.PhaseOut, runParams, false); + getGame().getTriggerHandler().runTriggerOld(TriggerType.PhaseOut, runParams, false); } setPhasedOut(!phasedOut); @@ -4117,7 +4117,7 @@ public class Card extends GameEntity implements Comparable { if (!phasedOut) { // Just phased in, time to run the phased in trigger getGame().getTriggerHandler().registerActiveTrigger(this, false); - getGame().getTriggerHandler().runTrigger(TriggerType.PhaseIn, runParams, false); + getGame().getTriggerHandler().runTriggerOld(TriggerType.PhaseIn, runParams, false); } return true; @@ -4910,7 +4910,7 @@ public class Card extends GameEntity implements Comparable { } // Defending player at the time the damage was dealt runParams.put("DefendingPlayer", game.getCombat() != null ? game.getCombat().getDefendingPlayerRelatedTo(source) : null); - getGame().getTriggerHandler().runTrigger(TriggerType.DamageDone, runParams, false); + getGame().getTriggerHandler().runTriggerOld(TriggerType.DamageDone, runParams, false); GameEventCardDamaged.DamageType damageType = DamageType.Normal; if (isPlaneswalker()) { @@ -5011,7 +5011,7 @@ public class Card extends GameEntity implements Comparable { final Map runParams = Maps.newHashMap(); runParams.put("Card", this); runParams.put("Player", getController()); - game.getTriggerHandler().runTrigger(TriggerType.Exerted, runParams, false); + game.getTriggerHandler().runTriggerOld(TriggerType.Exerted, runParams, false); } public boolean isExertedBy(final Player player) { diff --git a/forge-game/src/main/java/forge/game/card/CardDamageMap.java b/forge-game/src/main/java/forge/game/card/CardDamageMap.java index 1c60aa83edd..f52e7e354d7 100644 --- a/forge-game/src/main/java/forge/game/card/CardDamageMap.java +++ b/forge-game/src/main/java/forge/game/card/CardDamageMap.java @@ -39,7 +39,7 @@ public class CardDamageMap extends ForwardingTable { runParams.put("DamageAmount", sum); runParams.put("IsCombatDamage", isCombat); - ge.getGame().getTriggerHandler().runTrigger(TriggerType.DamagePreventedOnce, runParams, false); + ge.getGame().getTriggerHandler().runTriggerOld(TriggerType.DamagePreventedOnce, runParams, false); } } } @@ -59,7 +59,7 @@ public class CardDamageMap extends ForwardingTable { runParams.put("DamageAmount", sum); runParams.put("IsCombatDamage", isCombat); - sourceLKI.getGame().getTriggerHandler().runTrigger(TriggerType.DamageDealtOnce, runParams, false); + sourceLKI.getGame().getTriggerHandler().runTriggerOld(TriggerType.DamageDealtOnce, runParams, false); if (sourceLKI.hasKeyword(Keyword.LIFELINK)) { sourceLKI.getController().gainLife(sum, sourceLKI, sa); @@ -80,7 +80,7 @@ public class CardDamageMap extends ForwardingTable { runParams.put("DamageAmount", sum); runParams.put("IsCombatDamage", isCombat); - ge.getGame().getTriggerHandler().runTrigger(TriggerType.DamageDoneOnce, runParams, false); + ge.getGame().getTriggerHandler().runTriggerOld(TriggerType.DamageDoneOnce, runParams, false); } } } diff --git a/forge-game/src/main/java/forge/game/card/CardZoneTable.java b/forge-game/src/main/java/forge/game/card/CardZoneTable.java index ebc710cb914..30dac0b5bf5 100644 --- a/forge-game/src/main/java/forge/game/card/CardZoneTable.java +++ b/forge-game/src/main/java/forge/game/card/CardZoneTable.java @@ -56,7 +56,7 @@ public class CardZoneTable extends ForwardingTable runParams = Maps.newHashMap(); runParams.put("Cards", new CardZoneTable(this)); - game.getTriggerHandler().runTrigger(TriggerType.ChangesZoneAll, runParams, false); + game.getTriggerHandler().runTriggerOld(TriggerType.ChangesZoneAll, runParams, false); } } diff --git a/forge-game/src/main/java/forge/game/combat/Combat.java b/forge-game/src/main/java/forge/game/combat/Combat.java index 7a85137e66c..81a242bce9e 100644 --- a/forge-game/src/main/java/forge/game/combat/Combat.java +++ b/forge-game/src/main/java/forge/game/combat/Combat.java @@ -636,7 +636,7 @@ public class Combat { runParams.put("Attacker", attacker); runParams.put("Defender",getDefenderByAttacker(attacker)); runParams.put("DefendingPlayer", getDefenderPlayerByAttacker(attacker)); - game.getTriggerHandler().runTrigger(TriggerType.AttackerUnblocked, runParams, false); + game.getTriggerHandler().runTriggerOld(TriggerType.AttackerUnblocked, runParams, false); } } } @@ -647,7 +647,7 @@ public class Combat { final Map runParams = Maps.newHashMap(); runParams.put("AttackingPlayer", getAttackingPlayer()); runParams.put("Defenders", defenders); - game.getTriggerHandler().runTrigger(TriggerType.AttackerUnblockedOnce, runParams, false); + game.getTriggerHandler().runTriggerOld(TriggerType.AttackerUnblockedOnce, runParams, false); } } diff --git a/forge-game/src/main/java/forge/game/combat/CombatUtil.java b/forge-game/src/main/java/forge/game/combat/CombatUtil.java index 1879bbca6d7..1f9f17c682c 100644 --- a/forge-game/src/main/java/forge/game/combat/CombatUtil.java +++ b/forge-game/src/main/java/forge/game/combat/CombatUtil.java @@ -313,7 +313,7 @@ public class CombatUtil { runParams.put("Attacked", combat.getDefenderByAttacker(c)); runParams.put("DefendingPlayer", combat.getDefenderPlayerByAttacker(c)); runParams.put("Defenders", combat.getDefenders()); - game.getTriggerHandler().runTrigger(TriggerType.Attacks, runParams, false); + game.getTriggerHandler().runTriggerOld(TriggerType.Attacks, runParams, false); c.getDamageHistory().setCreatureAttackedThisCombat(true); c.getDamageHistory().clearNotAttackedSinceLastUpkeepOf(); diff --git a/forge-game/src/main/java/forge/game/phase/PhaseHandler.java b/forge-game/src/main/java/forge/game/phase/PhaseHandler.java index 9aa823316e2..dde7fd43cc0 100644 --- a/forge-game/src/main/java/forge/game/phase/PhaseHandler.java +++ b/forge-game/src/main/java/forge/game/phase/PhaseHandler.java @@ -415,7 +415,7 @@ public class PhaseHandler implements java.io.Serializable { final Map runParams = Maps.newHashMap(); runParams.put("Phase", phase.nameForScripts); runParams.put("Player", playerTurn); - game.getTriggerHandler().runTrigger(TriggerType.Phase, runParams, false); + game.getTriggerHandler().runTriggerOld(TriggerType.Phase, runParams, false); } // This line fixes Combat Damage triggers not going off when they should @@ -489,7 +489,7 @@ public class PhaseHandler implements java.io.Serializable { // "Trigger" for begin turn to get around a phase skipping final Map runParams = Maps.newHashMap(); runParams.put("Player", playerTurn); - game.getTriggerHandler().runTrigger(TriggerType.TurnBegin, runParams, false); + game.getTriggerHandler().runTriggerOld(TriggerType.TurnBegin, runParams, false); } planarDiceRolledthisTurn = 0; // Play the End Turn sound @@ -581,7 +581,7 @@ public class PhaseHandler implements java.io.Serializable { runParams.put("Attackers", combat.getAttackers()); runParams.put("AttackingPlayer", combat.getAttackingPlayer()); runParams.put("AttackedTarget", attackedTarget); - game.getTriggerHandler().runTrigger(TriggerType.AttackersDeclared, runParams, false); + game.getTriggerHandler().runTriggerOld(TriggerType.AttackersDeclared, runParams, false); } for (final Card c : combat.getAttackers()) { @@ -693,7 +693,7 @@ public class PhaseHandler implements java.io.Serializable { final Map bdRunParams = Maps.newHashMap(); bdRunParams.put("Blockers", declaredBlockers); bdRunParams.put("Attackers", blockedAttackers); - game.getTriggerHandler().runTrigger(TriggerType.BlockersDeclared, bdRunParams, false); + game.getTriggerHandler().runTriggerOld(TriggerType.BlockersDeclared, bdRunParams, false); } for (final Card c1 : combat.getAllBlockers()) { @@ -706,7 +706,7 @@ public class PhaseHandler implements java.io.Serializable { final Map runParams = Maps.newHashMap(); runParams.put("Blocker", c1); runParams.put("Attackers", combat.getAttackersBlockedBy(c1)); - game.getTriggerHandler().runTrigger(TriggerType.Blocks, runParams, false); + game.getTriggerHandler().runTriggerOld(TriggerType.Blocks, runParams, false); } c1.getDamageHistory().setCreatureBlockedThisCombat(true); @@ -730,7 +730,7 @@ public class PhaseHandler implements java.io.Serializable { runParams.put("NumBlockers", blockers.size()); runParams.put("Defender", combat.getDefenderByAttacker(a)); runParams.put("DefendingPlayer", combat.getDefenderPlayerByAttacker(a)); - game.getTriggerHandler().runTrigger(TriggerType.AttackerBlocked, runParams, false); + game.getTriggerHandler().runTriggerOld(TriggerType.AttackerBlocked, runParams, false); // Run this trigger once for each blocker for (final Card b : blockers) { @@ -741,7 +741,7 @@ public class PhaseHandler implements java.io.Serializable { final Map runParams2 = Maps.newHashMap(); runParams2.put("Attacker", a); runParams2.put("Blocker", b); - game.getTriggerHandler().runTrigger(TriggerType.AttackerBlockedByCreature, runParams2, false); + game.getTriggerHandler().runTriggerOld(TriggerType.AttackerBlockedByCreature, runParams2, false); } a.getDamageHistory().setCreatureGotBlockedThisCombat(true); diff --git a/forge-game/src/main/java/forge/game/player/Player.java b/forge-game/src/main/java/forge/game/player/Player.java index feb0bde0000..2d826253bfb 100644 --- a/forge-game/src/main/java/forge/game/player/Player.java +++ b/forge-game/src/main/java/forge/game/player/Player.java @@ -248,7 +248,7 @@ public class Player extends GameEntity implements Comparable { // Run triggers final Map runParams = Maps.newHashMap(); runParams.put("Scheme", activeScheme); - game.getTriggerHandler().runTrigger(TriggerType.SetInMotion, runParams, false); + game.getTriggerHandler().runTriggerOld(TriggerType.SetInMotion, runParams, false); } @@ -450,7 +450,7 @@ public class Player extends GameEntity implements Comparable { runParams.put("LifeAmount", lifeGain); runParams.put("Source", source); runParams.put("SourceSA", sa); - game.getTriggerHandler().runTrigger(TriggerType.LifeGained, runParams, false); + game.getTriggerHandler().runTriggerOld(TriggerType.LifeGained, runParams, false); game.fireEvent(new GameEventPlayerLivesChanged(this, oldLife, life)); } @@ -504,7 +504,7 @@ public class Player extends GameEntity implements Comparable { runParams.put("Player", this); runParams.put("LifeAmount", toLose); runParams.put("FirstTime", firstLost); - game.getTriggerHandler().runTrigger(TriggerType.LifeLost, runParams, false); + game.getTriggerHandler().runTriggerOld(TriggerType.LifeLost, runParams, false); return lifeLost; } @@ -531,7 +531,7 @@ public class Player extends GameEntity implements Comparable { final Map runParams = Maps.newHashMap(); runParams.put("Player", this); runParams.put("LifeAmount", lifePayment); - game.getTriggerHandler().runTrigger(TriggerType.PayLife, runParams, false); + game.getTriggerHandler().runTriggerOld(TriggerType.PayLife, runParams, false); return true; } @@ -618,7 +618,7 @@ public class Player extends GameEntity implements Comparable { runParams.put("IsCombatDamage", isCombat); // Defending player at the time the damage was dealt runParams.put("DefendingPlayer", game.getCombat() != null ? game.getCombat().getDefendingPlayerRelatedTo(source) : null); - game.getTriggerHandler().runTrigger(TriggerType.DamageDone, runParams, false); + game.getTriggerHandler().runTriggerOld(TriggerType.DamageDone, runParams, false); game.fireEvent(new GameEventPlayerDamaged(this, source, amount, isCombat, infect)); @@ -941,10 +941,10 @@ public class Player extends GameEntity implements Comparable { runParams.put("Source", this); runParams.put("CounterType", counterType); for (int i = 0; i < addAmount; i++) { - getGame().getTriggerHandler().runTrigger(TriggerType.CounterAdded, runParams, false); + getGame().getTriggerHandler().runTriggerOld(TriggerType.CounterAdded, runParams, false); } if (addAmount > 0) { - getGame().getTriggerHandler().runTrigger(TriggerType.CounterAddedOnce, runParams, false); + getGame().getTriggerHandler().runTriggerOld(TriggerType.CounterAddedOnce, runParams, false); } if (table != null) { table.put(this, counterType, addAmount); @@ -1327,7 +1327,7 @@ public class Player extends GameEntity implements Comparable { final Map runParams = Maps.newHashMap(); runParams.put("Player", this); runParams.put("NumThisTurn", surveilThisTurn); - getGame().getTriggerHandler().runTrigger(TriggerType.Surveil, runParams, false); + getGame().getTriggerHandler().runTriggerOld(TriggerType.Surveil, runParams, false); } public int getSurveilThisTurn() { @@ -1419,7 +1419,7 @@ public class Player extends GameEntity implements Comparable { runParams.put("Card", c); runParams.put("Number", numDrawnThisTurn); runParams.put("Player", this); - game.getTriggerHandler().runTrigger(TriggerType.Drawn, runParams, false); + game.getTriggerHandler().runTriggerOld(TriggerType.Drawn, runParams, false); } else { // Lose by milling is always on. Give AI many cards it cannot play if you want it not to undertake actions triedToDrawFromEmptyLibrary = true; @@ -1608,7 +1608,7 @@ public class Player extends GameEntity implements Comparable { runParams.put("Card", c); runParams.put("Cause", cause); runParams.put("IsMadness", Boolean.valueOf(discardMadness)); - game.getTriggerHandler().runTrigger(TriggerType.Discarded, runParams, false); + game.getTriggerHandler().runTriggerOld(TriggerType.Discarded, runParams, false); game.getGameLog().add(GameLogEntryType.DISCARD, sb.toString()); return newCard; } @@ -1689,7 +1689,7 @@ public class Player extends GameEntity implements Comparable { final Map runParams = Maps.newHashMap(); runParams.put("Player", this); runParams.put("Source", sa); - game.getTriggerHandler().runTrigger(TriggerType.Shuffled, runParams, false); + game.getTriggerHandler().runTriggerOld(TriggerType.Shuffled, runParams, false); // Play the shuffle sound game.fireEvent(new GameEventShuffle(this)); @@ -1719,7 +1719,7 @@ public class Player extends GameEntity implements Comparable { // Run triggers final Map runParams = Maps.newHashMap(); runParams.put("Card", land); - game.getTriggerHandler().runTrigger(TriggerType.LandPlayed, runParams, false); + game.getTriggerHandler().runTriggerOld(TriggerType.LandPlayed, runParams, false); game.getStack().unfreezeStack(); addLandPlayedThisTurn(); } @@ -2155,7 +2155,7 @@ public class Player extends GameEntity implements Comparable { Map runParams = Maps.newHashMap(); runParams.put("Player", this); runParams.put("Num", investigatedThisTurn); - game.getTriggerHandler().runTrigger(TriggerType.Investigated, runParams,false); + game.getTriggerHandler().runTriggerOld(TriggerType.Investigated, runParams,false); } public final void resetInvestigatedThisTurn() { investigatedThisTurn = 0; @@ -2180,7 +2180,7 @@ public class Player extends GameEntity implements Comparable { runParams.put("Cause", source); runParams.put("CostStack", game.costPaymentStack); runParams.put("IndividualCostPaymentInstance", game.costPaymentStack.peek()); - game.getTriggerHandler().runTrigger(TriggerType.Sacrificed, runParams, false); + game.getTriggerHandler().runTriggerOld(TriggerType.Sacrificed, runParams, false); } public final void resetSacrificedThisTurn() { @@ -2526,7 +2526,7 @@ public class Player extends GameEntity implements Comparable { //Run PlaneswalkedTo triggers here. Map runParams = Maps.newHashMap(); runParams.put("Cards", currentPlanes); - game.getTriggerHandler().runTrigger(TriggerType.PlaneswalkedTo, runParams,false); + game.getTriggerHandler().runTriggerOld(TriggerType.PlaneswalkedTo, runParams,false); view.updateCurrentPlaneName(currentPlanes.toString().replaceAll(" \\(.*","").replace("[","")); } @@ -2536,7 +2536,7 @@ public class Player extends GameEntity implements Comparable { public void leaveCurrentPlane() { final Map runParams = new ImmutableMap.Builder().put("Cards", new CardCollection(currentPlanes)).build(); - game.getTriggerHandler().runTrigger(TriggerType.PlaneswalkedFrom, runParams,false); + game.getTriggerHandler().runTriggerOld(TriggerType.PlaneswalkedFrom, runParams,false); for (final Card plane : currentPlanes) { //game.getZoneOf(plane).remove(plane); 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 b3b9040bf61..fb9c486269b 100644 --- a/forge-game/src/main/java/forge/game/spellability/AbilityManaPart.java +++ b/forge-game/src/main/java/forge/game/spellability/AbilityManaPart.java @@ -172,7 +172,7 @@ public class AbilityManaPart implements java.io.Serializable { runParams.put("Player", player); runParams.put("AbilityMana", sa); runParams.put("Produced", afterReplace); - player.getGame().getTriggerHandler().runTrigger(TriggerType.TapsForMana, runParams, false); + player.getGame().getTriggerHandler().runTriggerOld(TriggerType.TapsForMana, runParams, false); if (source.isLand()) { player.setTappedLandForManaThisTurn(true); } diff --git a/forge-game/src/main/java/forge/game/spellability/SpellAbilityStackInstance.java b/forge-game/src/main/java/forge/game/spellability/SpellAbilityStackInstance.java index 048014c7684..0bce8ed92ec 100644 --- a/forge-game/src/main/java/forge/game/spellability/SpellAbilityStackInstance.java +++ b/forge-game/src/main/java/forge/game/spellability/SpellAbilityStackInstance.java @@ -355,10 +355,10 @@ public class SpellAbilityStackInstance implements IIdentifiable, IHasCardView { ((Card) tgt).setBecameTargetThisTurn(true); } runParams.put("Target", tgt); - getSourceCard().getGame().getTriggerHandler().runTrigger(TriggerType.BecomesTarget, runParams, false); + getSourceCard().getGame().getTriggerHandler().runTriggerOld(TriggerType.BecomesTarget, runParams, false); } runParams.put("Targets", target.getTargets()); - getSourceCard().getGame().getTriggerHandler().runTrigger(TriggerType.BecomesTargetOnce, runParams, false); + getSourceCard().getGame().getTriggerHandler().runTriggerOld(TriggerType.BecomesTargetOnce, runParams, false); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerHandler.java b/forge-game/src/main/java/forge/game/trigger/TriggerHandler.java index d44cc2af616..edbd5dae2cd 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerHandler.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerHandler.java @@ -23,6 +23,7 @@ import forge.game.GlobalRuleChange; import forge.game.ability.AbilityFactory; import forge.game.ability.AbilityUtils; import forge.game.ability.ApiType; +import forge.game.ability.AbilityKey; import forge.game.ability.effects.CharmEffect; import forge.game.card.Card; import forge.game.card.CardLists; @@ -51,6 +52,8 @@ import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Multimaps; +import static forge.util.EnumMapUtil.toStringMap; + public class TriggerHandler { private final List suppressedModes = Collections.synchronizedList(new ArrayList<>()); private final List activeTriggers = Collections.synchronizedList(new ArrayList<>()); @@ -318,12 +321,17 @@ public class TriggerHandler { return false; } - public final void runTrigger(final TriggerType mode, final Map runParams, boolean holdTrigger) { + public final void runTrigger(final TriggerType mode, final Map runParams, boolean holdTrigger) { + runTriggerOld(mode, toStringMap(runParams), holdTrigger); + } + // The plan is to slowly refactor any usages of `runTriggerOld` to use `runTrigger`. Then we can just inline + // `runTriggerOld` into `runTrigger` and change the code inside to just always use a `Map`. + // The reason we can't just call them both `runTrigger` is because we get a `same erasure` compile error if we do. + public final void runTriggerOld(final TriggerType mode, final Map runParams, boolean holdTrigger) { if (suppressedModes.contains(mode)) { return; } - //runWaitingTrigger(new TriggerWaiting(mode, runParams)); if (mode == TriggerType.Always) { runStateTrigger(runParams); } else if (game.getStack().isFrozen() || holdTrigger) { @@ -331,20 +339,14 @@ public class TriggerHandler { } else { runWaitingTrigger(new TriggerWaiting(mode, runParams)); } - // Tell auto stop to stop } - public final boolean runStateTrigger(Map runParams) { - boolean checkStatics = false; - // only cards in play can run state triggers - + private void runStateTrigger(Map runParams) { for (final Trigger t: activeTriggers) { if (canRunTrigger(t, TriggerType.Always, runParams)) { runSingleTrigger(t, runParams); - checkStatics = true; } } - return checkStatics; } public final boolean runWaitingTriggers() { @@ -362,7 +364,7 @@ public class TriggerHandler { return haveWaiting; } - public final boolean runWaitingTrigger(final TriggerWaiting wt) { + private boolean runWaitingTrigger(final TriggerWaiting wt) { final TriggerType mode = wt.getMode(); final Map runParams = wt.getParams(); diff --git a/forge-game/src/main/java/forge/game/zone/MagicStack.java b/forge-game/src/main/java/forge/game/zone/MagicStack.java index fd40f536a70..00b0c822de2 100644 --- a/forge-game/src/main/java/forge/game/zone/MagicStack.java +++ b/forge-game/src/main/java/forge/game/zone/MagicStack.java @@ -294,7 +294,7 @@ public class MagicStack /* extends MyObservable */ implements Iterable, V> HashMap toStringMap(Map map) { + HashMap output = new HashMap<>(map.size()); + + for (Map.Entry entry : map.entrySet()) { + output.put(entry.getKey().toString(), entry.getValue()); + } + + return output; + } +} 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 725f114f550..c24457047fc 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 @@ -138,7 +138,8 @@ public class GameWrapper { //skip drawing initial hand and mulliganing game.setAge( GameStage.Play ); final HashMap runParams = new HashMap<>(); - game.getTriggerHandler().runTrigger( TriggerType.NewGame, runParams, false ); + game.getTriggerHandler().runTriggerOld( TriggerType.NewGame, runParams, false ); + //first player in the list starts, no coin toss etc game.getPhaseHandler().startFirstTurn( game.getPlayers().get( 0 ) ); game.fireEvent( new GameEventGameFinished() );