mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 11:48:02 +00:00
Deck now contains 2 sections, all methods to modify main/side are incapsulated in DeckSection.java.
This commit is contained in:
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -11026,6 +11026,7 @@ src/main/java/forge/deck/DeckGeneration.java -text
|
|||||||
src/main/java/forge/deck/DeckIO.java -text
|
src/main/java/forge/deck/DeckIO.java -text
|
||||||
src/main/java/forge/deck/DeckManager.java svneol=native#text/plain
|
src/main/java/forge/deck/DeckManager.java svneol=native#text/plain
|
||||||
src/main/java/forge/deck/DeckRecognizer.java -text
|
src/main/java/forge/deck/DeckRecognizer.java -text
|
||||||
|
src/main/java/forge/deck/DeckSection.java -text
|
||||||
src/main/java/forge/deck/generate/Generate2ColorDeck.java svneol=native#text/plain
|
src/main/java/forge/deck/generate/Generate2ColorDeck.java svneol=native#text/plain
|
||||||
src/main/java/forge/deck/generate/Generate3ColorDeck.java svneol=native#text/plain
|
src/main/java/forge/deck/generate/Generate3ColorDeck.java svneol=native#text/plain
|
||||||
src/main/java/forge/deck/generate/Generate5ColorDeck.java svneol=native#text/plain
|
src/main/java/forge/deck/generate/Generate5ColorDeck.java svneol=native#text/plain
|
||||||
|
|||||||
@@ -395,9 +395,8 @@ public class ControlConstructed {
|
|||||||
// After generating card lists, convert to deck and save.
|
// After generating card lists, convert to deck and save.
|
||||||
final Deck deck = new Deck(GameType.Constructed);
|
final Deck deck = new Deck(GameType.Constructed);
|
||||||
|
|
||||||
for (int i = 0; i < cards.size(); i++) {
|
deck.getMain().add(cards);
|
||||||
deck.addMain(cards.get(i).getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
Constant.Runtime.HUMAN_DECK[0] = deck;
|
Constant.Runtime.HUMAN_DECK[0] = deck;
|
||||||
}
|
}
|
||||||
@@ -409,10 +408,7 @@ public class ControlConstructed {
|
|||||||
|
|
||||||
// After generating card lists, convert to deck and save.
|
// After generating card lists, convert to deck and save.
|
||||||
final Deck deck = new Deck(GameType.Constructed);
|
final Deck deck = new Deck(GameType.Constructed);
|
||||||
|
deck.getMain().add(cards);
|
||||||
for (int i = 0; i < cards.size(); i++) {
|
|
||||||
deck.addMain(cards.get(i).getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
Constant.Runtime.HUMAN_DECK[0] = deck;
|
Constant.Runtime.HUMAN_DECK[0] = deck;
|
||||||
}
|
}
|
||||||
@@ -451,10 +447,7 @@ public class ControlConstructed {
|
|||||||
|
|
||||||
// After generating card lists, convert to deck and save.
|
// After generating card lists, convert to deck and save.
|
||||||
final Deck deck = new Deck(GameType.Constructed);
|
final Deck deck = new Deck(GameType.Constructed);
|
||||||
|
deck.getMain().add(cards);
|
||||||
for (int i = 0; i < cards.size(); i++) {
|
|
||||||
deck.addMain(cards.get(i).getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
Constant.Runtime.COMPUTER_DECK[0] = deck;
|
Constant.Runtime.COMPUTER_DECK[0] = deck;
|
||||||
}
|
}
|
||||||
@@ -462,14 +455,10 @@ public class ControlConstructed {
|
|||||||
// AI: theme deck generation
|
// AI: theme deck generation
|
||||||
else if (currentAISelection.getName().equals("lstThemesAI")) {
|
else if (currentAISelection.getName().equals("lstThemesAI")) {
|
||||||
GenerateThemeDeck gen = new GenerateThemeDeck();
|
GenerateThemeDeck gen = new GenerateThemeDeck();
|
||||||
cards = gen.getThemeDeck(ai0[0], 60);
|
|
||||||
|
|
||||||
// After generating card lists, convert to deck and save.
|
// After generating card lists, convert to deck and save.
|
||||||
final Deck deck = new Deck(GameType.Constructed);
|
final Deck deck = new Deck(GameType.Constructed);
|
||||||
|
deck.getMain().add(gen.getThemeDeck(ai0[0], 60));
|
||||||
for (int i = 0; i < cards.size(); i++) {
|
|
||||||
deck.addMain(cards.get(i).getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
Constant.Runtime.COMPUTER_DECK[0] = deck;
|
Constant.Runtime.COMPUTER_DECK[0] = deck;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -184,11 +184,11 @@ public class ControlSealed {
|
|||||||
|
|
||||||
final ItemPool<CardPrinted> sDeck = sd.getCardpool();
|
final ItemPool<CardPrinted> sDeck = sd.getCardpool();
|
||||||
|
|
||||||
deck.addSideboard(sDeck);
|
deck.getSideboard().addAll(sDeck);
|
||||||
|
|
||||||
for (final String element : Constant.Color.BASIC_LANDS) {
|
for (final String element : Constant.Color.BASIC_LANDS) {
|
||||||
for (int j = 0; j < 18; j++) {
|
for (int j = 0; j < 18; j++) {
|
||||||
deck.addSideboard(element + "|" + sd.getLandSetCode()[0]);
|
deck.getSideboard().add(element, sd.getLandSetCode()[0]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -102,9 +102,9 @@ public class ControlDock {
|
|||||||
public void actionPerformed(final ActionEvent e) {
|
public void actionPerformed(final ActionEvent e) {
|
||||||
Deck targetDeck;
|
Deck targetDeck;
|
||||||
|
|
||||||
if (Constant.Runtime.HUMAN_DECK[0].countMain() > 1) {
|
if (!Constant.Runtime.HUMAN_DECK[0].getMain().isEmpty()) {
|
||||||
targetDeck = Constant.Runtime.HUMAN_DECK[0];
|
targetDeck = Constant.Runtime.HUMAN_DECK[0];
|
||||||
} else if (Constant.Runtime.COMPUTER_DECK[0].countMain() > 1) {
|
} else if (!Constant.Runtime.COMPUTER_DECK[0].getMain().isEmpty()) {
|
||||||
targetDeck = Constant.Runtime.COMPUTER_DECK[0];
|
targetDeck = Constant.Runtime.COMPUTER_DECK[0];
|
||||||
} else {
|
} else {
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ public class ControlWinLose {
|
|||||||
//remove compy's ante cards form his deck
|
//remove compy's ante cards form his deck
|
||||||
for (Card c : compAntes) {
|
for (Card c : compAntes) {
|
||||||
CardPrinted toRemove = CardDb.instance().getCard(c);
|
CardPrinted toRemove = CardDb.instance().getCard(c);
|
||||||
cDeck.removeMain(toRemove, 1);
|
cDeck.getMain().remove(toRemove);
|
||||||
}
|
}
|
||||||
|
|
||||||
Constant.Runtime.COMPUTER_DECK[0] = cDeck;
|
Constant.Runtime.COMPUTER_DECK[0] = cDeck;
|
||||||
@@ -106,8 +106,7 @@ public class ControlWinLose {
|
|||||||
List<Card> o = GuiUtils.getChoicesOptional("Select cards to add to your deck", compAntes.toArray());
|
List<Card> o = GuiUtils.getChoicesOptional("Select cards to add to your deck", compAntes.toArray());
|
||||||
if (null != o) {
|
if (null != o) {
|
||||||
for (Card c : o) {
|
for (Card c : o) {
|
||||||
CardPrinted toAdd = CardDb.instance().getCard(c);
|
hDeck.getMain().add(c);
|
||||||
hDeck.addMain(toAdd, 1);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -117,7 +116,7 @@ public class ControlWinLose {
|
|||||||
//remove compy's ante cards form his deck
|
//remove compy's ante cards form his deck
|
||||||
for (Card c : humanAntes) {
|
for (Card c : humanAntes) {
|
||||||
CardPrinted toRemove = CardDb.instance().getCard(c);
|
CardPrinted toRemove = CardDb.instance().getCard(c);
|
||||||
hDeck.removeMain(toRemove, 1);
|
hDeck.getMain().remove(toRemove);
|
||||||
}
|
}
|
||||||
Constant.Runtime.HUMAN_DECK[0] = hDeck;
|
Constant.Runtime.HUMAN_DECK[0] = hDeck;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,10 +21,6 @@ import java.io.Serializable;
|
|||||||
|
|
||||||
import forge.PlayerType;
|
import forge.PlayerType;
|
||||||
import forge.game.GameType;
|
import forge.game.GameType;
|
||||||
import forge.item.CardDb;
|
|
||||||
import forge.item.CardPrinted;
|
|
||||||
import forge.item.ItemPool;
|
|
||||||
import forge.item.ItemPoolView;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@@ -33,8 +29,7 @@ import forge.item.ItemPoolView;
|
|||||||
*
|
*
|
||||||
* The set of MTG legal cards that become player's library when the game starts.
|
* The set of MTG legal cards that become player's library when the game starts.
|
||||||
* Any other data is not part of a deck and should be stored elsewhere. Current
|
* Any other data is not part of a deck and should be stored elsewhere. Current
|
||||||
* fields allowed for deck metadata are Name, Title, Description, Difficulty,
|
* fields allowed for deck metadata are Name, Title, Description and Deck Type.
|
||||||
* Icon, Deck Type.
|
|
||||||
*
|
*
|
||||||
* @author Forge
|
* @author Forge
|
||||||
* @version $Id$
|
* @version $Id$
|
||||||
@@ -54,8 +49,8 @@ public final class Deck implements Comparable<Deck>, Serializable {
|
|||||||
|
|
||||||
private boolean customPool = false;
|
private boolean customPool = false;
|
||||||
|
|
||||||
private ItemPool<CardPrinted> main;
|
private final DeckSection main;
|
||||||
private ItemPool<CardPrinted> sideboard;
|
private final DeckSection sideboard;
|
||||||
|
|
||||||
// gameType is from Constant.GameType, like GameType.Regular
|
// gameType is from Constant.GameType, like GameType.Regular
|
||||||
/**
|
/**
|
||||||
@@ -64,8 +59,8 @@ public final class Deck implements Comparable<Deck>, Serializable {
|
|||||||
* </p>
|
* </p>
|
||||||
*/
|
*/
|
||||||
public Deck() {
|
public Deck() {
|
||||||
this.main = new ItemPool<CardPrinted>(CardPrinted.class);
|
this.main = new DeckSection();
|
||||||
this.sideboard = new ItemPool<CardPrinted>(CardPrinted.class);
|
this.sideboard = new DeckSection();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -81,28 +76,6 @@ public final class Deck implements Comparable<Deck>, Serializable {
|
|||||||
this.setDeckType(type);
|
this.setDeckType(type);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* Getter for the field <code>main</code>.
|
|
||||||
* </p>
|
|
||||||
*
|
|
||||||
* @return a {@link java.util.List} object.
|
|
||||||
*/
|
|
||||||
public ItemPoolView<CardPrinted> getMain() {
|
|
||||||
return this.main.getView();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* Getter for the field <code>sideboard</code>.
|
|
||||||
* </p>
|
|
||||||
*
|
|
||||||
* @return a {@link java.util.List} object.
|
|
||||||
*/
|
|
||||||
public ItemPoolView<CardPrinted> getSideboard() {
|
|
||||||
return this.sideboard.getView();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* getDeckType.
|
* getDeckType.
|
||||||
@@ -177,169 +150,6 @@ public final class Deck implements Comparable<Deck>, Serializable {
|
|||||||
return this.comment;
|
return this.comment;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* addMain.
|
|
||||||
* </p>
|
|
||||||
*
|
|
||||||
* @param cardName
|
|
||||||
* a {@link java.lang.String} object.
|
|
||||||
*/
|
|
||||||
public void addMain(final String cardName) {
|
|
||||||
this.addMain(CardDb.instance().getCard(cardName));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Adds the main.
|
|
||||||
*
|
|
||||||
* @param card
|
|
||||||
* the card
|
|
||||||
*/
|
|
||||||
public void addMain(final CardPrinted card) {
|
|
||||||
this.main.add(card);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Adds the main.
|
|
||||||
*
|
|
||||||
* @param card
|
|
||||||
* the card
|
|
||||||
* @param amount
|
|
||||||
* the amount
|
|
||||||
*/
|
|
||||||
public void addMain(final CardPrinted card, final int amount) {
|
|
||||||
this.main.add(card, amount);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Adds the main.
|
|
||||||
*
|
|
||||||
* @param list
|
|
||||||
* the list
|
|
||||||
*/
|
|
||||||
public void addMain(final ItemPoolView<CardPrinted> list) {
|
|
||||||
this.main.addAll(list);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the main.
|
|
||||||
*
|
|
||||||
* @param cards
|
|
||||||
* the new main
|
|
||||||
*/
|
|
||||||
public void setMain(final Iterable<String> cards) {
|
|
||||||
this.main = new ItemPool<CardPrinted>(cards, CardPrinted.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Removes the main.
|
|
||||||
*
|
|
||||||
* @param card
|
|
||||||
* the card
|
|
||||||
*/
|
|
||||||
public void removeMain(final CardPrinted card) {
|
|
||||||
this.main.remove(card);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Removes the main.
|
|
||||||
*
|
|
||||||
* @param card
|
|
||||||
* the card
|
|
||||||
* @param amount
|
|
||||||
* the amount
|
|
||||||
*/
|
|
||||||
public void removeMain(final CardPrinted card, final int amount) {
|
|
||||||
this.main.remove(card, amount);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Count main.
|
|
||||||
*
|
|
||||||
* @return the int
|
|
||||||
*/
|
|
||||||
public int countMain() {
|
|
||||||
return this.main.countAll();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* addSideboard.
|
|
||||||
* </p>
|
|
||||||
*
|
|
||||||
* @param cardName
|
|
||||||
* a {@link java.lang.String} object.
|
|
||||||
*/
|
|
||||||
public void addSideboard(final String cardName) {
|
|
||||||
this.addSideboard(CardDb.instance().getCard(cardName));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Adds the sideboard.
|
|
||||||
*
|
|
||||||
* @param card
|
|
||||||
* the card
|
|
||||||
*/
|
|
||||||
public void addSideboard(final CardPrinted card) {
|
|
||||||
this.sideboard.add(card);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Adds the sideboard.
|
|
||||||
*
|
|
||||||
* @param card
|
|
||||||
* the card
|
|
||||||
* @param amount
|
|
||||||
* the amount
|
|
||||||
*/
|
|
||||||
public void addSideboard(final CardPrinted card, final int amount) {
|
|
||||||
this.sideboard.add(card, amount);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Adds the sideboard.
|
|
||||||
*
|
|
||||||
* @param cards
|
|
||||||
* the cards
|
|
||||||
*/
|
|
||||||
public void addSideboard(final ItemPoolView<CardPrinted> cards) {
|
|
||||||
this.sideboard.addAll(cards);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the sideboard.
|
|
||||||
*
|
|
||||||
* @param cards
|
|
||||||
* the new sideboard
|
|
||||||
*/
|
|
||||||
public void setSideboard(final Iterable<String> cards) {
|
|
||||||
this.sideboard = new ItemPool<CardPrinted>(cards, CardPrinted.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* countSideboard.
|
|
||||||
* </p>
|
|
||||||
*
|
|
||||||
* @return a int.
|
|
||||||
*/
|
|
||||||
public int countSideboard() {
|
|
||||||
return this.sideboard.countAll();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>
|
|
||||||
* removeSideboard.
|
|
||||||
* </p>
|
|
||||||
*
|
|
||||||
* @param card
|
|
||||||
* the card
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public void removeFromSideboard(final CardPrinted card) {
|
|
||||||
this.sideboard.remove(card);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* isDraft.
|
* isDraft.
|
||||||
@@ -415,21 +225,6 @@ public final class Deck implements Comparable<Deck>, Serializable {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Clear sideboard.
|
|
||||||
*/
|
|
||||||
public void clearSideboard() {
|
|
||||||
this.sideboard.clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Clear main.
|
|
||||||
*/
|
|
||||||
public void clearMain() {
|
|
||||||
this.main.clear();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the player type.
|
* Gets the player type.
|
||||||
*
|
*
|
||||||
@@ -467,4 +262,26 @@ public final class Deck implements Comparable<Deck>, Serializable {
|
|||||||
public void setCustomPool(final boolean cp) {
|
public void setCustomPool(final boolean cp) {
|
||||||
this.customPool = cp;
|
this.customPool = cp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Getter for the field <code>main</code>.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @return a {@link java.util.List} object.
|
||||||
|
*/
|
||||||
|
public DeckSection getMain() {
|
||||||
|
return this.main;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* Getter for the field <code>sideboard</code>.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @return a {@link java.util.List} object.
|
||||||
|
*/
|
||||||
|
public DeckSection getSideboard() {
|
||||||
|
return this.sideboard;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,6 @@ package forge.deck;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
import forge.CardList;
|
|
||||||
import forge.Constant;
|
import forge.Constant;
|
||||||
import forge.PlayerType;
|
import forge.PlayerType;
|
||||||
import forge.deck.generate.Generate2ColorDeck;
|
import forge.deck.generate.Generate2ColorDeck;
|
||||||
@@ -98,12 +97,8 @@ public abstract class DeckGeneration {
|
|||||||
*/
|
*/
|
||||||
private static Deck generateConstructedDeck() {
|
private static Deck generateConstructedDeck() {
|
||||||
final GenerateConstructedDeck gen = new GenerateConstructedDeck();
|
final GenerateConstructedDeck gen = new GenerateConstructedDeck();
|
||||||
final CardList name = gen.generateDeck();
|
|
||||||
final Deck deck = new Deck(GameType.Constructed);
|
final Deck deck = new Deck(GameType.Constructed);
|
||||||
|
deck.getMain().add(gen.generateDeck());
|
||||||
for (int i = 0; i < 60; i++) {
|
|
||||||
deck.addMain(name.get(i).getName());
|
|
||||||
}
|
|
||||||
return deck;
|
return deck;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -116,12 +111,8 @@ public abstract class DeckGeneration {
|
|||||||
*/
|
*/
|
||||||
private static Deck generateConstructed3ColorDeck() {
|
private static Deck generateConstructed3ColorDeck() {
|
||||||
final GenerateConstructedMultiColorDeck gen = new GenerateConstructedMultiColorDeck();
|
final GenerateConstructedMultiColorDeck gen = new GenerateConstructedMultiColorDeck();
|
||||||
final CardList name = gen.generate3ColorDeck();
|
|
||||||
final Deck deck = new Deck(GameType.Constructed);
|
final Deck deck = new Deck(GameType.Constructed);
|
||||||
|
deck.getMain().add(gen.generate3ColorDeck());
|
||||||
for (int i = 0; i < 60; i++) {
|
|
||||||
deck.addMain(name.get(i).getName());
|
|
||||||
}
|
|
||||||
return deck;
|
return deck;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -134,12 +125,8 @@ public abstract class DeckGeneration {
|
|||||||
*/
|
*/
|
||||||
private static Deck generateConstructed5ColorDeck() {
|
private static Deck generateConstructed5ColorDeck() {
|
||||||
final GenerateConstructedMultiColorDeck gen = new GenerateConstructedMultiColorDeck();
|
final GenerateConstructedMultiColorDeck gen = new GenerateConstructedMultiColorDeck();
|
||||||
final CardList name = gen.generate5ColorDeck();
|
|
||||||
final Deck deck = new Deck(GameType.Constructed);
|
final Deck deck = new Deck(GameType.Constructed);
|
||||||
|
deck.getMain().add(gen.generate5ColorDeck());
|
||||||
for (int i = 0; i < 60; i++) {
|
|
||||||
deck.addMain(name.get(i).getName());
|
|
||||||
}
|
|
||||||
return deck;
|
return deck;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -164,12 +151,8 @@ public abstract class DeckGeneration {
|
|||||||
stDeck = o.toString();
|
stDeck = o.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
final CardList td = gen.getThemeDeck(stDeck, 60);
|
|
||||||
final Deck deck = new Deck(GameType.Constructed);
|
final Deck deck = new Deck(GameType.Constructed);
|
||||||
|
deck.getMain().add(gen.getThemeDeck(stDeck, 60));
|
||||||
for (int i = 0; i < td.size(); i++) {
|
|
||||||
deck.addMain(td.get(i).getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
return deck;
|
return deck;
|
||||||
}
|
}
|
||||||
@@ -217,14 +200,9 @@ public abstract class DeckGeneration {
|
|||||||
c2 = colors.get(r.nextInt(colors.size() - 1) + 1);
|
c2 = colors.get(r.nextInt(colors.size() - 1) + 1);
|
||||||
}
|
}
|
||||||
final Generate2ColorDeck gen = new Generate2ColorDeck(c1, c2);
|
final Generate2ColorDeck gen = new Generate2ColorDeck(c1, c2);
|
||||||
final CardList d = gen.get2ColorDeck(60, p);
|
|
||||||
|
|
||||||
final Deck deck = new Deck(GameType.Constructed);
|
final Deck deck = new Deck(GameType.Constructed);
|
||||||
|
deck.getMain().add(gen.get2ColorDeck(60, p));
|
||||||
for (int i = 0; i < d.size(); i++) {
|
|
||||||
deck.addMain(d.get(i).getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
return deck;
|
return deck;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -282,16 +260,9 @@ public abstract class DeckGeneration {
|
|||||||
c3 = colors.get(r.nextInt(colors.size() - 1) + 1);
|
c3 = colors.get(r.nextInt(colors.size() - 1) + 1);
|
||||||
}
|
}
|
||||||
final Generate3ColorDeck gen = new Generate3ColorDeck(c1, c2, c3);
|
final Generate3ColorDeck gen = new Generate3ColorDeck(c1, c2, c3);
|
||||||
final CardList d = gen.get3ColorDeck(60, p);
|
|
||||||
|
|
||||||
final Deck deck = new Deck(GameType.Constructed);
|
final Deck deck = new Deck(GameType.Constructed);
|
||||||
|
deck.getMain().add(gen.get3ColorDeck(60, p));
|
||||||
for (int i = 0; i < d.size(); i++) {
|
|
||||||
deck.addMain(d.get(i).getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
return deck;
|
return deck;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -315,14 +286,8 @@ public abstract class DeckGeneration {
|
|||||||
// colors.add("green");
|
// colors.add("green");
|
||||||
|
|
||||||
final Generate5ColorDeck gen = new Generate5ColorDeck("white", "blue", "black", "red", "green");
|
final Generate5ColorDeck gen = new Generate5ColorDeck("white", "blue", "black", "red", "green");
|
||||||
final CardList d = gen.get5ColorDeck(60, p);
|
|
||||||
|
|
||||||
final Deck deck = new Deck(GameType.Constructed);
|
final Deck deck = new Deck(GameType.Constructed);
|
||||||
|
deck.getMain().add(gen.get5ColorDeck(60, p));
|
||||||
for (int i = 0; i < d.size(); i++) {
|
|
||||||
deck.addMain(d.get(i).getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
return deck;
|
return deck;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -138,8 +138,8 @@ public class DeckIO {
|
|||||||
} else {
|
} else {
|
||||||
DeckIO.readDeckMetadata(sections.get("metadata"), d);
|
DeckIO.readDeckMetadata(sections.get("metadata"), d);
|
||||||
}
|
}
|
||||||
d.setMain(DeckIO.readCardList(sections.get("main")));
|
d.getMain().set(DeckIO.readCardList(sections.get("main")));
|
||||||
d.setSideboard(DeckIO.readCardList(sections.get("sideboard")));
|
d.getSideboard().set(DeckIO.readCardList(sections.get("sideboard")));
|
||||||
|
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
|
|||||||
43
src/main/java/forge/deck/DeckSection.java
Normal file
43
src/main/java/forge/deck/DeckSection.java
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
package forge.deck;
|
||||||
|
|
||||||
|
import forge.Card;
|
||||||
|
import forge.CardList;
|
||||||
|
import forge.item.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TODO: Write javadoc for this type.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class DeckSection extends ItemPool<CardPrinted> {
|
||||||
|
|
||||||
|
public DeckSection() {
|
||||||
|
super(CardPrinted.class);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Clear main.
|
||||||
|
*/
|
||||||
|
public void clearMain() {
|
||||||
|
this.clear();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void set(final Iterable<String> cardNames) {
|
||||||
|
this.clear();
|
||||||
|
this.addAllCards(CardDb.instance().getCards(cardNames));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void add(final Card card){
|
||||||
|
this.add(CardDb.instance().getCard(card));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void add(final String cardName, final String setCode)
|
||||||
|
{
|
||||||
|
add(CardDb.instance().getCard(cardName, setCode));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void add(final CardList cardList) {
|
||||||
|
for(Card c : cardList)
|
||||||
|
add(c);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -601,17 +601,10 @@ public class BoosterDraftAI {
|
|||||||
aiPlayables.remove(c);
|
aiPlayables.remove(c);
|
||||||
}
|
}
|
||||||
if (outList.size() == 40) {
|
if (outList.size() == 40) {
|
||||||
for (i = 0; i < outList.size(); i++) {
|
out.getMain().add(outList);
|
||||||
out.addMain(outList.get(i).getName() + "|" + outList.get(i).getCurSetCode());
|
out.getSideboard().add(aiPlayables);
|
||||||
}
|
out.getSideboard().add(dList);
|
||||||
|
|
||||||
for (i = 0; i < aiPlayables.size(); i++) {
|
|
||||||
out.addSideboard(aiPlayables.get(i).getName() + "|" + aiPlayables.get(i).getCurSetCode());
|
|
||||||
}
|
|
||||||
|
|
||||||
for (i = 0; i < dList.size(); i++) {
|
|
||||||
out.addSideboard(dList.get(i).getName() + "|" + dList.get(i).getCurSetCode());
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
throw new RuntimeException("BoosterDraftAI : buildDeck() error, decksize not 40");
|
throw new RuntimeException("BoosterDraftAI : buildDeck() error, decksize not 40");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -437,13 +437,10 @@ public class SealedDeck {
|
|||||||
|| deck.get(i).getName().equals("Forest")) {
|
|| deck.get(i).getName().equals("Forest")) {
|
||||||
System.out.println("Heyo!");
|
System.out.println("Heyo!");
|
||||||
}
|
}
|
||||||
aiDeck.addMain(deck.get(i).getName() + "|" + deck.get(i).getCurSetCode());
|
aiDeck.getMain().add(deck.get(i));
|
||||||
}
|
|
||||||
|
|
||||||
for (i = 0; i < aiCardpool.size(); i++) {
|
|
||||||
aiDeck.addSideboard(aiCardpool.get(i).getName() + "|" + aiCardpool.get(i).getCurSetCode());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
aiDeck.getSideboard().add(aiCardpool);
|
||||||
return aiDeck;
|
return aiDeck;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -243,11 +243,11 @@ public abstract class DeckEditorBase extends JFrame implements DeckDisplay {
|
|||||||
@Override
|
@Override
|
||||||
public final Deck getDeck() {
|
public final Deck getDeck() {
|
||||||
final Deck deck = new Deck(this.gameType);
|
final Deck deck = new Deck(this.gameType);
|
||||||
deck.addMain(ItemPool.createFrom(this.getBottom(), CardPrinted.class));
|
deck.getMain().addAll(this.getBottom());
|
||||||
|
|
||||||
// if sealed or draft, move "top" to sideboard
|
// if sealed or draft, move "top" to sideboard
|
||||||
if (this.gameType.isLimited() && (this.gameType != GameType.Quest)) {
|
if (this.gameType.isLimited() && (this.gameType != GameType.Quest)) {
|
||||||
deck.addSideboard(ItemPool.createFrom(this.getTop(), CardPrinted.class));
|
deck.getSideboard().addAll(this.getTop());
|
||||||
}
|
}
|
||||||
return deck;
|
return deck;
|
||||||
} // getDeck()
|
} // getDeck()
|
||||||
|
|||||||
@@ -50,7 +50,6 @@ import forge.gui.GuiUtils;
|
|||||||
import forge.item.CardDb;
|
import forge.item.CardDb;
|
||||||
import forge.item.CardPrinted;
|
import forge.item.CardPrinted;
|
||||||
import forge.item.InventoryItem;
|
import forge.item.InventoryItem;
|
||||||
import forge.item.ItemPool;
|
|
||||||
import forge.item.ItemPoolView;
|
import forge.item.ItemPoolView;
|
||||||
import forge.properties.ForgeProps;
|
import forge.properties.ForgeProps;
|
||||||
import forge.properties.NewConstants.Lang.GuiBoosterDraft;
|
import forge.properties.NewConstants.Lang.GuiBoosterDraft;
|
||||||
@@ -300,17 +299,15 @@ public class DeckEditorDraft extends DeckEditorBase {
|
|||||||
Constant.Runtime.HUMAN_DECK[0] = deck;
|
Constant.Runtime.HUMAN_DECK[0] = deck;
|
||||||
|
|
||||||
// add sideboard to deck
|
// add sideboard to deck
|
||||||
final ItemPoolView<CardPrinted> list = ItemPool.createFrom(this.getBottomTableWithCards().getCards(),
|
deck.getSideboard().addAll(this.getBottomTableWithCards().getCards());
|
||||||
CardPrinted.class);
|
|
||||||
deck.addSideboard(list);
|
|
||||||
|
|
||||||
final String landSet = IBoosterDraft.LAND_SET_CODE[0];
|
final String landSet = IBoosterDraft.LAND_SET_CODE[0];
|
||||||
final int landsCount = 20;
|
final int landsCount = 20;
|
||||||
deck.addSideboard(CardDb.instance().getCard("Forest", landSet), landsCount);
|
deck.getSideboard().add(CardDb.instance().getCard("Forest", landSet), landsCount);
|
||||||
deck.addSideboard(CardDb.instance().getCard("Mountain", landSet), landsCount);
|
deck.getSideboard().add(CardDb.instance().getCard("Mountain", landSet), landsCount);
|
||||||
deck.addSideboard(CardDb.instance().getCard("Swamp", landSet), landsCount);
|
deck.getSideboard().add(CardDb.instance().getCard("Swamp", landSet), landsCount);
|
||||||
deck.addSideboard(CardDb.instance().getCard("Island", landSet), landsCount);
|
deck.getSideboard().add(CardDb.instance().getCard("Island", landSet), landsCount);
|
||||||
deck.addSideboard(CardDb.instance().getCard("Plains", landSet), landsCount);
|
deck.getSideboard().add(CardDb.instance().getCard("Plains", landSet), landsCount);
|
||||||
|
|
||||||
return deck;
|
return deck;
|
||||||
} // getPlayersDeck()
|
} // getPlayersDeck()
|
||||||
|
|||||||
@@ -579,7 +579,7 @@ public class DeckEditorQuestMenu extends JMenuBar {
|
|||||||
private Deck cardPoolToDeck(final ItemPoolView<InventoryItem> list) {
|
private Deck cardPoolToDeck(final ItemPoolView<InventoryItem> list) {
|
||||||
// put CardPool into Deck main
|
// put CardPool into Deck main
|
||||||
final Deck deck = new Deck(GameType.Sealed);
|
final Deck deck = new Deck(GameType.Sealed);
|
||||||
deck.addMain(ItemPool.createFrom(list, CardPrinted.class));
|
deck.getMain().addAll(list);
|
||||||
return deck;
|
return deck;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -219,9 +219,9 @@ public class DeckImport extends JDialog {
|
|||||||
}
|
}
|
||||||
final CardPrinted crd = t.getCard();
|
final CardPrinted crd = t.getCard();
|
||||||
if (isMain) {
|
if (isMain) {
|
||||||
result.addMain(crd, t.getNumber());
|
result.getMain().add(crd, t.getNumber());
|
||||||
} else {
|
} else {
|
||||||
result.addSideboard(crd, t.getNumber());
|
result.getSideboard().add(crd, t.getNumber());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ import java.util.Map.Entry;
|
|||||||
* @param <T>
|
* @param <T>
|
||||||
* an Object
|
* an Object
|
||||||
*/
|
*/
|
||||||
public final class ItemPool<T extends InventoryItem> extends ItemPoolView<T> {
|
public class ItemPool<T extends InventoryItem> extends ItemPoolView<T> {
|
||||||
|
|
||||||
// Constructors here
|
// Constructors here
|
||||||
/**
|
/**
|
||||||
@@ -43,22 +43,6 @@ public final class ItemPool<T extends InventoryItem> extends ItemPoolView<T> {
|
|||||||
super(cls);
|
super(cls);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* ItemPool Constructor.
|
|
||||||
*
|
|
||||||
* @param names
|
|
||||||
* a String
|
|
||||||
* @param cls
|
|
||||||
* a T
|
|
||||||
*/
|
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
// conversion here must be safe
|
|
||||||
public ItemPool(final Iterable<String> names, final Class<T> cls) {
|
|
||||||
super(cls);
|
|
||||||
this.addAllCards((Iterable<T>) CardDb.instance().getCards(names));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* createFrom method.
|
* createFrom method.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -589,7 +589,7 @@ public final class QuestData {
|
|||||||
"QuestData : getDeckFromMap(String deckName) error, deck name not found - %s", deckName);
|
"QuestData : getDeckFromMap(String deckName) error, deck name not found - %s", deckName);
|
||||||
}
|
}
|
||||||
final Deck d = this.getMyDecks().get(deckName);
|
final Deck d = this.getMyDecks().get(deckName);
|
||||||
d.clearSideboard();
|
d.getSideboard().clear();
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -261,7 +261,7 @@ public final class QuestUtilCards {
|
|||||||
final int leftInPool = this.q.getCardPool().count(card);
|
final int leftInPool = this.q.getCardPool().count(card);
|
||||||
// remove sold cards from all decks:
|
// remove sold cards from all decks:
|
||||||
for (final Deck deck : this.q.getMyDecks().values()) {
|
for (final Deck deck : this.q.getMyDecks().values()) {
|
||||||
deck.removeMain(card, deck.getMain().count(card) - leftInPool);
|
deck.getMain().remove(card, deck.getMain().count(card) - leftInPool);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user