more mechanical, samey transformations

This commit is contained in:
Ryan1729
2019-09-14 15:14:40 -06:00
parent 334a0ea0b4
commit eabcf47b27
4 changed files with 137 additions and 127 deletions

View File

@@ -170,7 +170,7 @@ public abstract class GameEntity extends GameObject implements IIdentifiable {
int restDamage = damage; int restDamage = damage;
// first try to replace the damage // first try to replace the damage
final Map<String, Object> repParams = Maps.newHashMap(); final Map<String, Object> repParams = Maps.newHashMap();
repParams.put("Event", "DamageDone"); repParams.put("Event", "DamageDone");
repParams.put("Affected", this); repParams.put("Affected", this);
repParams.put("DamageSource", source); repParams.put("DamageSource", source);

View File

@@ -26,6 +26,7 @@ public enum AbilityKey {
Cause("Cause"), Cause("Cause"),
Causer("Causer"), Causer("Causer"),
Championed("Championed"), Championed("Championed"),
CostStack("CostStack"),
CounterAmount("CounterAmount"), CounterAmount("CounterAmount"),
CounteredSA("CounteredSA"), CounteredSA("CounteredSA"),
CounterType("CounterType"), CounterType("CounterType"),
@@ -44,14 +45,21 @@ public enum AbilityKey {
Exploited("Exploited"), Exploited("Exploited"),
Event("Event"), Event("Event"),
Fighter("Fighter"), Fighter("Fighter"),
FirstTime("FirstTime"),
Fizzle("Fizzle"), Fizzle("Fizzle"),
IsCombatDamage("IsCombatDamage"), IsCombatDamage("IsCombatDamage"),
PayingMana("PayingMana"), PayingMana("PayingMana"),
Phase("Phase"),
Player("Player"), Player("Player"),
IndividualCostPaymentInstance("IndividualCostPaymentInstance"), IndividualCostPaymentInstance("IndividualCostPaymentInstance"),
IsMadness("IsMadness"),
LifeAmount("LifeAmount"),
MonstrosityAmount("MonstrosityAmount"), MonstrosityAmount("MonstrosityAmount"),
NewCounterAmount("NewCounterAmount"), NewCounterAmount("NewCounterAmount"),
Num("Num"), // TODO confirm that this and NumThisTurn can be merged
NumBlockers("NumBlockers"), NumBlockers("NumBlockers"),
NumThisTurn("NumThisTurn"),
Number("Number"),
Object("Object"), Object("Object"),
Objects("Objects"), Objects("Objects"),
OtherAttackers("OtherAttackers"), OtherAttackers("OtherAttackers"),
@@ -61,6 +69,7 @@ public enum AbilityKey {
Result("Result"), Result("Result"),
Scheme("Scheme"), Scheme("Scheme"),
Source("Source"), Source("Source"),
SourceSA("SourceSA"),
SpellAbilityStackInstance("SpellAbilityStackInstance"), SpellAbilityStackInstance("SpellAbilityStackInstance"),
StackSa("StackSa"), StackSa("StackSa"),
StackSi("StackSi"), StackSi("StackSi"),

View File

@@ -23,6 +23,7 @@ import com.google.common.collect.Maps;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import forge.card.mana.ManaCost; import forge.card.mana.ManaCost;
import forge.game.*; import forge.game.*;
import forge.game.ability.AbilityKey;
import forge.game.card.Card; import forge.game.card.Card;
import forge.game.card.CardCollection; import forge.game.card.CardCollection;
import forge.game.card.CardCollectionView; import forge.game.card.CardCollectionView;
@@ -412,10 +413,10 @@ public class PhaseHandler implements java.io.Serializable {
if (!skipped) { if (!skipped) {
// Run triggers if phase isn't being skipped // Run triggers if phase isn't being skipped
final Map<String, Object> runParams = Maps.newHashMap(); final Map<AbilityKey, Object> runParams = AbilityKey.newMap();
runParams.put("Phase", phase.nameForScripts); runParams.put(AbilityKey.Phase, phase.nameForScripts);
runParams.put("Player", playerTurn); runParams.put(AbilityKey.Player, playerTurn);
game.getTriggerHandler().runTriggerOld(TriggerType.Phase, runParams, false); game.getTriggerHandler().runTrigger(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
@@ -487,9 +488,9 @@ public class PhaseHandler implements java.io.Serializable {
if (!bRepeatCleanup) { if (!bRepeatCleanup) {
setPlayerTurn(handleNextTurn()); setPlayerTurn(handleNextTurn());
// "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<AbilityKey, Object> runParams = AbilityKey.newMap();
runParams.put("Player", playerTurn); runParams.put(AbilityKey.Player, playerTurn);
game.getTriggerHandler().runTriggerOld(TriggerType.TurnBegin, runParams, false); game.getTriggerHandler().runTrigger(TriggerType.TurnBegin, runParams, false);
} }
planarDiceRolledthisTurn = 0; planarDiceRolledthisTurn = 0;
// Play the End Turn sound // Play the End Turn sound
@@ -577,11 +578,11 @@ public class PhaseHandler implements java.io.Serializable {
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<AbilityKey, Object> runParams = AbilityKey.newMap();
runParams.put("Attackers", combat.getAttackers()); runParams.put(AbilityKey.Attackers, combat.getAttackers());
runParams.put("AttackingPlayer", combat.getAttackingPlayer()); runParams.put(AbilityKey.AttackingPlayer, combat.getAttackingPlayer());
runParams.put("AttackedTarget", attackedTarget); runParams.put(AbilityKey.AttackedTarget, attackedTarget);
game.getTriggerHandler().runTriggerOld(TriggerType.AttackersDeclared, runParams, false); game.getTriggerHandler().runTrigger(TriggerType.AttackersDeclared, runParams, false);
} }
for (final Card c : combat.getAttackers()) { for (final Card c : combat.getAttackers()) {
@@ -690,10 +691,10 @@ public class PhaseHandler implements java.io.Serializable {
} }
} }
// fire blockers declared trigger // fire blockers declared trigger
final Map<String, Object> bdRunParams = Maps.newHashMap(); final Map<AbilityKey, Object> bdRunParams = AbilityKey.newMap();
bdRunParams.put("Blockers", declaredBlockers); bdRunParams.put(AbilityKey.Blockers, declaredBlockers);
bdRunParams.put("Attackers", blockedAttackers); bdRunParams.put(AbilityKey.Attackers, blockedAttackers);
game.getTriggerHandler().runTriggerOld(TriggerType.BlockersDeclared, bdRunParams, false); game.getTriggerHandler().runTrigger(TriggerType.BlockersDeclared, bdRunParams, false);
} }
for (final Card c1 : combat.getAllBlockers()) { for (final Card c1 : combat.getAllBlockers()) {
@@ -703,10 +704,10 @@ public class PhaseHandler implements java.io.Serializable {
if (!c1.getDamageHistory().getCreatureBlockedThisCombat()) { if (!c1.getDamageHistory().getCreatureBlockedThisCombat()) {
// Run triggers // Run triggers
final Map<String, Object> runParams = Maps.newHashMap(); final Map<AbilityKey, Object> runParams = AbilityKey.newMap();
runParams.put("Blocker", c1); runParams.put(AbilityKey.Blocker, c1);
runParams.put("Attackers", combat.getAttackersBlockedBy(c1)); runParams.put(AbilityKey.Attackers, combat.getAttackersBlockedBy(c1));
game.getTriggerHandler().runTriggerOld(TriggerType.Blocks, runParams, false); game.getTriggerHandler().runTrigger(TriggerType.Blocks, runParams, false);
} }
c1.getDamageHistory().setCreatureBlockedThisCombat(true); c1.getDamageHistory().setCreatureBlockedThisCombat(true);
@@ -724,13 +725,15 @@ public class PhaseHandler implements java.io.Serializable {
} }
// Run triggers // Run triggers
final Map<String, Object> runParams = Maps.newHashMap(); {
runParams.put("Attacker", a); final Map<AbilityKey, Object> runParams = AbilityKey.newMap();
runParams.put("Blockers", blockers); runParams.put(AbilityKey.Attacker, a);
runParams.put("NumBlockers", blockers.size()); runParams.put(AbilityKey.Blockers, blockers);
runParams.put("Defender", combat.getDefenderByAttacker(a)); runParams.put(AbilityKey.NumBlockers, blockers.size());
runParams.put("DefendingPlayer", combat.getDefenderPlayerByAttacker(a)); runParams.put(AbilityKey.Defender, combat.getDefenderByAttacker(a));
game.getTriggerHandler().runTriggerOld(TriggerType.AttackerBlocked, runParams, false); runParams.put(AbilityKey.DefendingPlayer, combat.getDefenderPlayerByAttacker(a));
game.getTriggerHandler().runTrigger(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) {
@@ -738,10 +741,10 @@ public class PhaseHandler implements java.io.Serializable {
b.addBlockedThisTurn(a); b.addBlockedThisTurn(a);
a.addBlockedByThisTurn(b); a.addBlockedByThisTurn(b);
final Map<String, Object> runParams2 = Maps.newHashMap(); final Map<AbilityKey, Object> runParams = AbilityKey.newMap();
runParams2.put("Attacker", a); runParams.put(AbilityKey.Attacker, a);
runParams2.put("Blocker", b); runParams.put(AbilityKey.Blocker, b);
game.getTriggerHandler().runTriggerOld(TriggerType.AttackerBlockedByCreature, runParams2, false); game.getTriggerHandler().runTrigger(TriggerType.AttackerBlockedByCreature, runParams, false);
} }
a.getDamageHistory().setCreatureGotBlockedThisCombat(true); a.getDamageHistory().setCreatureGotBlockedThisCombat(true);

View File

@@ -24,6 +24,7 @@ import forge.LobbyPlayer;
import forge.card.MagicColor; import forge.card.MagicColor;
import forge.game.*; import forge.game.*;
import forge.game.ability.AbilityFactory; import forge.game.ability.AbilityFactory;
import forge.game.ability.AbilityKey;
import forge.game.ability.AbilityUtils; import forge.game.ability.AbilityUtils;
import forge.game.ability.ApiType; import forge.game.ability.ApiType;
import forge.game.ability.effects.DetachedCardEffect; import forge.game.ability.effects.DetachedCardEffect;
@@ -246,9 +247,9 @@ public class Player extends GameEntity implements Comparable<Player> {
game.getTriggerHandler().clearSuppression(TriggerType.ChangesZone); game.getTriggerHandler().clearSuppression(TriggerType.ChangesZone);
// Run triggers // Run triggers
final Map<String, Object> runParams = Maps.newHashMap(); final Map<AbilityKey, Object> runParams = AbilityKey.newMap();
runParams.put("Scheme", activeScheme); runParams.put(AbilityKey.Scheme, activeScheme);
game.getTriggerHandler().runTriggerOld(TriggerType.SetInMotion, runParams, false); game.getTriggerHandler().runTrigger(TriggerType.SetInMotion, runParams, false);
} }
@@ -445,12 +446,12 @@ public class Player extends GameEntity implements Comparable<Player> {
} }
// Run triggers // Run triggers
final Map<String, Object> runParams = Maps.newHashMap(); final Map<AbilityKey, Object> runParams = AbilityKey.newMap();
runParams.put("Player", this); runParams.put(AbilityKey.Player, this);
runParams.put("LifeAmount", lifeGain); runParams.put(AbilityKey.LifeAmount, lifeGain);
runParams.put("Source", source); runParams.put(AbilityKey.Source, source);
runParams.put("SourceSA", sa); runParams.put(AbilityKey.SourceSA, sa);
game.getTriggerHandler().runTriggerOld(TriggerType.LifeGained, runParams, false); game.getTriggerHandler().runTrigger(TriggerType.LifeGained, runParams, false);
game.fireEvent(new GameEventPlayerLivesChanged(this, oldLife, life)); game.fireEvent(new GameEventPlayerLivesChanged(this, oldLife, life));
} }
@@ -478,19 +479,17 @@ public class Player extends GameEntity implements Comparable<Player> {
life -= toLose; life -= toLose;
view.updateLife(this); view.updateLife(this);
lifeLost = toLose; lifeLost = toLose;
if(manaBurn) { if (manaBurn) {
game.fireEvent(new GameEventManaBurn(this,lifeLost,true)); game.fireEvent(new GameEventManaBurn(this, lifeLost, true));
} else { } else {
game.fireEvent(new GameEventPlayerLivesChanged(this, oldLife, life)); game.fireEvent(new GameEventPlayerLivesChanged(this, oldLife, life));
} }
} } else if (toLose == 0) {
else if (toLose == 0) {
// Rule 118.4 // Rule 118.4
// this is for players being able to pay 0 life nothing to do // this is for players being able to pay 0 life nothing to do
// no trigger for lost no life // no trigger for lost no life
return 0; return 0;
} } else {
else {
System.out.println("Player - trying to lose negative life"); System.out.println("Player - trying to lose negative life");
return 0; return 0;
} }
@@ -500,11 +499,11 @@ public class Player extends GameEntity implements Comparable<Player> {
lifeLostThisTurn += toLose; lifeLostThisTurn += toLose;
// Run triggers // Run triggers
final Map<String, Object> runParams = Maps.newHashMap(); final Map<AbilityKey, Object> runParams = AbilityKey.newMap();
runParams.put("Player", this); runParams.put(AbilityKey.Player, this);
runParams.put("LifeAmount", toLose); runParams.put(AbilityKey.LifeAmount, toLose);
runParams.put("FirstTime", firstLost); runParams.put(AbilityKey.FirstTime, firstLost);
game.getTriggerHandler().runTriggerOld(TriggerType.LifeLost, runParams, false); game.getTriggerHandler().runTrigger(TriggerType.LifeLost, runParams, false);
return lifeLost; return lifeLost;
} }
@@ -528,10 +527,10 @@ public class Player extends GameEntity implements Comparable<Player> {
loseLife(lifePayment); loseLife(lifePayment);
// Run triggers // Run triggers
final Map<String, Object> runParams = Maps.newHashMap(); final Map<AbilityKey, Object> runParams = AbilityKey.newMap();
runParams.put("Player", this); runParams.put(AbilityKey.Player, this);
runParams.put("LifeAmount", lifePayment); runParams.put(AbilityKey.LifeAmount, lifePayment);
game.getTriggerHandler().runTriggerOld(TriggerType.PayLife, runParams, false); game.getTriggerHandler().runTrigger(TriggerType.PayLife, runParams, false);
return true; return true;
} }
@@ -611,14 +610,14 @@ public class Player extends GameEntity implements Comparable<Player> {
} }
// Run triggers // Run triggers
final Map<String, Object> runParams = Maps.newHashMap(); final Map<AbilityKey, Object> runParams = AbilityKey.newMap();
runParams.put("DamageSource", source); runParams.put(AbilityKey.DamageSource, source);
runParams.put("DamageTarget", this); runParams.put(AbilityKey.DamageTarget, this);
runParams.put("DamageAmount", amount); runParams.put(AbilityKey.DamageAmount, amount);
runParams.put("IsCombatDamage", isCombat); runParams.put(AbilityKey.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(AbilityKey.DefendingPlayer, game.getCombat() != null ? game.getCombat().getDefendingPlayerRelatedTo(source) : null);
game.getTriggerHandler().runTriggerOld(TriggerType.DamageDone, runParams, false); game.getTriggerHandler().runTrigger(TriggerType.DamageDone, runParams, false);
game.fireEvent(new GameEventPlayerDamaged(this, source, amount, isCombat, infect)); game.fireEvent(new GameEventPlayerDamaged(this, source, amount, isCombat, infect));
@@ -908,7 +907,7 @@ public class Player extends GameEntity implements Comparable<Player> {
} }
int addAmount = n; int addAmount = n;
if(addAmount <= 0) { if (addAmount <= 0) {
// Can't add negative or 0 counters, bail out now // Can't add negative or 0 counters, bail out now
return 0; return 0;
} }
@@ -922,29 +921,29 @@ public class Player extends GameEntity implements Comparable<Player> {
repParams.put("EffectOnly", applyMultiplier); repParams.put("EffectOnly", applyMultiplier);
switch (getGame().getReplacementHandler().run(repParams)) { switch (getGame().getReplacementHandler().run(repParams)) {
case NotReplaced: case NotReplaced:
break; break;
case Updated: { case Updated: {
addAmount = (int) repParams.get("CounterNum"); addAmount = (int) repParams.get("CounterNum");
break; break;
} }
default: default:
return 0; return 0;
} }
final int oldValue = getCounters(counterType); final int oldValue = getCounters(counterType);
final int newValue = addAmount + oldValue; final int newValue = addAmount + oldValue;
this.setCounters(counterType, newValue, fireEvents); this.setCounters(counterType, newValue, fireEvents);
final Map<String, Object> runParams = Maps.newHashMap(); final Map<AbilityKey, Object> runParams = Maps.newHashMap();
runParams.put("Player", this); runParams.put(AbilityKey.Player, this);
runParams.put("Source", this); runParams.put(AbilityKey.Source, this);
runParams.put("CounterType", counterType); runParams.put(AbilityKey.CounterType, counterType);
for (int i = 0; i < addAmount; i++) { for (int i = 0; i < addAmount; i++) {
getGame().getTriggerHandler().runTriggerOld(TriggerType.CounterAdded, runParams, false); getGame().getTriggerHandler().runTrigger(TriggerType.CounterAdded, runParams, false);
} }
if (addAmount > 0) { if (addAmount > 0) {
getGame().getTriggerHandler().runTriggerOld(TriggerType.CounterAddedOnce, runParams, false); getGame().getTriggerHandler().runTrigger(TriggerType.CounterAddedOnce, runParams, false);
} }
if (table != null) { if (table != null) {
table.put(this, counterType, addAmount); table.put(this, counterType, addAmount);
@@ -1283,14 +1282,14 @@ public class Player extends GameEntity implements Comparable<Player> {
repParams.put("SurveilNum", num); repParams.put("SurveilNum", num);
switch (getGame().getReplacementHandler().run(repParams)) { switch (getGame().getReplacementHandler().run(repParams)) {
case NotReplaced: case NotReplaced:
break; break;
case Updated: { case Updated: {
num = (int) repParams.get("SurveilNum"); num = (int) repParams.get("SurveilNum");
break; break;
} }
default: default:
return; return;
} }
final CardCollection topN = new CardCollection(this.getCardsIn(ZoneType.Library, num)); final CardCollection topN = new CardCollection(this.getCardsIn(ZoneType.Library, num));
@@ -1307,7 +1306,7 @@ public class Player extends GameEntity implements Comparable<Player> {
int numToTop = 0; int numToTop = 0;
if (toGrave != null) { if (toGrave != null) {
for(Card c : toGrave) { for (Card c : toGrave) {
getGame().getAction().moveToGraveyard(c, cause); getGame().getAction().moveToGraveyard(c, cause);
numToGrave++; numToGrave++;
} }
@@ -1315,7 +1314,7 @@ public class Player extends GameEntity implements Comparable<Player> {
if (toTop != null) { if (toTop != null) {
Collections.reverse(toTop); // the last card in list will become topmost in library, have to revert thus. Collections.reverse(toTop); // the last card in list will become topmost in library, have to revert thus.
for(Card c : toTop) { for (Card c : toTop) {
getGame().getAction().moveToLibrary(c, cause); getGame().getAction().moveToLibrary(c, cause);
numToTop++; numToTop++;
} }
@@ -1324,10 +1323,10 @@ public class Player extends GameEntity implements Comparable<Player> {
getGame().fireEvent(new GameEventSurveil(this, numToTop, numToGrave)); getGame().fireEvent(new GameEventSurveil(this, numToTop, numToGrave));
surveilThisTurn++; surveilThisTurn++;
final Map<String, Object> runParams = Maps.newHashMap(); final Map<AbilityKey, Object> runParams = AbilityKey.newMap();
runParams.put("Player", this); runParams.put(AbilityKey.Player, this);
runParams.put("NumThisTurn", surveilThisTurn); runParams.put(AbilityKey.NumThisTurn, surveilThisTurn);
getGame().getTriggerHandler().runTriggerOld(TriggerType.Surveil, runParams, false); getGame().getTriggerHandler().runTrigger(TriggerType.Surveil, runParams, false);
} }
public int getSurveilThisTurn() { public int getSurveilThisTurn() {
@@ -1415,11 +1414,11 @@ public class Player extends GameEntity implements Comparable<Player> {
view.updateNumDrawnThisTurn(this); view.updateNumDrawnThisTurn(this);
// Run triggers // Run triggers
final Map<String, Object> runParams = Maps.newHashMap(); final Map<AbilityKey, Object> runParams = Maps.newHashMap();
runParams.put("Card", c); runParams.put(AbilityKey.Card, c);
runParams.put("Number", numDrawnThisTurn); runParams.put(AbilityKey.Number, numDrawnThisTurn);
runParams.put("Player", this); runParams.put(AbilityKey.Player, this);
game.getTriggerHandler().runTriggerOld(TriggerType.Drawn, runParams, false); game.getTriggerHandler().runTrigger(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;
@@ -1603,12 +1602,12 @@ public class Player extends GameEntity implements Comparable<Player> {
} }
} }
} }
final Map<String, Object> runParams = Maps.newHashMap(); final Map<AbilityKey, Object> runParams = AbilityKey.newMap();
runParams.put("Player", this); runParams.put(AbilityKey.Player, this);
runParams.put("Card", c); runParams.put(AbilityKey.Card, c);
runParams.put("Cause", cause); runParams.put(AbilityKey.Cause, cause);
runParams.put("IsMadness", Boolean.valueOf(discardMadness)); runParams.put(AbilityKey.IsMadness, discardMadness);
game.getTriggerHandler().runTriggerOld(TriggerType.Discarded, runParams, false); game.getTriggerHandler().runTrigger(TriggerType.Discarded, runParams, false);
game.getGameLog().add(GameLogEntryType.DISCARD, sb.toString()); game.getGameLog().add(GameLogEntryType.DISCARD, sb.toString());
return newCard; return newCard;
} }
@@ -1686,10 +1685,10 @@ public class Player extends GameEntity implements Comparable<Player> {
getZone(ZoneType.Library).setCards(getController().cheatShuffle(list)); getZone(ZoneType.Library).setCards(getController().cheatShuffle(list));
// Run triggers // Run triggers
final Map<String, Object> runParams = Maps.newHashMap(); final Map<AbilityKey, Object> runParams = AbilityKey.newMap();
runParams.put("Player", this); runParams.put(AbilityKey.Player, this);
runParams.put("Source", sa); runParams.put(AbilityKey.Source, sa);
game.getTriggerHandler().runTriggerOld(TriggerType.Shuffled, runParams, false); game.getTriggerHandler().runTrigger(TriggerType.Shuffled, runParams, false);
// Play the shuffle sound // Play the shuffle sound
game.fireEvent(new GameEventShuffle(this)); game.fireEvent(new GameEventShuffle(this));
@@ -1717,9 +1716,7 @@ public class Player extends GameEntity implements Comparable<Player> {
game.fireEvent(new GameEventLandPlayed(this, land)); game.fireEvent(new GameEventLandPlayed(this, land));
// Run triggers // Run triggers
final Map<String, Object> runParams = Maps.newHashMap(); game.getTriggerHandler().runTrigger(TriggerType.LandPlayed, AbilityKey.mapFromCard(land), false);
runParams.put("Card", land);
game.getTriggerHandler().runTriggerOld(TriggerType.LandPlayed, runParams, false);
game.getStack().unfreezeStack(); game.getStack().unfreezeStack();
addLandPlayedThisTurn(); addLandPlayedThisTurn();
} }
@@ -2152,10 +2149,10 @@ public class Player extends GameEntity implements Comparable<Player> {
} }
public final void addInvestigatedThisTurn() { public final void addInvestigatedThisTurn() {
investigatedThisTurn++; investigatedThisTurn++;
Map<String,Object> runParams = Maps.newHashMap(); final Map<AbilityKey, Object> runParams = AbilityKey.newMap();
runParams.put("Player", this); runParams.put(AbilityKey.Player, this);
runParams.put("Num", investigatedThisTurn); runParams.put(AbilityKey.Num, investigatedThisTurn);
game.getTriggerHandler().runTriggerOld(TriggerType.Investigated, runParams,false); game.getTriggerHandler().runTrigger(TriggerType.Investigated, runParams,false);
} }
public final void resetInvestigatedThisTurn() { public final void resetInvestigatedThisTurn() {
investigatedThisTurn = 0; investigatedThisTurn = 0;
@@ -2173,14 +2170,14 @@ public class Player extends GameEntity implements Comparable<Player> {
sacrificedThisTurn.add(cpy); sacrificedThisTurn.add(cpy);
// Run triggers // Run triggers
final Map<String, Object> runParams = Maps.newHashMap(); final Map<AbilityKey, Object> runParams = AbilityKey.newMap();
// use a copy that preserves last known information about the card (e.g. for Savra, Queen of the Golgari + Painter's Servant) // use a copy that preserves last known information about the card (e.g. for Savra, Queen of the Golgari + Painter's Servant)
runParams.put("Card", cpy); runParams.put(AbilityKey.Card, cpy);
runParams.put("Player", this); runParams.put(AbilityKey.Player, this);
runParams.put("Cause", source); runParams.put(AbilityKey.Cause, source);
runParams.put("CostStack", game.costPaymentStack); runParams.put(AbilityKey.CostStack, game.costPaymentStack);
runParams.put("IndividualCostPaymentInstance", game.costPaymentStack.peek()); runParams.put(AbilityKey.IndividualCostPaymentInstance, game.costPaymentStack.peek());
game.getTriggerHandler().runTriggerOld(TriggerType.Sacrificed, runParams, false); game.getTriggerHandler().runTrigger(TriggerType.Sacrificed, runParams, false);
} }
public final void resetSacrificedThisTurn() { public final void resetSacrificedThisTurn() {
@@ -2524,9 +2521,9 @@ public class Player extends GameEntity implements Comparable<Player> {
game.setActivePlanes(currentPlanes); game.setActivePlanes(currentPlanes);
//Run PlaneswalkedTo triggers here. //Run PlaneswalkedTo triggers here.
Map<String,Object> runParams = Maps.newHashMap(); final Map<AbilityKey, Object> runParams = AbilityKey.newMap();
runParams.put("Cards", currentPlanes); runParams.put(AbilityKey.Cards, currentPlanes);
game.getTriggerHandler().runTriggerOld(TriggerType.PlaneswalkedTo, runParams,false); game.getTriggerHandler().runTrigger(TriggerType.PlaneswalkedTo, runParams,false);
view.updateCurrentPlaneName(currentPlanes.toString().replaceAll(" \\(.*","").replace("[","")); view.updateCurrentPlaneName(currentPlanes.toString().replaceAll(" \\(.*","").replace("[",""));
} }
@@ -2535,8 +2532,9 @@ 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<AbilityKey, Object> runParams = AbilityKey.newMap();
game.getTriggerHandler().runTriggerOld(TriggerType.PlaneswalkedFrom, runParams,false); runParams.put(AbilityKey.Cards, new CardCollection(currentPlanes));
game.getTriggerHandler().runTrigger(TriggerType.PlaneswalkedFrom, runParams,false);
for (final Card plane : currentPlanes) { for (final Card plane : currentPlanes) {
//game.getZoneOf(plane).remove(plane); //game.getZoneOf(plane).remove(plane);