Fix crash copying adventure decks with full slots

This commit is contained in:
kit
2025-08-30 13:39:23 -07:00
parent ffe883e7d9
commit d7c7aaa51e
2 changed files with 5 additions and 2 deletions

View File

@@ -1419,6 +1419,7 @@ public class AdventurePlayer implements Serializable, SaveFileContent {
*/ */
public int copyDeck() { public int copyDeck() {
for (int i = 0; i < MAX_DECK_COUNT; i++) { for (int i = 0; i < MAX_DECK_COUNT; i++) {
if (i >= getDeckCount()) addDeck();
if (isEmptyDeck(i)) { if (isEmptyDeck(i)) {
decks.set(i, (Deck) deck.copyTo(deck.getName() + " (" + Forge.getLocalizer().getMessage("lblCopy") + ")")); decks.set(i, (Deck) deck.copyTo(deck.getName() + " (" + Forge.getLocalizer().getMessage("lblCopy") + ")"));
return i; return i;

View File

@@ -83,7 +83,7 @@ public class DeckSelectScene extends UIScene {
private void layoutDeckButtons() { private void layoutDeckButtons() {
for (int i = 0; i < AdventurePlayer.current().getDeckCount(); i++) for (int i = 0; i < AdventurePlayer.current().getDeckCount(); i++)
addDeckButton(Forge.getLocalizer().getMessage("lblDeck") + ": " + (i + 1), i); addDeckButton(i);
} }
private void addDeck(){ private void addDeck(){
@@ -144,6 +144,7 @@ public class DeckSelectScene extends UIScene {
} }
private void updateDeckButton(int index) { private void updateDeckButton(int index) {
if (!buttons.containsKey(index)) addDeckButton(index);
buttons.get(index).setText(Current.player().getDeck(index).getName()); buttons.get(index).setText(Current.player().getDeck(index).getName());
buttons.get(index).getTextraLabel().layout(); buttons.get(index).getTextraLabel().layout();
buttons.get(index).layout(); buttons.get(index).layout();
@@ -177,8 +178,9 @@ public class DeckSelectScene extends UIScene {
} }
} }
private TextraButton addDeckButton(String name, int i) { private TextraButton addDeckButton(int i) {
TextraButton button = Controls.newTextButton("-"); TextraButton button = Controls.newTextButton("-");
String name = Forge.getLocalizer().getMessage("lblDeck") + ": " + (i + 1);
button.addListener(new ClickListener() { button.addListener(new ClickListener() {
@Override @Override
public void clicked(InputEvent event, float x, float y) { public void clicked(InputEvent event, float x, float y) {