From 7207bc0be60b7d30a3ac8e4e1e78fcbefa968ffb Mon Sep 17 00:00:00 2001 From: LevelX Date: Mon, 2 Jan 2012 23:25:46 +0100 Subject: [PATCH] Bloodthirsty Ogre - refactored counter handling for negative values CountersCount - removed negative parameter --- .../championsofkamigawa/BloodthirstyOgre.java | 41 ++----------------- .../dynamicvalue/common/CountersCount.java | 13 ++---- 2 files changed, 6 insertions(+), 48 deletions(-) diff --git a/Mage.Sets/src/mage/sets/championsofkamigawa/BloodthirstyOgre.java b/Mage.Sets/src/mage/sets/championsofkamigawa/BloodthirstyOgre.java index 07566c08146..336983b76ec 100644 --- a/Mage.Sets/src/mage/sets/championsofkamigawa/BloodthirstyOgre.java +++ b/Mage.Sets/src/mage/sets/championsofkamigawa/BloodthirstyOgre.java @@ -28,7 +28,6 @@ package mage.sets.championsofkamigawa; import java.util.UUID; -import mage.Constants; import mage.Constants.CardType; import mage.Constants.Duration; import mage.Constants.Rarity; @@ -37,20 +36,17 @@ import mage.MageInt; import mage.abilities.Ability; import mage.abilities.common.SimpleActivatedAbility; import mage.abilities.costs.common.ControlPermanentCost; -import mage.abilities.costs.common.SacrificeTargetCost; import mage.abilities.costs.common.TapSourceCost; import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.common.CountersCount; +import mage.abilities.dynamicvalue.common.SignInversionDynamicValue; import mage.abilities.effects.common.continious.BoostTargetEffect; import mage.abilities.effects.common.counter.AddCountersSourceEffect; -import mage.cards.Card; import mage.cards.CardImpl; import mage.counters.CounterType; import mage.counters.common.DevotionCounter; import mage.filter.Filter; import mage.filter.common.FilterControlledPermanent; -import mage.game.Game; -import mage.game.permanent.Permanent; import mage.target.common.TargetCreaturePermanent; /** @@ -79,7 +75,7 @@ public class BloodthirstyOgre extends CardImpl { // {T}: Put a devotion counter on Bloodthirsty Ogre this.addAbility(new SimpleActivatedAbility(Zone.BATTLEFIELD, new AddCountersSourceEffect(new DevotionCounter()),new TapSourceCost())); // {T}: Target creature gets -X/-X until end of turn, where X is the number of devotion counters on Bloodthirsty Ogre. Activate this ability only if you control a Demon. - CountersCount devotionCounters = new CountersCount(CounterType.DEVOTION, true); + DynamicValue devotionCounters = new SignInversionDynamicValue(new CountersCount(CounterType.DEVOTION)); Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD,new BoostTargetEffect(devotionCounters,devotionCounters, Duration.EndOfTurn),new TapSourceCost()); ability.addCost(new ControlPermanentCost(filter)); ability.addTarget(new TargetCreaturePermanent()); @@ -95,35 +91,4 @@ public class BloodthirstyOgre extends CardImpl { return new BloodthirstyOgre(this); } -} - -class IchorExplosionDynamicValue implements DynamicValue { - @Override - public int calculate(Game game, Ability sourceAbility) { - Card sourceCard = game.getCard(sourceAbility.getSourceId()); - if (sourceCard != null) { - for (Object cost: sourceAbility.getCosts()) { - if (cost instanceof SacrificeTargetCost) { - Permanent p = (Permanent) game.getLastKnownInformation(((SacrificeTargetCost) cost).getPermanents().get(0).getId(), Constants.Zone.BATTLEFIELD); - return -1 * p.getPower().getValue(); - } - } - } - return 0; - } - - @Override - public DynamicValue clone() { - return this; - } - - @Override - public String getMessage() { - return ", where X is the sacrificed creature's power"; - } - - @Override - public String toString() { - return "-X"; - } -} +} \ No newline at end of file diff --git a/Mage/src/mage/abilities/dynamicvalue/common/CountersCount.java b/Mage/src/mage/abilities/dynamicvalue/common/CountersCount.java index 68f68e9859b..061ca5bd2b2 100644 --- a/Mage/src/mage/abilities/dynamicvalue/common/CountersCount.java +++ b/Mage/src/mage/abilities/dynamicvalue/common/CountersCount.java @@ -9,20 +9,13 @@ import mage.game.permanent.Permanent; public class CountersCount implements DynamicValue { private CounterType counter; - private boolean negative = false; - + public CountersCount(CounterType counter) { this.counter = counter; } - public CountersCount(CounterType counter, boolean negative) { - this.counter = counter; - this.negative = negative; - } - public CountersCount(final CountersCount countersCount) { this.counter = countersCount.counter; - this.negative = countersCount.negative; } @Override @@ -33,7 +26,7 @@ public class CountersCount implements DynamicValue { p = (Permanent) game.getLastKnownInformation(sourceAbility.getSourceId(), Constants.Zone.BATTLEFIELD); } if (p != null) { - return (negative ? p.getCounters().getCount(counter)*-1: p.getCounters().getCount(counter)) ; + return p.getCounters().getCount(counter); } return 0; } @@ -45,7 +38,7 @@ public class CountersCount implements DynamicValue { @Override public String toString() { - return (negative ?"-1":"1"); + return "1"; } @Override