mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 20:58:03 +00:00
remove runOld and getReplacementListOld
This commit is contained in:
@@ -2079,8 +2079,7 @@ public class AiController {
|
||||
return true;
|
||||
}
|
||||
|
||||
public ReplacementEffect chooseSingleReplacementEffect(List<ReplacementEffect> list,
|
||||
Map<String, Object> runParams) {
|
||||
public ReplacementEffect chooseSingleReplacementEffect(List<ReplacementEffect> list) {
|
||||
// no need to choose anything
|
||||
if (list.size() <= 1) {
|
||||
return Iterables.getFirst(list, null);
|
||||
|
||||
@@ -866,8 +866,8 @@ public class PlayerControllerAi extends PlayerController {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ReplacementEffect chooseSingleReplacementEffect(String prompt, List<ReplacementEffect> possibleReplacers, Map<String, Object> runParams) {
|
||||
return brains.chooseSingleReplacementEffect(possibleReplacers, runParams);
|
||||
public ReplacementEffect chooseSingleReplacementEffect(String prompt, List<ReplacementEffect> possibleReplacers) {
|
||||
return brains.chooseSingleReplacementEffect(possibleReplacers);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -10,6 +10,7 @@ import forge.card.MagicColor;
|
||||
import forge.game.Game;
|
||||
import forge.game.GameObject;
|
||||
import forge.game.GlobalRuleChange;
|
||||
import forge.game.ability.AbilityKey;
|
||||
import forge.game.ability.AbilityUtils;
|
||||
import forge.game.ability.ApiType;
|
||||
import forge.game.card.*;
|
||||
@@ -1789,8 +1790,8 @@ public class ChangeZoneAi extends SpellAbilityAi {
|
||||
}
|
||||
|
||||
public boolean doReturnCommanderLogic(SpellAbility sa, Player aiPlayer) {
|
||||
Map<String, Object> originalParams = (Map<String, Object>)sa.getReplacingObject("OriginalParams");
|
||||
SpellAbility causeSa = (SpellAbility)originalParams.get("Cause");
|
||||
Map<AbilityKey, Object> originalParams = (Map<AbilityKey, Object>)sa.getReplacingObject(AbilityKey.OriginalParams);
|
||||
SpellAbility causeSa = (SpellAbility)originalParams.get(AbilityKey.Cause);
|
||||
SpellAbility causeSub = null;
|
||||
|
||||
// Squee, the Immortal: easier to recast it (the call below has to be "contains" since SA is an intrinsic effect)
|
||||
|
||||
@@ -85,6 +85,7 @@ public enum AbilityKey {
|
||||
Origin("Origin"),
|
||||
OriginalController("OriginalController"),
|
||||
OriginalDefender("OriginalDefender"),
|
||||
OriginalParams("OriginalParams"),
|
||||
PayingMana("PayingMana"),
|
||||
Phase("Phase"),
|
||||
Player("Player"),
|
||||
@@ -92,6 +93,7 @@ public enum AbilityKey {
|
||||
Prevention("Prevention"),
|
||||
Produced("Produced"),
|
||||
Regeneration("Regeneration"),
|
||||
ReplacementResult("ReplacementResult"),
|
||||
Result("Result"),
|
||||
Scheme("Scheme"),
|
||||
Source("Source"),
|
||||
|
||||
@@ -2,6 +2,7 @@ package forge.game.ability.effects;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import forge.game.ability.AbilityKey;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import com.google.common.collect.Maps;
|
||||
@@ -31,10 +32,10 @@ public class ReplaceDamageEffect extends SpellAbilityEffect {
|
||||
String varValue = sa.getParamOrDefault("VarName", "1");
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
Map<String, Object> originalParams = (Map<String, Object>) sa.getReplacingObject("OriginalParams");
|
||||
Map<String, Object> params = Maps.newHashMap(originalParams);
|
||||
Map<AbilityKey, Object> originalParams = (Map<AbilityKey, Object>) sa.getReplacingObject(AbilityKey.OriginalParams);
|
||||
Map<AbilityKey, Object> params = AbilityKey.newMap(originalParams);
|
||||
|
||||
Integer dmg = (Integer) sa.getReplacingObject("DamageAmount");
|
||||
Integer dmg = (Integer) sa.getReplacingObject(AbilityKey.DamageAmount);
|
||||
|
||||
int prevent = AbilityUtils.calculateAmount(card, varValue, sa);
|
||||
|
||||
@@ -54,27 +55,27 @@ public class ReplaceDamageEffect extends SpellAbilityEffect {
|
||||
|
||||
// no damage for original target anymore
|
||||
if (dmg <= 0) {
|
||||
originalParams.put("ReplacementResult", ReplacementResult.Replaced);
|
||||
originalParams.put(AbilityKey.ReplacementResult, ReplacementResult.Replaced);
|
||||
return;
|
||||
}
|
||||
params.put("DamageAmount", dmg);
|
||||
params.put(AbilityKey.DamageAmount, dmg);
|
||||
|
||||
|
||||
//try to call replacementHandler with new Params
|
||||
ReplacementResult result = game.getReplacementHandler().runOld(event, params);
|
||||
ReplacementResult result = game.getReplacementHandler().run(event, params);
|
||||
switch (result) {
|
||||
case NotReplaced:
|
||||
case Updated: {
|
||||
for (Map.Entry<String, Object> e : params.entrySet()) {
|
||||
for (Map.Entry<AbilityKey, Object> e : params.entrySet()) {
|
||||
originalParams.put(e.getKey(), e.getValue());
|
||||
}
|
||||
// effect was updated
|
||||
originalParams.put("ReplacementResult", ReplacementResult.Updated);
|
||||
originalParams.put(AbilityKey.ReplacementResult, ReplacementResult.Updated);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
// effect was replaced with something else
|
||||
originalParams.put("ReplacementResult", result);
|
||||
originalParams.put(AbilityKey.ReplacementResult, result);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ import com.google.common.collect.Maps;
|
||||
|
||||
import forge.game.Game;
|
||||
import forge.game.GameObject;
|
||||
import forge.game.ability.AbilityKey;
|
||||
import forge.game.ability.AbilityUtils;
|
||||
import forge.game.ability.SpellAbilityEffect;
|
||||
import forge.game.card.Card;
|
||||
@@ -23,14 +24,14 @@ public class ReplaceEffect extends SpellAbilityEffect {
|
||||
final Card card = sa.getHostCard();
|
||||
final Game game = card.getGame();
|
||||
|
||||
final String varName = sa.getParam("VarName");
|
||||
final AbilityKey varName = AbilityKey.fromString(sa.getParam("VarName"));
|
||||
final String varValue = sa.getParam("VarValue");
|
||||
final String type = sa.getParamOrDefault("VarType", "amount");
|
||||
final ReplacementType retype = sa.getReplacementEffect().getMode();
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
Map<String, Object> originalParams = (Map<String, Object>) sa.getReplacingObject("OriginalParams");
|
||||
Map<String, Object> params = Maps.newHashMap(originalParams);
|
||||
Map<AbilityKey, Object> originalParams = (Map<AbilityKey, Object>) sa.getReplacingObject(AbilityKey.OriginalParams);
|
||||
Map<AbilityKey, Object> params = Maps.newHashMap(originalParams);
|
||||
|
||||
if ("Card".equals(type)) {
|
||||
List<Card> list = AbilityUtils.getDefinedCards(card, varValue, sa);
|
||||
@@ -56,25 +57,25 @@ public class ReplaceEffect extends SpellAbilityEffect {
|
||||
params.put(varName, AbilityUtils.calculateAmount(card, varValue, sa));
|
||||
}
|
||||
|
||||
if (params.containsKey("EffectOnly")) {
|
||||
params.put("EffectOnly", true);
|
||||
if (params.containsKey(AbilityKey.EffectOnly)) {
|
||||
params.put(AbilityKey.EffectOnly, true);
|
||||
}
|
||||
|
||||
//try to call replacementHandler with new Params
|
||||
ReplacementResult result = game.getReplacementHandler().runOld(retype, params);
|
||||
ReplacementResult result = game.getReplacementHandler().run(retype, params);
|
||||
switch (result) {
|
||||
case NotReplaced:
|
||||
case Updated: {
|
||||
for (Map.Entry<String, Object> e : params.entrySet()) {
|
||||
for (Map.Entry<AbilityKey, Object> e : params.entrySet()) {
|
||||
originalParams.put(e.getKey(), e.getValue());
|
||||
}
|
||||
// effect was updated
|
||||
originalParams.put("ReplacementResult", ReplacementResult.Updated);
|
||||
originalParams.put(AbilityKey.ReplacementResult, ReplacementResult.Updated);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
// effect was replaced with something else
|
||||
originalParams.put("ReplacementResult", result);
|
||||
originalParams.put(AbilityKey.ReplacementResult, result);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package forge.game.ability.effects;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import forge.game.ability.AbilityKey;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import com.google.common.collect.Maps;
|
||||
@@ -36,10 +37,10 @@ public class ReplaceSplitDamageEffect extends SpellAbilityEffect {
|
||||
String varValue = sa.getParamOrDefault("VarName", "1");
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
Map<String, Object> originalParams = (Map<String, Object>) sa.getReplacingObject("OriginalParams");
|
||||
Map<String, Object> params = Maps.newHashMap(originalParams);
|
||||
Map<AbilityKey, Object> originalParams = (Map<AbilityKey , Object>) sa.getReplacingObject(AbilityKey.OriginalParams);
|
||||
Map<AbilityKey, Object> params = AbilityKey.newMap(originalParams);
|
||||
|
||||
Integer dmg = (Integer) sa.getReplacingObject("DamageAmount");
|
||||
Integer dmg = (Integer) sa.getReplacingObject(AbilityKey.DamageAmount);
|
||||
|
||||
|
||||
int prevent = AbilityUtils.calculateAmount(card, varValue, sa);
|
||||
@@ -57,15 +58,15 @@ public class ReplaceSplitDamageEffect extends SpellAbilityEffect {
|
||||
card.setSVar(varValue, "Number$" + prevent);
|
||||
}
|
||||
|
||||
Card sourceLKI = (Card) sa.getReplacingObject("Source");
|
||||
Card sourceLKI = (Card) sa.getReplacingObject(AbilityKey.Source);
|
||||
|
||||
CardDamageMap damageMap = (CardDamageMap) originalParams.get("DamageMap");
|
||||
CardDamageMap preventMap = (CardDamageMap) originalParams.get("PreventMap");
|
||||
GameEntityCounterTable counterTable = (GameEntityCounterTable) originalParams.get("CounterTable");
|
||||
SpellAbility cause = (SpellAbility) originalParams.get("Cause");
|
||||
CardDamageMap damageMap = (CardDamageMap) originalParams.get(AbilityKey.DamageMap);
|
||||
CardDamageMap preventMap = (CardDamageMap) originalParams.get(AbilityKey.PreventMap);
|
||||
GameEntityCounterTable counterTable = (GameEntityCounterTable) originalParams.get(AbilityKey.CounterTable);
|
||||
SpellAbility cause = (SpellAbility) originalParams.get(AbilityKey.Cause);
|
||||
|
||||
boolean isCombat = (Boolean) originalParams.get("IsCombat");
|
||||
boolean noPrevention = (Boolean) originalParams.get("NoPreventDamage");
|
||||
boolean isCombat = (Boolean) originalParams.get(AbilityKey.IsCombat);
|
||||
boolean noPrevention = (Boolean) originalParams.get(AbilityKey.NoPreventDamage);
|
||||
|
||||
GameEntity obj = (GameEntity) list.get(0);
|
||||
|
||||
@@ -74,26 +75,26 @@ public class ReplaceSplitDamageEffect extends SpellAbilityEffect {
|
||||
|
||||
// no damage for original target anymore
|
||||
if (dmg <= 0) {
|
||||
originalParams.put("ReplacementResult", ReplacementResult.Replaced);
|
||||
originalParams.put(AbilityKey.ReplacementResult, ReplacementResult.Replaced);
|
||||
return;
|
||||
}
|
||||
params.put("DamageAmount", dmg);
|
||||
params.put(AbilityKey.DamageAmount, dmg);
|
||||
|
||||
//try to call replacementHandler with new Params
|
||||
ReplacementResult result = game.getReplacementHandler().runOld(event, params);
|
||||
ReplacementResult result = game.getReplacementHandler().run(event, params);
|
||||
switch (result) {
|
||||
case NotReplaced:
|
||||
case Updated: {
|
||||
for (Map.Entry<String, Object> e : params.entrySet()) {
|
||||
for (Map.Entry<AbilityKey, Object> e : params.entrySet()) {
|
||||
originalParams.put(e.getKey(), e.getValue());
|
||||
}
|
||||
// effect was updated
|
||||
originalParams.put("ReplacementResult", ReplacementResult.Updated);
|
||||
originalParams.put(AbilityKey.ReplacementResult, ReplacementResult.Updated);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
// effect was replaced with something else
|
||||
originalParams.put("ReplacementResult", result);
|
||||
originalParams.put(AbilityKey.ReplacementResult, result);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -211,7 +211,7 @@ public abstract class PlayerController {
|
||||
Map<String, Object> params);
|
||||
|
||||
public abstract boolean confirmPayment(CostPart costPart, String string, SpellAbility sa);
|
||||
public abstract ReplacementEffect chooseSingleReplacementEffect(String prompt, List<ReplacementEffect> possibleReplacers, Map<String, Object> runParams);
|
||||
public abstract ReplacementEffect chooseSingleReplacementEffect(String prompt, List<ReplacementEffect> possibleReplacers);
|
||||
public abstract String chooseProtectionType(String string, SpellAbility sa, List<String> choices);
|
||||
|
||||
// these 4 need some refining.
|
||||
|
||||
@@ -56,22 +56,16 @@ public class ReplacementHandler {
|
||||
//private final List<ReplacementEffect> tmpEffects = new ArrayList<ReplacementEffect>();
|
||||
|
||||
public List<ReplacementEffect> getReplacementList(final ReplacementType event, final Map<AbilityKey, Object> runParams, final ReplacementLayer layer) {
|
||||
return getReplacementListOld(event, toStringMap(runParams), layer);
|
||||
}
|
||||
// The plan is to slowly refactor any usages of getReplacementListOld to use getReplacementList. Then we can just inline
|
||||
// getReplacementListOld into getReplacementList and change the code inside to just always use a Map<AbilityKey, Object>.
|
||||
// The reason we can't just call them both getReplacementList is because we get a same erasure compile error if we do.
|
||||
private List<ReplacementEffect> getReplacementListOld(final ReplacementType event, final Map<String, Object> runParams, final ReplacementLayer layer) {
|
||||
|
||||
final CardCollection preList = new CardCollection();
|
||||
boolean checkAgain = false;
|
||||
Card affectedLKI = null;
|
||||
Card affectedCard = null;
|
||||
|
||||
if (ReplacementType.Moved.equals(event) && ZoneType.Battlefield.equals(runParams.get("Destination"))) {
|
||||
if (ReplacementType.Moved.equals(event) && ZoneType.Battlefield.equals(runParams.get(AbilityKey.Destination))) {
|
||||
// if it was caused by an replacement effect, use the already calculated RE list
|
||||
// otherwise the RIOT card would cause a StackError
|
||||
SpellAbility cause = (SpellAbility) runParams.get("Cause");
|
||||
SpellAbility cause = (SpellAbility) runParams.get(AbilityKey.Cause);
|
||||
if (cause != null && cause.isReplacementAbility()) {
|
||||
final ReplacementEffect re = cause.getReplacementEffect();
|
||||
// only return for same layer
|
||||
@@ -81,13 +75,13 @@ public class ReplacementHandler {
|
||||
}
|
||||
|
||||
// Rule 614.12 Enter the Battlefield Replacement Effects look at what the card would be on the battlefield
|
||||
affectedCard = (Card) runParams.get("Affected");
|
||||
affectedCard = (Card) runParams.get(AbilityKey.Affected);
|
||||
affectedLKI = CardUtil.getLKICopy(affectedCard);
|
||||
affectedLKI.setLastKnownZone(affectedCard.getController().getZone(ZoneType.Battlefield));
|
||||
preList.add(affectedLKI);
|
||||
game.getAction().checkStaticAbilities(false, Sets.newHashSet(affectedLKI), preList);
|
||||
checkAgain = true;
|
||||
runParams.put("Affected", affectedLKI);
|
||||
runParams.put(AbilityKey.Affected, affectedLKI);
|
||||
}
|
||||
|
||||
final List<ReplacementEffect> possibleReplacers = Lists.newArrayList();
|
||||
@@ -124,7 +118,7 @@ public class ReplacementHandler {
|
||||
&& (layer == null || replacementEffect.getLayer() == layer)
|
||||
&& event.equals(replacementEffect.getMode())
|
||||
&& replacementEffect.requirementsCheck(game)
|
||||
&& replacementEffect.canReplace(runParams)
|
||||
&& replacementEffect.canReplace(toStringMap(runParams))
|
||||
&& !possibleReplacers.contains(replacementEffect)
|
||||
&& replacementEffect.zonesCheck(cardZone)) {
|
||||
possibleReplacers.add(replacementEffect);
|
||||
@@ -142,7 +136,7 @@ public class ReplacementHandler {
|
||||
for (final ReplacementEffect re : affectedLKI.getReplacementEffects()) {
|
||||
re.setHostCard(affectedCard);
|
||||
}
|
||||
runParams.put("Affected", affectedCard);
|
||||
runParams.put(AbilityKey.Affected, affectedCard);
|
||||
}
|
||||
game.getAction().checkStaticAbilities(false);
|
||||
}
|
||||
@@ -159,15 +153,7 @@ public class ReplacementHandler {
|
||||
* @return ReplacementResult, an enum that represents what happened to the replacement effect.
|
||||
*/
|
||||
public ReplacementResult run(ReplacementType event, final Map<AbilityKey, Object> runParams) {
|
||||
return runOld(event, toStringMap(runParams));
|
||||
}
|
||||
|
||||
// The plan is to slowly refactor any usages of runOld to use run. Then we can just inline
|
||||
// runOld into run and change the code inside to just always use a Map<AbilityKey, Object>.
|
||||
// The reason we can't just call them both run is because we get a same erasure compile error if we do.
|
||||
@Deprecated
|
||||
public ReplacementResult runOld(ReplacementType event, final Map<String, Object> runParams) {
|
||||
final Object affected = runParams.get("Affected");
|
||||
final Object affected = runParams.get(AbilityKey.Affected);
|
||||
Player decider = null;
|
||||
|
||||
// Figure out who decides which of multiple replacements to apply
|
||||
@@ -190,15 +176,14 @@ public class ReplacementHandler {
|
||||
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
private ReplacementResult run(final ReplacementType event, final Map<String, Object> runParams, final ReplacementLayer layer, final Player decider) {
|
||||
final List<ReplacementEffect> possibleReplacers = getReplacementListOld(event, runParams, layer);
|
||||
private ReplacementResult run(final ReplacementType event, final Map<AbilityKey, Object> runParams, final ReplacementLayer layer, final Player decider) {
|
||||
final List<ReplacementEffect> possibleReplacers = getReplacementList(event, runParams, layer);
|
||||
|
||||
if (possibleReplacers.isEmpty()) {
|
||||
return ReplacementResult.NotReplaced;
|
||||
}
|
||||
|
||||
ReplacementEffect chosenRE = decider.getController().chooseSingleReplacementEffect("Choose a replacement effect to apply first.", possibleReplacers, runParams);
|
||||
ReplacementEffect chosenRE = decider.getController().chooseSingleReplacementEffect("Choose a replacement effect to apply first.", possibleReplacers);
|
||||
|
||||
possibleReplacers.remove(chosenRE);
|
||||
|
||||
@@ -207,7 +192,7 @@ public class ReplacementHandler {
|
||||
ReplacementResult res = executeReplacement(runParams, chosenRE, decider, game);
|
||||
if (res == ReplacementResult.NotReplaced) {
|
||||
if (!possibleReplacers.isEmpty()) {
|
||||
res = runOld(event, runParams);
|
||||
res = run(event, runParams);
|
||||
}
|
||||
chosenRE.setHasRun(false);
|
||||
chosenRE.setOtherChoices(null);
|
||||
@@ -231,7 +216,7 @@ public class ReplacementHandler {
|
||||
* @param replacementEffect
|
||||
* the replacement effect to run
|
||||
*/
|
||||
private ReplacementResult executeReplacement(final Map<String, Object> runParams,
|
||||
private ReplacementResult executeReplacement(final Map<AbilityKey, Object> runParams,
|
||||
final ReplacementEffect replacementEffect, final Player decider, final Game game) {
|
||||
final Map<String, String> mapParams = replacementEffect.getMapParams();
|
||||
|
||||
@@ -253,9 +238,9 @@ public class ReplacementHandler {
|
||||
|
||||
SpellAbility tailend = effectSA;
|
||||
do {
|
||||
replacementEffect.setReplacingObjects(runParams, tailend);
|
||||
replacementEffect.setReplacingObjects(toStringMap(runParams), tailend);
|
||||
//set original Params to update them later
|
||||
tailend.setReplacingObject("OriginalParams", runParams);
|
||||
tailend.setReplacingObject(AbilityKey.OriginalParams, runParams);
|
||||
tailend = tailend.getSubAbility();
|
||||
} while(tailend != null);
|
||||
|
||||
@@ -264,9 +249,9 @@ public class ReplacementHandler {
|
||||
effectSA = replacementEffect.getOverridingAbility();
|
||||
SpellAbility tailend = effectSA;
|
||||
do {
|
||||
replacementEffect.setReplacingObjects(runParams, tailend);
|
||||
replacementEffect.setReplacingObjects(toStringMap(runParams), tailend);
|
||||
//set original Params to update them later
|
||||
tailend.setReplacingObject("OriginalParams", runParams);
|
||||
tailend.setReplacingObject(AbilityKey.OriginalParams, runParams);
|
||||
tailend = tailend.getSubAbility();
|
||||
} while(tailend != null);
|
||||
}
|
||||
@@ -293,7 +278,7 @@ public class ReplacementHandler {
|
||||
Card cardForUi = host.getCardForUi();
|
||||
String effectDesc = TextUtil.fastReplace(replacementEffect.toString(), "CARDNAME", cardForUi.getName());
|
||||
final String question = replacementEffect instanceof ReplaceDiscard
|
||||
? TextUtil.concatWithSpace("Apply replacement effect of", cardForUi.toString(), "to", TextUtil.addSuffix(runParams.get("Card").toString(),"?\r\n"), TextUtil.enclosedParen(effectDesc))
|
||||
? TextUtil.concatWithSpace("Apply replacement effect of", cardForUi.toString(), "to", TextUtil.addSuffix(runParams.get(AbilityKey.Card).toString(),"?\r\n"), TextUtil.enclosedParen(effectDesc))
|
||||
: TextUtil.concatWithSpace("Apply replacement effect of", TextUtil.addSuffix(cardForUi.toString(),"?\r\n"), TextUtil.enclosedParen(effectDesc));
|
||||
boolean confirmed = optDecider.getController().confirmReplacementEffect(replacementEffect, effectSA, question);
|
||||
if (!confirmed) {
|
||||
@@ -310,9 +295,9 @@ public class ReplacementHandler {
|
||||
Player player = host.getController();
|
||||
|
||||
if (mapParams.containsKey("ManaReplacement")) {
|
||||
final SpellAbility manaAb = (SpellAbility) runParams.get("AbilityMana");
|
||||
final Player player1 = (Player) runParams.get("Player");
|
||||
final String rep = (String) runParams.get("Mana");
|
||||
final SpellAbility manaAb = (SpellAbility) runParams.get(AbilityKey.AbilityMana);
|
||||
final Player player1 = (Player) runParams.get(AbilityKey.Player);
|
||||
final String rep = (String) runParams.get(AbilityKey.Mana);
|
||||
// Replaced mana type
|
||||
final Card repHost = host;
|
||||
String repType = repHost.getSVar(mapParams.get("ManaReplacement"));
|
||||
@@ -325,8 +310,8 @@ public class ReplacementHandler {
|
||||
player.getController().playSpellAbilityNoStack(effectSA, true);
|
||||
// if the spellability is a replace effect then its some new logic
|
||||
// if ReplacementResult is set in run params use that instead
|
||||
if (runParams.containsKey("ReplacementResult")) {
|
||||
return (ReplacementResult) runParams.get("ReplacementResult");
|
||||
if (runParams.containsKey(AbilityKey.ReplacementResult)) {
|
||||
return (ReplacementResult) runParams.get(AbilityKey.ReplacementResult);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -599,10 +599,22 @@ public abstract class SpellAbility extends CardTraitBase implements ISpellAbilit
|
||||
public boolean hasReplacingObject(final String type) {
|
||||
return replacingObjects.containsKey(type);
|
||||
}
|
||||
public Object getReplacingObject(final AbilityKey type) {
|
||||
return getReplacingObject(type.toString());
|
||||
}
|
||||
// Eventually we want to switch the internal map to be a `Map<AbilityKey, Object>` instead of a
|
||||
// `Map<String, Object>`.
|
||||
@Deprecated
|
||||
public Object getReplacingObject(final String type) {
|
||||
final Object res = replacingObjects.get(type);
|
||||
return res;
|
||||
}
|
||||
public void setReplacingObject(final AbilityKey type, final Object o) {
|
||||
setReplacingObject(type.toString(), o);
|
||||
}
|
||||
// Eventually we want to switch the internal map to be a `Map<AbilityKey, Object>` instead of a
|
||||
// `Map<String, Object>`.
|
||||
@Deprecated
|
||||
public void setReplacingObject(final String type, final Object o) {
|
||||
replacingObjects.put(type, o);
|
||||
}
|
||||
|
||||
@@ -506,7 +506,7 @@ public class PlayerControllerForTests extends PlayerController {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ReplacementEffect chooseSingleReplacementEffect(String prompt, List<ReplacementEffect> possibleReplacers, Map<String, Object> runParams) {
|
||||
public ReplacementEffect chooseSingleReplacementEffect(String prompt, List<ReplacementEffect> possibleReplacers) {
|
||||
// TODO Auto-generated method stub
|
||||
return Iterables.getFirst(possibleReplacers, null);
|
||||
}
|
||||
|
||||
@@ -1587,7 +1587,7 @@ public class PlayerControllerHuman extends PlayerController implements IGameCont
|
||||
|
||||
@Override
|
||||
public ReplacementEffect chooseSingleReplacementEffect(final String prompt,
|
||||
final List<ReplacementEffect> possibleReplacers, final Map<String, Object> runParams) {
|
||||
final List<ReplacementEffect> possibleReplacers) {
|
||||
final ReplacementEffect first = possibleReplacers.get(0);
|
||||
if (possibleReplacers.size() == 1) {
|
||||
return first;
|
||||
|
||||
Reference in New Issue
Block a user