more mechanical transformations

This commit is contained in:
Ryan1729
2019-09-11 22:00:38 -06:00
parent 1dc5dc1ff6
commit bbcb59f64f
6 changed files with 25 additions and 20 deletions

View File

@@ -26,6 +26,7 @@ public enum AbilityKey {
DefendingPlayer("DefendingPlayer"), DefendingPlayer("DefendingPlayer"),
Destination("Destination"), Destination("Destination"),
Event("Event"), Event("Event"),
Fighter("Fighter"),
Fizzle("Fizzle"), Fizzle("Fizzle"),
IsCombatDamage("IsCombatDamage"), IsCombatDamage("IsCombatDamage"),
Player("Player"), Player("Player"),
@@ -35,6 +36,7 @@ public enum AbilityKey {
Objects("Objects"), Objects("Objects"),
Origin("Origin"), Origin("Origin"),
OriginalController("OriginalController"), OriginalController("OriginalController"),
Produced("Produced"),
Result("Result"), Result("Result"),
Scheme("Scheme"), Scheme("Scheme"),
SpellAbilityStackInstance("SpellAbilityStackInstance"), SpellAbilityStackInstance("SpellAbilityStackInstance"),

View File

@@ -4,6 +4,7 @@ import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import forge.game.Game; import forge.game.Game;
import forge.game.GameEntityCounterTable; import forge.game.GameEntityCounterTable;
import forge.game.ability.AbilityKey;
import forge.game.ability.SpellAbilityEffect; import forge.game.ability.SpellAbilityEffect;
import forge.game.card.Card; import forge.game.card.Card;
import forge.game.card.CardCollection; import forge.game.card.CardCollection;
@@ -83,9 +84,9 @@ public class ExploreEffect extends SpellAbilityEffect {
} }
// a creature does explore even if it isn't on the battlefield anymore // a creature does explore even if it isn't on the battlefield anymore
final Map<String, Object> runParams = Maps.newHashMap(); final Map<AbilityKey, Object> runParams = AbilityKey.newMap();
runParams.put("Card", c); runParams.put(AbilityKey.Card, c);
game.getTriggerHandler().runTriggerOld(TriggerType.Explores, runParams, false); game.getTriggerHandler().runTrigger(TriggerType.Explores, runParams, false);
} }
table.triggerCountersPutAll(game); table.triggerCountersPutAll(game);
} }

View File

@@ -5,6 +5,7 @@ import com.google.common.collect.Maps;
import forge.game.Game; import forge.game.Game;
import forge.game.GameEntityCounterTable; import forge.game.GameEntityCounterTable;
import forge.game.ability.AbilityKey;
import forge.game.ability.AbilityUtils; import forge.game.ability.AbilityUtils;
import forge.game.card.Card; import forge.game.card.Card;
import forge.game.card.CardDamageMap; import forge.game.card.CardDamageMap;
@@ -59,9 +60,9 @@ public class FightEffect extends DamageBaseEffect {
dealDamage(sa, fighters.get(0), fighters.get(1)); dealDamage(sa, fighters.get(0), fighters.get(1));
for (Card c : fighters) { for (Card c : fighters) {
final Map<String, Object> runParams = Maps.newHashMap(); final Map<AbilityKey, Object> runParams = AbilityKey.newMap();
runParams.put("Fighter", c); runParams.put(AbilityKey.Fighter, c);
game.getTriggerHandler().runTriggerOld(TriggerType.Fight, runParams, false); game.getTriggerHandler().runTrigger(TriggerType.Fight, runParams, false);
} }
} }

View File

