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"),
Destination("Destination"),
Event("Event"),
Fighter("Fighter"),
Fizzle("Fizzle"),
IsCombatDamage("IsCombatDamage"),
Player("Player"),
@@ -35,6 +36,7 @@ public enum AbilityKey {
Objects("Objects"),
Origin("Origin"),
OriginalController("OriginalController"),
Produced("Produced"),
Result("Result"),
Scheme("Scheme"),
SpellAbilityStackInstance("SpellAbilityStackInstance"),

View File

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

View File

@@ -5,6 +5,7 @@ import com.google.common.collect.Maps;
import forge.game.Game;
import forge.game.GameEntityCounterTable;
import forge.game.ability.AbilityKey;
import forge.game.ability.AbilityUtils;
import forge.game.card.Card;
import forge.game.card.CardDamageMap;
@@ -59,9 +60,9 @@ public class FightEffect extends DamageBaseEffect {
dealDamage(sa, fighters.get(0), fighters.get(1));
for (Card c : fighters) {
final Map<String, Object> runParams = Maps.newHashMap();
runParams.put("Fighter", c);
game.getTriggerHandler().runTriggerOld(TriggerType.Fight, runParams, false);
final Map<AbilityKey, Object> runParams = AbilityKey.newMap();
runParams.put(AbilityKey.Fighter, c);
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 forge.game.GameObject;
import forge.game.ability.AbilityKey;
import forge.game.ability.AbilityUtils;
import forge.game.ability.SpellAbilityEffect;
import forge.game.card.Card;
@@ -209,10 +210,10 @@ public class FlipCoinEffect extends SpellAbilityEffect {
caller.getGame().getAction().nofityOfValue(sa, caller, wonFlip ? "win" : "lose", null);
// Run triggers
Map<String,Object> runParams = Maps.newHashMap();
runParams.put("Player", caller);
runParams.put("Result", Boolean.valueOf(wonFlip));
caller.getGame().getTriggerHandler().runTriggerOld(TriggerType.FlippedCoin, runParams, false);
final Map<AbilityKey, Object> runParams = AbilityKey.newMap();
runParams.put(AbilityKey.Player, caller);
runParams.put(AbilityKey.Result, wonFlip);
caller.getGame().getTriggerHandler().runTrigger(TriggerType.FlippedCoin, runParams, false);
} while (sa.hasParam("FlipUntilYouLose") && wonFlip);
if (sa.hasParam("FlipUntilYouLose") && sa.hasAdditionalAbility("LoseSubAbility")) {

View File

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

View File

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