mirror of
https://github.com/correl/mage.git
synced 2024-11-16 03:00:12 +00:00
Merge pull request #2329 from Dilnu/master
Fix the Snapcaster Mage X cost tests.
This commit is contained in:
commit
5d4cd39142
4 changed files with 6 additions and 4 deletions
|
@ -328,7 +328,9 @@ public abstract class AbilityImpl implements Ability {
|
||||||
if (sourceObject != null && !this.getAbilityType().equals(AbilityType.TRIGGERED)) { // triggered abilities check this already in playerImpl.triggerAbility
|
if (sourceObject != null && !this.getAbilityType().equals(AbilityType.TRIGGERED)) { // triggered abilities check this already in playerImpl.triggerAbility
|
||||||
sourceObject.adjustTargets(this, game);
|
sourceObject.adjustTargets(this, game);
|
||||||
}
|
}
|
||||||
if (mode.getTargets().size() > 0 && mode.getTargets().chooseTargets(getEffects().get(0).getOutcome(), this.controllerId, this, noMana, game) == false) {
|
// Flashback abilities haven't made the choices the underlying spell might need for targetting.
|
||||||
|
if (!(this instanceof FlashbackAbility) && mode.getTargets().size() > 0 && mode.getTargets().chooseTargets(
|
||||||
|
getEffects().get(0).getOutcome(), this.controllerId, this, noMana, game) == false) {
|
||||||
if ((variableManaCost != null || announceString != null) && !game.isSimulation()) {
|
if ((variableManaCost != null || announceString != null) && !game.isSimulation()) {
|
||||||
game.informPlayer(controller, (sourceObject != null ? sourceObject.getIdName() : "") + ": no valid targets with this value of X");
|
game.informPlayer(controller, (sourceObject != null ? sourceObject.getIdName() : "") + ": no valid targets with this value of X");
|
||||||
}
|
}
|
||||||
|
|
|
@ -1284,7 +1284,7 @@ public abstract class GameImpl implements Game, Serializable {
|
||||||
state.setPriorityPlayerId(player.getId());
|
state.setPriorityPlayerId(player.getId());
|
||||||
while (!player.isPassed() && player.canRespond() && !isPaused() && !gameOver(null)) {
|
while (!player.isPassed() && player.canRespond() && !isPaused() && !gameOver(null)) {
|
||||||
if (!resuming) {
|
if (!resuming) {
|
||||||
// 603.3. Once an ability has triggered, its controller puts it on the stack as an object thats not a card the next time a player would receive priority
|
// 603.3. Once an ability has triggered, its controller puts it on the stack as an object that's not a card the next time a player would receive priority
|
||||||
checkStateAndTriggered();
|
checkStateAndTriggered();
|
||||||
applyEffects();
|
applyEffects();
|
||||||
if (state.getStack().isEmpty()) {
|
if (state.getStack().isEmpty()) {
|
||||||
|
|
|
@ -100,7 +100,7 @@ public class Targets extends ArrayList<Target> {
|
||||||
if (target.getTargetController() != null) { // some targets can have controller different than ability controller
|
if (target.getTargetController() != null) { // some targets can have controller different than ability controller
|
||||||
targetController = target.getTargetController();
|
targetController = target.getTargetController();
|
||||||
}
|
}
|
||||||
if (noMana) { // if cast without mana (e.g. by supend you may notr be able to cancel the casting if you are able to cast it
|
if (noMana) { // if cast without mana (e.g. by suspend you may not be able to cancel the casting if you are able to cast it
|
||||||
target.setRequired(true);
|
target.setRequired(true);
|
||||||
}
|
}
|
||||||
if (!target.chooseTarget(outcome, targetController, source, game)) {
|
if (!target.chooseTarget(outcome, targetController, source, game)) {
|
||||||
|
|
Loading…
Reference in a new issue