Basic groundwork for extra decks (contraptions, attractions) (#10378)

* extra deck cards not counted in deck size

* extra deck handling in deckbuilder

* move responsibility for extraDeckCard boolean to CardImpl

* remove redundant field copy
This commit is contained in:
Artemis Kearney 2023-08-06 20:06:32 -05:00 committed by GitHub
parent 978ebfc873
commit 9ba0da00ff
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
29 changed files with 97 additions and 47 deletions

View file

@ -1920,7 +1920,15 @@ public class DragCardGrid extends JPanel implements DragCardSource, DragCardTarg
}
private void updateCounts() {
deckNameAndCountLabel.setText(role.getName() + " - " + allCards.size());
int extraDeckCount = allCards.stream()
.filter(c -> c.isExtraDeckCard())
.collect(Collectors.toSet())
.size();
int maindeckCount = allCards.size() - extraDeckCount;
deckNameAndCountLabel.setText(role.getName() + " - " + maindeckCount + (
extraDeckCount > 0 ? " (" + extraDeckCount + ")"
: ""
));
creatureCountLabel.setText(String.valueOf(creatureCounter.get()));
landCountLabel.setText(String.valueOf(landCounter.get()));
for (CardType cardType : selectByTypeButtons.keySet()) {

View file

@ -473,7 +473,7 @@ public class AddLandDialog extends MageDialog {
private void autoAddLands() {
int deckSize = ((Number) spnDeckSize.getValue()).intValue();
int[] lands = DeckBuildUtils.landCountSuggestion(deckSize, deck.getCards());
int[] lands = DeckBuildUtils.landCountSuggestion(deckSize, deck.getMaindeckCards());
spnPlains.setValue(lands[0]);
spnIsland.setValue(lands[1]);
spnSwamp.setValue(lands[2]);