mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 12:18:00 +00:00
Fix crash from bad cast
This commit is contained in:
@@ -2,7 +2,6 @@ package forge.game.cost;
|
||||
|
||||
import forge.game.card.Card;
|
||||
import forge.game.card.CardCollection;
|
||||
import forge.game.card.CardCollectionView;
|
||||
import forge.game.card.CounterType;
|
||||
import forge.game.mana.Mana;
|
||||
import forge.game.player.Player;
|
||||
@@ -26,7 +25,7 @@ public class PaymentDecision {
|
||||
c = cnt;
|
||||
}
|
||||
|
||||
private PaymentDecision(CardCollectionView chosen, List<Mana> manaProduced, List<Player> players,
|
||||
private PaymentDecision(Iterable<Card> chosen, List<Mana> manaProduced, List<Player> players,
|
||||
List<SpellAbility> sp) {
|
||||
if (chosen != null) {
|
||||
cards.addAll(chosen);
|
||||
@@ -61,11 +60,11 @@ public class PaymentDecision {
|
||||
return new PaymentDecision(c);
|
||||
}
|
||||
|
||||
public static PaymentDecision card(CardCollectionView chosen) {
|
||||
public static PaymentDecision card(Iterable<Card> chosen) {
|
||||
return new PaymentDecision(chosen, null, null, null);
|
||||
}
|
||||
|
||||
public static PaymentDecision card(CardCollectionView chosen, int n) {
|
||||
public static PaymentDecision card(Iterable<Card> chosen, int n) {
|
||||
PaymentDecision res = new PaymentDecision(chosen, null, null, null);
|
||||
res.c = n;
|
||||
return res;
|
||||
|
||||
@@ -169,8 +169,7 @@ public class HumanCostDecision extends CostDecisionMakerBase {
|
||||
if (inp.hasCancelled() || inp.getSelected().size() != c) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return PaymentDecision.card((CardCollection)inp.getSelected());
|
||||
return PaymentDecision.card(inp.getSelected());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -263,7 +262,7 @@ public class HumanCostDecision extends CostDecisionMakerBase {
|
||||
inp.setMessage("Exile %d card(s) from your" + cost.from);
|
||||
inp.setCancelAllowed(true);
|
||||
inp.showAndWait();
|
||||
return inp.hasCancelled() ? null : PaymentDecision.card(new CardCollection(inp.getSelected()));
|
||||
return inp.hasCancelled() ? null : PaymentDecision.card(inp.getSelected());
|
||||
}
|
||||
|
||||
if (cost.from == ZoneType.Library) { return exileFromTop(cost, ability, player, c); }
|
||||
@@ -402,7 +401,7 @@ public class HumanCostDecision extends CostDecisionMakerBase {
|
||||
if (typeList.size() < nNeeded) { return null; }
|
||||
|
||||
Collections.reverse(typeList);
|
||||
return PaymentDecision.card(new CardCollection(Iterables.limit(typeList, nNeeded)));
|
||||
return PaymentDecision.card(Iterables.limit(typeList, nNeeded));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -457,7 +456,7 @@ public class HumanCostDecision extends CostDecisionMakerBase {
|
||||
if (inp.hasCancelled()) {
|
||||
return null;
|
||||
}
|
||||
return PaymentDecision.card(new CardCollection(inp.getSelected()));
|
||||
return PaymentDecision.card(inp.getSelected());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -573,7 +572,7 @@ public class HumanCostDecision extends CostDecisionMakerBase {
|
||||
inp.setMessage("Put %d card(s) from your " + cost.from);
|
||||
inp.setCancelAllowed(true);
|
||||
inp.showAndWait();
|
||||
return inp.hasCancelled() ? null : PaymentDecision.card(new CardCollection(inp.getSelected()));
|
||||
return inp.hasCancelled() ? null : PaymentDecision.card(inp.getSelected());
|
||||
}
|
||||
|
||||
if (cost.sameZone){
|
||||
@@ -657,7 +656,7 @@ public class HumanCostDecision extends CostDecisionMakerBase {
|
||||
if (inp.hasCancelled())
|
||||
return null;
|
||||
|
||||
return PaymentDecision.card(new CardCollection(inp.getSelected()));
|
||||
return PaymentDecision.card(inp.getSelected());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -691,7 +690,7 @@ public class HumanCostDecision extends CostDecisionMakerBase {
|
||||
if (inp.hasCancelled()) {
|
||||
return null;
|
||||
}
|
||||
return PaymentDecision.card(new CardCollection(inp.getSelected()));
|
||||
return PaymentDecision.card(inp.getSelected());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
@@ -761,10 +760,10 @@ public class HumanCostDecision extends CostDecisionMakerBase {
|
||||
}
|
||||
inp.setCancelAllowed(true);
|
||||
inp.showAndWait();
|
||||
if (inp.hasCancelled())
|
||||
if (inp.hasCancelled()) {
|
||||
return null;
|
||||
|
||||
return PaymentDecision.card(new CardCollection(inp.getSelected()));
|
||||
}
|
||||
return PaymentDecision.card(inp.getSelected());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -936,7 +935,7 @@ public class HumanCostDecision extends CostDecisionMakerBase {
|
||||
int oldVal = crd.getCounters().get(cost.counter).intValue();
|
||||
crd.getCounters().put(cost.counter, Integer.valueOf(oldVal - removed + 1));
|
||||
}
|
||||
return PaymentDecision.card(new CardCollection(inp.getSelected()), 1);
|
||||
return PaymentDecision.card(inp.getSelected(), 1);
|
||||
}
|
||||
|
||||
// Rift Elemental only - always removes 1 counter, so there will be no code for N counters.
|
||||
@@ -997,7 +996,7 @@ public class HumanCostDecision extends CostDecisionMakerBase {
|
||||
if (inp.hasCancelled())
|
||||
return null;
|
||||
|
||||
return PaymentDecision.card(new CardCollection(inp.getSelected()));
|
||||
return PaymentDecision.card(inp.getSelected());
|
||||
|
||||
}
|
||||
|
||||
@@ -1086,9 +1085,8 @@ public class HumanCostDecision extends CostDecisionMakerBase {
|
||||
|
||||
if (inp.hasCancelled() || CardLists.getTotalPower(inp.getSelected()) < i) {
|
||||
return null;
|
||||
} else {
|
||||
return PaymentDecision.card(new CardCollection(inp.getSelected()));
|
||||
}
|
||||
return PaymentDecision.card(inp.getSelected());
|
||||
}
|
||||
|
||||
InputSelectCardsFromList inp = new InputSelectCardsFromList(controller, c, c, typeList);
|
||||
@@ -1097,7 +1095,7 @@ public class HumanCostDecision extends CostDecisionMakerBase {
|
||||
if (inp.hasCancelled()) {
|
||||
return null;
|
||||
}
|
||||
return PaymentDecision.card(new CardCollection(inp.getSelected()));
|
||||
return PaymentDecision.card(inp.getSelected());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1122,9 +1120,10 @@ public class HumanCostDecision extends CostDecisionMakerBase {
|
||||
InputSelectCardsFromList inp = new InputSelectCardsFromList(controller, c, c, typeList);
|
||||
inp.setMessage("Select a " + cost.getDescriptiveType() + " to untap (%d left)");
|
||||
inp.showAndWait();
|
||||
if (inp.hasCancelled() || inp.getSelected().size() != c)
|
||||
if (inp.hasCancelled() || inp.getSelected().size() != c) {
|
||||
return null;
|
||||
return PaymentDecision.card(new CardCollection(inp.getSelected()));
|
||||
}
|
||||
return PaymentDecision.card(inp.getSelected());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user