ReplacementEffect: add Mode for ReplacementType

This commit is contained in:
Hans Mackowiak
2019-09-23 11:53:48 +00:00
committed by swordshine
parent d0fe0640f9
commit 14c9a8ccc3
39 changed files with 167 additions and 358 deletions

View File

@@ -26,6 +26,7 @@ import forge.game.mana.ManaCostBeingPaid;
import forge.game.player.Player;
import forge.game.player.PlayerView;
import forge.game.replacement.ReplacementEffect;
import forge.game.replacement.ReplacementType;
import forge.game.spellability.AbilityManaPart;
import forge.game.spellability.SpellAbility;
import forge.player.HumanPlay;
@@ -363,7 +364,6 @@ public abstract class InputPayMana extends InputSyncronizedBase {
final Player activator = am.getActivatingPlayer();
final Game g = source.getGame();
final HashMap<String, Object> repParams = new HashMap<>();
repParams.put("Event", "ProduceMana");
repParams.put("Mana", m.getOrigProduced());
repParams.put("Affected", source);
repParams.put("Player", activator);
@@ -373,8 +373,9 @@ public abstract class InputPayMana extends InputSyncronizedBase {
for (final Card crd : p.getAllCards()) {
for (final ReplacementEffect replacementEffect : crd.getReplacementEffects()) {
if (replacementEffect.requirementsCheck(g)
&& replacementEffect.getMode() == ReplacementType.ProduceMana
&& replacementEffect.canReplace(repParams)
&& replacementEffect.getMapParams().containsKey("ManaReplacement")
&& replacementEffect.hasParam("ManaReplacement")
&& replacementEffect.zonesCheck(g.getZoneOf(crd))) {
return true;
}