mirror of
https://github.com/magefree/mage.git
synced 2025-12-22 11:32:00 -08:00
Merge origin/master
This commit is contained in:
commit
acf5df7f94
2 changed files with 30 additions and 2 deletions
|
|
@ -33,7 +33,6 @@ import mage.abilities.Ability;
|
||||||
import mage.abilities.common.SimpleActivatedAbility;
|
import mage.abilities.common.SimpleActivatedAbility;
|
||||||
import mage.abilities.costs.common.TapSourceCost;
|
import mage.abilities.costs.common.TapSourceCost;
|
||||||
import mage.abilities.costs.mana.ManaCostsImpl;
|
import mage.abilities.costs.mana.ManaCostsImpl;
|
||||||
import mage.abilities.effects.common.continuous.BoostSourceEffect;
|
|
||||||
import mage.abilities.effects.common.continuous.BoostTargetEffect;
|
import mage.abilities.effects.common.continuous.BoostTargetEffect;
|
||||||
import mage.abilities.keyword.ChannelAbility;
|
import mage.abilities.keyword.ChannelAbility;
|
||||||
import mage.cards.CardImpl;
|
import mage.cards.CardImpl;
|
||||||
|
|
@ -58,8 +57,9 @@ public class GhostLitNourisher extends CardImpl {
|
||||||
this.toughness = new MageInt(1);
|
this.toughness = new MageInt(1);
|
||||||
|
|
||||||
// {2}{G}, {tap}: Target creature gets +2/+2 until end of turn.
|
// {2}{G}, {tap}: Target creature gets +2/+2 until end of turn.
|
||||||
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostSourceEffect(2, 2, Duration.EndOfTurn), new ManaCostsImpl("{2}{G}"));
|
Ability ability = new SimpleActivatedAbility(Zone.BATTLEFIELD, new BoostTargetEffect(2, 2, Duration.EndOfTurn), new ManaCostsImpl("{2}{G}"));
|
||||||
ability.addCost(new TapSourceCost());
|
ability.addCost(new TapSourceCost());
|
||||||
|
ability.addTarget(new TargetCreaturePermanent());
|
||||||
this.addAbility(ability);
|
this.addAbility(ability);
|
||||||
// Channel - {3}{G}, Discard Ghost-Lit Nourisher: Target creature gets +4/+4 until end of turn.
|
// Channel - {3}{G}, Discard Ghost-Lit Nourisher: Target creature gets +4/+4 until end of turn.
|
||||||
Ability ability2 = new ChannelAbility("{3}{G}", new BoostTargetEffect(4, 4, Duration.EndOfTurn));
|
Ability ability2 = new ChannelAbility("{3}{G}", new BoostTargetEffect(4, 4, Duration.EndOfTurn));
|
||||||
|
|
|
||||||
|
|
@ -219,4 +219,32 @@ public class BlockRequirementTest extends CardTestPlayerBase {
|
||||||
// Player B was unable to block, so goes down to 10 life
|
// Player B was unable to block, so goes down to 10 life
|
||||||
assertLife(playerB, 8);
|
assertLife(playerB, 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Reported bug: Slayer's Cleaver did not force Wretched Gryff (an eldrazi) to block
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void testSlayersCleaver() {
|
||||||
|
// Equipped creature gets +3/+1 and must be blocked by an Eldrazi if able.
|
||||||
|
// Equip {4}
|
||||||
|
addCard(Zone.BATTLEFIELD, playerA, "Slayer's Cleaver");
|
||||||
|
addCard(Zone.BATTLEFIELD, playerA, "Mountain", 4);
|
||||||
|
addCard(Zone.BATTLEFIELD, playerA, "Memnite"); // {1} 1/1
|
||||||
|
|
||||||
|
addCard(Zone.BATTLEFIELD, playerB, "Wretched Gryff"); // {7} Flying 3/4 - Eldrazi Hippogriff
|
||||||
|
addCard(Zone.BATTLEFIELD, playerB, "Hill Giant"); // {3}{R} 3/3
|
||||||
|
|
||||||
|
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Equip", "Memnite"); // pumps to 4/2
|
||||||
|
attack(1, playerA, "Memnite"); // must be blocked by Wretched Gryff
|
||||||
|
block(1, playerB, "Hill Giant", "Memnite"); // should not be allowed as only blocker
|
||||||
|
|
||||||
|
setStopAt(1, PhaseStep.END_COMBAT);
|
||||||
|
execute();
|
||||||
|
|
||||||
|
assertPermanentCount(playerA, "Slayer's Cleaver", 1);
|
||||||
|
assertLife(playerB, 20);
|
||||||
|
assertGraveyardCount(playerA, "Memnite", 1);
|
||||||
|
assertGraveyardCount(playerB, "Wretched Gryff", 1);
|
||||||
|
assertPermanentCount(playerB, "Hill Giant", 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue