MagicCardList.getCard() returns MagicCard.NONE instead of null if card is not found

master
melvin 2011-09-03 14:56:43 +08:00
parent 01514c63a1
commit 8f211b06c7
2 changed files with 9 additions and 7 deletions

View File

@ -9,6 +9,7 @@ import java.util.Collections;
public class MagicCard implements MagicSource,MagicTarget,Comparable<MagicCard> {
public static final int TOKEN_ID=-1;
public static final MagicCard NONE = new MagicCard();
private MagicCardDefinition cardDefinition;
private MagicPlayer owner;
@ -46,17 +47,18 @@ public class MagicCard implements MagicSource,MagicTarget,Comparable<MagicCard>
final MagicPlayer mappedOwner=(MagicPlayer)owner.map(game);
MagicCard card = mappedOwner.getHand().getCard(id);
if (card == null) {
if (card == MagicCard.NONE) {
card = mappedOwner.getGraveyard().getCard(id);
}
if (card == null) {
if (card == MagicCard.NONE) {
card = mappedOwner.getExile().getCard(id);
}
if (card == null) {
if (card == MagicCard.NONE) {
card = mappedOwner.getLibrary().getCard(id);
}
assert card != null: "ERROR! Mapping card failed, card " + id + " not found";
if (card == MagicCard.NONE) {
throw new RuntimeException("Mapping card failed, card " + getName() + " " + id + " not found");
}
return card;
}

View File

@ -73,14 +73,14 @@ public class MagicCardList extends ArrayList<MagicCard> {
}
return index;
}
public MagicCard getCard(final long id) {
for (final MagicCard card : this) {
if (card.getId()==id) {
return card;
}
}
return null;
return MagicCard.NONE;
}
public MagicCard getRandomCard() {