1
0
Fork 0
mirror of https://github.com/correl/mage.git synced 2025-04-13 17:00:09 -09:00

Updated RemoveFromCombatTest.

This commit is contained in:
LevelX2 2015-07-08 17:15:56 +02:00
parent bf16a40564
commit 072987b96d
2 changed files with 22 additions and 16 deletions
Mage.Tests/src/test/java/org/mage/test/combat
Mage/src/mage/abilities/effects/common/continuous

View file

@ -46,27 +46,32 @@ public class RemoveFromCombatTest extends CardTestPlayerBase {
*/ */
@Test @Test
public void testLeavesCombatIfNoLongerACreature() { public void testLeavesCombatIfNoLongerACreature() {
addCard(Zone.BATTLEFIELD, playerA, "Mountain"); addCard(Zone.BATTLEFIELD, playerA, "Mountain", 4);
addCard(Zone.HAND, playerB, "Lightning Bolt", 1); addCard(Zone.HAND, playerA, "Lightning Blast", 1);
addCard(Zone.BATTLEFIELD, playerB, "Mountain", 2);
addCard(Zone.BATTLEFIELD, playerB, "Elvish Mystic", 1);
// Forests you control are 1/1 green Elf creatures that are still lands. // Forests you control are 1/1 green Elf creatures that are still lands.
// {1}{G}, Sacrifice an Elf: Target creature gets +3/+3 until end of turn. // {1}{G},Sacrifice an Elf: Target creature gets +3/+3 until end of turn.
addCard(Zone.BATTLEFIELD, playerB, "Ambush Commander", 1); addCard(Zone.BATTLEFIELD, playerB, "Ambush Commander", 1);
addCard(Zone.BATTLEFIELD, playerB, "Stomping Ground"); addCard(Zone.BATTLEFIELD, playerB, "Stomping Ground");
attack(2, playerB, "Stomping Ground"); attack(2, playerB, "Stomping Ground");
castSpell(2, PhaseStep.DECLARE_BLOCKERS, playerA, "Lightning Bolt", "Ambush Commander"); activateAbility(2, PhaseStep.DECLARE_ATTACKERS, playerB, "{1}{G},Sacrifice an Elf: Target creature gets +3/+3", "Stomping Ground");
castSpell(2, PhaseStep.DECLARE_BLOCKERS, playerA, "Lightning Blast", "Ambush Commander");
setStopAt(2, PhaseStep.POSTCOMBAT_MAIN); setStopAt(2, PhaseStep.POSTCOMBAT_MAIN);
execute(); execute();
assertLife(playerA, 20); assertGraveyardCount(playerB, "Elvish Mystic", 1);
assertLife(playerB, 20); assertGraveyardCount(playerA, "Lightning Blast", 1);
assertGraveyardCount(playerA, "Lightning Bolt", 1);
assertGraveyardCount(playerB, "Ambush Commander", 1); assertGraveyardCount(playerB, "Ambush Commander", 1);
assertPowerToughness(playerB, "Stomping Ground", 0, 0); assertPowerToughness(playerB, "Stomping Ground", 0, 0);
assertLife(playerA, 20);
assertLife(playerB, 20);
} }
} }

View file

@ -33,6 +33,7 @@ import mage.abilities.Mode;
import mage.abilities.dynamicvalue.DynamicValue; import mage.abilities.dynamicvalue.DynamicValue;
import mage.abilities.dynamicvalue.common.StaticValue; import mage.abilities.dynamicvalue.common.StaticValue;
import mage.abilities.effects.ContinuousEffectImpl; import mage.abilities.effects.ContinuousEffectImpl;
import mage.constants.CardType;
import mage.constants.Duration; import mage.constants.Duration;
import mage.constants.Layer; import mage.constants.Layer;
import mage.constants.Outcome; import mage.constants.Outcome;
@ -64,7 +65,8 @@ public class BoostTargetEffect extends ContinuousEffectImpl {
* @param power * @param power
* @param toughness * @param toughness
* @param duration * @param duration
* @param lockedIn if true, power and toughness will be calculated only once, when the ability resolves * @param lockedIn if true, power and toughness will be calculated only
* once, when the ability resolves
*/ */
public BoostTargetEffect(DynamicValue power, DynamicValue toughness, Duration duration, boolean lockedIn) { public BoostTargetEffect(DynamicValue power, DynamicValue toughness, Duration duration, boolean lockedIn) {
super(duration, Layer.PTChangingEffects_7, SubLayer.ModifyPT_7c, isCanKill(toughness) ? Outcome.UnboostCreature : Outcome.BoostCreature); super(duration, Layer.PTChangingEffects_7, SubLayer.ModifyPT_7c, isCanKill(toughness) ? Outcome.UnboostCreature : Outcome.BoostCreature);
@ -99,7 +101,7 @@ public class BoostTargetEffect extends ContinuousEffectImpl {
int affectedTargets = 0; int affectedTargets = 0;
for (UUID permanentId : targetPointer.getTargets(game, source)) { for (UUID permanentId : targetPointer.getTargets(game, source)) {
Permanent target = game.getPermanent(permanentId); Permanent target = game.getPermanent(permanentId);
if (target != null) { if (target != null && target.getCardType().contains(CardType.CREATURE)) {
target.addPower(power.calculate(game, source, this)); target.addPower(power.calculate(game, source, this));
target.addToughness(toughness.calculate(game, source, this)); target.addToughness(toughness.calculate(game, source, this));
affectedTargets++; affectedTargets++;
@ -115,7 +117,7 @@ public class BoostTargetEffect extends ContinuousEffectImpl {
} }
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
Target target = mode.getTargets().get(0); Target target = mode.getTargets().get(0);
if(target.getMaxNumberOfTargets() > 1){ if (target.getMaxNumberOfTargets() > 1) {
if (target.getNumberOfTargets() < target.getNumberOfTargets()) { if (target.getNumberOfTargets() < target.getNumberOfTargets()) {
sb.append("up to "); sb.append("up to ");
} }
@ -127,16 +129,15 @@ public class BoostTargetEffect extends ContinuousEffectImpl {
sb.append(target.getTargetName()).append(" gets "); sb.append(target.getTargetName()).append(" gets ");
} }
String p = power.toString(); String p = power.toString();
if(!p.startsWith("-")) { if (!p.startsWith("-")) {
sb.append("+"); sb.append("+");
} }
sb.append(p).append("/"); sb.append(p).append("/");
String t = toughness.toString(); String t = toughness.toString();
if(!t.startsWith("-")){ if (!t.startsWith("-")) {
if(t.equals("0") && p.startsWith("-")) { if (t.equals("0") && p.startsWith("-")) {
sb.append("-"); sb.append("-");
} } else {
else {
sb.append("+"); sb.append("+");
} }
} }