@@ -2,6 +2,7 @@ package forge.game.ability.effects;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import forge.game.GameObject; import forge.game.GameObject;
import forge.game.ability.AbilityKey;
import forge.game.ability.AbilityUtils; import forge.game.ability.AbilityUtils;
import forge.game.ability.SpellAbilityEffect; import forge.game.ability.SpellAbilityEffect;
import forge.game.card.Card; import forge.game.card.Card;
@@ -209,10 +210,10 @@ public class FlipCoinEffect extends SpellAbilityEffect {
caller.getGame().getAction().nofityOfValue(sa, caller, wonFlip ? "win" : "lose", null); caller.getGame().getAction().nofityOfValue(sa, caller, wonFlip ? "win" : "lose", null);
// Run triggers // Run triggers
Map<String,Object> runParams = Maps.newHashMap(); final Map<AbilityKey, Object> runParams = AbilityKey.newMap();
runParams.put("Player", caller); runParams.put(AbilityKey.Player, caller);
runParams.put("Result", Boolean.valueOf(wonFlip)); runParams.put(AbilityKey.Result, wonFlip);
caller.getGame().getTriggerHandler().runTriggerOld(TriggerType.FlippedCoin, runParams, false); caller.getGame().getTriggerHandler().runTrigger(TriggerType.FlippedCoin, runParams, false);
} while (sa.hasParam("FlipUntilYouLose") && wonFlip); } while (sa.hasParam("FlipUntilYouLose") && wonFlip);
if (sa.hasParam("FlipUntilYouLose") && sa.hasAdditionalAbility("LoseSubAbility")) { if (sa.hasParam("FlipUntilYouLose") && sa.hasAdditionalAbility("LoseSubAbility")) {

View File

@@ -10,6 +10,7 @@ import forge.card.CardRulesPredicates;
import forge.card.ColorSet; import forge.card.ColorSet;
import forge.card.MagicColor; import forge.card.MagicColor;
import forge.game.Game; import forge.game.Game;
import forge.game.ability.AbilityKey;
import forge.game.ability.SpellAbilityEffect; import forge.game.ability.SpellAbilityEffect;
import forge.game.card.Card; import forge.game.card.Card;
import forge.game.card.CardFactory; import forge.game.card.CardFactory;
@@ -80,9 +81,9 @@ public class PlayLandVariantEffect extends SpellAbilityEffect {
game.fireEvent(new GameEventLandPlayed(activator, source)); game.fireEvent(new GameEventLandPlayed(activator, source));
// Run triggers // Run triggers
final Map<String, Object> runParams = Maps.newHashMap(); final Map<AbilityKey, Object> runParams = AbilityKey.newMap();
runParams.put("Card", source); runParams.put(AbilityKey.Card, source);
game.getTriggerHandler().runTriggerOld(TriggerType.LandPlayed, runParams, false); game.getTriggerHandler().runTrigger(TriggerType.LandPlayed, runParams, false);
game.getStack().unfreezeStack(); game.getStack().unfreezeStack();
activator.addLandPlayedThisTurn(); activator.addLandPlayedThisTurn();
} }

View File

@@ -23,6 +23,7 @@ import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import forge.card.mana.ManaAtom; import forge.card.mana.ManaAtom;
import forge.game.ability.AbilityKey;
import forge.game.trigger.Trigger; import forge.game.trigger.Trigger;
import forge.game.trigger.TriggerHandler; import forge.game.trigger.TriggerHandler;
import forge.util.TextUtil; import forge.util.TextUtil;
@@ -166,13 +167,11 @@ public class AbilityManaPart implements java.io.Serializable {
manaPool.add(this.lastManaProduced); manaPool.add(this.lastManaProduced);
// Run triggers // Run triggers
final Map<String, Object> runParams = Maps.newHashMap(); final Map<AbilityKey, Object> runParams = AbilityKey.mapFromCard(source);
runParams.put(AbilityKey.Player, player);
runParams.put("Card", source); runParams.put(AbilityKey.AbilityMana, sa);
runParams.put("Player", player); runParams.put(AbilityKey.Produced, afterReplace);
runParams.put("AbilityMana", sa); player.getGame().getTriggerHandler().runTrigger(TriggerType.TapsForMana, runParams, false);
runParams.put("Produced", afterReplace);
player.getGame().getTriggerHandler().runTriggerOld(TriggerType.TapsForMana, runParams, false);
if (source.isLand()) { if (source.isLand()) {
player.setTappedLandForManaThisTurn(true); player.setTappedLandForManaThisTurn(true);
} }