From a6258cfc7efa42d9623840932ffc8539798c080e Mon Sep 17 00:00:00 2001 From: magenoxx Date: Thu, 22 Sep 2011 17:53:54 +0400 Subject: [PATCH] Fixed Chandra Nalaar second ability dealing no damage because of loyalty variable cost. Fixed DamageAllControlledTargetEffect static text generating. --- .../mage/sets/magic2010/ChandraNalaar.java | 48 +++++++++++++++++-- .../DamageAllControlledTargetEffect.java | 8 +++- 2 files changed, 49 insertions(+), 7 deletions(-) diff --git a/Mage.Sets/src/mage/sets/magic2010/ChandraNalaar.java b/Mage.Sets/src/mage/sets/magic2010/ChandraNalaar.java index 5f204facd2c..5e0da22950e 100644 --- a/Mage.Sets/src/mage/sets/magic2010/ChandraNalaar.java +++ b/Mage.Sets/src/mage/sets/magic2010/ChandraNalaar.java @@ -28,26 +28,30 @@ package mage.sets.magic2010; -import java.util.UUID; import mage.Constants.CardType; import mage.Constants.Rarity; -import mage.MageInt; +import mage.abilities.Ability; import mage.abilities.LoyaltyAbility; import mage.abilities.common.EntersBattlefieldAbility; +import mage.abilities.costs.Cost; +import mage.abilities.costs.common.PayVariableLoyaltyCost; +import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.effects.Effects; import mage.abilities.effects.common.DamageAllControlledTargetEffect; import mage.abilities.effects.common.DamageTargetEffect; -import mage.abilities.effects.common.DamageXTargetEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; import mage.cards.CardImpl; import mage.counters.CounterType; import mage.filter.common.FilterCreaturePermanent; +import mage.game.Game; import mage.target.TargetPlayer; import mage.target.common.TargetCreaturePermanent; +import java.util.UUID; + /** * - * @author BetaSteward_at_googlemail.com + * @author BetaSteward_at_googlemail.com, nantuko */ public class ChandraNalaar extends CardImpl { @@ -63,7 +67,7 @@ public class ChandraNalaar extends CardImpl { ability1.addTarget(new TargetPlayer()); this.addAbility(ability1); - LoyaltyAbility ability2 = new LoyaltyAbility(new DamageXTargetEffect()); + LoyaltyAbility ability2 = new LoyaltyAbility(new DamageTargetEffect(ChandraNalaarXValue.getDefault())); ability2.addTarget(new TargetCreaturePermanent()); this.addAbility(ability2); @@ -85,3 +89,37 @@ public class ChandraNalaar extends CardImpl { } } +class ChandraNalaarXValue implements DynamicValue { + + private static final ChandraNalaarXValue defaultValue = new ChandraNalaarXValue(); + + @Override + public int calculate(Game game, Ability sourceAbility) { + for (Cost cost : sourceAbility.getCosts()) { + if (cost instanceof PayVariableLoyaltyCost) { + return ((PayVariableLoyaltyCost)cost).getAmount(); + } + } + return 0; + } + + @Override + public DynamicValue clone() { + return defaultValue; + } + + @Override + public String getMessage() { + return ""; + } + + @Override + public String toString() { + return "X"; + } + + public static ChandraNalaarXValue getDefault() { + return defaultValue; + } +} + diff --git a/Mage/src/mage/abilities/effects/common/DamageAllControlledTargetEffect.java b/Mage/src/mage/abilities/effects/common/DamageAllControlledTargetEffect.java index c2f7d1619ff..36bd75d1c5f 100644 --- a/Mage/src/mage/abilities/effects/common/DamageAllControlledTargetEffect.java +++ b/Mage/src/mage/abilities/effects/common/DamageAllControlledTargetEffect.java @@ -49,8 +49,7 @@ public class DamageAllControlledTargetEffect extends OneShotEffect