mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 11:18:01 +00:00
Fix so cards in library update if you have to select multiple cards
This commit is contained in:
@@ -783,7 +783,7 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
|
|||||||
|
|
||||||
if (c == null) {
|
if (c == null) {
|
||||||
final int num = Math.min(fetchList.size(), changeNum - i);
|
final int num = Math.min(fetchList.size(), changeNum - i);
|
||||||
String message = String.format("Cancel Search? Up to %d more cards can change zones.", num);
|
String message = "Cancel Search? Up to " + num + " more card" + (num != 1 ? "s" : "") + " can be selected.";
|
||||||
|
|
||||||
if (fetchList.isEmpty() || decider.getController().confirmAction(sa, PlayerActionConfirmMode.ChangeZoneGeneral, message)) {
|
if (fetchList.isEmpty() || decider.getController().confirmAction(sa, PlayerActionConfirmMode.ChangeZoneGeneral, message)) {
|
||||||
break;
|
break;
|
||||||
@@ -793,6 +793,9 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fetchList.remove(c);
|
fetchList.remove(c);
|
||||||
|
if (delayedReveal != null) {
|
||||||
|
delayedReveal.remove(c);
|
||||||
|
}
|
||||||
chosenCards.add(c);
|
chosenCards.add(c);
|
||||||
|
|
||||||
if (totalcmc != null) {
|
if (totalcmc != null) {
|
||||||
@@ -838,7 +841,8 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
|
|||||||
Card attachedTo = null;
|
Card attachedTo = null;
|
||||||
if (list.size() > 1) {
|
if (list.size() > 1) {
|
||||||
attachedTo = decider.getController().chooseSingleEntityForEffect(list, sa, c + " - Select a card to attach to.");
|
attachedTo = decider.getController().chooseSingleEntityForEffect(list, sa, c + " - Select a card to attach to.");
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
attachedTo = list.get(0);
|
attachedTo = list.get(0);
|
||||||
}
|
}
|
||||||
if (c.isAura()) {
|
if (c.isAura()) {
|
||||||
@@ -849,14 +853,16 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
|
|||||||
c.removeEnchanting(oldEnchanted);
|
c.removeEnchanting(oldEnchanted);
|
||||||
}
|
}
|
||||||
c.enchantEntity(attachedTo);
|
c.enchantEntity(attachedTo);
|
||||||
} else if (c.isEquipment()) { //Equipment
|
}
|
||||||
|
else if (c.isEquipment()) { //Equipment
|
||||||
if (c.isEquipping()) {
|
if (c.isEquipping()) {
|
||||||
final Card oldEquiped = c.getEquippingCard();
|
final Card oldEquiped = c.getEquippingCard();
|
||||||
if ( null != oldEquiped )
|
if ( null != oldEquiped )
|
||||||
c.unEquipCard(oldEquiped);
|
c.unEquipCard(oldEquiped);
|
||||||
}
|
}
|
||||||
c.equipCard(attachedTo);
|
c.equipCard(attachedTo);
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
if (c.isFortifying()) {
|
if (c.isFortifying()) {
|
||||||
final Card oldFortified = c.getFortifyingCard();
|
final Card oldFortified = c.getFortifyingCard();
|
||||||
if ( null != oldFortified )
|
if ( null != oldFortified )
|
||||||
@@ -864,7 +870,8 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
|
|||||||
}
|
}
|
||||||
c.fortifyCard(attachedTo);
|
c.fortifyCard(attachedTo);
|
||||||
}
|
}
|
||||||
} else { // When it should enter the battlefield attached to an illegal permanent it fails
|
}
|
||||||
|
else { // When it should enter the battlefield attached to an illegal permanent it fails
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -882,7 +889,8 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
|
|||||||
}
|
}
|
||||||
c.enchantEntity(attachedTo);
|
c.enchantEntity(attachedTo);
|
||||||
}
|
}
|
||||||
} else { // When it should enter the battlefield attached to an illegal permanent it fails
|
}
|
||||||
|
else { // When it should enter the battlefield attached to an illegal permanent it fails
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -918,12 +926,14 @@ public class ChangeZoneEffect extends SpellAbilityEffect {
|
|||||||
movedCard.setState(CardCharacteristicName.FaceDown);
|
movedCard.setState(CardCharacteristicName.FaceDown);
|
||||||
}
|
}
|
||||||
movedCard.setTimestamp(ts);
|
movedCard.setTimestamp(ts);
|
||||||
} else if (destination.equals(ZoneType.Exile)) {
|
}
|
||||||
|
else if (destination.equals(ZoneType.Exile)) {
|
||||||
movedCard = game.getAction().exile(c);
|
movedCard = game.getAction().exile(c);
|
||||||
if (sa.hasParam("ExileFaceDown")) {
|
if (sa.hasParam("ExileFaceDown")) {
|
||||||
movedCard.setState(CardCharacteristicName.FaceDown);
|
movedCard.setState(CardCharacteristicName.FaceDown);
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
movedCard = game.getAction().moveTo(destination, c);
|
movedCard = game.getAction().moveTo(destination, c);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package forge.game.player;
|
package forge.game.player;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
|
||||||
import forge.game.card.Card;
|
import forge.game.card.Card;
|
||||||
import forge.game.zone.ZoneType;
|
import forge.game.zone.ZoneType;
|
||||||
|
|
||||||
@@ -17,7 +17,7 @@ public class DelayedReveal {
|
|||||||
this(cards0, zone0, owner0, null);
|
this(cards0, zone0, owner0, null);
|
||||||
}
|
}
|
||||||
public DelayedReveal(Collection<Card> cards0, ZoneType zone0, Player owner0, String messagePrefix0) {
|
public DelayedReveal(Collection<Card> cards0, ZoneType zone0, Player owner0, String messagePrefix0) {
|
||||||
cards = cards0;
|
cards = new ArrayList<Card>(cards0); //create copy of list to allow modification
|
||||||
zone = zone0;
|
zone = zone0;
|
||||||
owner = owner0;
|
owner = owner0;
|
||||||
messagePrefix = messagePrefix0;
|
messagePrefix = messagePrefix0;
|
||||||
@@ -35,6 +35,10 @@ public class DelayedReveal {
|
|||||||
return owner;
|
return owner;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void remove(Card card) {
|
||||||
|
cards.remove(card);
|
||||||
|
}
|
||||||
|
|
||||||
public void reveal(PlayerController controller) {
|
public void reveal(PlayerController controller) {
|
||||||
if (revealed) { return; } //avoid revealing more than once
|
if (revealed) { return; } //avoid revealing more than once
|
||||||
revealed = true;
|
revealed = true;
|
||||||
|
|||||||
Reference in New Issue
Block a user