diff --git a/forge-game/src/main/java/forge/game/GameAction.java b/forge-game/src/main/java/forge/game/GameAction.java index cebd914147e..908f2bc678e 100644 --- a/forge-game/src/main/java/forge/game/GameAction.java +++ b/forge-game/src/main/java/forge/game/GameAction.java @@ -54,6 +54,8 @@ import org.apache.commons.lang3.tuple.ImmutablePair; import java.util.*; +import static forge.util.EnumMapUtil.toStringMap; + /** * Methods for common actions performed during a game. * @@ -297,7 +299,7 @@ public class GameAction { repParams.putAll(params); } - ReplacementResult repres = game.getReplacementHandler().run(EnumMapUtil.toStringMap(repParams)); + ReplacementResult repres = game.getReplacementHandler().run(toStringMap(repParams)); if (repres != ReplacementResult.NotReplaced) { // reset failed manifested Cards back to original if (c.isManifested()) { 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 5b4e47df779..e21772646c3 100644 --- a/forge-game/src/main/java/forge/game/ability/AbilityKey.java +++ b/forge-game/src/main/java/forge/game/ability/AbilityKey.java @@ -10,8 +10,9 @@ public enum AbilityKey { AbilityMana("AbilityMana"), Activator("Activator"), Affected("Affected"), - Attach("Attach"), AllVotes("AllVotes"), + Amount("Amount"), + Attach("Attach"), AttachSource("AttachSource"), AttachTarget("AttachTarget"), Attacked("Attacked"), @@ -51,14 +52,12 @@ public enum AbilityKey { Devoured("Devoured"), EchoPaid("EchoPaid"), Exploited("Exploited"), + Explorer("Explorer"), Event("Event"), Fighter("Fighter"), FirstTime("FirstTime"), Fizzle("Fizzle"), IsCombatDamage("IsCombatDamage"), - PayingMana("PayingMana"), - Phase("Phase"), - Player("Player"), IndividualCostPaymentInstance("IndividualCostPaymentInstance"), IsMadness("IsMadness"), LifeAmount("LifeAmount"), @@ -71,14 +70,23 @@ public enum AbilityKey { Object("Object"), Objects("Objects"), OtherAttackers("OtherAttackers"), + OtherVoters("OtherVoters"), Origin("Origin"), OriginalController("OriginalController"), + OriginalDefender("OriginalDefender"), + PayingMana("PayingMana"), + Phase("Phase"), + Player("Player"), Produced("Produced"), Result("Result"), Scheme("Scheme"), Source("Source"), + Sources("Sources"), SourceSA("SourceSA"), + SpellAbility("SpellAbility"), SpellAbilityStackInstance("SpellAbilityStackInstance"), + SpellAbilityTargetingCards("SpellAbilityTargetingCards"), + StackInstance("StackInstance"), StackSa("StackSa"), StackSi("StackSi"), Target("Target"), @@ -99,10 +107,22 @@ public enum AbilityKey { return key; } + /** + * @param s A string that would be output from toString + * @return the corresponding key if there is one or null otherwise + */ + public static AbilityKey fromString(String s) { + return null; + } + public static EnumMap newMap() { return new EnumMap<>(AbilityKey.class); } + public static EnumMap newMap(Map map) { + return new EnumMap<>(map); + } + public static Map mapFromCard(forge.game.card.Card card) { final Map runParams = newMap(); diff --git a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java index fa03796fa5a..4d62b166867 100644 --- a/forge-game/src/main/java/forge/game/ability/AbilityUtils.java +++ b/forge-game/src/main/java/forge/game/ability/AbilityUtils.java @@ -139,13 +139,15 @@ public class AbilityUtils { final SpellAbility root = sa.getRootAbility(); if (defined.contains("LKICopy")) { //Triggered*LKICopy int lkiPosition = defined.indexOf("LKICopy"); - final Object crd = root.getTriggeringObject(defined.substring(9, lkiPosition)); + AbilityKey type = AbilityKey.fromString(defined.substring(9, lkiPosition)); + final Object crd = root.getTriggeringObject(type); if (crd instanceof Card) { c = (Card) crd; } } else { - final Object crd = root.getTriggeringObject(defined.substring(9)); + AbilityKey type = AbilityKey.fromString(defined.substring(9)); + final Object crd = root.getTriggeringObject(type); if (crd instanceof Card) { c = game.getCardState((Card) crd); } else if (crd instanceof Iterable) { @@ -641,12 +643,12 @@ public class AbilityUtils { } if (calcX[0].startsWith("TriggeredPlayer") || calcX[0].startsWith("TriggeredTarget")) { final SpellAbility root = sa.getRootAbility(); - Object o = root.getTriggeringObject(calcX[0].substring(9)); + Object o = root.getTriggeringObject(AbilityKey.fromString(calcX[0].substring(9))); return o instanceof Player ? CardFactoryUtil.playerXProperty((Player) o, calcX[1], card) * multiplier : 0; } if (calcX[0].equals("TriggeredSpellAbility")) { final SpellAbility root = sa.getRootAbility(); - SpellAbility sat = (SpellAbility) root.getTriggeringObject("SpellAbility"); + SpellAbility sat = (SpellAbility) root.getTriggeringObject(AbilityKey.SpellAbility); return calculateAmount(sat.getHostCard(), calcX[1], sat); } // Added on 9/30/12 (ArsenalNut) - Ended up not using but might be useful in future @@ -695,11 +697,11 @@ public class AbilityUtils { } else if (calcX[0].startsWith("TriggerObjects")) { final SpellAbility root = sa.getRootAbility(); - list = (CardCollection) root.getTriggeringObject(calcX[0].substring(14)); + list = (CardCollection) root.getTriggeringObject(AbilityKey.fromString(calcX[0].substring(14))); } else if (calcX[0].startsWith("Triggered")) { final SpellAbility root = sa.getRootAbility(); - list = new CardCollection((Card) root.getTriggeringObject(calcX[0].substring(9))); + list = new CardCollection((Card) root.getTriggeringObject(AbilityKey.fromString(calcX[0].substring(9)))); } else if (calcX[0].startsWith("TriggerCount")) { // TriggerCount is similar to a regular Count, but just @@ -707,7 +709,7 @@ public class AbilityUtils { final SpellAbility root = sa.getRootAbility(); final String[] l = calcX[1].split("/"); final String m = CardFactoryUtil.extractOperators(calcX[1]); - final int count = (Integer) root.getTriggeringObject(l[0]); + final int count = (Integer) root.getTriggeringObject(AbilityKey.fromString(l[0])); return CardFactoryUtil.doXMath(count, m, card) * multiplier; } @@ -777,19 +779,19 @@ public class AbilityUtils { final Object o; if (type.startsWith("Triggered")) { if (type.contains("Card")) { - o = sa.getTriggeringObject("Card"); + o = sa.getTriggeringObject(AbilityKey.Card); } else if (type.contains("Object")) { - o = sa.getTriggeringObject("Object"); + o = sa.getTriggeringObject(AbilityKey.Object); } else if (type.contains("Attacker")) { - o = sa.getTriggeringObject("Attacker"); + o = sa.getTriggeringObject(AbilityKey.Attacker); } else if (type.contains("Blocker")) { - o = sa.getTriggeringObject("Blocker"); + o = sa.getTriggeringObject(AbilityKey.Blocker); } else { - o = sa.getTriggeringObject("Card"); + o = sa.getTriggeringObject(AbilityKey.Card); } if (!(o instanceof Card)) { @@ -1004,7 +1006,7 @@ public class AbilityUtils { if (defParsed.endsWith("Controller")) { String triggeringType = defParsed.substring(9); triggeringType = triggeringType.substring(0, triggeringType.length() - 10); - final Object c = root.getTriggeringObject(triggeringType); + final Object c = root.getTriggeringObject(AbilityKey.fromString(triggeringType)); if (c instanceof Card) { o = ((Card) c).getController(); } @@ -1015,7 +1017,7 @@ public class AbilityUtils { else if (defParsed.endsWith("Opponent")) { String triggeringType = defParsed.substring(9); triggeringType = triggeringType.substring(0, triggeringType.length() - 8); - final Object c = root.getTriggeringObject(triggeringType); + final Object c = root.getTriggeringObject(AbilityKey.fromString(triggeringType)); if (c instanceof Card) { o = ((Card) c).getController().getOpponents(); } @@ -1026,14 +1028,14 @@ public class AbilityUtils { else if (defParsed.endsWith("Owner")) { String triggeringType = defParsed.substring(9); triggeringType = triggeringType.substring(0, triggeringType.length() - 5); - final Object c = root.getTriggeringObject(triggeringType); + final Object c = root.getTriggeringObject(AbilityKey.fromString(triggeringType)); if (c instanceof Card) { o = ((Card) c).getOwner(); } } else { final String triggeringType = defParsed.substring(9); - o = root.getTriggeringObject(triggeringType); + o = root.getTriggeringObject(AbilityKey.fromString(triggeringType)); } if (o != null) { if (o instanceof Player) { @@ -1252,13 +1254,13 @@ public class AbilityUtils { final SpellAbility root = sa.getRootAbility(); final String triggeringType = defined.substring(9); - final Object o = root.getTriggeringObject(triggeringType); + final Object o = root.getTriggeringObject(AbilityKey.fromString(triggeringType)); if (o instanceof SpellAbility) { s = (SpellAbility) o; // if there is no target information in SA but targets are listed in SpellAbilityTargeting cards, copy that // information so it's not lost if the calling code is interested in targets of the triggered SA. if (triggeringType.equals("SpellAbility")) { - final CardCollectionView tgtList = (CardCollectionView)root.getTriggeringObject("SpellAbilityTargetingCards"); + final CardCollectionView tgtList = (CardCollectionView)root.getTriggeringObject(AbilityKey.SpellAbilityTargetingCards); if (s.getTargets() != null && s.getTargets().getNumTargeted() == 0) { if (tgtList != null && tgtList.size() > 0) { TargetChoices tc = new TargetChoices(); @@ -1390,7 +1392,7 @@ public class AbilityUtils { cost = new Cost(source.getManaCost(), true); } else if (unlessCost.equals("TriggeredSpellManaCost")) { - SpellAbility triggered = (SpellAbility) sa.getRootAbility().getTriggeringObject("SpellAbility"); + SpellAbility triggered = (SpellAbility) sa.getRootAbility().getTriggeringObject(AbilityKey.SpellAbility); Card triggeredCard = triggered.getHostCard(); if (triggeredCard.getManaCost() == null) { cost = new Cost(ManaCost.ZERO, true); @@ -1608,7 +1610,7 @@ public class AbilityUtils { // Count$TriggeredPayingMana.. if (sq[0].startsWith("TriggeredPayingMana")) { final SpellAbility root = sa.getRootAbility(); - String mana = (String) root.getTriggeringObject("PayingMana"); + String mana = (String) root.getTriggeringObject(AbilityKey.PayingMana); int count = 0; Matcher mat = Pattern.compile(StringUtils.join(sq, "|", 1, sq.length)).matcher(mana); while (mat.find()) { diff --git a/forge-game/src/main/java/forge/game/ability/effects/ChangeCombatantsEffect.java b/forge-game/src/main/java/forge/game/ability/effects/ChangeCombatantsEffect.java index bc74c3b9533..6135aa48c18 100644 --- a/forge-game/src/main/java/forge/game/ability/effects/ChangeCombatantsEffect.java +++ b/forge-game/src/main/java/forge/game/ability/effects/ChangeCombatantsEffect.java @@ -2,6 +2,7 @@ package forge.game.ability.effects; import forge.game.Game; import forge.game.GameEntity; +import forge.game.ability.AbilityKey; import forge.game.ability.SpellAbilityEffect; import forge.game.card.Card; import forge.game.combat.AttackingBand; @@ -54,12 +55,12 @@ public class ChangeCombatantsEffect extends SpellAbilityEffect { // retarget triggers to the new defender (e.g. Ulamog, Ceaseless Hunger + Portal Mage) for (SpellAbilityStackInstance si : game.getStack()) { if (si.isTrigger() && c.equals(si.getSourceCard()) - && si.getTriggeringObject("Attacker") != null) { - si.addTriggeringObject("OriginalDefender", originalDefender); + && si.getTriggeringObject(AbilityKey.Attacker) != null) { + si.addTriggeringObject(AbilityKey.OriginalDefender, originalDefender); if (defender instanceof Player) { - si.updateTriggeringObject("DefendingPlayer", defender); + si.updateTriggeringObject(AbilityKey.DefendingPlayer, defender); } else if (defender instanceof Card) { - si.updateTriggeringObject("DefendingPlayer", ((Card)defender).getController()); + si.updateTriggeringObject(AbilityKey.DefendingPlayer, ((Card)defender).getController()); } } } 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 cef51f069ee..99ecc3df0ea 100644 --- a/forge-game/src/main/java/forge/game/card/Card.java +++ b/forge-game/src/main/java/forge/game/card/Card.java @@ -1048,7 +1048,7 @@ public class Card extends GameEntity implements Comparable { } } - public final Object getTriggeringObject(final String typeIn) { + public final Object getTriggeringObject(final AbilityKey typeIn) { Object triggered = null; if (!currentState.getTriggers().isEmpty()) { for (final Trigger t : currentState.getTriggers()) { diff --git a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java index b6d21204033..becbc16de03 100644 --- a/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardFactoryUtil.java @@ -35,6 +35,7 @@ import forge.game.GameEntity; import forge.game.GameEntityCounterTable; import forge.game.GameLogEntryType; import forge.game.ability.AbilityFactory; +import forge.game.ability.AbilityKey; import forge.game.ability.AbilityUtils; import forge.game.ability.ApiType; import forge.game.card.CardPredicates.Presets; @@ -948,7 +949,7 @@ public class CardFactoryUtil { // TriggeringObjects if (sq[0].startsWith("Triggered")) { - return doXMath(xCount((Card) c.getTriggeringObject("Card"), sq[0].substring(9)), m, c); + return doXMath(xCount((Card) c.getTriggeringObject(AbilityKey.Card), sq[0].substring(9)), m, c); } if (sq[0].contains("YourStartingLife")) { diff --git a/forge-game/src/main/java/forge/game/card/CardProperty.java b/forge-game/src/main/java/forge/game/card/CardProperty.java index 1411664dd18..3a2969c98eb 100644 --- a/forge-game/src/main/java/forge/game/card/CardProperty.java +++ b/forge-game/src/main/java/forge/game/card/CardProperty.java @@ -6,6 +6,7 @@ import forge.card.MagicColor; import forge.game.Direction; import forge.game.Game; import forge.game.GameEntity; +import forge.game.ability.AbilityKey; import forge.game.ability.AbilityUtils; import forge.game.card.CardPredicates.Presets; import forge.game.combat.AttackingBand; @@ -874,7 +875,7 @@ public class CardProperty { } return false; case "TriggeredCard": - final Object triggeringObject = source.getTriggeringObject(restriction.substring("Triggered".length())); + final Object triggeringObject = source.getTriggeringObject(AbilityKey.fromString(restriction.substring("Triggered".length()))); if (!(triggeringObject instanceof Card)) { return false; } @@ -957,7 +958,7 @@ public class CardProperty { if (spellAbility == null) { System.out.println("Looking at TriggeredCard but no SA?"); } else { - Card triggeredCard = ((Card)spellAbility.getTriggeringObject("Card")); + Card triggeredCard = ((Card) spellAbility.getTriggeringObject(AbilityKey.Card)); if (triggeredCard != null && card.sharesNameWith(triggeredCard)) { return true; } diff --git a/forge-game/src/main/java/forge/game/card/CardUtil.java b/forge-game/src/main/java/forge/game/card/CardUtil.java index 7bf0cfe1390..95cdce8d1ed 100644 --- a/forge-game/src/main/java/forge/game/card/CardUtil.java +++ b/forge-game/src/main/java/forge/game/card/CardUtil.java @@ -25,6 +25,7 @@ import forge.card.ColorSet; import forge.card.MagicColor; import forge.game.Game; import forge.game.GameObject; +import forge.game.ability.AbilityKey; import forge.game.ability.AbilityUtils; import forge.game.ability.ApiType; import forge.game.player.Player; @@ -411,7 +412,7 @@ public final class CardUtil { } } else if (reflectProperty.equals("Produced")) { // Why is this name so similar to the one below? - final String producedColors = abMana instanceof AbilitySub ? (String) abMana.getRootAbility().getTriggeringObject("Produced") : (String) abMana.getTriggeringObject("Produced"); + final String producedColors = abMana instanceof AbilitySub ? (String) abMana.getRootAbility().getTriggeringObject(AbilityKey.Produced) : (String) abMana.getTriggeringObject(AbilityKey.Produced); for (final String col : MagicColor.Constant.ONLY_COLORS) { final String s = MagicColor.toShortString(col); if (producedColors.contains(s)) { 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 7cf10bb47a3..0b7b6dfb8f7 100644 --- a/forge-game/src/main/java/forge/game/combat/Combat.java +++ b/forge-game/src/main/java/forge/game/combat/Combat.java @@ -546,13 +546,13 @@ public class Combat { Game game = c.getGame(); for (SpellAbilityStackInstance si : game.getStack()) { if (si.isTrigger() && c.equals(si.getSourceCard())) { - GameEntity origDefender = (GameEntity)si.getTriggeringObject("OriginalDefender"); + GameEntity origDefender = (GameEntity)si.getTriggeringObject(AbilityKey.OriginalDefender); if (origDefender != null) { - si.updateTriggeringObject("Defender", origDefender); + si.updateTriggeringObject(AbilityKey.Defender, origDefender); if (origDefender instanceof Player) { - si.updateTriggeringObject("DefendingPlayer", origDefender); + si.updateTriggeringObject(AbilityKey.DefendingPlayer, origDefender); } else if (origDefender instanceof Card) { - si.updateTriggeringObject("DefendingPlayer", ((Card)origDefender).getController()); + si.updateTriggeringObject(AbilityKey.DefendingPlayer, ((Card)origDefender).getController()); } } } diff --git a/forge-game/src/main/java/forge/game/spellability/SpellAbility.java b/forge-game/src/main/java/forge/game/spellability/SpellAbility.java index 88fe88e9833..05f3c43814c 100644 --- a/forge-game/src/main/java/forge/game/spellability/SpellAbility.java +++ b/forge-game/src/main/java/forge/game/spellability/SpellAbility.java @@ -24,6 +24,7 @@ import com.google.common.collect.Maps; import forge.card.mana.ManaCost; import forge.game.*; import forge.game.ability.AbilityFactory; +import forge.game.ability.AbilityKey; import forge.game.ability.AbilityUtils; import forge.game.ability.ApiType; import forge.game.card.Card; @@ -138,7 +139,7 @@ public abstract class SpellAbility extends CardTraitBase implements ISpellAbilit private HashMap paidLists = Maps.newHashMap(); - private Map triggeringObjects = Maps.newHashMap(); + private Map triggeringObjects = AbilityKey.newMap(); private HashMap replacingObjects = Maps.newHashMap(); @@ -552,19 +553,19 @@ public abstract class SpellAbility extends CardTraitBase implements ISpellAbilit return sa; } - public Map getTriggeringObjects() { + public Map getTriggeringObjects() { return triggeringObjects; } - public void setTriggeringObjects(final Map triggeredObjects) { - triggeringObjects = Maps.newHashMap(triggeredObjects); + public void setTriggeringObjects(final Map triggeredObjects) { + triggeringObjects = AbilityKey.newMap(triggeredObjects); } - public Object getTriggeringObject(final String type) { + public Object getTriggeringObject(final AbilityKey type) { return triggeringObjects.get(type); } - public void setTriggeringObject(final String type, final Object o) { + public void setTriggeringObject(final AbilityKey type, final Object o) { triggeringObjects.put(type, o); } - public boolean hasTriggeringObject(final String type) { + public boolean hasTriggeringObject(final AbilityKey type) { return triggeringObjects.containsKey(type); } public void resetTriggeringObjects() { 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 4b781bd5942..7153cd12baa 100644 --- a/forge-game/src/main/java/forge/game/spellability/SpellAbilityStackInstance.java +++ b/forge-game/src/main/java/forge/game/spellability/SpellAbilityStackInstance.java @@ -92,7 +92,7 @@ public class SpellAbilityStackInstance implements IIdentifiable, IHasCardView { // is Kicked, is Buyback // Triggers - private final Map triggeringObjects; + private final Map triggeringObjects; private final List triggerRemembered; private final Map storedSVars = Maps.newHashMap(); @@ -364,7 +364,7 @@ public class SpellAbilityStackInstance implements IIdentifiable, IHasCardView { } } - public boolean addTriggeringObject(String trigObj, Object value) { + public boolean addTriggeringObject(AbilityKey trigObj, Object value) { if (!triggeringObjects.containsKey(trigObj)) { triggeringObjects.put(trigObj, value); return true; @@ -372,7 +372,7 @@ public class SpellAbilityStackInstance implements IIdentifiable, IHasCardView { return false; } - public boolean updateTriggeringObject(String trigObj, Object value) { + public boolean updateTriggeringObject(AbilityKey trigObj, Object value) { if (triggeringObjects.containsKey(trigObj)) { triggeringObjects.replace(trigObj, value); return true; @@ -380,7 +380,7 @@ public class SpellAbilityStackInstance implements IIdentifiable, IHasCardView { return false; } - public Object getTriggeringObject(String trigObj) { + public Object getTriggeringObject(AbilityKey trigObj) { if (triggeringObjects.containsKey(trigObj)) { return triggeringObjects.get(trigObj); } diff --git a/forge-game/src/main/java/forge/game/trigger/Trigger.java b/forge-game/src/main/java/forge/game/trigger/Trigger.java index 05886532f3b..18b0e3c6f50 100644 --- a/forge-game/src/main/java/forge/game/trigger/Trigger.java +++ b/forge-game/src/main/java/forge/game/trigger/Trigger.java @@ -21,6 +21,7 @@ import forge.game.Game; import forge.game.GameEntity; import forge.game.TriggerReplacementBase; import forge.game.ability.AbilityFactory; +import forge.game.ability.AbilityKey; import forge.game.ability.ApiType; import forge.game.ability.effects.CharmEffect; import forge.game.card.Card; @@ -36,7 +37,6 @@ import forge.game.zone.ZoneType; import java.util.*; import com.google.common.collect.Lists; -import com.google.common.collect.Maps; import forge.util.TextUtil; @@ -70,7 +70,7 @@ public abstract class Trigger extends TriggerReplacementBase { private TriggerType mode; - private Map storedTriggeredObjects = null; + private Map storedTriggeredObjects = null; private List triggerRemembered = Lists.newArrayList(); @@ -87,8 +87,8 @@ public abstract class Trigger extends TriggerReplacementBase { * a {@link java.util.HashMap} object. * @since 1.0.15 */ - public final void setStoredTriggeredObjects(final Map storedTriggeredObjects) { - this.storedTriggeredObjects = Maps.newHashMap(storedTriggeredObjects); + public final void setStoredTriggeredObjects(final Map storedTriggeredObjects) { + this.storedTriggeredObjects = AbilityKey.newMap(storedTriggeredObjects); } /** @@ -99,7 +99,7 @@ public abstract class Trigger extends TriggerReplacementBase { * @return a {@link java.util.HashMap} object. * @since 1.0.15 */ - public final Map getStoredTriggeredObjects() { + public final Map getStoredTriggeredObjects() { return this.storedTriggeredObjects; } @@ -363,9 +363,9 @@ public abstract class Trigger extends TriggerReplacementBase { } - public boolean meetsRequirementsOnTriggeredObjects(Game game, Map runParams) { + public boolean meetsRequirementsOnTriggeredObjects(Game game, final Map runParams) { if ("True".equals(this.mapParams.get("EvolveCondition"))) { - final Card moved = (Card) runParams.get("Card"); + final Card moved = (Card) runParams.get(AbilityKey.Card); if (moved == null) { return false; // final StringBuilder sb = new StringBuilder(); @@ -381,26 +381,26 @@ public abstract class Trigger extends TriggerReplacementBase { String condition = this.mapParams.get("Condition"); if ("AltCost".equals(condition)) { - final Card moved = (Card) runParams.get("Card"); + final Card moved = (Card) runParams.get(AbilityKey.Card); if( null != moved && !moved.isOptionalCostPaid(OptionalCost.AltCost)) return false; } else if ("AttackedPlayerWithMostLife".equals(condition)) { - GameEntity attacked = (GameEntity) runParams.get("Attacked"); + GameEntity attacked = (GameEntity) runParams.get(AbilityKey.Attacked); if (attacked == null) { // Check "Defender" too because once triggering objects are set on TriggerAttacks, the value of Attacked // ends up being in Defender at that point. - attacked = (GameEntity) runParams.get("Defender"); + attacked = (GameEntity) runParams.get(AbilityKey.Defender); } if (attacked == null || !attacked.isValid("Player.withMostLife", this.getHostCard().getController(), this.getHostCard(), null)) { return false; } } else if ("AttackedPlayerWhoAttackedYouLastTurn".equals(condition)) { - GameEntity attacked = (GameEntity) runParams.get("Attacked"); + GameEntity attacked = (GameEntity) runParams.get(AbilityKey.Attacked); if (attacked == null) { // Check "Defender" too because once triggering objects are set on TriggerAttacks, the value of Attacked // ends up being in Defender at that point. - attacked = (GameEntity) runParams.get("DefendingPlayer"); + attacked = (GameEntity) runParams.get(AbilityKey.DefendingPlayer); } Player attacker = this.getHostCard().getController(); diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerAbandoned.java b/forge-game/src/main/java/forge/game/trigger/TriggerAbandoned.java index a07aff661d8..dcb65899236 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerAbandoned.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerAbandoned.java @@ -17,6 +17,7 @@ */ package forge.game.trigger; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -62,7 +63,7 @@ public class TriggerAbandoned extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Scheme", this.getRunParams().get("Scheme")); + sa.setTriggeringObject(AbilityKey.Scheme, this.getRunParams().get("Scheme")); } @Override diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerAdapt.java b/forge-game/src/main/java/forge/game/trigger/TriggerAdapt.java index 5a603b715c8..ab2f92ccba2 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerAdapt.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerAdapt.java @@ -19,6 +19,7 @@ package forge.game.trigger; import java.util.Map; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -63,13 +64,13 @@ public class TriggerAdapt extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Card", getRunParams().get("Card")); + sa.setTriggeringObject(AbilityKey.Card, getRunParams().get("Card")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Adapt: ").append(sa.getTriggeringObject("Card")); + sb.append("Adapt: ").append(sa.getTriggeringObject(AbilityKey.Card)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerAttached.java b/forge-game/src/main/java/forge/game/trigger/TriggerAttached.java index f185d57a441..96fdfd28ae6 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerAttached.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerAttached.java @@ -17,6 +17,7 @@ */ package forge.game.trigger; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -72,14 +73,14 @@ public class TriggerAttached extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Source", this.getRunParams().get("AttachSource")); - sa.setTriggeringObject("Target", this.getRunParams().get("AttachTarget")); + sa.setTriggeringObject(AbilityKey.Source, this.getRunParams().get("AttachSource")); + sa.setTriggeringObject(AbilityKey.Target, this.getRunParams().get("AttachTarget")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Attachee: ").append(sa.getTriggeringObject("Target")); + sb.append("Attachee: ").append(sa.getTriggeringObject(AbilityKey.Target)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerAttackerBlocked.java b/forge-game/src/main/java/forge/game/trigger/TriggerAttackerBlocked.java index 89136658f35..20fef05e093 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerAttackerBlocked.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerAttackerBlocked.java @@ -19,6 +19,7 @@ package forge.game.trigger; import java.util.Map; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.card.CardLists; import forge.game.spellability.SpellAbility; @@ -84,18 +85,18 @@ public class TriggerAttackerBlocked extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Attacker", getRunParams().get("Attacker")); - sa.setTriggeringObject("Blockers", getRunParams().get("Blockers")); - sa.setTriggeringObject("Defender", getRunParams().get("Defender")); - sa.setTriggeringObject("DefendingPlayer", getRunParams().get("DefendingPlayer")); - sa.setTriggeringObject("NumBlockers", getRunParams().get("NumBlockers")); + sa.setTriggeringObject(AbilityKey.Attacker, getRunParams().get("Attacker")); + sa.setTriggeringObject(AbilityKey.Blockers, getRunParams().get("Blockers")); + sa.setTriggeringObject(AbilityKey.Defender, getRunParams().get("Defender")); + sa.setTriggeringObject(AbilityKey.DefendingPlayer, getRunParams().get("DefendingPlayer")); + sa.setTriggeringObject(AbilityKey.NumBlockers, getRunParams().get("NumBlockers")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Attacker: ").append(sa.getTriggeringObject("Attacker")).append(", "); - sb.append("Number Blockers: ").append(sa.getTriggeringObject("NumBlockers")); + sb.append("Attacker: ").append(sa.getTriggeringObject(AbilityKey.Attacker)).append(", "); + sb.append("Number Blockers: ").append(sa.getTriggeringObject(AbilityKey.NumBlockers)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerAttackerBlockedByCreature.java b/forge-game/src/main/java/forge/game/trigger/TriggerAttackerBlockedByCreature.java index be66cc09438..7ddb60acdef 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerAttackerBlockedByCreature.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerAttackerBlockedByCreature.java @@ -19,6 +19,7 @@ package forge.game.trigger; import java.util.Map; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -87,15 +88,15 @@ public class TriggerAttackerBlockedByCreature extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Attacker", this.getRunParams().get("Attacker")); - sa.setTriggeringObject("Blocker", this.getRunParams().get("Blocker")); + sa.setTriggeringObject(AbilityKey.Attacker, this.getRunParams().get("Attacker")); + sa.setTriggeringObject(AbilityKey.Blocker, this.getRunParams().get("Blocker")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Attacker: ").append(sa.getTriggeringObject("Attacker")).append(", "); - sb.append("Blocker: ").append(sa.getTriggeringObject("Blocker")); + sb.append("Attacker: ").append(sa.getTriggeringObject(AbilityKey.Attacker)).append(", "); + sb.append("Blocker: ").append(sa.getTriggeringObject(AbilityKey.Blocker)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerAttackerUnblocked.java b/forge-game/src/main/java/forge/game/trigger/TriggerAttackerUnblocked.java index c9ac21fc4bd..a8e9d41209a 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerAttackerUnblocked.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerAttackerUnblocked.java @@ -17,6 +17,7 @@ */ package forge.game.trigger; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -69,15 +70,15 @@ public class TriggerAttackerUnblocked extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Attacker", this.getRunParams().get("Attacker")); - sa.setTriggeringObject("Defender", this.getRunParams().get("Defender")); - sa.setTriggeringObject("DefendingPlayer", this.getRunParams().get("DefendingPlayer")); + sa.setTriggeringObject(AbilityKey.Attacker, this.getRunParams().get("Attacker")); + sa.setTriggeringObject(AbilityKey.Defender, this.getRunParams().get("Defender")); + sa.setTriggeringObject(AbilityKey.DefendingPlayer, this.getRunParams().get("DefendingPlayer")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Attacker: ").append(sa.getTriggeringObject("Attacker")); + sb.append("Attacker: ").append(sa.getTriggeringObject(AbilityKey.Attacker)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerAttackerUnblockedOnce.java b/forge-game/src/main/java/forge/game/trigger/TriggerAttackerUnblockedOnce.java index 66ed8f5c01b..23567718e5c 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerAttackerUnblockedOnce.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerAttackerUnblockedOnce.java @@ -18,6 +18,7 @@ package forge.game.trigger; import forge.game.GameEntity; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -84,15 +85,15 @@ public class TriggerAttackerUnblockedOnce extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("AttackingPlayer", this.getRunParams().get("AttackingPlayer")); - sa.setTriggeringObject("Defenders", this.getRunParams().get("Defenders")); + sa.setTriggeringObject(AbilityKey.AttackingPlayer, this.getRunParams().get("AttackingPlayer")); + sa.setTriggeringObject(AbilityKey.Defenders, this.getRunParams().get("Defenders")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("AttackingPlayer: ").append(sa.getTriggeringObject("AttackingPlayer")); - sb.append("Defenders: ").append(sa.getTriggeringObject("Defenders")); + sb.append("AttackingPlayer: ").append(sa.getTriggeringObject(AbilityKey.AttackingPlayer)); + sb.append("Defenders: ").append(sa.getTriggeringObject(AbilityKey.Defenders)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerAttackersDeclared.java b/forge-game/src/main/java/forge/game/trigger/TriggerAttackersDeclared.java index 72f9649bba1..f9be4cacdd6 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerAttackersDeclared.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerAttackersDeclared.java @@ -18,6 +18,7 @@ package forge.game.trigger; import forge.game.GameEntity; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -86,14 +87,14 @@ public class TriggerAttackersDeclared extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Attackers", this.getRunParams().get("Attackers")); - sa.setTriggeringObject("AttackingPlayer", this.getRunParams().get("AttackingPlayer")); + sa.setTriggeringObject(AbilityKey.Attackers, this.getRunParams().get("Attackers")); + sa.setTriggeringObject(AbilityKey.AttackingPlayer, this.getRunParams().get("AttackingPlayer")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Number Attackers: ").append(sa.getTriggeringObject("Attackers")); + sb.append("Number Attackers: ").append(sa.getTriggeringObject(AbilityKey.Attackers)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerAttacks.java b/forge-game/src/main/java/forge/game/trigger/TriggerAttacks.java index 0f28b513ce6..cc35af51e0c 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerAttacks.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerAttacks.java @@ -18,6 +18,7 @@ package forge.game.trigger; import forge.game.GameEntity; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.player.Player; import forge.game.spellability.SpellAbility; @@ -124,17 +125,17 @@ public class TriggerAttacks extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Attacker", this.getRunParams().get("Attacker")); - sa.setTriggeringObject("Defender", this.getRunParams().get("Attacked")); - sa.setTriggeringObject("Defenders", this.getRunParams().get("Defenders")); - sa.setTriggeringObject("DefendingPlayer", this.getRunParams().get("DefendingPlayer")); + sa.setTriggeringObject(AbilityKey.Attacker, this.getRunParams().get("Attacker")); + sa.setTriggeringObject(AbilityKey.Defender, this.getRunParams().get("Attacked")); + sa.setTriggeringObject(AbilityKey.Defenders, this.getRunParams().get("Defenders")); + sa.setTriggeringObject(AbilityKey.DefendingPlayer, this.getRunParams().get("DefendingPlayer")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Attacker: ").append(sa.getTriggeringObject("Attacker")); + sb.append("Attacker: ").append(sa.getTriggeringObject(AbilityKey.Attacker)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerBecomeMonarch.java b/forge-game/src/main/java/forge/game/trigger/TriggerBecomeMonarch.java index 17d9840f804..d52c072f825 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerBecomeMonarch.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerBecomeMonarch.java @@ -3,6 +3,7 @@ package forge.game.trigger; import java.util.Map; import forge.game.Game; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -35,13 +36,13 @@ public class TriggerBecomeMonarch extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Player", this.getRunParams().get("Player")); + sa.setTriggeringObject(AbilityKey.Player, this.getRunParams().get("Player")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Player: ").append(sa.getTriggeringObject("Player")).append(", "); + sb.append("Player: ").append(sa.getTriggeringObject(AbilityKey.Player)).append(", "); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerBecomeMonstrous.java b/forge-game/src/main/java/forge/game/trigger/TriggerBecomeMonstrous.java index 5a70ce99648..1e6643e767f 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerBecomeMonstrous.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerBecomeMonstrous.java @@ -19,6 +19,7 @@ package forge.game.trigger; import java.util.Map; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -64,14 +65,14 @@ public class TriggerBecomeMonstrous extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Card", getRunParams().get("Card")); - sa.setTriggeringObject("MonstrosityAmount", getRunParams().get("MonstrosityAmount")); + sa.setTriggeringObject(AbilityKey.Card, getRunParams().get("Card")); + sa.setTriggeringObject(AbilityKey.MonstrosityAmount, getRunParams().get("MonstrosityAmount")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Monstrous: ").append(sa.getTriggeringObject("Card")); + sb.append("Monstrous: ").append(sa.getTriggeringObject(AbilityKey.Card)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerBecomeRenowned.java b/forge-game/src/main/java/forge/game/trigger/TriggerBecomeRenowned.java index ab84910d4cf..d6086fc7133 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerBecomeRenowned.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerBecomeRenowned.java @@ -17,6 +17,7 @@ */ package forge.game.trigger; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -62,13 +63,13 @@ public class TriggerBecomeRenowned extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Card", this.getRunParams().get("Card")); + sa.setTriggeringObject(AbilityKey.Card, this.getRunParams().get("Card")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Renowned: ").append(sa.getTriggeringObject("Card")); + sb.append("Renowned: ").append(sa.getTriggeringObject(AbilityKey.Card)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerBecomesTarget.java b/forge-game/src/main/java/forge/game/trigger/TriggerBecomesTarget.java index 097262f0c51..4e87946af5f 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerBecomesTarget.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerBecomesTarget.java @@ -17,6 +17,7 @@ */ package forge.game.trigger; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -88,16 +89,16 @@ public class TriggerBecomesTarget extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("SourceSA", this.getRunParams().get("SourceSA")); - sa.setTriggeringObject("Source", ((SpellAbility) this.getRunParams().get("SourceSA")).getHostCard()); - sa.setTriggeringObject("Target", this.getRunParams().get("Target")); + sa.setTriggeringObject(AbilityKey.SourceSA, this.getRunParams().get("SourceSA")); + sa.setTriggeringObject(AbilityKey.Source, ((SpellAbility) this.getRunParams().get("SourceSA")).getHostCard()); + sa.setTriggeringObject(AbilityKey.Target, this.getRunParams().get("Target")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Source: ").append(((SpellAbility) sa.getTriggeringObject("SourceSA")).getHostCard()).append(", "); - sb.append("Target: ").append(sa.getTriggeringObject("Target")); + sb.append("Source: ").append(((SpellAbility) sa.getTriggeringObject(AbilityKey.SourceSA)).getHostCard()).append(", "); + sb.append("Target: ").append(sa.getTriggeringObject(AbilityKey.Target)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerBecomesTargetOnce.java b/forge-game/src/main/java/forge/game/trigger/TriggerBecomesTargetOnce.java index bd8a2868c51..368a1bc2281 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerBecomesTargetOnce.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerBecomesTargetOnce.java @@ -18,6 +18,7 @@ package forge.game.trigger; import forge.game.GameObject; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -80,16 +81,16 @@ public class TriggerBecomesTargetOnce extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("SourceSA", this.getRunParams().get("SourceSA")); - sa.setTriggeringObject("Source", ((SpellAbility) this.getRunParams().get("SourceSA")).getHostCard()); - sa.setTriggeringObject("Targets", this.getRunParams().get("Targets")); + sa.setTriggeringObject(AbilityKey.SourceSA, this.getRunParams().get("SourceSA")); + sa.setTriggeringObject(AbilityKey.Source, ((SpellAbility) this.getRunParams().get("SourceSA")).getHostCard()); + sa.setTriggeringObject(AbilityKey.Targets, this.getRunParams().get("Targets")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Source: ").append(((SpellAbility) sa.getTriggeringObject("SourceSA")).getHostCard()).append(", "); - sb.append("Targets: ").append(sa.getTriggeringObject("Targets")); + sb.append("Source: ").append(((SpellAbility) sa.getTriggeringObject(AbilityKey.SourceSA)).getHostCard()).append(", "); + sb.append("Targets: ").append(sa.getTriggeringObject(AbilityKey.Targets)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerBlockersDeclared.java b/forge-game/src/main/java/forge/game/trigger/TriggerBlockersDeclared.java index 15e1cc02550..c7ec35ae012 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerBlockersDeclared.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerBlockersDeclared.java @@ -17,6 +17,7 @@ */ package forge.game.trigger; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -51,14 +52,14 @@ public class TriggerBlockersDeclared extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Blockers", this.getRunParams().get("Blockers")); - sa.setTriggeringObject("Attackers", this.getRunParams().get("Attackers")); + sa.setTriggeringObject(AbilityKey.Blockers, this.getRunParams().get("Blockers")); + sa.setTriggeringObject(AbilityKey.Attackers, this.getRunParams().get("Attackers")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Blockers: ").append(sa.getTriggeringObject("Blockers")); + sb.append("Blockers: ").append(sa.getTriggeringObject(AbilityKey.Blockers)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerBlocks.java b/forge-game/src/main/java/forge/game/trigger/TriggerBlocks.java index 441348ace95..6388a1ed6a2 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerBlocks.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerBlocks.java @@ -17,6 +17,7 @@ */ package forge.game.trigger; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -88,14 +89,14 @@ public class TriggerBlocks extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Blocker", this.getRunParams().get("Blocker")); - sa.setTriggeringObject("Attackers", this.getRunParams().get("Attackers")); + sa.setTriggeringObject(AbilityKey.Blocker, this.getRunParams().get("Blocker")); + sa.setTriggeringObject(AbilityKey.Attackers, this.getRunParams().get("Attackers")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Blocker: ").append(sa.getTriggeringObject("Blocker")); + sb.append("Blocker: ").append(sa.getTriggeringObject(AbilityKey.Blocker)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerChampioned.java b/forge-game/src/main/java/forge/game/trigger/TriggerChampioned.java index 2604e2d55c7..d95e92662ad 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerChampioned.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerChampioned.java @@ -17,6 +17,7 @@ */ package forge.game.trigger; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -71,14 +72,14 @@ public class TriggerChampioned extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Championed", this.getRunParams().get("Championed")); - sa.setTriggeringObject("Card", this.getRunParams().get("Card")); + sa.setTriggeringObject(AbilityKey.Championed, this.getRunParams().get("Championed")); + sa.setTriggeringObject(AbilityKey.Card, this.getRunParams().get("Card")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Championed: ").append(sa.getTriggeringObject("Championed")); + sb.append("Championed: ").append(sa.getTriggeringObject(AbilityKey.Championed)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerChangesController.java b/forge-game/src/main/java/forge/game/trigger/TriggerChangesController.java index 31a073b8508..0648a26418d 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerChangesController.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerChangesController.java @@ -17,6 +17,7 @@ */ package forge.game.trigger; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -70,13 +71,13 @@ public class TriggerChangesController extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Card", this.getRunParams().get("Card")); + sa.setTriggeringObject(AbilityKey.Card, this.getRunParams().get("Card")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Changed Controller: ").append(sa.getTriggeringObject("Card")); + sb.append("Changed Controller: ").append(sa.getTriggeringObject(AbilityKey.Card)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerChangesZone.java b/forge-game/src/main/java/forge/game/trigger/TriggerChangesZone.java index 87c150ee7b7..1cd778b509b 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerChangesZone.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerChangesZone.java @@ -18,6 +18,7 @@ package forge.game.trigger; import forge.game.Game; +import forge.game.ability.AbilityKey; import forge.game.ability.AbilityUtils; import forge.game.card.Card; import forge.game.card.CardFactoryUtil; @@ -217,13 +218,13 @@ public class TriggerChangesZone extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Card", this.getRunParams().get("Card")); + sa.setTriggeringObject(AbilityKey.Card, this.getRunParams().get("Card")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Zone Changer: ").append(sa.getTriggeringObject("Card")); + sb.append("Zone Changer: ").append(sa.getTriggeringObject(AbilityKey.Card)); return sb.toString(); } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerChangesZoneAll.java b/forge-game/src/main/java/forge/game/trigger/TriggerChangesZoneAll.java index f49005ac74a..f2a36fa0f45 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerChangesZoneAll.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerChangesZoneAll.java @@ -3,6 +3,7 @@ package forge.game.trigger; import java.util.List; import java.util.Map; +import forge.game.ability.AbilityKey; import forge.game.card.*; import forge.game.spellability.SpellAbility; import forge.game.zone.ZoneType; @@ -26,14 +27,14 @@ public class TriggerChangesZoneAll extends Trigger { CardCollection allCards = this.filterCards(table); - sa.setTriggeringObject("Cards", allCards); - sa.setTriggeringObject("Amount", allCards.size()); + sa.setTriggeringObject(AbilityKey.Cards, allCards); + sa.setTriggeringObject(AbilityKey.Amount, allCards.size()); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Amount: ").append(sa.getTriggeringObject("Amount")); + sb.append("Amount: ").append(sa.getTriggeringObject(AbilityKey.Amount)); return sb.toString(); } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerCounterAdded.java b/forge-game/src/main/java/forge/game/trigger/TriggerCounterAdded.java index 26f64523bdc..7b87470996a 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerCounterAdded.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerCounterAdded.java @@ -19,6 +19,7 @@ package forge.game.trigger; import java.util.Map; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.card.CounterType; import forge.game.player.Player; @@ -121,19 +122,19 @@ public class TriggerCounterAdded extends Trigger { @Override public final void setTriggeringObjects(final SpellAbility sa) { if (this.getRunParams().containsKey("Card")) - sa.setTriggeringObject("Card", this.getRunParams().get("Card")); + sa.setTriggeringObject(AbilityKey.Card, this.getRunParams().get("Card")); if (this.getRunParams().containsKey("Player")) - sa.setTriggeringObject("Player", this.getRunParams().get("Player")); + sa.setTriggeringObject(AbilityKey.Player, this.getRunParams().get("Player")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); sb.append("Added once: "); - if (sa.hasTriggeringObject("Card")) - sb.append(sa.getTriggeringObject("Card")); - if (sa.hasTriggeringObject("Player")) - sb.append(sa.getTriggeringObject("Player")); + if (sa.hasTriggeringObject(AbilityKey.Card)) + sb.append(sa.getTriggeringObject(AbilityKey.Card)); + if (sa.hasTriggeringObject(AbilityKey.Player)) + sb.append(sa.getTriggeringObject(AbilityKey.Player)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerCounterAddedAll.java b/forge-game/src/main/java/forge/game/trigger/TriggerCounterAddedAll.java index 94b49909f02..859fd6b8787 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerCounterAddedAll.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerCounterAddedAll.java @@ -6,6 +6,7 @@ import com.google.common.collect.Lists; import forge.game.GameEntity; import forge.game.GameEntityCounterTable; +import forge.game.ability.AbilityKey; import forge.game.card.*; import forge.game.spellability.SpellAbility; @@ -33,14 +34,14 @@ public class TriggerCounterAddedAll extends Trigger { amount += v; } - sa.setTriggeringObject("Objects", Lists.newArrayList(all.keySet())); - sa.setTriggeringObject("Amount", amount); + sa.setTriggeringObject(AbilityKey.Objects, Lists.newArrayList(all.keySet())); + sa.setTriggeringObject(AbilityKey.Amount, amount); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Amount: ").append(sa.getTriggeringObject("Amount")); + sb.append("Amount: ").append(sa.getTriggeringObject(AbilityKey.Amount)); return sb.toString(); } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerCounterAddedOnce.java b/forge-game/src/main/java/forge/game/trigger/TriggerCounterAddedOnce.java index 549a3d81670..4baeaff29c5 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerCounterAddedOnce.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerCounterAddedOnce.java @@ -19,6 +19,7 @@ package forge.game.trigger; import java.util.Map; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.card.CounterType; import forge.game.player.Player; @@ -106,22 +107,22 @@ public class TriggerCounterAddedOnce extends Trigger { @Override public final void setTriggeringObjects(final SpellAbility sa) { if (this.getRunParams().containsKey("Card")) - sa.setTriggeringObject("Card", this.getRunParams().get("Card")); + sa.setTriggeringObject(AbilityKey.Card, this.getRunParams().get("Card")); if (this.getRunParams().containsKey("Player")) - sa.setTriggeringObject("Player", this.getRunParams().get("Player")); - sa.setTriggeringObject("Amount", this.getRunParams().get("CounterAmount")); + sa.setTriggeringObject(AbilityKey.Player, this.getRunParams().get("Player")); + sa.setTriggeringObject(AbilityKey.Amount, this.getRunParams().get("CounterAmount")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); sb.append("Added once: "); - if (sa.hasTriggeringObject("Card")) - sb.append(sa.getTriggeringObject("Card")); - if (sa.hasTriggeringObject("Player")) - sb.append(sa.getTriggeringObject("Player")); + if (sa.hasTriggeringObject(AbilityKey.Card)) + sb.append(sa.getTriggeringObject(AbilityKey.Card)); + if (sa.hasTriggeringObject(AbilityKey.Player)) + sb.append(sa.getTriggeringObject(AbilityKey.Player)); - sb.append(" Amount: ").append(sa.getTriggeringObject("Amount")); + sb.append(" Amount: ").append(sa.getTriggeringObject(AbilityKey.Amount)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerCounterRemoved.java b/forge-game/src/main/java/forge/game/trigger/TriggerCounterRemoved.java index 46e0bc5fa41..1f344bfad12 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerCounterRemoved.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerCounterRemoved.java @@ -17,6 +17,7 @@ */ package forge.game.trigger; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.card.CounterType; import forge.game.spellability.SpellAbility; @@ -82,13 +83,13 @@ public class TriggerCounterRemoved extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Card", this.getRunParams().get("Card")); + sa.setTriggeringObject(AbilityKey.Card, this.getRunParams().get("Card")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Removed from: ").append(sa.getTriggeringObject("Card")); + sb.append("Removed from: ").append(sa.getTriggeringObject(AbilityKey.Card)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerCounterRemovedOnce.java b/forge-game/src/main/java/forge/game/trigger/TriggerCounterRemovedOnce.java index 4e02b6d8df4..a96eb1df4c9 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerCounterRemovedOnce.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerCounterRemovedOnce.java @@ -17,6 +17,7 @@ */ package forge.game.trigger; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.card.CounterType; import forge.game.spellability.SpellAbility; @@ -73,15 +74,15 @@ public class TriggerCounterRemovedOnce extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Card", this.getRunParams().get("Card")); - sa.setTriggeringObject("Amount", this.getRunParams().get("CounterAmount")); + sa.setTriggeringObject(AbilityKey.Card, this.getRunParams().get("Card")); + sa.setTriggeringObject(AbilityKey.Amount, this.getRunParams().get("CounterAmount")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Removed from: ").append(sa.getTriggeringObject("Card")); - sb.append(" Amount: ").append(sa.getTriggeringObject("Amount")); + sb.append("Removed from: ").append(sa.getTriggeringObject(AbilityKey.Card)); + sb.append(" Amount: ").append(sa.getTriggeringObject(AbilityKey.Amount)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerCountered.java b/forge-game/src/main/java/forge/game/trigger/TriggerCountered.java index 0b11585be24..ae5087b29e2 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerCountered.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerCountered.java @@ -17,6 +17,7 @@ */ package forge.game.trigger; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -92,17 +93,17 @@ public class TriggerCountered extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Card", this.getRunParams().get("Card")); - sa.setTriggeringObject("Cause", this.getRunParams().get("Cause")); - sa.setTriggeringObject("Player", this.getRunParams().get("Player")); - sa.setTriggeringObject("CounteredSA", this.getRunParams().get("CounteredSA")); + sa.setTriggeringObject(AbilityKey.Card, this.getRunParams().get("Card")); + sa.setTriggeringObject(AbilityKey.Cause, this.getRunParams().get("Cause")); + sa.setTriggeringObject(AbilityKey.Player, this.getRunParams().get("Player")); + sa.setTriggeringObject(AbilityKey.CounteredSA, this.getRunParams().get("CounteredSA")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Countered: ").append(sa.getTriggeringObject("Card")).append(", "); - sb.append("Cause: ").append(sa.getTriggeringObject("Cause")); + sb.append("Countered: ").append(sa.getTriggeringObject(AbilityKey.Card)).append(", "); + sb.append("Cause: ").append(sa.getTriggeringObject(AbilityKey.Cause)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerCrewed.java b/forge-game/src/main/java/forge/game/trigger/TriggerCrewed.java index e784432b422..655fa1d591a 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerCrewed.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerCrewed.java @@ -1,5 +1,6 @@ package forge.game.trigger; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.card.CardCollection; import forge.game.spellability.SpellAbility; @@ -38,16 +39,16 @@ public class TriggerCrewed extends Trigger { @Override public void setTriggeringObjects(SpellAbility sa) { - sa.setTriggeringObject("Vehicle", this.getRunParams().get("Vehicle")); - sa.setTriggeringObject("Crew", this.getRunParams().get("Crew")); + sa.setTriggeringObject(AbilityKey.Vehicle, this.getRunParams().get("Vehicle")); + sa.setTriggeringObject(AbilityKey.Crew, this.getRunParams().get("Crew")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Vehicle: ").append(sa.getTriggeringObject("Vehicle")); + sb.append("Vehicle: ").append(sa.getTriggeringObject(AbilityKey.Vehicle)); sb.append(" "); - sb.append("Crew: ").append(sa.getTriggeringObject("Crew")); + sb.append("Crew: ").append(sa.getTriggeringObject(AbilityKey.Crew)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerCycled.java b/forge-game/src/main/java/forge/game/trigger/TriggerCycled.java index d62f0f8f58c..82359ed0c66 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerCycled.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerCycled.java @@ -17,6 +17,7 @@ */ package forge.game.trigger; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -49,13 +50,13 @@ public class TriggerCycled extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Card", this.getRunParams().get("Card")); + sa.setTriggeringObject(AbilityKey.Card, this.getRunParams().get("Card")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Cycled: ").append(sa.getTriggeringObject("Card")); + sb.append("Cycled: ").append(sa.getTriggeringObject(AbilityKey.Card)); return sb.toString(); } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerDamageDealtOnce.java b/forge-game/src/main/java/forge/game/trigger/TriggerDamageDealtOnce.java index 7b4331ddb06..7a8dee7acec 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerDamageDealtOnce.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerDamageDealtOnce.java @@ -18,6 +18,7 @@ package forge.game.trigger; import forge.game.GameEntity; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; import forge.util.Expressions; @@ -105,17 +106,17 @@ public class TriggerDamageDealtOnce extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Source", this.getRunParams().get("DamageSource")); - sa.setTriggeringObject("Targets", this.getRunParams().get("DamageTargets")); - sa.setTriggeringObject("DamageAmount", this.getRunParams().get("DamageAmount")); + sa.setTriggeringObject(AbilityKey.Source, this.getRunParams().get("DamageSource")); + sa.setTriggeringObject(AbilityKey.Targets, this.getRunParams().get("DamageTargets")); + sa.setTriggeringObject(AbilityKey.DamageAmount, this.getRunParams().get("DamageAmount")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Damage Source: ").append(sa.getTriggeringObject("Source")).append(", "); - sb.append("Damaged: ").append(sa.getTriggeringObject("Targets")).append(", "); - sb.append("Amount: ").append(sa.getTriggeringObject("DamageAmount")); + sb.append("Damage Source: ").append(sa.getTriggeringObject(AbilityKey.Source)).append(", "); + sb.append("Damaged: ").append(sa.getTriggeringObject(AbilityKey.Targets)).append(", "); + sb.append("Amount: ").append(sa.getTriggeringObject(AbilityKey.DamageAmount)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerDamageDone.java b/forge-game/src/main/java/forge/game/trigger/TriggerDamageDone.java index dc9df9b8fcc..1c9751d0321 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerDamageDone.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerDamageDone.java @@ -17,6 +17,7 @@ */ package forge.game.trigger; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.card.CardUtil; import forge.game.spellability.SpellAbility; @@ -118,19 +119,19 @@ public class TriggerDamageDone extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Source", CardUtil.getLKICopy((Card)this.getRunParams().get("DamageSource"))); - sa.setTriggeringObject("Target", this.getRunParams().get("DamageTarget")); - sa.setTriggeringObject("DamageAmount", this.getRunParams().get("DamageAmount")); + sa.setTriggeringObject(AbilityKey.Source, CardUtil.getLKICopy((Card)this.getRunParams().get("DamageSource"))); + sa.setTriggeringObject(AbilityKey.Target, this.getRunParams().get("DamageTarget")); + sa.setTriggeringObject(AbilityKey.DamageAmount, this.getRunParams().get("DamageAmount")); // This parameter is here because LKI information related to combat doesn't work properly - sa.setTriggeringObject("DefendingPlayer", this.getRunParams().get("DefendingPlayer")); + sa.setTriggeringObject(AbilityKey.DefendingPlayer, this.getRunParams().get("DefendingPlayer")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Damage Source: ").append(sa.getTriggeringObject("Source")).append(", "); - sb.append("Damaged: ").append(sa.getTriggeringObject("Target")).append(", "); - sb.append("Amount: ").append(sa.getTriggeringObject("DamageAmount")); + sb.append("Damage Source: ").append(sa.getTriggeringObject(AbilityKey.Source)).append(", "); + sb.append("Damaged: ").append(sa.getTriggeringObject(AbilityKey.Target)).append(", "); + sb.append("Amount: ").append(sa.getTriggeringObject(AbilityKey.DamageAmount)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerDamageDoneOnce.java b/forge-game/src/main/java/forge/game/trigger/TriggerDamageDoneOnce.java index d5a9634cc39..f80a9c9e3c6 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerDamageDoneOnce.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerDamageDoneOnce.java @@ -4,6 +4,7 @@ import java.util.Map; import java.util.Set; import forge.game.GameEntity; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -58,12 +59,12 @@ public class TriggerDamageDoneOnce extends Trigger { @Override public void setTriggeringObjects(SpellAbility sa) { if (this.getRunParams().containsKey("DamageTarget")) { - sa.setTriggeringObject("Target", this.getRunParams().get("DamageTarget")); + sa.setTriggeringObject(AbilityKey.Target, this.getRunParams().get("DamageTarget")); } if (this.getRunParams().containsKey("DamageSources")) { - sa.setTriggeringObject("Sources", this.getRunParams().get("DamageSources")); + sa.setTriggeringObject(AbilityKey.Sources, this.getRunParams().get("DamageSources")); } - sa.setTriggeringObject("DamageAmount", this.getRunParams().get("DamageAmount")); + sa.setTriggeringObject(AbilityKey.DamageAmount, this.getRunParams().get("DamageAmount")); } @@ -71,10 +72,10 @@ public class TriggerDamageDoneOnce extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - if (sa.getTriggeringObject("Target") != null) { - sb.append("Damaged: ").append(sa.getTriggeringObject("Target")).append(", "); + if (sa.getTriggeringObject(AbilityKey.Target) != null) { + sb.append("Damaged: ").append(sa.getTriggeringObject(AbilityKey.Target)).append(", "); } - sb.append("Amount: ").append(sa.getTriggeringObject("DamageAmount")); + sb.append("Amount: ").append(sa.getTriggeringObject(AbilityKey.DamageAmount)); return sb.toString(); } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerDamagePrevented.java b/forge-game/src/main/java/forge/game/trigger/TriggerDamagePrevented.java index bb8adf982c6..5807e02e70a 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerDamagePrevented.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerDamagePrevented.java @@ -17,6 +17,7 @@ */ package forge.game.trigger; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.card.CardUtil; import forge.game.spellability.SpellAbility; @@ -102,17 +103,17 @@ public class TriggerDamagePrevented extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Source", CardUtil.getLKICopy((Card)this.getRunParams().get("DamageSource"))); - sa.setTriggeringObject("Target", this.getRunParams().get("DamageTarget")); - sa.setTriggeringObject("DamageAmount", this.getRunParams().get("DamageAmount")); + sa.setTriggeringObject(AbilityKey.Source, CardUtil.getLKICopy((Card)this.getRunParams().get("DamageSource"))); + sa.setTriggeringObject(AbilityKey.Target, this.getRunParams().get("DamageTarget")); + sa.setTriggeringObject(AbilityKey.DamageAmount, this.getRunParams().get("DamageAmount")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Damage Source: ").append(sa.getTriggeringObject("Source")).append(", "); - sb.append("Damage Target: ").append(sa.getTriggeringObject("Target")).append(", "); - sb.append("Amount: ").append(sa.getTriggeringObject("DamageAmount")); + sb.append("Damage Source: ").append(sa.getTriggeringObject(AbilityKey.Source)).append(", "); + sb.append("Damage Target: ").append(sa.getTriggeringObject(AbilityKey.Target)).append(", "); + sb.append("Amount: ").append(sa.getTriggeringObject(AbilityKey.DamageAmount)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerDamagePreventedOnce.java b/forge-game/src/main/java/forge/game/trigger/TriggerDamagePreventedOnce.java index c1fb8ce35c2..b2cbf8ce369 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerDamagePreventedOnce.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerDamagePreventedOnce.java @@ -17,6 +17,7 @@ */ package forge.game.trigger; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; import forge.util.Expressions; @@ -93,15 +94,15 @@ public class TriggerDamagePreventedOnce extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Target", this.getRunParams().get("DamageTarget")); - sa.setTriggeringObject("DamageAmount", this.getRunParams().get("DamageAmount")); + sa.setTriggeringObject(AbilityKey.Target, this.getRunParams().get("DamageTarget")); + sa.setTriggeringObject(AbilityKey.DamageAmount, this.getRunParams().get("DamageAmount")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Damage Target: ").append(sa.getTriggeringObject("Target")).append(", "); - sb.append("Amount: ").append(sa.getTriggeringObject("DamageAmount")); + sb.append("Damage Target: ").append(sa.getTriggeringObject(AbilityKey.Target)).append(", "); + sb.append("Amount: ").append(sa.getTriggeringObject(AbilityKey.DamageAmount)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerDestroyed.java b/forge-game/src/main/java/forge/game/trigger/TriggerDestroyed.java index cd533694d4f..22a39539d54 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerDestroyed.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerDestroyed.java @@ -19,6 +19,7 @@ package forge.game.trigger; import java.util.Map; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -67,15 +68,15 @@ public class TriggerDestroyed extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Card", this.getRunParams().get("Card")); - sa.setTriggeringObject("Causer", this.getRunParams().get("Causer")); + sa.setTriggeringObject(AbilityKey.Card, this.getRunParams().get("Card")); + sa.setTriggeringObject(AbilityKey.Causer, this.getRunParams().get("Causer")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Destroyed: ").append(sa.getTriggeringObject("Card")).append(", "); - sb.append("Destroyer: ").append(sa.getTriggeringObject("Causer")); + sb.append("Destroyed: ").append(sa.getTriggeringObject(AbilityKey.Card)).append(", "); + sb.append("Destroyer: ").append(sa.getTriggeringObject(AbilityKey.Causer)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerDevoured.java b/forge-game/src/main/java/forge/game/trigger/TriggerDevoured.java index ac8002f5682..9d2ab4a1d8e 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerDevoured.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerDevoured.java @@ -17,6 +17,7 @@ */ package forge.game.trigger; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -60,13 +61,13 @@ public class TriggerDevoured extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Devoured", this.getRunParams().get("Devoured")); + sa.setTriggeringObject(AbilityKey.Devoured, this.getRunParams().get("Devoured")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Devoured: ").append(sa.getTriggeringObject("Devoured")); + sb.append("Devoured: ").append(sa.getTriggeringObject(AbilityKey.Devoured)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerDiscarded.java b/forge-game/src/main/java/forge/game/trigger/TriggerDiscarded.java index 0c60b064149..5b046239a43 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerDiscarded.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerDiscarded.java @@ -17,6 +17,7 @@ */ package forge.game.trigger; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -85,15 +86,15 @@ public class TriggerDiscarded extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Card", this.getRunParams().get("Card")); - sa.setTriggeringObject("Cause", this.getRunParams().get("Cause")); + sa.setTriggeringObject(AbilityKey.Card, this.getRunParams().get("Card")); + sa.setTriggeringObject(AbilityKey.Cause, this.getRunParams().get("Cause")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Discarded: ").append(sa.getTriggeringObject("Card")).append(", "); - sb.append("Cause: ").append(sa.getTriggeringObject("Cause")); + sb.append("Discarded: ").append(sa.getTriggeringObject(AbilityKey.Card)).append(", "); + sb.append("Cause: ").append(sa.getTriggeringObject(AbilityKey.Cause)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerDrawn.java b/forge-game/src/main/java/forge/game/trigger/TriggerDrawn.java index 7e236166d20..30fae66a797 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerDrawn.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerDrawn.java @@ -19,6 +19,7 @@ package forge.game.trigger; import forge.game.Game; import forge.game.GameStage; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -80,14 +81,14 @@ public class TriggerDrawn extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Card", getRunParams().get("Card")); - sa.setTriggeringObject("Player", getRunParams().get("Player")); + sa.setTriggeringObject(AbilityKey.Card, getRunParams().get("Card")); + sa.setTriggeringObject(AbilityKey.Player, getRunParams().get("Player")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Player: ").append(sa.getTriggeringObject("Player")); + sb.append("Player: ").append(sa.getTriggeringObject(AbilityKey.Player)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerEvolved.java b/forge-game/src/main/java/forge/game/trigger/TriggerEvolved.java index 71c0af1aac8..615c5e94f10 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerEvolved.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerEvolved.java @@ -19,6 +19,7 @@ package forge.game.trigger; import java.util.Map; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -61,13 +62,13 @@ public class TriggerEvolved extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Card", getRunParams().get("Card")); + sa.setTriggeringObject(AbilityKey.Card, getRunParams().get("Card")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Evolved: ").append(sa.getTriggeringObject("Card")); + sb.append("Evolved: ").append(sa.getTriggeringObject(AbilityKey.Card)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerExerted.java b/forge-game/src/main/java/forge/game/trigger/TriggerExerted.java index d4006d908e5..b70e1fd4894 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerExerted.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerExerted.java @@ -1,5 +1,6 @@ package forge.game.trigger; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -32,14 +33,14 @@ public class TriggerExerted extends Trigger { @Override public void setTriggeringObjects(SpellAbility sa) { - sa.setTriggeringObject("Card", this.getRunParams().get("Card")); - sa.setTriggeringObject("Player", this.getRunParams().get("Player")); + sa.setTriggeringObject(AbilityKey.Card, this.getRunParams().get("Card")); + sa.setTriggeringObject(AbilityKey.Player, this.getRunParams().get("Player")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Exerted: ").append(sa.getTriggeringObject("Card")); + sb.append("Exerted: ").append(sa.getTriggeringObject(AbilityKey.Card)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerExiled.java b/forge-game/src/main/java/forge/game/trigger/TriggerExiled.java index 3592a8d0adf..0842e0732ae 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerExiled.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerExiled.java @@ -17,6 +17,7 @@ */ package forge.game.trigger; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -96,13 +97,13 @@ public class TriggerExiled extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Card", this.getRunParams().get("Card")); + sa.setTriggeringObject(AbilityKey.Card, this.getRunParams().get("Card")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Exiled: ").append(sa.getTriggeringObject("Card")); + sb.append("Exiled: ").append(sa.getTriggeringObject(AbilityKey.Card)); return sb.toString(); } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerExploited.java b/forge-game/src/main/java/forge/game/trigger/TriggerExploited.java index dd566071c3c..49437a4b948 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerExploited.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerExploited.java @@ -17,6 +17,7 @@ */ package forge.game.trigger; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -71,15 +72,15 @@ public class TriggerExploited extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Exploited", this.getRunParams().get("Exploited")); - sa.setTriggeringObject("Card", this.getRunParams().get("Card")); + sa.setTriggeringObject(AbilityKey.Exploited, this.getRunParams().get("Exploited")); + sa.setTriggeringObject(AbilityKey.Card, this.getRunParams().get("Card")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Exploited: ").append(sa.getTriggeringObject("Exploited")).append(", "); - sb.append("Exploiter: ").append(sa.getTriggeringObject("Card")); + sb.append("Exploited: ").append(sa.getTriggeringObject(AbilityKey.Exploited)).append(", "); + sb.append("Exploiter: ").append(sa.getTriggeringObject(AbilityKey.Card)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerExplores.java b/forge-game/src/main/java/forge/game/trigger/TriggerExplores.java index 69e458136a9..54f1ff15f54 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerExplores.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerExplores.java @@ -17,6 +17,7 @@ */ package forge.game.trigger; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -61,14 +62,14 @@ public class TriggerExplores extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Explorer", this.getRunParams().get("Card")); + sa.setTriggeringObject(AbilityKey.Explorer, this.getRunParams().get("Card")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Explorer: ").append(sa.getTriggeringObject("Explorer")); + sb.append("Explorer: ").append(sa.getTriggeringObject(AbilityKey.Explorer)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerFight.java b/forge-game/src/main/java/forge/game/trigger/TriggerFight.java index e45b2eeda7e..aecf04ca0db 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerFight.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerFight.java @@ -17,6 +17,7 @@ */ package forge.game.trigger; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -62,13 +63,13 @@ public class TriggerFight extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Fighter", this.getRunParams().get("Fighter")); + sa.setTriggeringObject(AbilityKey.Fighter, this.getRunParams().get("Fighter")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Fighter: ").append(sa.getTriggeringObject("Fighter")); + sb.append("Fighter: ").append(sa.getTriggeringObject(AbilityKey.Fighter)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerFlippedCoin.java b/forge-game/src/main/java/forge/game/trigger/TriggerFlippedCoin.java index 3d4795f9be7..45dbc6a8346 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerFlippedCoin.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerFlippedCoin.java @@ -17,6 +17,7 @@ */ package forge.game.trigger; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -69,13 +70,13 @@ public class TriggerFlippedCoin extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Player", this.getRunParams().get("Player")); + sa.setTriggeringObject(AbilityKey.Player, this.getRunParams().get("Player")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Player: ").append(sa.getTriggeringObject("Player")); + sb.append("Player: ").append(sa.getTriggeringObject(AbilityKey.Player)); return sb.toString(); } } 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 02b6b6f1117..87d51dc130d 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerHandler.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerHandler.java @@ -248,7 +248,7 @@ public class TriggerHandler { List trigger = Lists.newArrayList(); for (final Trigger t : activeTriggers) { - if (canRunTrigger(t,wt.getMode(),toStringMap(wt.getParams()))) { + if (canRunTrigger(t,wt.getMode(),wt.getParams())) { trigger.add(t); } } @@ -337,7 +337,7 @@ public class TriggerHandler { private void runStateTrigger(final Map runParams) { for (final Trigger t: activeTriggers) { - if (canRunTrigger(t, TriggerType.Always, toStringMap(runParams))) { + if (canRunTrigger(t, TriggerType.Always, runParams)) { runSingleTrigger(t, toStringMap(runParams)); } } @@ -375,7 +375,7 @@ public class TriggerHandler { // Static triggers for (final Trigger t : Lists.newArrayList(activeTriggers)) { - if (t.isStatic() && canRunTrigger(t, mode, toStringMap(runParams))) { + if (t.isStatic() && canRunTrigger(t, mode, runParams)) { runSingleTrigger(t, toStringMap(runParams)); checkStatics = true; @@ -427,7 +427,7 @@ public class TriggerHandler { boolean checkStatics = false; for (final Trigger t : triggers) { - if (!t.isStatic() && t.getHostCard().getController().equals(player) && canRunTrigger(t, mode, stringRunParams)) { + if (!t.isStatic() && t.getHostCard().getController().equals(player) && canRunTrigger(t, mode, runParams)) { if (runParams.containsKey(AbilityKey.Card) && runParams.get(AbilityKey.Card) instanceof Card) { card = (Card) runParams.get(AbilityKey.Card); if (runParams.containsKey(AbilityKey.Destination) @@ -458,7 +458,7 @@ public class TriggerHandler { for (final Trigger deltrig : delayedTriggersWorkingCopy) { if (deltrig.getHostCard().getController().equals(player)) { - if (isTriggerActive(deltrig) && canRunTrigger(deltrig, mode, stringRunParams)) { + if (isTriggerActive(deltrig) && canRunTrigger(deltrig, mode, runParams)) { runSingleTrigger(deltrig, stringRunParams); delayedTriggers.remove(deltrig); } @@ -501,7 +501,7 @@ public class TriggerHandler { return true; } - private boolean canRunTrigger(final Trigger regtrig, final TriggerType mode, final Map runParams) { + private boolean canRunTrigger(final Trigger regtrig, final TriggerType mode, final Map runParams) { if (regtrig.getMode() != mode) { return false; // Not the right mode. } @@ -514,7 +514,7 @@ public class TriggerHandler { return false; // Conditions aren't right. } - if (!regtrig.performTest(runParams)) { + if (!regtrig.performTest(toStringMap(runParams))) { return false; // Test failed. } if (regtrig.isSuppressed()) { @@ -531,10 +531,10 @@ public class TriggerHandler { // Torpor Orb check if (game.getStaticEffects().getGlobalRuleChange(GlobalRuleChange.noCreatureETBTriggers) && !regtrig.isStatic() && mode.equals(TriggerType.ChangesZone)) { - if (runParams.get("Destination") instanceof String) { - final String dest = (String) runParams.get("Destination"); - if (dest.equals("Battlefield") && runParams.get("Card") instanceof Card) { - final Card card = (Card) runParams.get("Card"); + if (runParams.get(AbilityKey.Destination) instanceof String) { + final String dest = (String) runParams.get(AbilityKey.Destination); + if (dest.equals("Battlefield") && runParams.get(AbilityKey.Card) instanceof Card) { + final Card card = (Card) runParams.get(AbilityKey.Card); if (card.isCreature()) { return false; } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerInvestigated.java b/forge-game/src/main/java/forge/game/trigger/TriggerInvestigated.java index 89f3a10341d..4673c43daaf 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerInvestigated.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerInvestigated.java @@ -17,6 +17,7 @@ */ package forge.game.trigger; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.player.Player; import forge.game.spellability.SpellAbility; @@ -52,14 +53,14 @@ public class TriggerInvestigated extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Player: ").append(sa.getTriggeringObject("Player")); + sb.append("Player: ").append(sa.getTriggeringObject(AbilityKey.Player)); return sb.toString(); } /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Player", this.getRunParams().get("Player")); + sa.setTriggeringObject(AbilityKey.Player, this.getRunParams().get("Player")); } /** {@inheritDoc} */ diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerLandPlayed.java b/forge-game/src/main/java/forge/game/trigger/TriggerLandPlayed.java index 0622263bdce..42facf2e807 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerLandPlayed.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerLandPlayed.java @@ -17,6 +17,7 @@ */ package forge.game.trigger; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -51,13 +52,13 @@ public class TriggerLandPlayed extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Card", this.getRunParams().get("Card")); + sa.setTriggeringObject(AbilityKey.Card, this.getRunParams().get("Card")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Land played: ").append(sa.getTriggeringObject("Card")); + sb.append("Land played: ").append(sa.getTriggeringObject(AbilityKey.Card)); return sb.toString(); } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerLifeGained.java b/forge-game/src/main/java/forge/game/trigger/TriggerLifeGained.java index 599594075a5..9b13cc0d680 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerLifeGained.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerLifeGained.java @@ -17,6 +17,7 @@ */ package forge.game.trigger; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -73,15 +74,15 @@ public class TriggerLifeGained extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("LifeAmount", getRunParams().get("LifeAmount")); - sa.setTriggeringObject("Player", getRunParams().get("Player")); + sa.setTriggeringObject(AbilityKey.LifeAmount, getRunParams().get("LifeAmount")); + sa.setTriggeringObject(AbilityKey.Player, getRunParams().get("Player")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Player: ").append(sa.getTriggeringObject("Player")).append(", "); - sb.append("Gained Amount: ").append(sa.getTriggeringObject("LifeAmount")); + sb.append("Player: ").append(sa.getTriggeringObject(AbilityKey.Player)).append(", "); + sb.append("Gained Amount: ").append(sa.getTriggeringObject(AbilityKey.LifeAmount)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerLifeLost.java b/forge-game/src/main/java/forge/game/trigger/TriggerLifeLost.java index d905e1c8b07..a592a376217 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerLifeLost.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerLifeLost.java @@ -19,6 +19,7 @@ package forge.game.trigger; import java.util.Map; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -70,15 +71,15 @@ public class TriggerLifeLost extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("LifeAmount", this.getRunParams().get("LifeAmount")); - sa.setTriggeringObject("Player", this.getRunParams().get("Player")); + sa.setTriggeringObject(AbilityKey.LifeAmount, this.getRunParams().get("LifeAmount")); + sa.setTriggeringObject(AbilityKey.Player, this.getRunParams().get("Player")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Player: ").append(sa.getTriggeringObject("Player")).append(", "); - sb.append("Lost Amount: ").append(sa.getTriggeringObject("LifeAmount")); + sb.append("Player: ").append(sa.getTriggeringObject(AbilityKey.Player)).append(", "); + sb.append("Lost Amount: ").append(sa.getTriggeringObject(AbilityKey.LifeAmount)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerLosesGame.java b/forge-game/src/main/java/forge/game/trigger/TriggerLosesGame.java index 931ef32c740..e55850fa631 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerLosesGame.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerLosesGame.java @@ -1,5 +1,6 @@ package forge.game.trigger; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -38,13 +39,13 @@ public class TriggerLosesGame extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Player", this.getRunParams().get("Player")); + sa.setTriggeringObject(AbilityKey.Player, this.getRunParams().get("Player")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Player: ").append(sa.getTriggeringObject("Player")); + sb.append("Player: ").append(sa.getTriggeringObject(AbilityKey.Player)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerPayCumulativeUpkeep.java b/forge-game/src/main/java/forge/game/trigger/TriggerPayCumulativeUpkeep.java index bf13399f36e..51a74fa139e 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerPayCumulativeUpkeep.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerPayCumulativeUpkeep.java @@ -17,6 +17,7 @@ */ package forge.game.trigger; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -69,14 +70,14 @@ public class TriggerPayCumulativeUpkeep extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Card", this.getRunParams().get("Card")); - sa.setTriggeringObject("PayingMana", this.getRunParams().get("PayingMana")); + sa.setTriggeringObject(AbilityKey.Card, this.getRunParams().get("Card")); + sa.setTriggeringObject(AbilityKey.PayingMana, this.getRunParams().get("PayingMana")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Mana: ").append(sa.getTriggeringObject("PayingMana")); + sb.append("Mana: ").append(sa.getTriggeringObject(AbilityKey.PayingMana)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerPayEcho.java b/forge-game/src/main/java/forge/game/trigger/TriggerPayEcho.java index f9e7ecabf45..d6f94a2ea0f 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerPayEcho.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerPayEcho.java @@ -17,6 +17,7 @@ */ package forge.game.trigger; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -69,7 +70,7 @@ public class TriggerPayEcho extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Card", this.getRunParams().get("Card")); + sa.setTriggeringObject(AbilityKey.Card, this.getRunParams().get("Card")); } @Override diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerPayLife.java b/forge-game/src/main/java/forge/game/trigger/TriggerPayLife.java index 4616f0db3a9..9ff7bd8f4a8 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerPayLife.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerPayLife.java @@ -17,6 +17,7 @@ */ package forge.game.trigger; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -60,15 +61,15 @@ public class TriggerPayLife extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("LifeAmount", getRunParams().get("LifeAmount")); - sa.setTriggeringObject("Player", getRunParams().get("Player")); + sa.setTriggeringObject(AbilityKey.LifeAmount, getRunParams().get("LifeAmount")); + sa.setTriggeringObject(AbilityKey.Player, getRunParams().get("Player")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Player: ").append(sa.getTriggeringObject("Player")).append(", "); - sb.append("paid Amount: ").append(sa.getTriggeringObject("LifeAmount")); + sb.append("Player: ").append(sa.getTriggeringObject(AbilityKey.Player)).append(", "); + sb.append("paid Amount: ").append(sa.getTriggeringObject(AbilityKey.LifeAmount)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerPhase.java b/forge-game/src/main/java/forge/game/trigger/TriggerPhase.java index 3fbe945effc..974d40259e7 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerPhase.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerPhase.java @@ -17,6 +17,7 @@ */ package forge.game.trigger; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -59,13 +60,13 @@ public class TriggerPhase extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Player", this.getRunParams().get("Player")); + sa.setTriggeringObject(AbilityKey.Player, this.getRunParams().get("Player")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Phase: ").append(sa.getTriggeringObject("Player")); + sb.append("Phase: ").append(sa.getTriggeringObject(AbilityKey.Player)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerPhaseIn.java b/forge-game/src/main/java/forge/game/trigger/TriggerPhaseIn.java index c3b4aa6e789..d519d56959e 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerPhaseIn.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerPhaseIn.java @@ -1,5 +1,6 @@ package forge.game.trigger; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -27,13 +28,13 @@ public class TriggerPhaseIn extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Card", this.getRunParams().get("Card")); + sa.setTriggeringObject(AbilityKey.Card, this.getRunParams().get("Card")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Phased In: ").append(sa.getTriggeringObject("Card")); + sb.append("Phased In: ").append(sa.getTriggeringObject(AbilityKey.Card)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerPhaseOut.java b/forge-game/src/main/java/forge/game/trigger/TriggerPhaseOut.java index d0abe3e4747..7adcb00cc8b 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerPhaseOut.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerPhaseOut.java @@ -1,5 +1,6 @@ package forge.game.trigger; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -35,13 +36,13 @@ public class TriggerPhaseOut extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Card", this.getRunParams().get("Card")); + sa.setTriggeringObject(AbilityKey.Card, this.getRunParams().get("Card")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Phased Out: ").append(sa.getTriggeringObject("Card")); + sb.append("Phased Out: ").append(sa.getTriggeringObject(AbilityKey.Card)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerPlanarDice.java b/forge-game/src/main/java/forge/game/trigger/TriggerPlanarDice.java index 55bbcbd4b5c..4e1ccdf0a7e 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerPlanarDice.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerPlanarDice.java @@ -1,6 +1,7 @@ package forge.game.trigger; import forge.game.PlanarDice; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -55,13 +56,13 @@ public class TriggerPlanarDice extends Trigger { */ @Override public void setTriggeringObjects(SpellAbility sa) { - sa.setTriggeringObject("Player", this.getRunParams().get("Player")); + sa.setTriggeringObject(AbilityKey.Player, this.getRunParams().get("Player")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Roller: ").append(sa.getTriggeringObject("Player")); + sb.append("Roller: ").append(sa.getTriggeringObject(AbilityKey.Player)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerPlaneswalkedFrom.java b/forge-game/src/main/java/forge/game/trigger/TriggerPlaneswalkedFrom.java index f6ab67086ea..9cee000a7fe 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerPlaneswalkedFrom.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerPlaneswalkedFrom.java @@ -1,5 +1,6 @@ package forge.game.trigger; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.card.CardCollection; import forge.game.spellability.SpellAbility; @@ -52,13 +53,13 @@ public class TriggerPlaneswalkedFrom extends Trigger { */ @Override public void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Cards", this.getRunParams().get("Cards")); + sa.setTriggeringObject(AbilityKey.Cards, this.getRunParams().get("Cards")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Planeswalked From: ").append(sa.getTriggeringObject("Cards")); + sb.append("Planeswalked From: ").append(sa.getTriggeringObject(AbilityKey.Cards)); return sb.toString(); } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerPlaneswalkedTo.java b/forge-game/src/main/java/forge/game/trigger/TriggerPlaneswalkedTo.java index 169a9b070a3..5644c090053 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerPlaneswalkedTo.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerPlaneswalkedTo.java @@ -1,5 +1,6 @@ package forge.game.trigger; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -52,13 +53,13 @@ public class TriggerPlaneswalkedTo extends Trigger { */ @Override public void setTriggeringObjects(SpellAbility sa) { - sa.setTriggeringObject("Cards", this.getRunParams().get("Cards")); + sa.setTriggeringObject(AbilityKey.Cards, this.getRunParams().get("Cards")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Planeswalked To: ").append(sa.getTriggeringObject("Cards")); + sb.append("Planeswalked To: ").append(sa.getTriggeringObject(AbilityKey.Cards)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerRegenerated.java b/forge-game/src/main/java/forge/game/trigger/TriggerRegenerated.java index cd9f836c466..8eea96379ef 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerRegenerated.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerRegenerated.java @@ -19,6 +19,7 @@ package forge.game.trigger; import java.util.Map; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -67,14 +68,14 @@ public class TriggerRegenerated extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Card", this.getRunParams().get("Card")); - sa.setTriggeringObject("Cause", this.getRunParams().get("Cause")); + sa.setTriggeringObject(AbilityKey.Card, this.getRunParams().get("Card")); + sa.setTriggeringObject(AbilityKey.Cause, this.getRunParams().get("Cause")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Regenerated: ").append(sa.getTriggeringObject("Card")); + sb.append("Regenerated: ").append(sa.getTriggeringObject(AbilityKey.Card)); //sb.append("Destroyer: ").append(sa.getTriggeringObject("Causer")); return sb.toString(); } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerRevealed.java b/forge-game/src/main/java/forge/game/trigger/TriggerRevealed.java index c7614ca9d95..b86e7b10439 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerRevealed.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerRevealed.java @@ -2,6 +2,7 @@ package forge.game.trigger; import java.util.Map; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -31,13 +32,13 @@ public class TriggerRevealed extends Trigger { @Override public void setTriggeringObjects(SpellAbility sa) { - sa.setTriggeringObject("Card", this.getRunParams().get("Card")); + sa.setTriggeringObject(AbilityKey.Card, this.getRunParams().get("Card")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Revealed: ").append(sa.getTriggeringObject("Card")); + sb.append("Revealed: ").append(sa.getTriggeringObject(AbilityKey.Card)); return sb.toString(); } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerSacrificed.java b/forge-game/src/main/java/forge/game/trigger/TriggerSacrificed.java index 64e545483fb..aac417535ef 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerSacrificed.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerSacrificed.java @@ -17,6 +17,7 @@ */ package forge.game.trigger; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.cost.IndividualCostPaymentInstance; import forge.game.player.Player; @@ -125,13 +126,13 @@ public class TriggerSacrificed extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Card", this.getRunParams().get("Card")); + sa.setTriggeringObject(AbilityKey.Card, this.getRunParams().get("Card")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Sacrificed: ").append(sa.getTriggeringObject("Card")); + sb.append("Sacrificed: ").append(sa.getTriggeringObject(AbilityKey.Card)); return sb.toString(); } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerScry.java b/forge-game/src/main/java/forge/game/trigger/TriggerScry.java index 70be461dde3..bd0f3cadac5 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerScry.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerScry.java @@ -17,6 +17,7 @@ */ package forge.game.trigger; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -61,13 +62,13 @@ public class TriggerScry extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Player", this.getRunParams().get("Player")); + sa.setTriggeringObject(AbilityKey.Player, this.getRunParams().get("Player")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Scryer: ").append(sa.getTriggeringObject("Player")); + sb.append("Scryer: ").append(sa.getTriggeringObject(AbilityKey.Player)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerSearchedLibrary.java b/forge-game/src/main/java/forge/game/trigger/TriggerSearchedLibrary.java index 538b82670ff..05fd3e062dc 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerSearchedLibrary.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerSearchedLibrary.java @@ -19,6 +19,7 @@ package forge.game.trigger; import java.util.List; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.player.Player; import forge.game.spellability.SpellAbility; @@ -73,13 +74,13 @@ public class TriggerSearchedLibrary extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Player", this.getRunParams().get("Player")); + sa.setTriggeringObject(AbilityKey.Player, this.getRunParams().get("Player")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Searcher: ").append(sa.getTriggeringObject("Player")); + sb.append("Searcher: ").append(sa.getTriggeringObject(AbilityKey.Player)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerSetInMotion.java b/forge-game/src/main/java/forge/game/trigger/TriggerSetInMotion.java index 0cebd807951..1811c949573 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerSetInMotion.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerSetInMotion.java @@ -18,6 +18,7 @@ package forge.game.trigger; import forge.card.CardType; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -76,7 +77,7 @@ public class TriggerSetInMotion extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Scheme", this.getRunParams().get("Scheme")); + sa.setTriggeringObject(AbilityKey.Scheme, this.getRunParams().get("Scheme")); } @Override diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerShuffled.java b/forge-game/src/main/java/forge/game/trigger/TriggerShuffled.java index e8abae4f522..ed801458055 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerShuffled.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerShuffled.java @@ -17,6 +17,7 @@ */ package forge.game.trigger; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -73,13 +74,13 @@ public class TriggerShuffled extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Player", this.getRunParams().get("Player")); + sa.setTriggeringObject(AbilityKey.Player, this.getRunParams().get("Player")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Shuffler: ").append(sa.getTriggeringObject("Player")); + sb.append("Shuffler: ").append(sa.getTriggeringObject(AbilityKey.Player)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerSpellAbilityCast.java b/forge-game/src/main/java/forge/game/trigger/TriggerSpellAbilityCast.java index 43fde3f60c0..db43216f341 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerSpellAbilityCast.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerSpellAbilityCast.java @@ -26,6 +26,7 @@ import com.google.common.collect.Sets; import forge.game.Game; import forge.game.GameEntity; import forge.game.GameObject; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.card.CardCollection; import forge.game.card.CardLists; @@ -265,23 +266,23 @@ public class TriggerSpellAbilityCast extends Trigger { public final void setTriggeringObjects(final SpellAbility sa) { final SpellAbility castSA = (SpellAbility) getRunParams().get("CastSA"); final SpellAbilityStackInstance si = sa.getHostCard().getGame().getStack().getInstanceFromSpellAbility(castSA); - sa.setTriggeringObject("Card", castSA.getHostCard()); - sa.setTriggeringObject("SpellAbility", castSA); - sa.setTriggeringObject("StackInstance", si); - sa.setTriggeringObject("SpellAbilityTargetingCards", (si != null ? si.getSpellAbility(true) : castSA).getTargets().getTargetCards()); - sa.setTriggeringObject("Player", getRunParams().get("Player")); - sa.setTriggeringObject("Activator", getRunParams().get("Activator")); - sa.setTriggeringObject("CurrentStormCount", getRunParams().get("CurrentStormCount")); - sa.setTriggeringObject("CurrentCastSpells", getRunParams().get("CurrentCastSpells")); - sa.setTriggeringObject("CastSACMC", getRunParams().get("CastSACMC")); + sa.setTriggeringObject(AbilityKey.Card, castSA.getHostCard()); + sa.setTriggeringObject(AbilityKey.SpellAbility, castSA); + sa.setTriggeringObject(AbilityKey.StackInstance, si); + sa.setTriggeringObject(AbilityKey.SpellAbilityTargetingCards, (si != null ? si.getSpellAbility(true) : castSA).getTargets().getTargetCards()); + sa.setTriggeringObject(AbilityKey.Player, getRunParams().get("Player")); + sa.setTriggeringObject(AbilityKey.Activator, getRunParams().get("Activator")); + sa.setTriggeringObject(AbilityKey.CurrentStormCount, getRunParams().get("CurrentStormCount")); + sa.setTriggeringObject(AbilityKey.CurrentCastSpells, getRunParams().get("CurrentCastSpells")); + sa.setTriggeringObject(AbilityKey.CastSACMC, getRunParams().get("CastSACMC")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Card: ").append(sa.getTriggeringObject("Card")).append(", "); - sb.append("Activator: ").append(sa.getTriggeringObject("Activator")).append(", "); - sb.append("SpellAbility: ").append(sa.getTriggeringObject("SpellAbility")); + sb.append("Card: ").append(sa.getTriggeringObject(AbilityKey.Card)).append(", "); + sb.append("Activator: ").append(sa.getTriggeringObject(AbilityKey.Activator)).append(", "); + sb.append("SpellAbility: ").append(sa.getTriggeringObject(AbilityKey.SpellAbility)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerSpellAbilityCopy.java b/forge-game/src/main/java/forge/game/trigger/TriggerSpellAbilityCopy.java index 26bb022c137..4dc044312ac 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerSpellAbilityCopy.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerSpellAbilityCopy.java @@ -19,6 +19,7 @@ package forge.game.trigger; import java.util.Map; import forge.game.Game; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; import forge.game.spellability.SpellAbilityStackInstance; @@ -92,17 +93,17 @@ public class TriggerSpellAbilityCopy extends Trigger { public final void setTriggeringObjects(final SpellAbility sa) { final SpellAbility copySA = (SpellAbility) getRunParams().get("CopySA"); final SpellAbilityStackInstance si = sa.getHostCard().getGame().getStack().getInstanceFromSpellAbility(copySA); - sa.setTriggeringObject("Card", copySA.getHostCard()); - sa.setTriggeringObject("SpellAbility", copySA); - sa.setTriggeringObject("StackInstance", si); + sa.setTriggeringObject(AbilityKey.Card, copySA.getHostCard()); + sa.setTriggeringObject(AbilityKey.SpellAbility, copySA); + sa.setTriggeringObject(AbilityKey.StackInstance, si); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Card: ").append(sa.getTriggeringObject("Card")).append(", "); - sb.append("Activator: ").append(sa.getTriggeringObject("Activator")).append(", "); - sb.append("SpellAbility: ").append(sa.getTriggeringObject("SpellAbility")); + sb.append("Card: ").append(sa.getTriggeringObject(AbilityKey.Card)).append(", "); + sb.append("Activator: ").append(sa.getTriggeringObject(AbilityKey.Activator)).append(", "); + sb.append("SpellAbility: ").append(sa.getTriggeringObject(AbilityKey.SpellAbility)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerSurveil.java b/forge-game/src/main/java/forge/game/trigger/TriggerSurveil.java index 2d3ee1dbb19..374e97aa73a 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerSurveil.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerSurveil.java @@ -17,6 +17,7 @@ */ package forge.game.trigger; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.player.Player; import forge.game.spellability.SpellAbility; @@ -48,14 +49,14 @@ public class TriggerSurveil extends Trigger { @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Player: ").append(sa.getTriggeringObject("Player")); + sb.append("Player: ").append(sa.getTriggeringObject(AbilityKey.Player)); return sb.toString(); } /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Player", this.getRunParams().get("Player")); + sa.setTriggeringObject(AbilityKey.Player, this.getRunParams().get("Player")); } /** {@inheritDoc} */ diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerTaps.java b/forge-game/src/main/java/forge/game/trigger/TriggerTaps.java index 44185a79ef7..421a34d71ac 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerTaps.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerTaps.java @@ -17,6 +17,7 @@ */ package forge.game.trigger; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -77,13 +78,13 @@ public class TriggerTaps extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Card", getRunParams().get("Card")); + sa.setTriggeringObject(AbilityKey.Card, getRunParams().get("Card")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Tapped: ").append(sa.getTriggeringObject("Card")); + sb.append("Tapped: ").append(sa.getTriggeringObject(AbilityKey.Card)); return sb.toString(); } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerTapsForMana.java b/forge-game/src/main/java/forge/game/trigger/TriggerTapsForMana.java index 348492cb775..5474f5fc6b8 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerTapsForMana.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerTapsForMana.java @@ -18,6 +18,7 @@ package forge.game.trigger; import forge.card.MagicColor; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.player.Player; import forge.game.spellability.SpellAbility; @@ -104,16 +105,16 @@ public class TriggerTapsForMana extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Card", this.getRunParams().get("Card")); - sa.setTriggeringObject("Player", this.getRunParams().get("Player")); - sa.setTriggeringObject("Produced", this.getRunParams().get("Produced")); + sa.setTriggeringObject(AbilityKey.Card, this.getRunParams().get("Card")); + sa.setTriggeringObject(AbilityKey.Player, this.getRunParams().get("Player")); + sa.setTriggeringObject(AbilityKey.Produced, this.getRunParams().get("Produced")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Tapped for Mana: ").append(sa.getTriggeringObject("Card")); - sb.append("Produced: ").append(sa.getTriggeringObject("Produced")); + sb.append("Tapped for Mana: ").append(sa.getTriggeringObject(AbilityKey.Card)); + sb.append("Produced: ").append(sa.getTriggeringObject(AbilityKey.Produced)); return sb.toString(); } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerTransformed.java b/forge-game/src/main/java/forge/game/trigger/TriggerTransformed.java index b1237117a44..ab5944ab9b0 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerTransformed.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerTransformed.java @@ -17,6 +17,7 @@ */ package forge.game.trigger; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -58,13 +59,13 @@ public class TriggerTransformed extends Trigger { */ @Override public void setTriggeringObjects(SpellAbility sa) { - sa.setTriggeringObject("Transformer", this.getRunParams().get("Transformer")); + sa.setTriggeringObject(AbilityKey.Transformer, this.getRunParams().get("Transformer")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Transformed: ").append(sa.getTriggeringObject("Transformer")); + sb.append("Transformed: ").append(sa.getTriggeringObject(AbilityKey.Transformer)); return sb.toString(); } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerTurnBegin.java b/forge-game/src/main/java/forge/game/trigger/TriggerTurnBegin.java index aa0ac8a718d..0c6c879c4b9 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerTurnBegin.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerTurnBegin.java @@ -1,5 +1,6 @@ package forge.game.trigger; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -20,13 +21,13 @@ public class TriggerTurnBegin extends Trigger { @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Player", this.getRunParams().get("Player")); + sa.setTriggeringObject(AbilityKey.Player, this.getRunParams().get("Player")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Player: ").append(sa.getTriggeringObject("Player")); + sb.append("Player: ").append(sa.getTriggeringObject(AbilityKey.Player)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerTurnFaceUp.java b/forge-game/src/main/java/forge/game/trigger/TriggerTurnFaceUp.java index 41d27376928..8aa74bb14d3 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerTurnFaceUp.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerTurnFaceUp.java @@ -17,6 +17,7 @@ */ package forge.game.trigger; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -60,13 +61,13 @@ public class TriggerTurnFaceUp extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Card", this.getRunParams().get("Card")); + sa.setTriggeringObject(AbilityKey.Card, this.getRunParams().get("Card")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Turn Face up: ").append(sa.getTriggeringObject("Card")); + sb.append("Turn Face up: ").append(sa.getTriggeringObject(AbilityKey.Card)); return sb.toString(); } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerUnattach.java b/forge-game/src/main/java/forge/game/trigger/TriggerUnattach.java index 8b96b06fd3f..f68eb51c482 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerUnattach.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerUnattach.java @@ -18,6 +18,7 @@ package forge.game.trigger; import forge.game.GameEntity; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -72,15 +73,15 @@ public class TriggerUnattach extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Object", getRunParams().get("Object")); - sa.setTriggeringObject("Attach", getRunParams().get("Attach")); + sa.setTriggeringObject(AbilityKey.Object, getRunParams().get("Object")); + sa.setTriggeringObject(AbilityKey.Attach, getRunParams().get("Attach")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Object: ").append(sa.getTriggeringObject("Object")).append(", "); - sb.append("Attachment: ").append(sa.getTriggeringObject("Attach")); + sb.append("Object: ").append(sa.getTriggeringObject(AbilityKey.Object)).append(", "); + sb.append("Attachment: ").append(sa.getTriggeringObject(AbilityKey.Attach)); return sb.toString(); } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerUntaps.java b/forge-game/src/main/java/forge/game/trigger/TriggerUntaps.java index 7c583f1467d..f06243482c8 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerUntaps.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerUntaps.java @@ -17,6 +17,7 @@ */ package forge.game.trigger; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.spellability.SpellAbility; @@ -66,13 +67,13 @@ public class TriggerUntaps extends Trigger { /** {@inheritDoc} */ @Override public final void setTriggeringObjects(final SpellAbility sa) { - sa.setTriggeringObject("Card", this.getRunParams().get("Card")); + sa.setTriggeringObject(AbilityKey.Card, this.getRunParams().get("Card")); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Untapped: ").append(sa.getTriggeringObject("Card")); + sb.append("Untapped: ").append(sa.getTriggeringObject(AbilityKey.Card)); return sb.toString(); } } diff --git a/forge-game/src/main/java/forge/game/trigger/TriggerVote.java b/forge-game/src/main/java/forge/game/trigger/TriggerVote.java index 4ed2b85ad2d..07481b9571a 100644 --- a/forge-game/src/main/java/forge/game/trigger/TriggerVote.java +++ b/forge-game/src/main/java/forge/game/trigger/TriggerVote.java @@ -23,6 +23,7 @@ import java.util.Map; import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.ListMultimap; +import forge.game.ability.AbilityKey; import forge.game.card.Card; import forge.game.player.Player; import forge.game.spellability.SpellAbility; @@ -65,13 +66,13 @@ public class TriggerVote extends Trigger { public final void setTriggeringObjects(final SpellAbility sa) { @SuppressWarnings("unchecked") final ListMultimap votes = (ArrayListMultimap) this.getRunParams().get("AllVotes"); - sa.setTriggeringObject("OtherVoters", getVoters(this.getHostCard().getController(), votes, true, true)); + sa.setTriggeringObject(AbilityKey.OtherVoters, getVoters(this.getHostCard().getController(), votes, true, true)); } @Override public String getImportantStackObjects(SpellAbility sa) { StringBuilder sb = new StringBuilder(); - sb.append("Voters: ").append(sa.getTriggeringObject("OtherVoters")); + sb.append("Voters: ").append(sa.getTriggeringObject(AbilityKey.OtherVoters)); return sb.toString(); } diff --git a/forge-game/src/main/java/forge/game/trigger/WrappedAbility.java b/forge-game/src/main/java/forge/game/trigger/WrappedAbility.java index e48396c53a6..23354269263 100644 --- a/forge-game/src/main/java/forge/game/trigger/WrappedAbility.java +++ b/forge-game/src/main/java/forge/game/trigger/WrappedAbility.java @@ -3,6 +3,7 @@ package forge.game.trigger; import forge.card.mana.ManaCost; import forge.game.Game; import forge.game.GameObject; +import forge.game.ability.AbilityKey; import forge.game.ability.ApiType; import forge.game.card.Card; import forge.game.card.CardCollection; @@ -101,27 +102,27 @@ public class WrappedAbility extends Ability { } @Override - public Map getTriggeringObjects() { + public Map getTriggeringObjects() { return sa.getTriggeringObjects(); } @Override - public void setTriggeringObjects(final Map triggeredObjects) { + public void setTriggeringObjects(final Map triggeredObjects) { sa.setTriggeringObjects(triggeredObjects); } @Override - public void setTriggeringObject(final String type, final Object o) { + public void setTriggeringObject(final AbilityKey type, final Object o) { sa.setTriggeringObject(type, o); } @Override - public Object getTriggeringObject(final String type) { + public Object getTriggeringObject(final AbilityKey type) { return sa.getTriggeringObject(type); } @Override - public boolean hasTriggeringObject(final String type) { + public boolean hasTriggeringObject(final AbilityKey type) { return sa.hasTriggeringObject(type); } @@ -532,8 +533,8 @@ public class WrappedAbility extends Ability { } } } - final Map triggerMap = new HashMap<>(sa.getTriggeringObjects()); - for (Entry ev : triggerMap.entrySet()) { + final Map triggerMap = AbilityKey.newMap(sa.getTriggeringObjects()); + for (Entry ev : triggerMap.entrySet()) { if (ev.getValue() instanceof Card) { Card card = (Card) ev.getValue(); Card current = game.getCardState(card); diff --git a/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java b/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java index fa694747a27..c3504690564 100644 --- a/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java +++ b/forge-gui/src/main/java/forge/player/PlayerControllerHuman.java @@ -21,6 +21,7 @@ import forge.deck.DeckSection; import forge.events.UiEventNextGameDecision; import forge.game.*; import forge.game.ability.AbilityFactory; +import forge.game.ability.AbilityKey; import forge.game.ability.ApiType; import forge.game.ability.effects.CharmEffect; import forge.game.card.*; @@ -631,15 +632,15 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont "CARDNAME", regtrig.getHostCard().getName())); buildQuestion.append(")"); } - final Map tos = sa.getTriggeringObjects(); - if (tos.containsKey("Attacker")) { - buildQuestion.append("\nAttacker: ").append(tos.get("Attacker")); + final Map tos = sa.getTriggeringObjects(); + if (tos.containsKey(AbilityKey.Attacker)) { + buildQuestion.append("\nAttacker: ").append(tos.get(AbilityKey.Attacker)); } - if (tos.containsKey("Card")) { - final Card card = (Card) tos.get("Card"); + if (tos.containsKey(AbilityKey.Card)) { + final Card card = (Card) tos.get(AbilityKey.Card); if (card != null && (card.getController() == player || game.getZoneOf(card) == null || game.getZoneOf(card).getZoneType().isKnown())) { - buildQuestion.append("\nTriggered by: ").append(tos.get("Card")); + buildQuestion.append("\nTriggered by: ").append(tos.get(AbilityKey.Card)); } }