From 4e06f60f76e0f6acc69da508d59b04fa2d2af909 Mon Sep 17 00:00:00 2001 From: LevelX2 Date: Mon, 23 Jun 2014 01:29:21 +0200 Subject: [PATCH] * Umezawa's Jitte - Fixed that combat damage triggered ability triggered wrongly multiple times, if damage of equipped create was dealt to different creatures. --- .../sets/betrayersofkamigawa/UmezawasJitte.java | 13 +++++++++++-- .../costs/common/RemoveCountersSourceCost.java | 7 ++++--- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/Mage.Sets/src/mage/sets/betrayersofkamigawa/UmezawasJitte.java b/Mage.Sets/src/mage/sets/betrayersofkamigawa/UmezawasJitte.java index cc18024cadf..8304afd2a36 100644 --- a/Mage.Sets/src/mage/sets/betrayersofkamigawa/UmezawasJitte.java +++ b/Mage.Sets/src/mage/sets/betrayersofkamigawa/UmezawasJitte.java @@ -48,6 +48,7 @@ import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; import java.util.UUID; +import mage.game.events.GameEvent.EventType; /** * @author Loki @@ -90,12 +91,16 @@ public class UmezawasJitte extends CardImpl { class UmezawasJitteAbility extends TriggeredAbilityImpl { + private boolean usedInPhase; + public UmezawasJitteAbility() { super(Zone.BATTLEFIELD, new AddCountersSourceEffect(CounterType.CHARGE.createInstance(2))); + this.usedInPhase = false; } public UmezawasJitteAbility(final UmezawasJitteAbility ability) { super(ability); + this.usedInPhase = ability.usedInPhase; } @Override @@ -107,15 +112,19 @@ class UmezawasJitteAbility extends TriggeredAbilityImpl { public boolean checkTrigger(GameEvent event, Game game) { if (event instanceof DamagedEvent) { Permanent p = game.getPermanent(event.getSourceId()); - if (((DamagedEvent) event).isCombatDamage() && p != null && p.getAttachments().contains(this.getSourceId())) { + if (!usedInPhase && ((DamagedEvent) event).isCombatDamage() && p != null && p.getAttachments().contains(this.getSourceId())) { + usedInPhase = true; return true; } } + if (event.getType().equals(EventType.COMBAT_DAMAGE_STEP_PRE)) { + usedInPhase = false; + } return false; } @Override public String getRule() { - return "Whenever equipped creature deals combat damage, put two charge counters on {this}."; + return "Whenever equipped creature deals combat damage, " + super.getRule(); } } diff --git a/Mage/src/mage/abilities/costs/common/RemoveCountersSourceCost.java b/Mage/src/mage/abilities/costs/common/RemoveCountersSourceCost.java index 251ade18f01..14102973c64 100644 --- a/Mage/src/mage/abilities/costs/common/RemoveCountersSourceCost.java +++ b/Mage/src/mage/abilities/costs/common/RemoveCountersSourceCost.java @@ -42,8 +42,8 @@ import mage.util.CardUtil; */ public class RemoveCountersSourceCost extends CostImpl { - private int amount; - private String name; + private final int amount; + private final String name; public RemoveCountersSourceCost(Counter counter) { this.amount = counter.getCount(); @@ -63,8 +63,9 @@ public class RemoveCountersSourceCost extends CostImpl { @Override public boolean canPay(UUID sourceId, UUID controllerId, Game game) { Permanent permanent = game.getPermanent(sourceId); - if (permanent.getCounters().getCount(name) >= amount) + if (permanent.getCounters().getCount(name) >= amount) { return true; + } return false; }