* Fixed continuous effect handling of Marsh Casualities, Savage Offensive and Explosive Growth.

This commit is contained in:
LevelX2 2016-06-02 12:47:53 +02:00
parent 1a5afc98a6
commit 4581cfc803
5 changed files with 53 additions and 53 deletions

View file

@ -55,8 +55,8 @@ public class ExplosiveGrowth extends CardImpl {
// Target creature gets +2/+2 until end of turn. If Explosive Growth was kicked, that creature gets +5/+5 until end of turn instead.
this.getSpellAbility().addTarget(new TargetCreaturePermanent());
this.getSpellAbility().addEffect(new ConditionalContinuousEffect(new BoostTargetEffect(5, 5, Duration.EndOfTurn),
new BoostTargetEffect(2, 2, Duration.EndOfTurn), new LockedInCondition(KickedCondition.getInstance()),
"Target creature gets +2/+2 until end of turn. If Explosive Growth was kicked, that creature gets +5/+5 until end of turn instead."));
new BoostTargetEffect(2, 2, Duration.EndOfTurn), new LockedInCondition(KickedCondition.getInstance()),
"Target creature gets +2/+2 until end of turn. If {this} was kicked, that creature gets +5/+5 until end of turn instead."));
}
public ExplosiveGrowth(final ExplosiveGrowth card) {

View file

@ -28,6 +28,7 @@
package mage.sets.invasion;
import java.util.UUID;
import mage.abilities.condition.LockedInCondition;
import mage.abilities.condition.common.KickedCondition;
import mage.abilities.decorator.ConditionalOneShotEffect;
import mage.abilities.effects.common.AddContinuousEffectToGame;
@ -48,12 +49,12 @@ import mage.filter.predicate.permanent.ControllerPredicate;
* @author fireshoes
*/
public class SavageOffensive extends CardImpl {
private static final FilterCreaturePermanent filter = new FilterCreaturePermanent("creatures you control");
static {
filter.add(new ControllerPredicate(TargetController.YOU));
}
}
public SavageOffensive(UUID ownerId) {
super(ownerId, 162, "Savage Offensive", Rarity.COMMON, new CardType[]{CardType.SORCERY}, "{1}{R}");
@ -61,15 +62,15 @@ public class SavageOffensive extends CardImpl {
// Kicker {G}
this.addAbility(new KickerAbility("{G}"));
// Creatures you control gain first strike until end of turn.
this.getSpellAbility().addEffect(new GainAbilityAllEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn, filter));
// If Savage Offensive was kicked, they get +1/+1 until end of turn.
this.getSpellAbility().addEffect(new ConditionalOneShotEffect(
new AddContinuousEffectToGame(new BoostControlledEffect(1, 1, Duration.EndOfTurn)),
KickedCondition.getInstance(),
"If {this} was kicked, they get +1/+1 until end of turn."));
new AddContinuousEffectToGame(new BoostControlledEffect(1, 1, Duration.EndOfTurn)),
new LockedInCondition(KickedCondition.getInstance()),
"If {this} was kicked, they get +1/+1 until end of turn."));
}
public SavageOffensive(final SavageOffensive card) {

View file

@ -28,21 +28,19 @@
package mage.sets.zendikar;
import java.util.UUID;
import mage.abilities.Ability;
import mage.abilities.condition.LockedInCondition;
import mage.abilities.condition.common.KickedCondition;
import mage.abilities.effects.OneShotEffect;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.common.continuous.BoostControlledEffect;
import mage.abilities.effects.common.continuous.BoostTargetEffect;
import mage.abilities.effects.common.continuous.GainAbilityControlledEffect;
import mage.abilities.keyword.FirstStrikeAbility;
import mage.abilities.keyword.KickerAbility;
import mage.cards.CardImpl;
import mage.constants.CardType;
import mage.constants.Duration;
import mage.constants.Outcome;
import mage.constants.Rarity;
import mage.filter.common.FilterCreaturePermanent;
import mage.game.Game;
import mage.players.Player;
/**
* @author nantuko, Loki
@ -53,12 +51,16 @@ public class BoldDefense extends CardImpl {
super(ownerId, 3, "Bold Defense", Rarity.COMMON, new CardType[]{CardType.INSTANT}, "{2}{W}");
this.expansionSetCode = "ZEN";
// Kicker {3}{W} (You may pay an additional {3}{W} as you cast this spell.)
this.addAbility(new KickerAbility("{3}{W}"));
// Creatures you control get +1/+1 until end of turn. If Bold Defense was kicked, instead creatures you control get +2/+2 and gain first strike until end of turn.
this.getSpellAbility().addEffect(new BoldDefenseEffect());
this.getSpellAbility().addEffect(new ConditionalContinuousEffect(new BoostControlledEffect(2, 2, Duration.EndOfTurn),
new BoostTargetEffect(1, 1, Duration.EndOfTurn), new LockedInCondition(KickedCondition.getInstance()),
"Creatures you control get +1/+1 until end of turn. If {this} was kicked, instead creatures you control get +2/+2"));
this.getSpellAbility().addEffect(new ConditionalContinuousEffect(new GainAbilityControlledEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn, new FilterCreaturePermanent(), false),
null, new LockedInCondition(KickedCondition.getInstance()),
"and gain first strike until end of turn"));
}
public BoldDefense(final BoldDefense card) {
@ -70,34 +72,3 @@ public class BoldDefense extends CardImpl {
return new BoldDefense(this);
}
}
class BoldDefenseEffect extends OneShotEffect {
public BoldDefenseEffect() {
super(Outcome.BoostCreature);
this.staticText = "Creatures you control get +1/+1 until end of turn. If {this} was kicked, instead creatures you control get +2/+2 and gain first strike until end of turn";
}
public BoldDefenseEffect(final BoldDefenseEffect effect) {
super(effect);
}
@Override
public BoldDefenseEffect copy() {
return new BoldDefenseEffect(this);
}
@Override
public boolean apply(Game game, Ability source) {
Player controller = game.getPlayer(source.getControllerId());
if (controller != null) {
if (KickedCondition.getInstance().apply(game, source)) {
game.addEffect(new BoostControlledEffect(2, 2, Duration.EndOfTurn), source);
game.addEffect(new GainAbilityControlledEffect(FirstStrikeAbility.getInstance(), Duration.EndOfTurn, new FilterCreaturePermanent(), false), source);
} else {
game.addEffect(new BoostControlledEffect(1, 1, Duration.EndOfTurn), source);
}
}
return false;
}
}

View file

@ -28,10 +28,14 @@
package mage.sets.zendikar;
import java.util.Iterator;
import java.util.UUID;
import mage.MageObjectReference;
import mage.abilities.Ability;
import mage.abilities.condition.LockedInCondition;
import mage.abilities.condition.common.KickedCondition;
import mage.abilities.decorator.ConditionalContinuousEffect;
import mage.abilities.effects.ContinuousEffectImpl;
import mage.abilities.keyword.KickerAbility;
import mage.cards.CardImpl;
import mage.constants.*;
import mage.filter.common.FilterCreaturePermanent;
@ -39,10 +43,6 @@ import mage.game.Game;
import mage.game.permanent.Permanent;
import mage.target.TargetPlayer;
import java.util.UUID;
import mage.MageObjectReference;
import mage.abilities.keyword.KickerAbility;
/**
*
* @author North
@ -64,7 +64,7 @@ public class MarshCasualties extends CardImpl {
this.getSpellAbility().addEffect(new ConditionalContinuousEffect(
new MarshCasualtiesEffect(-2, -2),
new MarshCasualtiesEffect(-1, -1),
KickedCondition.getInstance(),
new LockedInCondition(KickedCondition.getInstance()),
ruleText));
this.getSpellAbility().addTarget(new TargetPlayer());
}
@ -124,4 +124,4 @@ class MarshCasualtiesEffect extends ContinuousEffectImpl {
}
return true;
}
}
}