mirror of
https://github.com/correl/mage.git
synced 2024-11-25 03:00:11 +00:00
[AFR] fixed Bruenor Battlehammer - correct tests, getPlayable support, additional info in choose pay dialog;
This commit is contained in:
parent
806eba9691
commit
c4dc83dec9
2 changed files with 25 additions and 9 deletions
|
@ -107,15 +107,27 @@ class BruenorBattlehammerCostEffect extends CostModificationEffectImpl {
|
|||
|
||||
@Override
|
||||
public boolean apply(Game game, Ability source, Ability abilityToModify) {
|
||||
Player controller = game.getPlayer(abilityToModify.getControllerId());
|
||||
if (controller == null || !controller.chooseUse(
|
||||
Outcome.PlayForFree, "Pay {0} to equip?", source, game
|
||||
)) {
|
||||
return false;
|
||||
boolean applyReduce = false;
|
||||
if (game.inCheckPlayableState()) {
|
||||
// getPlayable use - apply all the time
|
||||
applyReduce = true;
|
||||
} else {
|
||||
// real use - ask the player
|
||||
Player controller = game.getPlayer(abilityToModify.getControllerId());
|
||||
if (controller != null
|
||||
&& controller.chooseUse(Outcome.PlayForFree,
|
||||
String.format("Pay {0} to equip instead %s?", abilityToModify.getManaCostsToPay().getText()), source, game)) {
|
||||
applyReduce = true;
|
||||
}
|
||||
}
|
||||
abilityToModify.getCosts().clear();
|
||||
abilityToModify.getManaCostsToPay().clear();
|
||||
return true;
|
||||
|
||||
if (applyReduce) {
|
||||
abilityToModify.getCosts().clear();
|
||||
abilityToModify.getManaCostsToPay().clear();
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -24,10 +24,13 @@ public class BruenorBattlehammerTest extends CardTestPlayerBase {
|
|||
addCard(Zone.BATTLEFIELD, playerA, bonesplitter);
|
||||
addCard(Zone.BATTLEFIELD, playerA, morningstar);
|
||||
|
||||
setChoice(playerA, true);
|
||||
// activate {2} for free
|
||||
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Equip {2}", lion);
|
||||
setChoice(playerA, true); // use for free
|
||||
// activate {1} for mana
|
||||
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Equip {1}", lion);
|
||||
|
||||
setStrictChooseMode(true);
|
||||
setStopAt(1, PhaseStep.END_TURN);
|
||||
execute();
|
||||
assertAllCommandsUsed();
|
||||
|
@ -49,6 +52,7 @@ public class BruenorBattlehammerTest extends CardTestPlayerBase {
|
|||
setChoice(playerA, true);
|
||||
activateAbility(1, PhaseStep.PRECOMBAT_MAIN, playerA, "Equip", lion);
|
||||
|
||||
setStrictChooseMode(true);
|
||||
setStopAt(1, PhaseStep.END_TURN);
|
||||
execute();
|
||||
assertAllCommandsUsed();
|
||||
|
|
Loading…
Reference in a new issue