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