mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 02:38:02 +00:00
more mechanical transformations
This commit is contained in:
@@ -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"),
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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")) {
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user