mirror of
https://github.com/correl/mage.git
synced 2025-01-12 19:25:44 +00:00
Merge origin/master
This commit is contained in:
commit
cc6feacb2b
5 changed files with 79 additions and 6 deletions
|
@ -68,7 +68,7 @@ public class BontuTheGlorified extends CardImpl {
|
|||
}
|
||||
|
||||
public BontuTheGlorified(UUID ownerId, CardSetInfo setInfo) {
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{3}{B}");
|
||||
super(ownerId, setInfo, new CardType[]{CardType.CREATURE}, "{2}{B}");
|
||||
addSuperType(SuperType.LEGENDARY);
|
||||
this.subtype.add("God");
|
||||
this.power = new MageInt(4);
|
||||
|
|
|
@ -125,7 +125,6 @@ class GontiLordOfLuxuryEffect extends OneShotEffect {
|
|||
card.setFaceDown(true, game);
|
||||
if (controller.moveCardsToExile(card, source, game, false, exileZoneId, sourceObject.getIdName())) {
|
||||
card.setFaceDown(true, game);
|
||||
@SuppressWarnings("unchecked")
|
||||
Set<UUID> exileZones = (Set<UUID>) game.getState().getValue(GontiLordOfLuxury.VALUE_PREFIX + source.getSourceId().toString());
|
||||
if (exileZones == null) {
|
||||
exileZones = new HashSet<>();
|
||||
|
|
|
@ -53,7 +53,7 @@ public class MagusOfTheMoon extends CardImpl {
|
|||
private static final FilterLandPermanent filter = new FilterLandPermanent();
|
||||
|
||||
static {
|
||||
filter.add(Predicates.not(new SupertypePredicate(SuperType.LEGENDARY)));
|
||||
filter.add(Predicates.not(new SupertypePredicate(SuperType.BASIC)));
|
||||
}
|
||||
|
||||
public MagusOfTheMoon(UUID ownerId, CardSetInfo setInfo) {
|
||||
|
|
|
@ -97,11 +97,11 @@ class TrespassersCurseTriggeredAbility extends TriggeredAbilityImpl {
|
|||
|
||||
@Override
|
||||
public boolean checkTrigger(GameEvent event, Game game) {
|
||||
Permanent enchantment = game.getPermanent(this.getSourceId());
|
||||
Permanent enchantment = game.getPermanent(this.sourceId);
|
||||
if (enchantment != null
|
||||
&& enchantment.getAttachedTo() != null
|
||||
&& game.getControllerId(event.getSourceId()).equals(enchantment.getAttachedTo())
|
||||
&& game.getPermanent(this.getSourceId()).isCreature()) {
|
||||
&& game.getControllerId(event.getTargetId()).equals(enchantment.getAttachedTo())
|
||||
&& game.getPermanent(event.getTargetId()).isCreature()) {
|
||||
for (Effect effect : this.getEffects()) {
|
||||
effect.setTargetPointer(new FixedTarget(enchantment.getAttachedTo()));
|
||||
}
|
||||
|
|
|
@ -437,4 +437,78 @@ public class FlashbackTest extends CardTestPlayerBase {
|
|||
assertPermanentCount(playerA, "Elemental Cat", 1);
|
||||
assertGraveyardCount(playerA, mountain, 1);
|
||||
}
|
||||
|
||||
/*
|
||||
* Reported bug: Battle Screech doesn't flashback (i get the pop up to choose flashback, tap the creatures and nothing happens)
|
||||
*/
|
||||
@Test
|
||||
public void battleScreechFlashback() {
|
||||
|
||||
/*
|
||||
Battle Screech {2}{W}{W}
|
||||
Sorcery
|
||||
Create two 1/1 white Bird creature tokens with flying.
|
||||
Flashback—Tap three untapped white creatures you control.
|
||||
*/
|
||||
String bScreech = "Battle Screech";
|
||||
String eVanguard = "Elite Vanguard"; // {W} 2/1
|
||||
String yOx = "Yoked Ox"; // {W} 0/4
|
||||
String wKnight = "White Knight"; // {W}{W} 2/2
|
||||
|
||||
addCard(Zone.GRAVEYARD, playerA, bScreech);
|
||||
addCard(Zone.BATTLEFIELD, playerA, eVanguard);
|
||||
addCard(Zone.BATTLEFIELD, playerA, yOx);
|
||||
addCard(Zone.BATTLEFIELD, playerA, wKnight);
|
||||
|
||||
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Flashback"); // Flashback Battle Screech
|
||||
addTarget(playerA, eVanguard + '^' + yOx + '^' + wKnight);
|
||||
|
||||
setStopAt(1, PhaseStep.BEGIN_COMBAT);
|
||||
execute();
|
||||
|
||||
assertTapped(eVanguard, true);
|
||||
assertTapped(yOx, true);
|
||||
assertTapped(wKnight, true);
|
||||
assertExileCount(playerA, bScreech, 1); // this fails, but the creatures are tapped as part of paying the cost
|
||||
assertPermanentCount(playerA, "Bird", 2); // if you comment out the above line, this is failing as well
|
||||
}
|
||||
|
||||
/*
|
||||
Reported bug: tried to flashback Dread Return, it allowed me to sac the creatures but the spell did not resolve after the costs had been paid.
|
||||
It did not allow me to select a creature to return from yard to board.
|
||||
*/
|
||||
@Test
|
||||
public void dreadReturnFlashback() {
|
||||
|
||||
/*
|
||||
Dread Return {2}{B}{B}
|
||||
Sorcery
|
||||
Return target creature card from your graveyard to the battlefield.
|
||||
Flashback—Sacrifice three creatures
|
||||
*/
|
||||
String dReturn = "Dread Return";
|
||||
String yOx = "Yoked Ox"; // {W} 0/4
|
||||
String eVanguard = "Elite Vanguard"; // {W} 2/1
|
||||
String memnite = "Memnite"; // {0} 1/1
|
||||
String bSable = "Bronze Sable"; // {2} 2/1
|
||||
|
||||
addCard(Zone.GRAVEYARD, playerA, dReturn);
|
||||
addCard(Zone.GRAVEYARD, playerA, bSable);
|
||||
addCard(Zone.BATTLEFIELD, playerA, yOx);
|
||||
addCard(Zone.BATTLEFIELD, playerA, eVanguard);
|
||||
addCard(Zone.BATTLEFIELD, playerA, memnite);
|
||||
|
||||
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Flashback"); // Flashback Dread Return
|
||||
addTarget(playerA, yOx + '^' + eVanguard + '^' + memnite); // sac 3 creatures
|
||||
addTarget(playerA, bSable); // return to battlefield
|
||||
|
||||
setStopAt(1, PhaseStep.BEGIN_COMBAT);
|
||||
execute();
|
||||
|
||||
assertGraveyardCount(playerA, eVanguard, 1);
|
||||
assertGraveyardCount(playerA,yOx, 1);
|
||||
assertGraveyardCount(playerA, memnite, 1);
|
||||
assertExileCount(playerA, dReturn, 1);
|
||||
assertPermanentCount(playerA, bSable, 1);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue