mirror of
https://github.com/magefree/mage.git
synced 2025-12-25 04:52:07 -08:00
Merge pull request #2112 from fwannmacher/master
Converted cardNumber from int to String. Now card number with "a" or "b" can be used.
This commit is contained in:
commit
86e7ace06e
11427 changed files with 13206 additions and 11464 deletions
|
|
@ -46,7 +46,7 @@ public interface Card extends MageObject {
|
|||
|
||||
UUID getOwnerId();
|
||||
|
||||
int getCardNumber();
|
||||
String getCardNumber();
|
||||
|
||||
Rarity getRarity();
|
||||
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ public abstract class CardImpl extends MageObjectImpl implements Card {
|
|||
private static final Logger logger = Logger.getLogger(CardImpl.class);
|
||||
|
||||
protected UUID ownerId;
|
||||
protected int cardNumber;
|
||||
protected String cardNumber;
|
||||
public String expansionSetCode;
|
||||
protected String tokenSetCode;
|
||||
protected Rarity rarity;
|
||||
|
|
@ -86,10 +86,14 @@ public abstract class CardImpl extends MageObjectImpl implements Card {
|
|||
protected boolean morphCard;
|
||||
|
||||
public CardImpl(UUID ownerId, int cardNumber, String name, Rarity rarity, CardType[] cardTypes, String costs) {
|
||||
this(ownerId, String.valueOf(cardNumber), name, rarity, cardTypes, costs, SpellAbilityType.BASE);
|
||||
}
|
||||
|
||||
public CardImpl(UUID ownerId, String cardNumber, String name, Rarity rarity, CardType[] cardTypes, String costs) {
|
||||
this(ownerId, cardNumber, name, rarity, cardTypes, costs, SpellAbilityType.BASE);
|
||||
}
|
||||
|
||||
public CardImpl(UUID ownerId, int cardNumber, String name, Rarity rarity, CardType[] cardTypes, String costs, SpellAbilityType spellAbilityType) {
|
||||
public CardImpl(UUID ownerId, String cardNumber, String name, Rarity rarity, CardType[] cardTypes, String costs, SpellAbilityType spellAbilityType) {
|
||||
this(ownerId, name);
|
||||
this.rarity = rarity;
|
||||
this.cardNumber = cardNumber;
|
||||
|
|
@ -183,7 +187,7 @@ public abstract class CardImpl extends MageObjectImpl implements Card {
|
|||
}
|
||||
|
||||
@Override
|
||||
public int getCardNumber() {
|
||||
public String getCardNumber() {
|
||||
return cardNumber;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -163,10 +163,10 @@ public class Sets extends HashMap<String, ExpansionSet> {
|
|||
}
|
||||
|
||||
for (Map.Entry<String, DeckCardInfo> entry: deckCards.entrySet()) {
|
||||
out.printf("%d [%s:%d] %s%n", entry.getValue().getQuantity(), entry.getValue().getSetCode(), entry.getValue().getCardNum(), entry.getValue().getCardName());
|
||||
out.printf("%d [%s:%s] %s%n", entry.getValue().getQuantity(), entry.getValue().getSetCode(), entry.getValue().getCardNum(), entry.getValue().getCardName());
|
||||
}
|
||||
for (Map.Entry<String, DeckCardInfo> entry: sideboard.entrySet()) {
|
||||
out.printf("SB: %d [%s:%d] %s%n", entry.getValue().getQuantity(), entry.getValue().getSetCode(), entry.getValue().getCardNum(), entry.getValue().getCardName());
|
||||
out.printf("SB: %d [%s:%s] %s%n", entry.getValue().getQuantity(), entry.getValue().getSetCode(), entry.getValue().getCardNum(), entry.getValue().getCardName());
|
||||
}
|
||||
}
|
||||
finally {
|
||||
|
|
|
|||
|
|
@ -50,6 +50,10 @@ public abstract class SplitCard extends CardImpl {
|
|||
protected Card rightHalfCard;
|
||||
|
||||
public SplitCard(UUID ownerId, int cardNumber, String nameLeft, String nameRight, Rarity rarity, CardType[] cardTypes, String costsLeft, String costsRight, boolean fused) {
|
||||
this(ownerId, String.valueOf(cardNumber), nameLeft, nameRight, rarity, cardTypes, costsLeft, costsRight, fused);
|
||||
}
|
||||
|
||||
public SplitCard(UUID ownerId, String cardNumber, String nameLeft, String nameRight, Rarity rarity, CardType[] cardTypes, String costsLeft, String costsRight, boolean fused) {
|
||||
super(ownerId, cardNumber, new StringBuilder(nameLeft).append(" // ").append(nameRight).toString(), rarity, cardTypes, costsLeft + costsRight, (fused ? SpellAbilityType.SPLIT_FUSED : SpellAbilityType.SPLIT));
|
||||
leftHalfCard = new SplitCardHalfImpl(this.getOwnerId(), this.getCardNumber(), nameLeft, this.rarity, cardTypes, costsLeft, this, SpellAbilityType.SPLIT_LEFT);
|
||||
rightHalfCard = new SplitCardHalfImpl(this.getOwnerId(), this.getCardNumber(), nameRight, this.rarity, cardTypes, costsRight, this, SpellAbilityType.SPLIT_RIGHT);
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ public class SplitCardHalfImpl extends CardImpl implements SplitCardHalf {
|
|||
|
||||
SplitCard splitCardParent;
|
||||
|
||||
public SplitCardHalfImpl(UUID ownerId, int cardNumber, String name, Rarity rarity, CardType[] cardTypes, String costs, SplitCard splitCardParent, SpellAbilityType spellAbilityType) {
|
||||
public SplitCardHalfImpl(UUID ownerId, String cardNumber, String name, Rarity rarity, CardType[] cardTypes, String costs, SplitCard splitCardParent, SpellAbilityType spellAbilityType) {
|
||||
super(ownerId, cardNumber, name, rarity, cardTypes, costs, spellAbilityType);
|
||||
this.splitCardParent = splitCardParent;
|
||||
}
|
||||
|
|
@ -47,7 +47,7 @@ public class SplitCardHalfImpl extends CardImpl implements SplitCardHalf {
|
|||
}
|
||||
|
||||
@Override
|
||||
public int getCardNumber() {
|
||||
public String getCardNumber() {
|
||||
return splitCardParent.getCardNumber();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -41,6 +41,10 @@ import mage.cards.CardImpl;
|
|||
public abstract class BasicLand extends CardImpl {
|
||||
|
||||
public BasicLand(UUID ownerId, int cardNumber, String name, ManaAbility mana) {
|
||||
this(ownerId, String.valueOf(cardNumber), name, mana);
|
||||
}
|
||||
|
||||
public BasicLand(UUID ownerId, String cardNumber, String name, ManaAbility mana) {
|
||||
super(ownerId, cardNumber, name, Rarity.LAND, new CardType[]{CardType.LAND}, null);
|
||||
this.supertype.add("Basic");
|
||||
this.subtype.add(name);
|
||||
|
|
|
|||
|
|
@ -38,6 +38,10 @@ import mage.abilities.mana.GreenManaAbility;
|
|||
public abstract class Forest extends BasicLand {
|
||||
|
||||
public Forest(UUID ownerId, int cardNumber) {
|
||||
this(ownerId, String.valueOf(cardNumber));
|
||||
}
|
||||
|
||||
public Forest(UUID ownerId, String cardNumber) {
|
||||
super(ownerId, cardNumber, "Forest", new GreenManaAbility());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -38,6 +38,10 @@ import mage.abilities.mana.BlueManaAbility;
|
|||
public abstract class Island extends BasicLand {
|
||||
|
||||
public Island(UUID ownerId, int cardNumber) {
|
||||
this(ownerId, String.valueOf(cardNumber));
|
||||
}
|
||||
|
||||
public Island(UUID ownerId, String cardNumber) {
|
||||
super(ownerId, cardNumber, "Island", new BlueManaAbility());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -38,6 +38,10 @@ import mage.abilities.mana.RedManaAbility;
|
|||
public abstract class Mountain extends BasicLand {
|
||||
|
||||
public Mountain(UUID ownerId, int cardNumber) {
|
||||
this(ownerId, String.valueOf(cardNumber));
|
||||
}
|
||||
|
||||
public Mountain(UUID ownerId, String cardNumber) {
|
||||
super(ownerId, cardNumber, "Mountain", new RedManaAbility());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -38,6 +38,10 @@ import mage.abilities.mana.WhiteManaAbility;
|
|||
public abstract class Plains extends BasicLand {
|
||||
|
||||
public Plains(UUID ownerId, int cardNumber) {
|
||||
this(ownerId, String.valueOf(cardNumber));
|
||||
}
|
||||
|
||||
public Plains(UUID ownerId, String cardNumber) {
|
||||
super(ownerId, cardNumber, "Plains", new WhiteManaAbility());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -38,6 +38,10 @@ import mage.abilities.mana.BlackManaAbility;
|
|||
public abstract class Swamp extends BasicLand {
|
||||
|
||||
public Swamp(UUID ownerId, int cardNumber) {
|
||||
this(ownerId, String.valueOf(cardNumber));
|
||||
}
|
||||
|
||||
public Swamp(UUID ownerId, String cardNumber) {
|
||||
super(ownerId, cardNumber, "Swamp", new BlackManaAbility());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -38,14 +38,14 @@ public class DeckCardInfo implements Serializable {
|
|||
|
||||
private String cardName;
|
||||
private String setCode;
|
||||
private int cardNum;
|
||||
private String cardNum;
|
||||
private int quantity;
|
||||
|
||||
public DeckCardInfo(String cardName, int cardNum, String setCode) {
|
||||
public DeckCardInfo(String cardName, String cardNum, String setCode) {
|
||||
this(cardName, cardNum, setCode, 1);
|
||||
}
|
||||
|
||||
public DeckCardInfo(String cardName, int cardNum, String setCode, int quantity) {
|
||||
public DeckCardInfo(String cardName, String cardNum, String setCode, int quantity) {
|
||||
this.cardName = cardName;
|
||||
this.cardNum = cardNum;
|
||||
this.setCode = setCode;
|
||||
|
|
@ -60,7 +60,7 @@ public class DeckCardInfo implements Serializable {
|
|||
return setCode;
|
||||
}
|
||||
|
||||
public int getCardNum() {
|
||||
public String getCardNum() {
|
||||
return cardNum;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ import mage.cards.repository.CardRepository;
|
|||
*/
|
||||
public class DckDeckImporter extends DeckImporter {
|
||||
|
||||
private static final Pattern pattern = Pattern.compile("(SB:)?\\s*(\\d*)\\s*\\[([a-zA-Z0-9]{2,5}):(\\d*)\\].*");
|
||||
private static final Pattern pattern = Pattern.compile("(SB:)?\\s*(\\d*)\\s*\\[([a-zA-Z0-9]{2,5}):([0-9]*[a-z]*)\\].*");
|
||||
|
||||
@Override
|
||||
protected void readLine(String line, DeckCardLists deckList) {
|
||||
|
|
@ -57,7 +57,7 @@ public class DckDeckImporter extends DeckImporter {
|
|||
}
|
||||
int count = Integer.parseInt(m.group(2));
|
||||
String setCode = m.group(3);
|
||||
int cardNum = Integer.parseInt(m.group(4));
|
||||
String cardNum = m.group(4);
|
||||
|
||||
DeckCardInfo deckCardInfo = null;
|
||||
CardInfo cardInfo = CardRepository.instance.findCard(setCode, cardNum);
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ public class CardInfo {
|
|||
@DatabaseField(indexName = "name_index")
|
||||
protected String name;
|
||||
@DatabaseField(indexName = "setCode_cardNumber_index")
|
||||
protected int cardNumber;
|
||||
protected String cardNumber;
|
||||
@DatabaseField(indexName = "setCode_cardNumber_index")
|
||||
protected String setCode;
|
||||
@DatabaseField(unique = true, indexName = "className_index")
|
||||
|
|
@ -295,7 +295,7 @@ public class CardInfo {
|
|||
return className;
|
||||
}
|
||||
|
||||
public int getCardNumber() {
|
||||
public String getCardNumber() {
|
||||
return cardNumber;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -61,9 +61,9 @@ public enum CardRepository {
|
|||
private static final String JDBC_URL = "jdbc:h2:file:./db/cards.h2;AUTO_SERVER=TRUE";
|
||||
private static final String VERSION_ENTITY_NAME = "card";
|
||||
// raise this if db structure was changed
|
||||
private static final long CARD_DB_VERSION = 43;
|
||||
private static final long CARD_DB_VERSION = 44;
|
||||
// raise this if new cards were added to the server
|
||||
private static final long CARD_CONTENT_VERSION = 54;
|
||||
private static final long CARD_CONTENT_VERSION = 55;
|
||||
|
||||
private final Random random = new Random();
|
||||
private Dao<CardInfo, Object> cardDao;
|
||||
|
|
@ -273,7 +273,7 @@ public enum CardRepository {
|
|||
return landTypes;
|
||||
}
|
||||
|
||||
public CardInfo findCard(String setCode, int cardNumber) {
|
||||
public CardInfo findCard(String setCode, String cardNumber) {
|
||||
try {
|
||||
QueryBuilder<CardInfo, Object> queryBuilder = cardDao.queryBuilder();
|
||||
queryBuilder.where().eq("setCode", new SelectArg(setCode)).and().eq("cardNumber", cardNumber).and().eq("nightCard", false);
|
||||
|
|
|
|||
|
|
@ -91,7 +91,7 @@ public interface Permanent extends Card, Controllable {
|
|||
|
||||
void setRenowned(boolean value);
|
||||
|
||||
void setCardNumber(int cid);
|
||||
void setCardNumber(String cid);
|
||||
|
||||
void setExpansionSetCode(String expansionSetCode);
|
||||
|
||||
|
|
|
|||
|
|
@ -1365,7 +1365,7 @@ public abstract class PermanentImpl extends CardImpl implements Permanent {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void setCardNumber(int cid) {
|
||||
public void setCardNumber(String cid) {
|
||||
this.cardNumber = cid;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ public class Token extends MageObjectImpl {
|
|||
private final ArrayList<UUID> lastAddedTokenIds = new ArrayList<>();
|
||||
private UUID lastAddedTokenId;
|
||||
private int tokenType;
|
||||
private int originalCardNumber;
|
||||
private String originalCardNumber;
|
||||
private String originalExpansionSetCode;
|
||||
private boolean expansionSetCodeChecked;
|
||||
private Card copySourceCard; // the card the Token is a copy from
|
||||
|
|
@ -213,7 +213,6 @@ public class Token extends MageObjectImpl {
|
|||
}
|
||||
|
||||
}
|
||||
game.applyEffects();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
|
@ -235,11 +234,11 @@ public class Token extends MageObjectImpl {
|
|||
this.tokenType = tokenType;
|
||||
}
|
||||
|
||||
public int getOriginalCardNumber() {
|
||||
public String getOriginalCardNumber() {
|
||||
return originalCardNumber;
|
||||
}
|
||||
|
||||
public void setOriginalCardNumber(int originalCardNumber) {
|
||||
public void setOriginalCardNumber(String originalCardNumber) {
|
||||
this.originalCardNumber = originalCardNumber;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -732,7 +732,7 @@ public class Spell extends StackObjImpl implements Card {
|
|||
}
|
||||
|
||||
@Override
|
||||
public int getCardNumber() {
|
||||
public String getCardNumber() {
|
||||
return card.getCardNumber();
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue