mirror of
https://github.com/magefree/mage.git
synced 2025-12-20 10:40:06 -08:00
fix #11456 (Become Brutes)
CreateRoleAttachedTargetEffect changed to use all targets, not just first
This commit is contained in:
parent
9f3777a82f
commit
867a8f54b0
2 changed files with 36 additions and 6 deletions
|
|
@ -150,4 +150,29 @@ public class RoleTest extends CardTestPlayerBase {
|
||||||
assertLife(playerA, 20);
|
assertLife(playerA, 20);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testBecomeBrutes() {
|
||||||
|
String bear = "Runeclaw Bear"; // 2/2
|
||||||
|
String become = "Become Brutes";
|
||||||
|
// One or two target creatures each gain haste until end of turn.
|
||||||
|
// For each of those creatures, create a Monster Role token attached to it.
|
||||||
|
addCard(Zone.BATTLEFIELD, playerA, bear);
|
||||||
|
addCard(Zone.BATTLEFIELD, playerA, wardens);
|
||||||
|
addCard(Zone.HAND, playerA, become);
|
||||||
|
addCard(Zone.BATTLEFIELD, playerA, "Mountain", 2);
|
||||||
|
|
||||||
|
addTarget(playerA, bear + "^" + wardens);
|
||||||
|
castSpell(1, PhaseStep.PRECOMBAT_MAIN, playerA, become);
|
||||||
|
setChoice(playerA, ""); // order triggers
|
||||||
|
|
||||||
|
setStrictChooseMode(true);
|
||||||
|
setStopAt(1, PhaseStep.END_TURN);
|
||||||
|
execute();
|
||||||
|
|
||||||
|
assertGraveyardCount(playerA, become, 1);
|
||||||
|
assertPowerToughness(playerA, bear, 3, 3);
|
||||||
|
assertPowerToughness(playerA, wardens, 2, 5);
|
||||||
|
assertLife(playerA, 20 + 2 + 2);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,8 @@ import mage.game.Game;
|
||||||
import mage.game.permanent.Permanent;
|
import mage.game.permanent.Permanent;
|
||||||
import mage.game.permanent.token.Token;
|
import mage.game.permanent.token.Token;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author TheElk801
|
* @author TheElk801
|
||||||
*/
|
*/
|
||||||
|
|
@ -33,13 +35,16 @@ public class CreateRoleAttachedTargetEffect extends OneShotEffect {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean apply(Game game, Ability source) {
|
public boolean apply(Game game, Ability source) {
|
||||||
Permanent permanent = game.getPermanent(getTargetPointer().getFirst(game, source));
|
boolean result = false;
|
||||||
if (permanent == null) {
|
for (UUID targetId : getTargetPointer().getTargets(game, source)) {
|
||||||
return false;
|
Permanent permanent = game.getPermanent(targetId);
|
||||||
|
if (permanent != null) {
|
||||||
|
Token token = roleType.createToken(permanent, game, source);
|
||||||
|
// The token may not be created, for instance if the creature has protection from enchantments.
|
||||||
|
result |= !token.getLastAddedTokenIds().isEmpty();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Token token = roleType.createToken(permanent, game, source);
|
return result;
|
||||||
// The token may not be created, for instance if the creature has protection from enchantments.
|
|
||||||
return !token.getLastAddedTokenIds().isEmpty();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue