mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 20:28:00 +00:00
rename runTrigger to runTriggerOld and add new runTrigger method
This commit is contained in:
@@ -25,6 +25,7 @@ import forge.game.phase.PhaseType;
|
|||||||
import forge.game.player.Player;
|
import forge.game.player.Player;
|
||||||
import forge.game.spellability.AbilityManaPart;
|
import forge.game.spellability.AbilityManaPart;
|
||||||
import forge.game.spellability.SpellAbility;
|
import forge.game.spellability.SpellAbility;
|
||||||
|
import forge.game.trigger.TriggerKey;
|
||||||
import forge.game.trigger.TriggerType;
|
import forge.game.trigger.TriggerType;
|
||||||
import forge.game.zone.PlayerZone;
|
import forge.game.zone.PlayerZone;
|
||||||
import forge.game.zone.ZoneType;
|
import forge.game.zone.ZoneType;
|
||||||
@@ -719,10 +720,10 @@ public abstract class GameState {
|
|||||||
for (final Card c : combat.getAttackers()) {
|
for (final Card c : combat.getAttackers()) {
|
||||||
attackedTarget.add(combat.getDefenderByAttacker(c));
|
attackedTarget.add(combat.getDefenderByAttacker(c));
|
||||||
}
|
}
|
||||||
final Map<String, Object> runParams = Maps.newHashMap();
|
final Map<TriggerKey, Object> runParams = Maps.newEnumMap(TriggerKey.class);
|
||||||
runParams.put("Attackers", combat.getAttackers());
|
runParams.put(TriggerKey.Attackers, combat.getAttackers());
|
||||||
runParams.put("AttackingPlayer", combat.getAttackingPlayer());
|
runParams.put(TriggerKey.AttackingPlayer, combat.getAttackingPlayer());
|
||||||
runParams.put("AttackedTarget", attackedTarget);
|
runParams.put(TriggerKey.AttackedTarget, attackedTarget);
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.AttackersDeclared, runParams, false);
|
game.getTriggerHandler().runTrigger(TriggerType.AttackersDeclared, runParams, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -715,7 +715,7 @@ public class Game {
|
|||||||
|
|
||||||
final Map<String, Object> runParams = new TreeMap<String, Object>();
|
final Map<String, Object> runParams = new TreeMap<String, Object>();
|
||||||
runParams.put("Player", p);
|
runParams.put("Player", p);
|
||||||
getTriggerHandler().runTrigger(TriggerType.LosesGame, runParams, false);
|
getTriggerHandler().runTriggerOld(TriggerType.LosesGame, runParams, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -411,7 +411,7 @@ public class GameAction {
|
|||||||
runParams.putAll(params);
|
runParams.putAll(params);
|
||||||
}
|
}
|
||||||
|
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.ChangesZone, runParams, true);
|
game.getTriggerHandler().runTriggerOld(TriggerType.ChangesZone, runParams, true);
|
||||||
if (zoneFrom != null && zoneFrom.is(ZoneType.Battlefield) && !zoneFrom.getPlayer().equals(zoneTo.getPlayer())) {
|
if (zoneFrom != null && zoneFrom.is(ZoneType.Battlefield) && !zoneFrom.getPlayer().equals(zoneTo.getPlayer())) {
|
||||||
final Map<String, Object> runParams2 = Maps.newHashMap();
|
final Map<String, Object> runParams2 = Maps.newHashMap();
|
||||||
runParams2.put("Card", lastKnownInfo);
|
runParams2.put("Card", lastKnownInfo);
|
||||||
@@ -419,7 +419,7 @@ public class GameAction {
|
|||||||
if(params != null) {
|
if(params != null) {
|
||||||
runParams2.putAll(params);
|
runParams2.putAll(params);
|
||||||
}
|
}
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.ChangesController, runParams2, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.ChangesController, runParams2, false);
|
||||||
}
|
}
|
||||||
// AllZone.getStack().chooseOrderOfSimultaneousStackEntryAll();
|
// AllZone.getStack().chooseOrderOfSimultaneousStackEntryAll();
|
||||||
|
|
||||||
@@ -602,7 +602,7 @@ public class GameAction {
|
|||||||
final Map<String, Object> runParams = Maps.newHashMap();
|
final Map<String, Object> runParams = Maps.newHashMap();
|
||||||
runParams.put("Card", c);
|
runParams.put("Card", c);
|
||||||
runParams.put("OriginalController", original);
|
runParams.put("OriginalController", original);
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.ChangesController, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.ChangesController, runParams, false);
|
||||||
|
|
||||||
game.getTriggerHandler().clearSuppression(TriggerType.ChangesZone);
|
game.getTriggerHandler().clearSuppression(TriggerType.ChangesZone);
|
||||||
for (Player p : game.getPlayers()) {
|
for (Player p : game.getPlayers()) {
|
||||||
@@ -717,7 +717,7 @@ public class GameAction {
|
|||||||
runParams.putAll(params);
|
runParams.putAll(params);
|
||||||
}
|
}
|
||||||
|
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.Exiled, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.Exiled, runParams, false);
|
||||||
|
|
||||||
return copied;
|
return copied;
|
||||||
}
|
}
|
||||||
@@ -909,9 +909,9 @@ public class GameAction {
|
|||||||
// in that case Always trigger should not Run
|
// in that case Always trigger should not Run
|
||||||
if (preList.isEmpty()) {
|
if (preList.isEmpty()) {
|
||||||
final Map<String, Object> runParams = Maps.newHashMap();
|
final Map<String, Object> runParams = Maps.newHashMap();
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.Always, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.Always, runParams, false);
|
||||||
|
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.Immediate, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.Immediate, runParams, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update P/T and type in the view only once after all the cards have been processed, to avoid flickering
|
// Update P/T and type in the view only once after all the cards have been processed, to avoid flickering
|
||||||
@@ -1433,7 +1433,7 @@ public class GameAction {
|
|||||||
final Map<String, Object> runParams = Maps.newHashMap();
|
final Map<String, Object> runParams = Maps.newHashMap();
|
||||||
runParams.put("Card", c);
|
runParams.put("Card", c);
|
||||||
runParams.put("Causer", activator);
|
runParams.put("Causer", activator);
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.Destroyed, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.Destroyed, runParams, false);
|
||||||
|
|
||||||
final Card sacrificed = sacrificeDestroy(c, sa, table);
|
final Card sacrificed = sacrificeDestroy(c, sa, table);
|
||||||
return sacrificed != null;
|
return sacrificed != null;
|
||||||
@@ -1611,7 +1611,7 @@ public class GameAction {
|
|||||||
|
|
||||||
// Run Trigger beginning of the game
|
// Run Trigger beginning of the game
|
||||||
final Map<String, Object> runParams = Maps.newHashMap();
|
final Map<String, Object> runParams = Maps.newHashMap();
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.NewGame, runParams, true);
|
game.getTriggerHandler().runTriggerOld(TriggerType.NewGame, runParams, true);
|
||||||
//</THIS CODE WILL WORK WITH PHASE = NULL>
|
//</THIS CODE WILL WORK WITH PHASE = NULL>
|
||||||
|
|
||||||
|
|
||||||
@@ -1776,7 +1776,7 @@ public class GameAction {
|
|||||||
// Run triggers
|
// Run triggers
|
||||||
final Map<String, Object> runParams = Maps.newHashMap();
|
final Map<String, Object> runParams = Maps.newHashMap();
|
||||||
runParams.put("Player", p);
|
runParams.put("Player", p);
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.BecomeMonarch, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.BecomeMonarch, runParams, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make scry an action function so that it can be used for mulligans (with a null cause)
|
// Make scry an action function so that it can be used for mulligans (with a null cause)
|
||||||
@@ -1838,7 +1838,7 @@ public class GameAction {
|
|||||||
// set up triggers (but not actually do them until later)
|
// set up triggers (but not actually do them until later)
|
||||||
final Map<String, Object> runParams = Maps.newHashMap();
|
final Map<String, Object> runParams = Maps.newHashMap();
|
||||||
runParams.put("Player", p);
|
runParams.put("Player", p);
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.Scry, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.Scry, runParams, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -220,7 +220,7 @@ public abstract class GameEntity extends GameObject implements IIdentifiable {
|
|||||||
runParams.put("DamageSource", source);
|
runParams.put("DamageSource", source);
|
||||||
runParams.put("IsCombatDamage", isCombat);
|
runParams.put("IsCombatDamage", isCombat);
|
||||||
|
|
||||||
getGame().getTriggerHandler().runTrigger(TriggerType.DamagePrevented, runParams, false);
|
getGame().getTriggerHandler().runTriggerOld(TriggerType.DamagePrevented, runParams, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
return restDamage;
|
return restDamage;
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ public class GameEntityCounterTable extends ForwardingTable<GameEntity, CounterT
|
|||||||
if (!isEmpty()) {
|
if (!isEmpty()) {
|
||||||
final Map<String, Object> runParams = Maps.newHashMap();
|
final Map<String, Object> runParams = Maps.newHashMap();
|
||||||
runParams.put("Objects", this);
|
runParams.put("Objects", this);
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.CounterAddedAll, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.CounterAddedAll, runParams, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ public enum PlanarDice {
|
|||||||
HashMap<String,Object> runParams = new HashMap<String,Object>();
|
HashMap<String,Object> runParams = new HashMap<String,Object>();
|
||||||
runParams.put("Player", roller);
|
runParams.put("Player", roller);
|
||||||
runParams.put("Result", trigRes);
|
runParams.put("Result", trigRes);
|
||||||
roller.getGame().getTriggerHandler().runTrigger(TriggerType.PlanarDice, runParams,false);
|
roller.getGame().getTriggerHandler().runTriggerOld(TriggerType.PlanarDice, runParams,false);
|
||||||
|
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ public class AbandonEffect extends SpellAbilityEffect {
|
|||||||
// Run triggers
|
// Run triggers
|
||||||
final Map<String, Object> runParams = Maps.newHashMap();
|
final Map<String, Object> runParams = Maps.newHashMap();
|
||||||
runParams.put("Scheme", source);
|
runParams.put("Scheme", source);
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.Abandoned, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.Abandoned, runParams, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ public class BecomesBlockedEffect extends SpellAbilityEffect {
|
|||||||
runParams.put("NumBlockers", 0);
|
runParams.put("NumBlockers", 0);
|
||||||
runParams.put("Defender", game.getCombat().getDefenderByAttacker(c));
|
runParams.put("Defender", game.getCombat().getDefenderByAttacker(c));
|
||||||
runParams.put("DefendingPlayer", game.getCombat().getDefenderPlayerByAttacker(c));
|
runParams.put("DefendingPlayer", game.getCombat().getDefenderPlayerByAttacker(c));
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.AttackerBlocked, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.AttackerBlocked, runParams, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -56,12 +56,12 @@ public class BlockEffect extends SpellAbilityEffect {
|
|||||||
Map<String, Object> runParams = Maps.newHashMap();
|
Map<String, Object> runParams = Maps.newHashMap();
|
||||||
runParams.put("Attacker", attacker);
|
runParams.put("Attacker", attacker);
|
||||||
runParams.put("Blocker", blocker);
|
runParams.put("Blocker", blocker);
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.AttackerBlockedByCreature, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.AttackerBlockedByCreature, runParams, false);
|
||||||
|
|
||||||
runParams = Maps.newHashMap();
|
runParams = Maps.newHashMap();
|
||||||
runParams.put("Blocker", blocker);
|
runParams.put("Blocker", blocker);
|
||||||
runParams.put("Attackers", attacker);
|
runParams.put("Attackers", attacker);
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.Blocks, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.Blocks, runParams, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
attacker.getDamageHistory().setCreatureGotBlockedThisCombat(true);
|
attacker.getDamageHistory().setCreatureGotBlockedThisCombat(true);
|
||||||
@@ -72,7 +72,7 @@ public class BlockEffect extends SpellAbilityEffect {
|
|||||||
runParams.put("NumBlockers", blockers.size());
|
runParams.put("NumBlockers", blockers.size());
|
||||||
runParams.put("Defender", combat.getDefenderByAttacker(attacker));
|
runParams.put("Defender", combat.getDefenderByAttacker(attacker));
|
||||||
runParams.put("DefendingPlayer", combat.getDefenderPlayerByAttacker(attacker));
|
runParams.put("DefendingPlayer", combat.getDefenderPlayerByAttacker(attacker));
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.AttackerBlocked, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.AttackerBlocked, runParams, false);
|
||||||
|
|
||||||
combat.orderBlockersForDamageAssignment(attacker, new CardCollection(blockers));
|
combat.orderBlockersForDamageAssignment(attacker, new CardCollection(blockers));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ public class ChangeZoneAllEffect extends SpellAbilityEffect {
|
|||||||
final Map<String, Object> runParams = Maps.newHashMap();
|
final Map<String, Object> runParams = Maps.newHashMap();
|
||||||
runParams.put("Player", sa.getActivatingPlayer());
|
runParams.put("Player", sa.getActivatingPlayer());
|
||||||
runParams.put("Target", tgtPlayers);
|
runParams.put("Target", tgtPlayers);
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.SearchedLibrary, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.SearchedLibrary, runParams, false);
|
||||||
}
|
}
|
||||||
if (origin.contains(ZoneType.Hand) && sa.hasParam("Search")) {
|
if (origin.contains(ZoneType.Hand) && sa.hasParam("Search")) {
|
||||||
CardCollection handCards = CardLists.filterControlledBy(CardLists.getValidCards(cards, "Card.inZoneHand", sa.getActivatingPlayer(), source),
|
CardCollection handCards = CardLists.filterControlledBy(CardLists.getValidCards(cards, "Card.inZoneHand", sa.getActivatingPlayer(), source),
|
||||||
|
|||||||
@@ -833,7 +833,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
|
|||||||
final Map<String, Object> runParams = Maps.newHashMap();
|
final Map<String, Object> runParams = Maps.newHashMap();
|
||||||
runParams.put("Player", decider);
|
runParams.put("Player", decider);
|
||||||
runParams.put("Target", Lists.newArrayList(player));
|
runParams.put("Target", Lists.newArrayList(player));
|
||||||
decider.getGame().getTriggerHandler().runTrigger(TriggerType.SearchedLibrary, runParams, false);
|
decider.getGame().getTriggerHandler().runTriggerOld(TriggerType.SearchedLibrary, runParams, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!defined && changeType != null) {
|
if (!defined && changeType != null) {
|
||||||
@@ -1136,7 +1136,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
|
|||||||
final Map<String, Object> runParams = Maps.newHashMap();
|
final Map<String, Object> runParams = Maps.newHashMap();
|
||||||
runParams.put("Card", source);
|
runParams.put("Card", source);
|
||||||
runParams.put("Championed", c);
|
runParams.put("Championed", c);
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.Championed, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.Championed, runParams, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (remember) {
|
if (remember) {
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ public class ClashEffect extends SpellAbilityEffect {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
sa.getHostCard().getGame().getTriggerHandler().runTrigger(TriggerType.Clashed, runParams, false);
|
sa.getHostCard().getGame().getTriggerHandler().runTriggerOld(TriggerType.Clashed, runParams, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -213,7 +213,7 @@ public class CounterEffect extends SpellAbilityEffect {
|
|||||||
runParams.put("Card", tgtSA.getHostCard());
|
runParams.put("Card", tgtSA.getHostCard());
|
||||||
runParams.put("Cause", srcSA.getHostCard());
|
runParams.put("Cause", srcSA.getHostCard());
|
||||||
runParams.put("CounteredSA", tgtSA);
|
runParams.put("CounteredSA", tgtSA);
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.Countered, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.Countered, runParams, false);
|
||||||
|
|
||||||
|
|
||||||
if (!tgtSA.isAbility()) {
|
if (!tgtSA.isAbility()) {
|
||||||
|
|||||||
@@ -262,27 +262,27 @@ public class CountersPutEffect extends SpellAbilityEffect {
|
|||||||
if (sa.hasParam("Evolve")) {
|
if (sa.hasParam("Evolve")) {
|
||||||
final Map<String, Object> runParams = Maps.newHashMap();
|
final Map<String, Object> runParams = Maps.newHashMap();
|
||||||
runParams.put("Card", tgtCard);
|
runParams.put("Card", tgtCard);
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.Evolved, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.Evolved, runParams, false);
|
||||||
}
|
}
|
||||||
if (sa.hasParam("Monstrosity")) {
|
if (sa.hasParam("Monstrosity")) {
|
||||||
tgtCard.setMonstrous(true);
|
tgtCard.setMonstrous(true);
|
||||||
final Map<String, Object> runParams = Maps.newHashMap();
|
final Map<String, Object> runParams = Maps.newHashMap();
|
||||||
runParams.put("Card", tgtCard);
|
runParams.put("Card", tgtCard);
|
||||||
runParams.put("MonstrosityAmount", counterAmount);
|
runParams.put("MonstrosityAmount", counterAmount);
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.BecomeMonstrous, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.BecomeMonstrous, runParams, false);
|
||||||
}
|
}
|
||||||
if (sa.hasParam("Renown")) {
|
if (sa.hasParam("Renown")) {
|
||||||
tgtCard.setRenowned(true);
|
tgtCard.setRenowned(true);
|
||||||
final Map<String, Object> runParams = Maps.newHashMap();
|
final Map<String, Object> runParams = Maps.newHashMap();
|
||||||
runParams.put("Card", tgtCard);
|
runParams.put("Card", tgtCard);
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.BecomeRenowned, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.BecomeRenowned, runParams, false);
|
||||||
}
|
}
|
||||||
if (sa.hasParam("Adapt")) {
|
if (sa.hasParam("Adapt")) {
|
||||||
// need to remove special keyword
|
// need to remove special keyword
|
||||||
tgtCard.removeHiddenExtrinsicKeyword("CARDNAME adapts as though it had no +1/+1 counters");
|
tgtCard.removeHiddenExtrinsicKeyword("CARDNAME adapts as though it had no +1/+1 counters");
|
||||||
final Map<String, Object> runParams = Maps.newHashMap();
|
final Map<String, Object> runParams = Maps.newHashMap();
|
||||||
runParams.put("Card", tgtCard);
|
runParams.put("Card", tgtCard);
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.Adapt, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.Adapt, runParams, false);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// adding counters to something like re-suspend cards
|
// adding counters to something like re-suspend cards
|
||||||
|
|||||||
@@ -85,7 +85,7 @@ 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<String, Object> runParams = Maps.newHashMap();
|
||||||
runParams.put("Card", c);
|
runParams.put("Card", c);
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.Explores, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.Explores, runParams, false);
|
||||||
}
|
}
|
||||||
table.triggerCountersPutAll(game);
|
table.triggerCountersPutAll(game);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ public class FightEffect extends DamageBaseEffect {
|
|||||||
for (Card c : fighters) {
|
for (Card c : fighters) {
|
||||||
final Map<String, Object> runParams = Maps.newHashMap();
|
final Map<String, Object> runParams = Maps.newHashMap();
|
||||||
runParams.put("Fighter", c);
|
runParams.put("Fighter", c);
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.Fight, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.Fight, runParams, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -212,7 +212,7 @@ public class FlipCoinEffect extends SpellAbilityEffect {
|
|||||||
Map<String,Object> runParams = Maps.newHashMap();
|
Map<String,Object> runParams = Maps.newHashMap();
|
||||||
runParams.put("Player", caller);
|
runParams.put("Player", caller);
|
||||||
runParams.put("Result", Boolean.valueOf(wonFlip));
|
runParams.put("Result", Boolean.valueOf(wonFlip));
|
||||||
caller.getGame().getTriggerHandler().runTrigger(TriggerType.FlippedCoin, runParams, false);
|
caller.getGame().getTriggerHandler().runTriggerOld(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")) {
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ public class PlayLandVariantEffect extends SpellAbilityEffect {
|
|||||||
// Run triggers
|
// Run triggers
|
||||||
final Map<String, Object> runParams = Maps.newHashMap();
|
final Map<String, Object> runParams = Maps.newHashMap();
|
||||||
runParams.put("Card", source);
|
runParams.put("Card", source);
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.LandPlayed, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.LandPlayed, runParams, false);
|
||||||
game.getStack().unfreezeStack();
|
game.getStack().unfreezeStack();
|
||||||
activator.addLandPlayedThisTurn();
|
activator.addLandPlayedThisTurn();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ public class RegenerationEffect extends SpellAbilityEffect {
|
|||||||
final Map<String, Object> runParams = Maps.newHashMap();
|
final Map<String, Object> runParams = Maps.newHashMap();
|
||||||
runParams.put("Card", c);
|
runParams.put("Card", c);
|
||||||
runParams.put("Cause", host);
|
runParams.put("Cause", host);
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.Regenerated, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.Regenerated, runParams, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ public class RevealEffect extends SpellAbilityEffect {
|
|||||||
runParams.put("Miracle", true);
|
runParams.put("Miracle", true);
|
||||||
}
|
}
|
||||||
//*/
|
//*/
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.Revealed, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.Revealed, runParams, false);
|
||||||
if (sa.hasParam("RememberRevealed")) {
|
if (sa.hasParam("RememberRevealed")) {
|
||||||
host.addRemembered(c);
|
host.addRemembered(c);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ public class SacrificeEffect extends SpellAbilityEffect {
|
|||||||
final Map<String, Object> runParams = Maps.newHashMap();
|
final Map<String, Object> runParams = Maps.newHashMap();
|
||||||
runParams.put("EchoPaid", Boolean.valueOf(isPaid));
|
runParams.put("EchoPaid", Boolean.valueOf(isPaid));
|
||||||
runParams.put("Card", card);
|
runParams.put("Card", card);
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.PayEcho, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.PayEcho, runParams, false);
|
||||||
if (isPaid || !card.getController().equals(activator)) {
|
if (isPaid || !card.getController().equals(activator)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -69,7 +69,7 @@ public class SacrificeEffect extends SpellAbilityEffect {
|
|||||||
runParams.put("CumulativeUpkeepPaid", Boolean.valueOf(isPaid));
|
runParams.put("CumulativeUpkeepPaid", Boolean.valueOf(isPaid));
|
||||||
runParams.put("Card", card);
|
runParams.put("Card", card);
|
||||||
runParams.put("PayingMana", StringUtils.join(sa.getPayingMana(), ""));
|
runParams.put("PayingMana", StringUtils.join(sa.getPayingMana(), ""));
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.PayCumulativeUpkeep, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.PayCumulativeUpkeep, runParams, false);
|
||||||
if (isPaid || !card.getController().equals(activator)) {
|
if (isPaid || !card.getController().equals(activator)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -149,14 +149,14 @@ public class SacrificeEffect extends SpellAbilityEffect {
|
|||||||
card.addDevoured(lKICopy);
|
card.addDevoured(lKICopy);
|
||||||
final Map<String, Object> runParams = Maps.newHashMap();
|
final Map<String, Object> runParams = Maps.newHashMap();
|
||||||
runParams.put("Devoured", sac);
|
runParams.put("Devoured", sac);
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.Devoured, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.Devoured, runParams, false);
|
||||||
}
|
}
|
||||||
if (exploit) {
|
if (exploit) {
|
||||||
card.addExploited(lKICopy);
|
card.addExploited(lKICopy);
|
||||||
final Map<String, Object> runParams = Maps.newHashMap();
|
final Map<String, Object> runParams = Maps.newHashMap();
|
||||||
runParams.put("Exploited", lKICopy);
|
runParams.put("Exploited", lKICopy);
|
||||||
runParams.put("Card", card);
|
runParams.put("Card", card);
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.Exploited, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.Exploited, runParams, false);
|
||||||
}
|
}
|
||||||
if (wasDestroyed || wasSacrificed) {
|
if (wasDestroyed || wasSacrificed) {
|
||||||
countSacrificed++;
|
countSacrificed++;
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ public class SetInMotionEffect extends SpellAbilityEffect {
|
|||||||
// Run triggers
|
// Run triggers
|
||||||
final Map<String, Object> runParams = Maps.newHashMap();
|
final Map<String, Object> runParams = Maps.newHashMap();
|
||||||
runParams.put("Scheme", controller.getActiveScheme());
|
runParams.put("Scheme", controller.getActiveScheme());
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.SetInMotion, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.SetInMotion, runParams, false);
|
||||||
} else {
|
} else {
|
||||||
controller.setSchemeInMotion();
|
controller.setSchemeInMotion();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -101,7 +101,7 @@ public class VoteEffect extends SpellAbilityEffect {
|
|||||||
|
|
||||||
final Map<String, Object> runParams = Maps.newHashMap();
|
final Map<String, Object> runParams = Maps.newHashMap();
|
||||||
runParams.put("AllVotes", votes);
|
runParams.put("AllVotes", votes);
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.Vote, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.Vote, runParams, false);
|
||||||
|
|
||||||
List<String> subAbs = Lists.newArrayList();
|
List<String> subAbs = Lists.newArrayList();
|
||||||
final List<Object> mostVotes = getMostVotes(votes);
|
final List<Object> mostVotes = getMostVotes(votes);
|
||||||
|
|||||||
@@ -571,7 +571,7 @@ public class Card extends GameEntity implements Comparable<Card> {
|
|||||||
getGame().getTriggerHandler().registerActiveTrigger(this, false);
|
getGame().getTriggerHandler().registerActiveTrigger(this, false);
|
||||||
Map<String, Object> runParams = Maps.newHashMap();
|
Map<String, Object> runParams = Maps.newHashMap();
|
||||||
runParams.put("Transformer", this);
|
runParams.put("Transformer", this);
|
||||||
getGame().getTriggerHandler().runTrigger(TriggerType.Transformed, runParams, false);
|
getGame().getTriggerHandler().runTriggerOld(TriggerType.Transformed, runParams, false);
|
||||||
incrementTransformedTimestamp();
|
incrementTransformedTimestamp();
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
@@ -691,7 +691,7 @@ public class Card extends GameEntity implements Comparable<Card> {
|
|||||||
getGame().getTriggerHandler().registerActiveTrigger(this, false);
|
getGame().getTriggerHandler().registerActiveTrigger(this, false);
|
||||||
final Map<String, Object> runParams = Maps.newTreeMap();
|
final Map<String, Object> runParams = Maps.newTreeMap();
|
||||||
runParams.put("Card", this);
|
runParams.put("Card", this);
|
||||||
getGame().getTriggerHandler().runTrigger(TriggerType.TurnFaceUp, runParams, false);
|
getGame().getTriggerHandler().runTriggerOld(TriggerType.TurnFaceUp, runParams, false);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -1291,12 +1291,12 @@ public class Card extends GameEntity implements Comparable<Card> {
|
|||||||
runParams.put("CounterType", counterType);
|
runParams.put("CounterType", counterType);
|
||||||
for (int i = 0; i < addAmount; i++) {
|
for (int i = 0; i < addAmount; i++) {
|
||||||
runParams.put("CounterAmount", oldValue + i + 1);
|
runParams.put("CounterAmount", oldValue + i + 1);
|
||||||
getGame().getTriggerHandler().runTrigger(
|
getGame().getTriggerHandler().runTriggerOld(
|
||||||
TriggerType.CounterAdded, Maps.newHashMap(runParams), false);
|
TriggerType.CounterAdded, Maps.newHashMap(runParams), false);
|
||||||
}
|
}
|
||||||
if (addAmount > 0) {
|
if (addAmount > 0) {
|
||||||
runParams.put("CounterAmount", addAmount);
|
runParams.put("CounterAmount", addAmount);
|
||||||
getGame().getTriggerHandler().runTrigger(
|
getGame().getTriggerHandler().runTriggerOld(
|
||||||
TriggerType.CounterAddedOnce, Maps.newHashMap(runParams), false);
|
TriggerType.CounterAddedOnce, Maps.newHashMap(runParams), false);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -1372,10 +1372,10 @@ public class Card extends GameEntity implements Comparable<Card> {
|
|||||||
runParams.put("CounterType", counterName);
|
runParams.put("CounterType", counterName);
|
||||||
for (int i = 0; i < delta && curCounters != 0; i++) {
|
for (int i = 0; i < delta && curCounters != 0; i++) {
|
||||||
runParams.put("NewCounterAmount", --curCounters);
|
runParams.put("NewCounterAmount", --curCounters);
|
||||||
getGame().getTriggerHandler().runTrigger(TriggerType.CounterRemoved, runParams, false);
|
getGame().getTriggerHandler().runTriggerOld(TriggerType.CounterRemoved, runParams, false);
|
||||||
}
|
}
|
||||||
runParams.put("CounterAmount", delta);
|
runParams.put("CounterAmount", delta);
|
||||||
getGame().getTriggerHandler().runTrigger(TriggerType.CounterRemovedOnce, runParams, false);
|
getGame().getTriggerHandler().runTriggerOld(TriggerType.CounterRemovedOnce, runParams, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -2942,7 +2942,7 @@ public class Card extends GameEntity implements Comparable<Card> {
|
|||||||
final Map<String, Object> runParams = Maps.newHashMap();
|
final Map<String, Object> runParams = Maps.newHashMap();
|
||||||
runParams.put("AttachSource", this);
|
runParams.put("AttachSource", this);
|
||||||
runParams.put("AttachTarget", entity);
|
runParams.put("AttachTarget", entity);
|
||||||
getController().getGame().getTriggerHandler().runTrigger(TriggerType.Attached, runParams, false);
|
getController().getGame().getTriggerHandler().runTriggerOld(TriggerType.Attached, runParams, false);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2964,7 +2964,7 @@ public class Card extends GameEntity implements Comparable<Card> {
|
|||||||
final Map<String, Object> runParams = Maps.newTreeMap();
|
final Map<String, Object> runParams = Maps.newTreeMap();
|
||||||
runParams.put("Attach", this);
|
runParams.put("Attach", this);
|
||||||
runParams.put("Object", entity);
|
runParams.put("Object", entity);
|
||||||
getGame().getTriggerHandler().runTrigger(TriggerType.Unattach, runParams, false);
|
getGame().getTriggerHandler().runTriggerOld(TriggerType.Unattach, runParams, false);
|
||||||
runUnattachCommands();
|
runUnattachCommands();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3544,7 +3544,7 @@ public class Card extends GameEntity implements Comparable<Card> {
|
|||||||
final Map<String, Object> runParams = Maps.newTreeMap();
|
final Map<String, Object> runParams = Maps.newTreeMap();
|
||||||
runParams.put("Card", this);
|
runParams.put("Card", this);
|
||||||
runParams.put("Attacker", attacker);
|
runParams.put("Attacker", attacker);
|
||||||
getGame().getTriggerHandler().runTrigger(TriggerType.Taps, runParams, false);
|
getGame().getTriggerHandler().runTriggerOld(TriggerType.Taps, runParams, false);
|
||||||
|
|
||||||
setTapped(true);
|
setTapped(true);
|
||||||
getGame().fireEvent(new GameEventCardTapped(this, true));
|
getGame().fireEvent(new GameEventCardTapped(this, true));
|
||||||
@@ -3565,7 +3565,7 @@ public class Card extends GameEntity implements Comparable<Card> {
|
|||||||
// Run triggers
|
// Run triggers
|
||||||
final Map<String, Object> runParams = Maps.newTreeMap();
|
final Map<String, Object> runParams = Maps.newTreeMap();
|
||||||
runParams.put("Card", this);
|
runParams.put("Card", this);
|
||||||
getGame().getTriggerHandler().runTrigger(TriggerType.Untaps, runParams, false);
|
getGame().getTriggerHandler().runTriggerOld(TriggerType.Untaps, runParams, false);
|
||||||
|
|
||||||
for (final GameCommand var : untapCommandList) {
|
for (final GameCommand var : untapCommandList) {
|
||||||
var.run();
|
var.run();
|
||||||
@@ -4130,7 +4130,7 @@ public class Card extends GameEntity implements Comparable<Card> {
|
|||||||
if (!isPhasedOut()) {
|
if (!isPhasedOut()) {
|
||||||
// If this is currently PhasedIn, it's about to phase out.
|
// If this is currently PhasedIn, it's about to phase out.
|
||||||
// Run trigger before it does because triggers don't work with phased out objects
|
// Run trigger before it does because triggers don't work with phased out objects
|
||||||
getGame().getTriggerHandler().runTrigger(TriggerType.PhaseOut, runParams, false);
|
getGame().getTriggerHandler().runTriggerOld(TriggerType.PhaseOut, runParams, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
setPhasedOut(!phasedOut);
|
setPhasedOut(!phasedOut);
|
||||||
@@ -4142,7 +4142,7 @@ public class Card extends GameEntity implements Comparable<Card> {
|
|||||||
if (!phasedOut) {
|
if (!phasedOut) {
|
||||||
// Just phased in, time to run the phased in trigger
|
// Just phased in, time to run the phased in trigger
|
||||||
getGame().getTriggerHandler().registerActiveTrigger(this, false);
|
getGame().getTriggerHandler().registerActiveTrigger(this, false);
|
||||||
getGame().getTriggerHandler().runTrigger(TriggerType.PhaseIn, runParams, false);
|
getGame().getTriggerHandler().runTriggerOld(TriggerType.PhaseIn, runParams, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@@ -4935,7 +4935,7 @@ public class Card extends GameEntity implements Comparable<Card> {
|
|||||||
}
|
}
|
||||||
// Defending player at the time the damage was dealt
|
// Defending player at the time the damage was dealt
|
||||||
runParams.put("DefendingPlayer", game.getCombat() != null ? game.getCombat().getDefendingPlayerRelatedTo(source) : null);
|
runParams.put("DefendingPlayer", game.getCombat() != null ? game.getCombat().getDefendingPlayerRelatedTo(source) : null);
|
||||||
getGame().getTriggerHandler().runTrigger(TriggerType.DamageDone, runParams, false);
|
getGame().getTriggerHandler().runTriggerOld(TriggerType.DamageDone, runParams, false);
|
||||||
|
|
||||||
GameEventCardDamaged.DamageType damageType = DamageType.Normal;
|
GameEventCardDamaged.DamageType damageType = DamageType.Normal;
|
||||||
if (isPlaneswalker()) {
|
if (isPlaneswalker()) {
|
||||||
@@ -5036,7 +5036,7 @@ public class Card extends GameEntity implements Comparable<Card> {
|
|||||||
final Map<String, Object> runParams = Maps.newHashMap();
|
final Map<String, Object> runParams = Maps.newHashMap();
|
||||||
runParams.put("Card", this);
|
runParams.put("Card", this);
|
||||||
runParams.put("Player", getController());
|
runParams.put("Player", getController());
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.Exerted, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.Exerted, runParams, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isExertedBy(final Player player) {
|
public boolean isExertedBy(final Player player) {
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ public class CardDamageMap extends ForwardingTable<Card, GameEntity, Integer> {
|
|||||||
runParams.put("DamageAmount", sum);
|
runParams.put("DamageAmount", sum);
|
||||||
runParams.put("IsCombatDamage", isCombat);
|
runParams.put("IsCombatDamage", isCombat);
|
||||||
|
|
||||||
ge.getGame().getTriggerHandler().runTrigger(TriggerType.DamagePreventedOnce, runParams, false);
|
ge.getGame().getTriggerHandler().runTriggerOld(TriggerType.DamagePreventedOnce, runParams, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -59,7 +59,7 @@ public class CardDamageMap extends ForwardingTable<Card, GameEntity, Integer> {
|
|||||||
runParams.put("DamageAmount", sum);
|
runParams.put("DamageAmount", sum);
|
||||||
runParams.put("IsCombatDamage", isCombat);
|
runParams.put("IsCombatDamage", isCombat);
|
||||||
|
|
||||||
sourceLKI.getGame().getTriggerHandler().runTrigger(TriggerType.DamageDealtOnce, runParams, false);
|
sourceLKI.getGame().getTriggerHandler().runTriggerOld(TriggerType.DamageDealtOnce, runParams, false);
|
||||||
|
|
||||||
if (sourceLKI.hasKeyword(Keyword.LIFELINK)) {
|
if (sourceLKI.hasKeyword(Keyword.LIFELINK)) {
|
||||||
sourceLKI.getController().gainLife(sum, sourceLKI, sa);
|
sourceLKI.getController().gainLife(sum, sourceLKI, sa);
|
||||||
@@ -80,7 +80,7 @@ public class CardDamageMap extends ForwardingTable<Card, GameEntity, Integer> {
|
|||||||
runParams.put("DamageAmount", sum);
|
runParams.put("DamageAmount", sum);
|
||||||
runParams.put("IsCombatDamage", isCombat);
|
runParams.put("IsCombatDamage", isCombat);
|
||||||
|
|
||||||
ge.getGame().getTriggerHandler().runTrigger(TriggerType.DamageDoneOnce, runParams, false);
|
ge.getGame().getTriggerHandler().runTriggerOld(TriggerType.DamageDoneOnce, runParams, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ public class CardZoneTable extends ForwardingTable<ZoneType, ZoneType, CardColle
|
|||||||
if (!isEmpty()) {
|
if (!isEmpty()) {
|
||||||
final Map<String, Object> runParams = Maps.newHashMap();
|
final Map<String, Object> runParams = Maps.newHashMap();
|
||||||
runParams.put("Cards", new CardZoneTable(this));
|
runParams.put("Cards", new CardZoneTable(this));
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.ChangesZoneAll, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.ChangesZoneAll, runParams, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -638,7 +638,7 @@ public class Combat {
|
|||||||
runParams.put("Attacker", attacker);
|
runParams.put("Attacker", attacker);
|
||||||
runParams.put("Defender",getDefenderByAttacker(attacker));
|
runParams.put("Defender",getDefenderByAttacker(attacker));
|
||||||
runParams.put("DefendingPlayer", getDefenderPlayerByAttacker(attacker));
|
runParams.put("DefendingPlayer", getDefenderPlayerByAttacker(attacker));
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.AttackerUnblocked, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.AttackerUnblocked, runParams, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -649,7 +649,7 @@ public class Combat {
|
|||||||
final Map<String, Object> runParams = Maps.newHashMap();
|
final Map<String, Object> runParams = Maps.newHashMap();
|
||||||
runParams.put("AttackingPlayer", getAttackingPlayer());
|
runParams.put("AttackingPlayer", getAttackingPlayer());
|
||||||
runParams.put("Defenders", defenders);
|
runParams.put("Defenders", defenders);
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.AttackerUnblockedOnce, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.AttackerUnblockedOnce, runParams, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -313,7 +313,7 @@ public class CombatUtil {
|
|||||||
runParams.put("Attacked", combat.getDefenderByAttacker(c));
|
runParams.put("Attacked", combat.getDefenderByAttacker(c));
|
||||||
runParams.put("DefendingPlayer", combat.getDefenderPlayerByAttacker(c));
|
runParams.put("DefendingPlayer", combat.getDefenderPlayerByAttacker(c));
|
||||||
runParams.put("Defenders", combat.getDefenders());
|
runParams.put("Defenders", combat.getDefenders());
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.Attacks, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.Attacks, runParams, false);
|
||||||
|
|
||||||
c.getDamageHistory().setCreatureAttackedThisCombat(true);
|
c.getDamageHistory().setCreatureAttackedThisCombat(true);
|
||||||
c.getDamageHistory().clearNotAttackedSinceLastUpkeepOf();
|
c.getDamageHistory().clearNotAttackedSinceLastUpkeepOf();
|
||||||
|
|||||||
@@ -415,7 +415,7 @@ public class PhaseHandler implements java.io.Serializable {
|
|||||||
final Map<String, Object> runParams = Maps.newHashMap();
|
final Map<String, Object> runParams = Maps.newHashMap();
|
||||||
runParams.put("Phase", phase.nameForScripts);
|
runParams.put("Phase", phase.nameForScripts);
|
||||||
runParams.put("Player", playerTurn);
|
runParams.put("Player", playerTurn);
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.Phase, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.Phase, runParams, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// This line fixes Combat Damage triggers not going off when they should
|
// This line fixes Combat Damage triggers not going off when they should
|
||||||
@@ -489,7 +489,7 @@ public class PhaseHandler implements java.io.Serializable {
|
|||||||
// "Trigger" for begin turn to get around a phase skipping
|
// "Trigger" for begin turn to get around a phase skipping
|
||||||
final Map<String, Object> runParams = Maps.newHashMap();
|
final Map<String, Object> runParams = Maps.newHashMap();
|
||||||
runParams.put("Player", playerTurn);
|
runParams.put("Player", playerTurn);
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.TurnBegin, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.TurnBegin, runParams, false);
|
||||||
}
|
}
|
||||||
planarDiceRolledthisTurn = 0;
|
planarDiceRolledthisTurn = 0;
|
||||||
// Play the End Turn sound
|
// Play the End Turn sound
|
||||||
@@ -581,7 +581,7 @@ public class PhaseHandler implements java.io.Serializable {
|
|||||||
runParams.put("Attackers", combat.getAttackers());
|
runParams.put("Attackers", combat.getAttackers());
|
||||||
runParams.put("AttackingPlayer", combat.getAttackingPlayer());
|
runParams.put("AttackingPlayer", combat.getAttackingPlayer());
|
||||||
runParams.put("AttackedTarget", attackedTarget);
|
runParams.put("AttackedTarget", attackedTarget);
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.AttackersDeclared, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.AttackersDeclared, runParams, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (final Card c : combat.getAttackers()) {
|
for (final Card c : combat.getAttackers()) {
|
||||||
@@ -693,7 +693,7 @@ public class PhaseHandler implements java.io.Serializable {
|
|||||||
final Map<String, Object> bdRunParams = Maps.newHashMap();
|
final Map<String, Object> bdRunParams = Maps.newHashMap();
|
||||||
bdRunParams.put("Blockers", declaredBlockers);
|
bdRunParams.put("Blockers", declaredBlockers);
|
||||||
bdRunParams.put("Attackers", blockedAttackers);
|
bdRunParams.put("Attackers", blockedAttackers);
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.BlockersDeclared, bdRunParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.BlockersDeclared, bdRunParams, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (final Card c1 : combat.getAllBlockers()) {
|
for (final Card c1 : combat.getAllBlockers()) {
|
||||||
@@ -706,7 +706,7 @@ public class PhaseHandler implements java.io.Serializable {
|
|||||||
final Map<String, Object> runParams = Maps.newHashMap();
|
final Map<String, Object> runParams = Maps.newHashMap();
|
||||||
runParams.put("Blocker", c1);
|
runParams.put("Blocker", c1);
|
||||||
runParams.put("Attackers", combat.getAttackersBlockedBy(c1));
|
runParams.put("Attackers", combat.getAttackersBlockedBy(c1));
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.Blocks, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.Blocks, runParams, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
c1.getDamageHistory().setCreatureBlockedThisCombat(true);
|
c1.getDamageHistory().setCreatureBlockedThisCombat(true);
|
||||||
@@ -730,7 +730,7 @@ public class PhaseHandler implements java.io.Serializable {
|
|||||||
runParams.put("NumBlockers", blockers.size());
|
runParams.put("NumBlockers", blockers.size());
|
||||||
runParams.put("Defender", combat.getDefenderByAttacker(a));
|
runParams.put("Defender", combat.getDefenderByAttacker(a));
|
||||||
runParams.put("DefendingPlayer", combat.getDefenderPlayerByAttacker(a));
|
runParams.put("DefendingPlayer", combat.getDefenderPlayerByAttacker(a));
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.AttackerBlocked, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.AttackerBlocked, runParams, false);
|
||||||
|
|
||||||
// Run this trigger once for each blocker
|
// Run this trigger once for each blocker
|
||||||
for (final Card b : blockers) {
|
for (final Card b : blockers) {
|
||||||
@@ -741,7 +741,7 @@ public class PhaseHandler implements java.io.Serializable {
|
|||||||
final Map<String, Object> runParams2 = Maps.newHashMap();
|
final Map<String, Object> runParams2 = Maps.newHashMap();
|
||||||
runParams2.put("Attacker", a);
|
runParams2.put("Attacker", a);
|
||||||
runParams2.put("Blocker", b);
|
runParams2.put("Blocker", b);
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.AttackerBlockedByCreature, runParams2, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.AttackerBlockedByCreature, runParams2, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
a.getDamageHistory().setCreatureGotBlockedThisCombat(true);
|
a.getDamageHistory().setCreatureGotBlockedThisCombat(true);
|
||||||
|
|||||||
@@ -248,7 +248,7 @@ public class Player extends GameEntity implements Comparable<Player> {
|
|||||||
// Run triggers
|
// Run triggers
|
||||||
final Map<String, Object> runParams = Maps.newHashMap();
|
final Map<String, Object> runParams = Maps.newHashMap();
|
||||||
runParams.put("Scheme", activeScheme);
|
runParams.put("Scheme", activeScheme);
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.SetInMotion, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.SetInMotion, runParams, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -450,7 +450,7 @@ public class Player extends GameEntity implements Comparable<Player> {
|
|||||||
runParams.put("LifeAmount", lifeGain);
|
runParams.put("LifeAmount", lifeGain);
|
||||||
runParams.put("Source", source);
|
runParams.put("Source", source);
|
||||||
runParams.put("SourceSA", sa);
|
runParams.put("SourceSA", sa);
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.LifeGained, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.LifeGained, runParams, false);
|
||||||
|
|
||||||
game.fireEvent(new GameEventPlayerLivesChanged(this, oldLife, life));
|
game.fireEvent(new GameEventPlayerLivesChanged(this, oldLife, life));
|
||||||
}
|
}
|
||||||
@@ -507,7 +507,7 @@ public class Player extends GameEntity implements Comparable<Player> {
|
|||||||
runParams.put("Player", this);
|
runParams.put("Player", this);
|
||||||
runParams.put("LifeAmount", toLose);
|
runParams.put("LifeAmount", toLose);
|
||||||
runParams.put("FirstTime", firstLost);
|
runParams.put("FirstTime", firstLost);
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.LifeLost, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.LifeLost, runParams, false);
|
||||||
|
|
||||||
return lifeLost;
|
return lifeLost;
|
||||||
}
|
}
|
||||||
@@ -540,7 +540,7 @@ public class Player extends GameEntity implements Comparable<Player> {
|
|||||||
final Map<String, Object> runParams = Maps.newHashMap();
|
final Map<String, Object> runParams = Maps.newHashMap();
|
||||||
runParams.put("Player", this);
|
runParams.put("Player", this);
|
||||||
runParams.put("LifeAmount", lifePayment);
|
runParams.put("LifeAmount", lifePayment);
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.PayLife, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.PayLife, runParams, false);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -627,7 +627,7 @@ public class Player extends GameEntity implements Comparable<Player> {
|
|||||||
runParams.put("IsCombatDamage", isCombat);
|
runParams.put("IsCombatDamage", isCombat);
|
||||||
// Defending player at the time the damage was dealt
|
// Defending player at the time the damage was dealt
|
||||||
runParams.put("DefendingPlayer", game.getCombat() != null ? game.getCombat().getDefendingPlayerRelatedTo(source) : null);
|
runParams.put("DefendingPlayer", game.getCombat() != null ? game.getCombat().getDefendingPlayerRelatedTo(source) : null);
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.DamageDone, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.DamageDone, runParams, false);
|
||||||
|
|
||||||
game.fireEvent(new GameEventPlayerDamaged(this, source, amount, isCombat, infect));
|
game.fireEvent(new GameEventPlayerDamaged(this, source, amount, isCombat, infect));
|
||||||
|
|
||||||
@@ -950,10 +950,10 @@ public class Player extends GameEntity implements Comparable<Player> {
|
|||||||
runParams.put("Source", this);
|
runParams.put("Source", this);
|
||||||
runParams.put("CounterType", counterType);
|
runParams.put("CounterType", counterType);
|
||||||
for (int i = 0; i < addAmount; i++) {
|
for (int i = 0; i < addAmount; i++) {
|
||||||
getGame().getTriggerHandler().runTrigger(TriggerType.CounterAdded, runParams, false);
|
getGame().getTriggerHandler().runTriggerOld(TriggerType.CounterAdded, runParams, false);
|
||||||
}
|
}
|
||||||
if (addAmount > 0) {
|
if (addAmount > 0) {
|
||||||
getGame().getTriggerHandler().runTrigger(TriggerType.CounterAddedOnce, runParams, false);
|
getGame().getTriggerHandler().runTriggerOld(TriggerType.CounterAddedOnce, runParams, false);
|
||||||
}
|
}
|
||||||
if (table != null) {
|
if (table != null) {
|
||||||
table.put(this, counterType, addAmount);
|
table.put(this, counterType, addAmount);
|
||||||
@@ -1339,7 +1339,7 @@ public class Player extends GameEntity implements Comparable<Player> {
|
|||||||
final Map<String, Object> runParams = Maps.newHashMap();
|
final Map<String, Object> runParams = Maps.newHashMap();
|
||||||
runParams.put("Player", this);
|
runParams.put("Player", this);
|
||||||
runParams.put("NumThisTurn", surveilThisTurn);
|
runParams.put("NumThisTurn", surveilThisTurn);
|
||||||
getGame().getTriggerHandler().runTrigger(TriggerType.Surveil, runParams, false);
|
getGame().getTriggerHandler().runTriggerOld(TriggerType.Surveil, runParams, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getSurveilThisTurn() {
|
public int getSurveilThisTurn() {
|
||||||
@@ -1431,7 +1431,7 @@ public class Player extends GameEntity implements Comparable<Player> {
|
|||||||
runParams.put("Card", c);
|
runParams.put("Card", c);
|
||||||
runParams.put("Number", numDrawnThisTurn);
|
runParams.put("Number", numDrawnThisTurn);
|
||||||
runParams.put("Player", this);
|
runParams.put("Player", this);
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.Drawn, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.Drawn, runParams, false);
|
||||||
}
|
}
|
||||||
else { // Lose by milling is always on. Give AI many cards it cannot play if you want it not to undertake actions
|
else { // Lose by milling is always on. Give AI many cards it cannot play if you want it not to undertake actions
|
||||||
triedToDrawFromEmptyLibrary = true;
|
triedToDrawFromEmptyLibrary = true;
|
||||||
@@ -1620,7 +1620,7 @@ public class Player extends GameEntity implements Comparable<Player> {
|
|||||||
runParams.put("Card", c);
|
runParams.put("Card", c);
|
||||||
runParams.put("Cause", cause);
|
runParams.put("Cause", cause);
|
||||||
runParams.put("IsMadness", Boolean.valueOf(discardMadness));
|
runParams.put("IsMadness", Boolean.valueOf(discardMadness));
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.Discarded, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.Discarded, runParams, false);
|
||||||
game.getGameLog().add(GameLogEntryType.DISCARD, sb.toString());
|
game.getGameLog().add(GameLogEntryType.DISCARD, sb.toString());
|
||||||
return newCard;
|
return newCard;
|
||||||
}
|
}
|
||||||
@@ -1701,7 +1701,7 @@ public class Player extends GameEntity implements Comparable<Player> {
|
|||||||
final Map<String, Object> runParams = Maps.newHashMap();
|
final Map<String, Object> runParams = Maps.newHashMap();
|
||||||
runParams.put("Player", this);
|
runParams.put("Player", this);
|
||||||
runParams.put("Source", sa);
|
runParams.put("Source", sa);
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.Shuffled, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.Shuffled, runParams, false);
|
||||||
|
|
||||||
// Play the shuffle sound
|
// Play the shuffle sound
|
||||||
game.fireEvent(new GameEventShuffle(this));
|
game.fireEvent(new GameEventShuffle(this));
|
||||||
@@ -1731,7 +1731,7 @@ public class Player extends GameEntity implements Comparable<Player> {
|
|||||||
// Run triggers
|
// Run triggers
|
||||||
final Map<String, Object> runParams = Maps.newHashMap();
|
final Map<String, Object> runParams = Maps.newHashMap();
|
||||||
runParams.put("Card", land);
|
runParams.put("Card", land);
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.LandPlayed, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.LandPlayed, runParams, false);
|
||||||
game.getStack().unfreezeStack();
|
game.getStack().unfreezeStack();
|
||||||
addLandPlayedThisTurn();
|
addLandPlayedThisTurn();
|
||||||
}
|
}
|
||||||
@@ -2170,7 +2170,7 @@ public class Player extends GameEntity implements Comparable<Player> {
|
|||||||
Map<String,Object> runParams = Maps.newHashMap();
|
Map<String,Object> runParams = Maps.newHashMap();
|
||||||
runParams.put("Player", this);
|
runParams.put("Player", this);
|
||||||
runParams.put("Num", investigatedThisTurn);
|
runParams.put("Num", investigatedThisTurn);
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.Investigated, runParams,false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.Investigated, runParams,false);
|
||||||
}
|
}
|
||||||
public final void resetInvestigatedThisTurn() {
|
public final void resetInvestigatedThisTurn() {
|
||||||
investigatedThisTurn = 0;
|
investigatedThisTurn = 0;
|
||||||
@@ -2195,7 +2195,7 @@ public class Player extends GameEntity implements Comparable<Player> {
|
|||||||
runParams.put("Cause", source);
|
runParams.put("Cause", source);
|
||||||
runParams.put("CostStack", game.costPaymentStack);
|
runParams.put("CostStack", game.costPaymentStack);
|
||||||
runParams.put("IndividualCostPaymentInstance", game.costPaymentStack.peek());
|
runParams.put("IndividualCostPaymentInstance", game.costPaymentStack.peek());
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.Sacrificed, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.Sacrificed, runParams, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public final void resetSacrificedThisTurn() {
|
public final void resetSacrificedThisTurn() {
|
||||||
@@ -2541,7 +2541,7 @@ public class Player extends GameEntity implements Comparable<Player> {
|
|||||||
//Run PlaneswalkedTo triggers here.
|
//Run PlaneswalkedTo triggers here.
|
||||||
Map<String,Object> runParams = Maps.newHashMap();
|
Map<String,Object> runParams = Maps.newHashMap();
|
||||||
runParams.put("Cards", currentPlanes);
|
runParams.put("Cards", currentPlanes);
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.PlaneswalkedTo, runParams,false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.PlaneswalkedTo, runParams,false);
|
||||||
view.updateCurrentPlaneName(currentPlanes.toString().replaceAll(" \\(.*","").replace("[",""));
|
view.updateCurrentPlaneName(currentPlanes.toString().replaceAll(" \\(.*","").replace("[",""));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2551,7 +2551,7 @@ public class Player extends GameEntity implements Comparable<Player> {
|
|||||||
public void leaveCurrentPlane() {
|
public void leaveCurrentPlane() {
|
||||||
|
|
||||||
final Map<String, Object> runParams = new ImmutableMap.Builder<String, Object>().put("Cards", new CardCollection(currentPlanes)).build();
|
final Map<String, Object> runParams = new ImmutableMap.Builder<String, Object>().put("Cards", new CardCollection(currentPlanes)).build();
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.PlaneswalkedFrom, runParams,false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.PlaneswalkedFrom, runParams,false);
|
||||||
|
|
||||||
for (final Card plane : currentPlanes) {
|
for (final Card plane : currentPlanes) {
|
||||||
//game.getZoneOf(plane).remove(plane);
|
//game.getZoneOf(plane).remove(plane);
|
||||||
|
|||||||
@@ -173,7 +173,7 @@ public class AbilityManaPart implements java.io.Serializable {
|
|||||||
runParams.put("Player", player);
|
runParams.put("Player", player);
|
||||||
runParams.put("AbilityMana", sa);
|
runParams.put("AbilityMana", sa);
|
||||||
runParams.put("Produced", afterReplace);
|
runParams.put("Produced", afterReplace);
|
||||||
player.getGame().getTriggerHandler().runTrigger(TriggerType.TapsForMana, runParams, false);
|
player.getGame().getTriggerHandler().runTriggerOld(TriggerType.TapsForMana, runParams, false);
|
||||||
if (source.isLand()) {
|
if (source.isLand()) {
|
||||||
player.setTappedLandForManaThisTurn(true);
|
player.setTappedLandForManaThisTurn(true);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -355,10 +355,10 @@ public class SpellAbilityStackInstance implements IIdentifiable, IHasCardView {
|
|||||||
((Card) tgt).setBecameTargetThisTurn(true);
|
((Card) tgt).setBecameTargetThisTurn(true);
|
||||||
}
|
}
|
||||||
runParams.put("Target", tgt);
|
runParams.put("Target", tgt);
|
||||||
getSourceCard().getGame().getTriggerHandler().runTrigger(TriggerType.BecomesTarget, runParams, false);
|
getSourceCard().getGame().getTriggerHandler().runTriggerOld(TriggerType.BecomesTarget, runParams, false);
|
||||||
}
|
}
|
||||||
runParams.put("Targets", target.getTargets());
|
runParams.put("Targets", target.getTargets());
|
||||||
getSourceCard().getGame().getTriggerHandler().runTrigger(TriggerType.BecomesTargetOnce, runParams, false);
|
getSourceCard().getGame().getTriggerHandler().runTriggerOld(TriggerType.BecomesTargetOnce, runParams, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -51,6 +51,8 @@ import com.google.common.collect.Lists;
|
|||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
import com.google.common.collect.Multimaps;
|
import com.google.common.collect.Multimaps;
|
||||||
|
|
||||||
|
import static forge.util.EnumMapUtil.toStringMap;
|
||||||
|
|
||||||
public class TriggerHandler {
|
public class TriggerHandler {
|
||||||
private final List<TriggerType> suppressedModes = Collections.synchronizedList(new ArrayList<TriggerType>());
|
private final List<TriggerType> suppressedModes = Collections.synchronizedList(new ArrayList<TriggerType>());
|
||||||
private final List<Trigger> activeTriggers = Collections.synchronizedList(new ArrayList<Trigger>());
|
private final List<Trigger> activeTriggers = Collections.synchronizedList(new ArrayList<Trigger>());
|
||||||
@@ -318,12 +320,17 @@ public class TriggerHandler {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public final void runTrigger(final TriggerType mode, final Map<String, Object> runParams, boolean holdTrigger) {
|
public final void runTrigger(final TriggerType mode, final Map<TriggerKey, Object> runParams, boolean holdTrigger) {
|
||||||
|
runTriggerOld(mode, toStringMap(runParams), holdTrigger);
|
||||||
|
}
|
||||||
|
// The plan is to slowly refactor any usages of `runTriggerOld` to use `runTrigger`. Then we can just inline
|
||||||
|
// `runTriggerOld` into `runTrigger` and change the code inside to just always use a `Map<TriggerKey, Object>`.
|
||||||
|
// The reason we can't just call them both `runTrigger` is because we get a `same erasure` compile error if we do.
|
||||||
|
public final void runTriggerOld(final TriggerType mode, final Map<String, Object> runParams, boolean holdTrigger) {
|
||||||
if (suppressedModes.contains(mode)) {
|
if (suppressedModes.contains(mode)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
//runWaitingTrigger(new TriggerWaiting(mode, runParams));
|
|
||||||
if (mode == TriggerType.Always) {
|
if (mode == TriggerType.Always) {
|
||||||
runStateTrigger(runParams);
|
runStateTrigger(runParams);
|
||||||
} else if (game.getStack().isFrozen() || holdTrigger) {
|
} else if (game.getStack().isFrozen() || holdTrigger) {
|
||||||
@@ -331,20 +338,14 @@ public class TriggerHandler {
|
|||||||
} else {
|
} else {
|
||||||
runWaitingTrigger(new TriggerWaiting(mode, runParams));
|
runWaitingTrigger(new TriggerWaiting(mode, runParams));
|
||||||
}
|
}
|
||||||
// Tell auto stop to stop
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public final boolean runStateTrigger(Map<String, Object> runParams) {
|
private void runStateTrigger(Map<String, Object> runParams) {
|
||||||
boolean checkStatics = false;
|
|
||||||
// only cards in play can run state triggers
|
|
||||||
|
|
||||||
for (final Trigger t: activeTriggers) {
|
for (final Trigger t: activeTriggers) {
|
||||||
if (canRunTrigger(t, TriggerType.Always, runParams)) {
|
if (canRunTrigger(t, TriggerType.Always, runParams)) {
|
||||||
runSingleTrigger(t, runParams);
|
runSingleTrigger(t, runParams);
|
||||||
checkStatics = true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return checkStatics;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public final boolean runWaitingTriggers() {
|
public final boolean runWaitingTriggers() {
|
||||||
@@ -362,7 +363,7 @@ public class TriggerHandler {
|
|||||||
return haveWaiting;
|
return haveWaiting;
|
||||||
}
|
}
|
||||||
|
|
||||||
public final boolean runWaitingTrigger(final TriggerWaiting wt) {
|
private boolean runWaitingTrigger(final TriggerWaiting wt) {
|
||||||
final TriggerType mode = wt.getMode();
|
final TriggerType mode = wt.getMode();
|
||||||
final Map<String, Object> runParams = wt.getParams();
|
final Map<String, Object> runParams = wt.getParams();
|
||||||
|
|
||||||
|
|||||||
21
forge-game/src/main/java/forge/game/trigger/TriggerKey.java
Normal file
21
forge-game/src/main/java/forge/game/trigger/TriggerKey.java
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
package forge.game.trigger;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Keys for Trigger parameter maps.
|
||||||
|
*/
|
||||||
|
public enum TriggerKey {
|
||||||
|
Attackers("Attackers"),
|
||||||
|
AttackingPlayer("AttackingPlayer"),
|
||||||
|
AttackedTarget("AttackedTarget");
|
||||||
|
|
||||||
|
private String key;
|
||||||
|
|
||||||
|
TriggerKey(String key) {
|
||||||
|
this.key = key;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return key;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -294,7 +294,7 @@ public class MagicStack /* extends MyObservable */ implements Iterable<SpellAbil
|
|||||||
runParams.put("CastSACMC", si.getSpellAbility(true).getHostCard().getCMC());
|
runParams.put("CastSACMC", si.getSpellAbility(true).getHostCard().getCMC());
|
||||||
runParams.put("CurrentStormCount", thisTurnCast.size());
|
runParams.put("CurrentStormCount", thisTurnCast.size());
|
||||||
runParams.put("CurrentCastSpells", new CardCollection(thisTurnCast));
|
runParams.put("CurrentCastSpells", new CardCollection(thisTurnCast));
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.SpellAbilityCast, runParams, true);
|
game.getTriggerHandler().runTriggerOld(TriggerType.SpellAbilityCast, runParams, true);
|
||||||
|
|
||||||
// Run SpellCast triggers
|
// Run SpellCast triggers
|
||||||
if (sp.isSpell()) {
|
if (sp.isSpell()) {
|
||||||
@@ -302,27 +302,27 @@ public class MagicStack /* extends MyObservable */ implements Iterable<SpellAbil
|
|||||||
&& source.getOwner().equals(activator)) {
|
&& source.getOwner().equals(activator)) {
|
||||||
activator.incCommanderCast(source);
|
activator.incCommanderCast(source);
|
||||||
}
|
}
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.SpellCast, runParams, true);
|
game.getTriggerHandler().runTriggerOld(TriggerType.SpellCast, runParams, true);
|
||||||
executeCastCommand(si.getSpellAbility(true).getHostCard());
|
executeCastCommand(si.getSpellAbility(true).getHostCard());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Run AbilityCast triggers
|
// Run AbilityCast triggers
|
||||||
if (sp.isAbility() && !sp.isTrigger()) {
|
if (sp.isAbility() && !sp.isTrigger()) {
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.AbilityCast, runParams, true);
|
game.getTriggerHandler().runTriggerOld(TriggerType.AbilityCast, runParams, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Run Cycled triggers
|
// Run Cycled triggers
|
||||||
if (sp.isCycling()) {
|
if (sp.isCycling()) {
|
||||||
runParams.clear();
|
runParams.clear();
|
||||||
runParams.put("Card", sp.getHostCard());
|
runParams.put("Card", sp.getHostCard());
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.Cycled, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.Cycled, runParams, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sp.hasParam("Crew")) {
|
if (sp.hasParam("Crew")) {
|
||||||
// Trigger crews!
|
// Trigger crews!
|
||||||
runParams.put("Vehicle", sp.getHostCard());
|
runParams.put("Vehicle", sp.getHostCard());
|
||||||
runParams.put("Crew", sp.getPaidList("TappedCards"));
|
runParams.put("Crew", sp.getPaidList("TappedCards"));
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.Crewed, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.Crewed, runParams, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -332,9 +332,9 @@ public class MagicStack /* extends MyObservable */ implements Iterable<SpellAbil
|
|||||||
runParams.put("CopySA", si.getSpellAbility(true));
|
runParams.put("CopySA", si.getSpellAbility(true));
|
||||||
// Run SpellCopy triggers
|
// Run SpellCopy triggers
|
||||||
if (sp.isSpell()) {
|
if (sp.isSpell()) {
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.SpellCopy, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.SpellCopy, runParams, false);
|
||||||
}
|
}
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.SpellAbilityCopy, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.SpellAbilityCopy, runParams, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Run BecomesTarget triggers
|
// Run BecomesTarget triggers
|
||||||
@@ -364,10 +364,10 @@ public class MagicStack /* extends MyObservable */ implements Iterable<SpellAbil
|
|||||||
((Card) tgt).setBecameTargetThisTurn(true);
|
((Card) tgt).setBecameTargetThisTurn(true);
|
||||||
}
|
}
|
||||||
runParams.put("Target", tgt);
|
runParams.put("Target", tgt);
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.BecomesTarget, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.BecomesTarget, runParams, false);
|
||||||
}
|
}
|
||||||
runParams.put("Targets", tc.getTargets());
|
runParams.put("Targets", tc.getTargets());
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.BecomesTargetOnce, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.BecomesTargetOnce, runParams, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -376,10 +376,10 @@ public class MagicStack /* extends MyObservable */ implements Iterable<SpellAbil
|
|||||||
else if (sp.getTargetCard() != null) {
|
else if (sp.getTargetCard() != null) {
|
||||||
runParams.put("Target", sp.getTargetCard());
|
runParams.put("Target", sp.getTargetCard());
|
||||||
|
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.BecomesTarget, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.BecomesTarget, runParams, false);
|
||||||
|
|
||||||
runParams.put("Targets", Lists.newArrayList(sp.getTargetCard()));
|
runParams.put("Targets", Lists.newArrayList(sp.getTargetCard()));
|
||||||
game.getTriggerHandler().runTrigger(TriggerType.BecomesTargetOnce, runParams, false);
|
game.getTriggerHandler().runTriggerOld(TriggerType.BecomesTargetOnce, runParams, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
game.fireEvent(new GameEventZone(ZoneType.Stack, sp.getActivatingPlayer(), EventValueChangeType.Added, source));
|
game.fireEvent(new GameEventZone(ZoneType.Stack, sp.getActivatingPlayer(), EventValueChangeType.Added, source));
|
||||||
|
|||||||
18
forge-game/src/main/java/forge/util/EnumMapUtil.java
Normal file
18
forge-game/src/main/java/forge/util/EnumMapUtil.java
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
package forge.util;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public final class EnumMapUtil {
|
||||||
|
private EnumMapUtil() { };
|
||||||
|
|
||||||
|
public static <K extends Enum<K>, V> HashMap<String, V> toStringMap(Map<K, V> map) {
|
||||||
|
HashMap<String, V> output = new HashMap<>(map.size());
|
||||||
|
|
||||||
|
for (Map.Entry<K, V> entry : map.entrySet()) {
|
||||||
|
output.put(entry.getKey().toString(), entry.getValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -138,7 +138,7 @@ public class GameWrapper {
|
|||||||
//skip drawing initial hand and mulliganing
|
//skip drawing initial hand and mulliganing
|
||||||
game.setAge( GameStage.Play );
|
game.setAge( GameStage.Play );
|
||||||
final HashMap<String, Object> runParams = new HashMap<String, Object>();
|
final HashMap<String, Object> runParams = new HashMap<String, Object>();
|
||||||
game.getTriggerHandler().runTrigger( TriggerType.NewGame, runParams, false );
|
game.getTriggerHandler().runTriggerOld( TriggerType.NewGame, runParams, false );
|
||||||
//first player in the list starts, no coin toss etc
|
//first player in the list starts, no coin toss etc
|
||||||
game.getPhaseHandler().startFirstTurn( game.getPlayers().get( 0 ) );
|
game.getPhaseHandler().startFirstTurn( game.getPlayers().get( 0 ) );
|
||||||
game.fireEvent( new GameEventGameFinished() );
|
game.fireEvent( new GameEventGameFinished() );
|
||||||
|
|||||||
Reference in New Issue
Block a user