mirror of
https://github.com/correl/mage.git
synced 2025-04-13 17:00:09 -09:00
Updated RemoveFromCombatTest.
This commit is contained in:
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
|
@ -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);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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("+");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue