Minor tweak in InputSelectTargets and some string refactoring

This commit is contained in:
kevlahnota
2017-09-05 20:53:54 +00:00
parent 5c18270826
commit 00cbfa45d7
17 changed files with 174 additions and 154 deletions

View File

@@ -50,6 +50,7 @@ import javax.swing.event.ChangeListener;
import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener; import javax.swing.event.DocumentListener;
import forge.util.TextUtil;
import net.miginfocom.swing.MigLayout; import net.miginfocom.swing.MigLayout;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@@ -479,7 +480,7 @@ public class ImportDialog {
selectedOptions.add(entry.getKey()); selectedOptions.add(entry.getKey());
} }
cb.setText(String.format("%s (%d)", cb.getName(), selection.getRight().size())); cb.setText(TextUtil.concatWithSpace(cb.getName(), TextUtil.enclosedParen(String.valueOf(selection.getRight().size()))));
} }
// asynchronously update the text in the op log, which may be many tens of thousands of lines long // asynchronously update the text in the op log, which may be many tens of thousands of lines long

View File

@@ -19,6 +19,7 @@ package forge.itemmanager.views;
import forge.card.CardEdition; import forge.card.CardEdition;
import forge.model.FModel; import forge.model.FModel;
import forge.util.TextUtil;
/** /**
* A wrapper to show explanatory tooltips for edition set abbreviations. * A wrapper to show explanatory tooltips for edition set abbreviations.
@@ -41,6 +42,6 @@ public class SetCodeRenderer extends ItemCellRenderer {
setFullName = editions.get(setAbbrev).getName(); setFullName = editions.get(setAbbrev).getName();
} }
return String.format("%s (%s)", setFullName, setAbbrev); return TextUtil.concatWithSpace(setFullName, TextUtil.enclosedParen(setAbbrev));
} }
} }

View File

@@ -5,6 +5,7 @@ import forge.card.CardEdition;
import forge.gui.SOverlayUtils; import forge.gui.SOverlayUtils;
import forge.model.FModel; import forge.model.FModel;
import forge.toolbox.*; import forge.toolbox.*;
import forge.util.TextUtil;
import net.miginfocom.swing.MigLayout; import net.miginfocom.swing.MigLayout;
import javax.swing.*; import javax.swing.*;
@@ -43,7 +44,7 @@ public class DialogChooseSets {
for (CardEdition ce : editions) { for (CardEdition ce : editions) {
String code = ce.getCode(); String code = ce.getCode();
FCheckBox box = new FCheckBox(String.format("%s (%s)", ce.getName(), code)); FCheckBox box = new FCheckBox(TextUtil.concatWithSpace(ce.getName(), TextUtil.enclosedParen(code)));
box.setName(code); box.setName(code);
box.setSelected(null != preselectedSets && preselectedSets.contains(code)); box.setSelected(null != preselectedSets && preselectedSets.contains(code));

View File

@@ -32,6 +32,7 @@ import javax.swing.SwingConstants;
import javax.swing.SwingUtilities; import javax.swing.SwingUtilities;
import javax.swing.border.Border; import javax.swing.border.Border;
import forge.util.TextUtil;
import net.miginfocom.swing.MigLayout; import net.miginfocom.swing.MigLayout;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
@@ -409,7 +410,7 @@ public class VAssignDamage {
dt.label.setText(sb.toString()); dt.label.setText(sb.toString());
} }
lblTotalDamage.setText(String.format("Available damage points: %d (of %d)", damageLeft, totalDamageToAssign)); lblTotalDamage.setText(TextUtil.concatNoSpace("Available damage points: ", String.valueOf(damageLeft), " (of ", String.valueOf(totalDamageToAssign), ")"));
btnOK.setEnabled(damageLeft == 0); btnOK.setEnabled(damageLeft == 0);
lblAssignRemaining.setVisible(allHaveLethal && damageLeft > 0); lblAssignRemaining.setVisible(allHaveLethal && damageLeft > 0);
} }

View File

@@ -12,6 +12,7 @@ import javax.swing.JPanel;
import javax.swing.SwingConstants; import javax.swing.SwingConstants;
import javax.swing.SwingUtilities; import javax.swing.SwingUtilities;
import forge.util.TextUtil;
import net.miginfocom.swing.MigLayout; import net.miginfocom.swing.MigLayout;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@@ -216,9 +217,9 @@ public class ViewWinLose implements IWinLoseView<FButton> {
if (winner == null || winner.isEmpty()) { if (winner == null || winner.isEmpty()) {
return "It's a draw!"; return "It's a draw!";
} else if (winningTeam != -1) { } else if (winningTeam != -1) {
return String.format("Team %d won!", Integer.valueOf(winningTeam)); return TextUtil.concatNoSpace("Team ", String.valueOf(winningTeam), " won!");
} else { } else {
return String.format("%s won!", winner); return TextUtil.concatNoSpace(winner, " won!");
} }
} }

View File

@@ -29,6 +29,7 @@ import forge.screens.workshop.views.VCardDesigner;
import forge.screens.workshop.views.VCardScript; import forge.screens.workshop.views.VCardScript;
import forge.screens.workshop.views.VWorkshopCatalog; import forge.screens.workshop.views.VWorkshopCatalog;
import forge.toolbox.FOptionPane; import forge.toolbox.FOptionPane;
import forge.util.TextUtil;
/** /**
* Controls the "card script" panel in the workshop UI. * Controls the "card script" panel in the workshop UI.
@@ -127,7 +128,7 @@ public enum CCardScript implements ICDoc {
switchInProgress = true; switchInProgress = true;
Singletons.getControl().ensureScreenActive(FScreen.WORKSHOP_SCREEN); //ensure Workshop is active before showing dialog Singletons.getControl().ensureScreenActive(FScreen.WORKSHOP_SCREEN); //ensure Workshop is active before showing dialog
final int choice = FOptionPane.showOptionDialog( final int choice = FOptionPane.showOptionDialog(
String.format("Save changes to %s?", currentCard), TextUtil.concatNoSpace("Save changes to ", currentCard.toString(), "?"),
"Save Changes?", "Save Changes?",
FOptionPane.QUESTION_ICON, FOptionPane.QUESTION_ICON,
switchAwayOptions); switchAwayOptions);

View File

@@ -8,6 +8,7 @@ import forge.LobbyPlayer;
import forge.deck.DeckGroup; import forge.deck.DeckGroup;
import forge.properties.ForgeConstants; import forge.properties.ForgeConstants;
import forge.tournament.system.*; import forge.tournament.system.*;
import forge.util.TextUtil;
import forge.util.storage.IStorage; import forge.util.storage.IStorage;
import org.apache.commons.lang3.text.WordUtils; import org.apache.commons.lang3.text.WordUtils;
import org.apache.commons.lang3.time.StopWatch; import org.apache.commons.lang3.time.StopWatch;
@@ -102,13 +103,13 @@ public class SimulateMatch {
for(String deck : params.get("d")) { for(String deck : params.get("d")) {
Deck d = deckFromCommandLineParameter(deck, type); Deck d = deckFromCommandLineParameter(deck, type);
if (d == null) { if (d == null) {
System.out.println(String.format("Could not load deck - %s, match cannot start", deck)); System.out.println(TextUtil.concatNoSpace("Could not load deck - ", deck, ", match cannot start"));
return; return;
} }
if (i > 1) { if (i > 1) {
sb.append(" vs "); sb.append(" vs ");
} }
String name = String.format("Ai(%s)-%s", i, d.getName()); String name = TextUtil.concatNoSpace("Ai(", String.valueOf(i), ")-", d.getName());
sb.append(name); sb.append(name);
RegisteredPlayer rp; RegisteredPlayer rp;
@@ -195,7 +196,7 @@ public class SimulateMatch {
for(String deck : params.get("d")) { for(String deck : params.get("d")) {
Deck d = deckFromCommandLineParameter(deck, rules.getGameType()); Deck d = deckFromCommandLineParameter(deck, rules.getGameType());
if (d == null) { if (d == null) {
System.out.println(String.format("Could not load deck - %s, match cannot start", deck)); System.out.println(TextUtil.concatNoSpace("Could not load deck - ", deck, ", match cannot start"));
return; return;
} }
@@ -220,7 +221,7 @@ public class SimulateMatch {
})) { })) {
Deck d = DeckSerializer.fromFile(deck); Deck d = DeckSerializer.fromFile(deck);
if (d == null) { if (d == null) {
System.out.println(String.format("Could not load deck - %s, match cannot start", deck.getName())); System.out.println(TextUtil.concatNoSpace("Could not load deck - ", deck.getName(), ", match cannot start"));
return; return;
} }
deckGroup.addAiDeck(d); deckGroup.addAiDeck(d);
@@ -251,16 +252,17 @@ public class SimulateMatch {
String lastWinner = ""; String lastWinner = "";
int curRound = 0; int curRound = 0;
System.out.println(String.format("Starting a %s tournament with %d players over %d rounds", tournament, System.out.println(TextUtil.concatNoSpace("Starting a ", tournament, " tournament with ",
numPlayers, tourney.getTotalRounds())); String.valueOf(numPlayers), " players over ",
String.valueOf(tourney.getTotalRounds()), " rounds"));
while(!tourney.isTournamentOver()) { while(!tourney.isTournamentOver()) {
if (tourney.getActiveRound() != curRound) { if (tourney.getActiveRound() != curRound) {
if (curRound != 0) { if (curRound != 0) {
System.out.println(String.format("End Round - %d", curRound)); System.out.println(TextUtil.concatNoSpace("End Round - ", String.valueOf(curRound)));
} }
curRound = tourney.getActiveRound(); curRound = tourney.getActiveRound();
System.out.println(""); System.out.println("");
System.out.println(String.format("Round %d Pairings:", curRound)); System.out.println(TextUtil.concatNoSpace("Round ", String.valueOf(curRound) ," Pairings:"));
for(TournamentPairing pairing : tourney.getActivePairings()) { for(TournamentPairing pairing : tourney.getActivePairings()) {
System.out.println(pairing.outputHeader()); System.out.println(pairing.outputHeader());
@@ -303,7 +305,7 @@ public class SimulateMatch {
if (winner.equals(tp.getPlayer())) { if (winner.equals(tp.getPlayer())) {
pairing.setWinner(tp); pairing.setWinner(tp);
lastWinner = winner.getName(); lastWinner = winner.getName();
System.out.println(String.format("Match Winner - %s!", lastWinner)); System.out.println(TextUtil.concatNoSpace("Match Winner - ", lastWinner, "!"));
System.out.println(""); System.out.println("");
break; break;
} }

View File

@@ -36,6 +36,7 @@ import forge.screens.match.CMatchUI;
import forge.toolbox.CardFaceSymbols; import forge.toolbox.CardFaceSymbols;
import forge.toolbox.FSkin.SkinnedPanel; import forge.toolbox.FSkin.SkinnedPanel;
import forge.toolbox.IDisposable; import forge.toolbox.IDisposable;
import forge.util.TextUtil;
import forge.view.arcane.util.OutlinedLabel; import forge.view.arcane.util.OutlinedLabel;
import javax.swing.*; import javax.swing.*;
@@ -682,13 +683,14 @@ public class CardPanel extends SkinnedPanel implements CardContainer, IDisposabl
final CardStateView state = card.getCurrentState(); final CardStateView state = card.getCurrentState();
String sPt = ""; String sPt = "";
if (state.isCreature() && state.isPlaneswalker()) { if (state.isCreature() && state.isPlaneswalker()) {
sPt = String.format("%d/%d (%d)", state.getPower(), state.getToughness(), state.getLoyalty()); sPt = TextUtil.concatWithSpace(TextUtil.transformPT(state.getPower(), state.getToughness()),
TextUtil.enclosedParen( String.valueOf(state.getLoyalty())));
} }
else if (state.isCreature()) { else if (state.isCreature()) {
sPt = String.format("%d/%d", state.getPower(), state.getToughness()); sPt = TextUtil.transformPT(state.getPower(), state.getToughness());
} }
else if (state.getType().hasSubtype("Vehicle")) { else if (state.getType().hasSubtype("Vehicle")) {
sPt = String.format("[%d/%d]", state.getPower(), state.getToughness()); sPt = TextUtil.enclosedBracket(TextUtil.transformPT(state.getPower(), state.getToughness()));
} }
else if (state.isPlaneswalker()) { else if (state.isPlaneswalker()) {
sPt = String.valueOf(state.getLoyalty()); sPt = String.valueOf(state.getLoyalty());

View File

@@ -39,6 +39,7 @@ import forge.toolbox.FLabel;
import forge.toolbox.FOptionPane; import forge.toolbox.FOptionPane;
import forge.toolbox.FScrollPane; import forge.toolbox.FScrollPane;
import forge.util.Callback; import forge.util.Callback;
import forge.util.TextUtil;
import forge.util.Utils; import forge.util.Utils;
import forge.util.WaitCallback; import forge.util.WaitCallback;
@@ -419,7 +420,8 @@ public class VAssignDamage extends FDialog {
dt.label.setText(sb.toString()); dt.label.setText(sb.toString());
} }
lblTotalDamage.setText(String.format("Available damage points: %d (of %d)", damageLeft, totalDamageToAssign)); lblTotalDamage.setText(TextUtil.concatNoSpace("Available damage points: ",
String.valueOf(damageLeft), " (of ", String.valueOf(totalDamageToAssign), ")"));
setButtonEnabled(1, damageLeft == 0); setButtonEnabled(1, damageLeft == 0);
lblAssignRemaining.setVisible(allHaveLethal && damageLeft > 0); lblAssignRemaining.setVisible(allHaveLethal && damageLeft > 0);
} }

View File

@@ -2,6 +2,7 @@ package forge.screens.match.winlose;
import java.util.List; import java.util.List;
import forge.util.TextUtil;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import com.badlogic.gdx.Input.Keys; import com.badlogic.gdx.Input.Keys;
@@ -127,9 +128,9 @@ public class ViewWinLose extends FOverlay implements IWinLoseView<FButton> {
if (winner == null) { if (winner == null) {
return "It's a draw!"; return "It's a draw!";
} else if (winningTeam != -1) { } else if (winningTeam != -1) {
return String.format("Team %d won!", Integer.valueOf(winningTeam)); return TextUtil.concatNoSpace("Team ", String.valueOf(winningTeam), " won!");
} else { } else {
return String.format("%s won!", winner); return TextUtil.concatNoSpace(winner, " won!");
} }
} }

View File

@@ -31,6 +31,7 @@ import forge.properties.ForgeConstants;
import forge.properties.ForgePreferences; import forge.properties.ForgePreferences;
import forge.util.FileUtil; import forge.util.FileUtil;
import forge.util.ItemPool; import forge.util.ItemPool;
import forge.util.TextUtil;
import forge.util.gui.SGuiChoose; import forge.util.gui.SGuiChoose;
import forge.util.gui.SOptionPane; import forge.util.gui.SOptionPane;
import forge.util.storage.IStorage; import forge.util.storage.IStorage;
@@ -375,7 +376,7 @@ public class BoosterDraft implements IBoosterDraft {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
for (int i = 1; i <= packs; i++) { for (int i = 1; i <= packs; i++) {
String choice = SGuiChoose.oneOrNone(String.format("Choose set for Pack %d of %d", i, packs), setz); String choice = SGuiChoose.oneOrNone(TextUtil.concatNoSpace("Choose set for Pack ", String.valueOf(i), " of ", String.valueOf(packs)), setz);
if (choice == null) { if (choice == null) {
return null; return null;
} }
@@ -392,61 +393,61 @@ public class BoosterDraft implements IBoosterDraft {
final String[] sets = setz.toArray(ArrayUtils.EMPTY_STRING_ARRAY); final String[] sets = setz.toArray(ArrayUtils.EMPTY_STRING_ARRAY);
final List<String> setCombos = new ArrayList<>(); final List<String> setCombos = new ArrayList<>();
if (sets.length >= 2) { if (sets.length >= 2) {
setCombos.add(String.format("%s/%s/%s", sets[0], sets[0], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[0], "/", sets[0], "/", sets[0]));
setCombos.add(String.format("%s/%s/%s", sets[0], sets[0], sets[1])); setCombos.add(TextUtil.concatNoSpace(sets[0], "/", sets[0], "/", sets[1]));
setCombos.add(String.format("%s/%s/%s", sets[0], sets[1], sets[1])); setCombos.add(TextUtil.concatNoSpace(sets[0], "/", sets[1], "/", sets[1]));
if (sets.length >= 3) { if (sets.length >= 3) {
setCombos.add(String.format("%s/%s/%s", sets[0], sets[1], sets[2])); setCombos.add(TextUtil.concatNoSpace(sets[0], "/", sets[1], "/", sets[2]));
setCombos.add(String.format("%s/%s/%s", sets[0], sets[2], sets[2])); setCombos.add(TextUtil.concatNoSpace(sets[0], "/", sets[2], "/", sets[2]));
} }
setCombos.add(String.format("%s/%s/%s", sets[1], sets[0], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[1], "/", sets[0], "/", sets[0]));
setCombos.add(String.format("%s/%s/%s", sets[1], sets[1], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[1], "/", sets[1], "/", sets[0]));
setCombos.add(String.format("%s/%s/%s", sets[1], sets[1], sets[1])); setCombos.add(TextUtil.concatNoSpace(sets[1], "/", sets[1], "/", sets[1]));
if (sets.length >= 3) { if (sets.length >= 3) {
setCombos.add(String.format("%s/%s/%s", sets[1], sets[1], sets[2])); setCombos.add(TextUtil.concatNoSpace(sets[1], "/", sets[1], "/", sets[2]));
setCombos.add(String.format("%s/%s/%s", sets[1], sets[2], sets[2])); setCombos.add(TextUtil.concatNoSpace(sets[1], "/", sets[2], "/", sets[2]));
} }
} }
if (sets.length >= 3) { if (sets.length >= 3) {
setCombos.add(String.format("%s/%s/%s", sets[2], sets[1], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[2], "/", sets[1], "/", sets[0]));
setCombos.add(String.format("%s/%s/%s", sets[2], sets[2], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[2], "/", sets[2], "/", sets[0]));
setCombos.add(String.format("%s/%s/%s", sets[2], sets[2], sets[1])); setCombos.add(TextUtil.concatNoSpace(sets[2], "/", sets[2], "/", sets[1]));
setCombos.add(String.format("%s/%s/%s", sets[2], sets[2], sets[2])); setCombos.add(TextUtil.concatNoSpace(sets[2], "/", sets[2], "/", sets[2]));
} // Beyond 3, skimp on the choice configurations, or the list will be enormous! } // Beyond 3, skimp on the choice configurations, or the list will be enormous!
if (sets.length >= 4) { if (sets.length >= 4) {
setCombos.add(String.format("%s/%s/%s", sets[3], sets[1], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[3], "/", sets[1], "/", sets[0]));
setCombos.add(String.format("%s/%s/%s", sets[3], sets[2], sets[1])); setCombos.add(TextUtil.concatNoSpace(sets[3], "/", sets[2], "/", sets[1]));
} }
if (sets.length >= 5) { if (sets.length >= 5) {
setCombos.add(String.format("%s/%s/%s", sets[4], sets[1], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[4], "/", sets[1], "/", sets[0]));
setCombos.add(String.format("%s/%s/%s", sets[4], sets[3], sets[2])); setCombos.add(TextUtil.concatNoSpace(sets[4], "/", sets[3], "/", sets[2]));
setCombos.add(String.format("%s/%s/%s", sets[4], sets[2], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[4], "/", sets[2], "/", sets[0]));
} }
if (sets.length >= 6) { if (sets.length >= 6) {
setCombos.add(String.format("%s/%s/%s", sets[5], sets[1], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[5], "/", sets[1], "/", sets[0]));
setCombos.add(String.format("%s/%s/%s", sets[5], sets[3], sets[2])); setCombos.add(TextUtil.concatNoSpace(sets[5], "/", sets[3], "/", sets[2]));
setCombos.add(String.format("%s/%s/%s", sets[5], sets[4], sets[3])); setCombos.add(TextUtil.concatNoSpace(sets[5], "/", sets[4], "/", sets[3]));
setCombos.add(String.format("%s/%s/%s", sets[5], sets[2], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[5], "/", sets[2], "/", sets[0]));
} }
if (sets.length >= 7) { if (sets.length >= 7) {
setCombos.add(String.format("%s/%s/%s", sets[6], sets[1], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[6], "/", sets[1], "/", sets[0]));
setCombos.add(String.format("%s/%s/%s", sets[6], sets[3], sets[2])); setCombos.add(TextUtil.concatNoSpace(sets[6], "/", sets[3], "/", sets[2]));
setCombos.add(String.format("%s/%s/%s", sets[6], sets[5], sets[4])); setCombos.add(TextUtil.concatNoSpace(sets[6], "/", sets[5], "/", sets[4]));
setCombos.add(String.format("%s/%s/%s", sets[6], sets[3], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[6], "/", sets[3], "/", sets[0]));
} }
if (sets.length >= 8) { if (sets.length >= 8) {
setCombos.add(String.format("%s/%s/%s", sets[7], sets[1], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[7], "/", sets[1], "/", sets[0]));
setCombos.add(String.format("%s/%s/%s", sets[7], sets[3], sets[2])); setCombos.add(TextUtil.concatNoSpace(sets[7], "/", sets[3], "/", sets[2]));
setCombos.add(String.format("%s/%s/%s", sets[7], sets[5], sets[4])); setCombos.add(TextUtil.concatNoSpace(sets[7], "/", sets[5], "/", sets[4]));
setCombos.add(String.format("%s/%s/%s", sets[7], sets[6], sets[5])); setCombos.add(TextUtil.concatNoSpace(sets[7], "/", sets[6], "/", sets[5]));
setCombos.add(String.format("%s/%s/%s", sets[7], sets[3], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[7], "/", sets[3], "/", sets[0]));
} }
if (sets.length >= 9) { if (sets.length >= 9) {
setCombos.add(String.format("%s/%s/%s", sets[8], sets[1], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[8], "/", sets[1], "/", sets[0]));
setCombos.add(String.format("%s/%s/%s", sets[8], sets[3], sets[2])); setCombos.add(TextUtil.concatNoSpace(sets[8], "/", sets[3], "/", sets[2]));
setCombos.add(String.format("%s/%s/%s", sets[8], sets[5], sets[4])); setCombos.add(TextUtil.concatNoSpace(sets[8], "/", sets[5], "/", sets[4]));
setCombos.add(String.format("%s/%s/%s", sets[8], sets[7], sets[6])); setCombos.add(TextUtil.concatNoSpace(sets[8], "/", sets[7], "/", sets[6]));
setCombos.add(String.format("%s/%s/%s", sets[8], sets[4], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[8], "/", sets[4], "/", sets[0]));
} }
return setCombos; return setCombos;
} }

View File

@@ -280,146 +280,146 @@ public class SealedCardPoolGenerator {
if (nPacks == 3) { if (nPacks == 3) {
if (sets.length >= 2) { if (sets.length >= 2) {
setCombos.add(String.format("%s, %s, %s", sets[0], sets[0], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[0], ", ", sets[0], ", ", sets[0]));
setCombos.add(String.format("%s, %s, %s", sets[1], sets[0], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[1], ", ", sets[0], ", ", sets[0]));
setCombos.add(String.format("%s, %s, %s", sets[1], sets[1], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[1], ", ", sets[1], ", ", sets[0]));
setCombos.add(String.format("3 %s", sets[1])); setCombos.add(TextUtil.concatNoSpace("3 ", sets[1]));
} }
if (sets.length >= 3) { if (sets.length >= 3) {
setCombos.add(String.format("%s, %s, %s", sets[2], sets[0], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[2], ", ", sets[0], ", ", sets[0]));
setCombos.add(String.format("%s, %s, %s", sets[0], sets[2], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[0], ", ", sets[2], ", ", sets[0]));
setCombos.add(String.format("%s, %s, %s", sets[2], sets[2], sets[2])); setCombos.add(TextUtil.concatNoSpace(sets[2], ", ", sets[2], ", ", sets[2]));
setCombos.add(String.format("%s, %s, %s", sets[2], sets[1], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[2], ", ", sets[1], ", ", sets[0]));
} }
} }
else if (nPacks == 4) { else if (nPacks == 4) {
if (sets.length >= 2) { if (sets.length >= 2) {
setCombos.add(String.format("%s, %s, %s, %s", sets[0], sets[0], sets[0], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[0], ", ", sets[0], ", ", sets[0], ", ", sets[0]));
setCombos.add(String.format("%s, %s, %s, %s", sets[1], sets[0], sets[0], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[1], ", ", sets[0], ", ", sets[0], ", ", sets[0]));
setCombos.add(String.format("%s, %s, %s, %s", sets[1], sets[1], sets[0], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[1], ", ", sets[1], ", ", sets[0], ", ", sets[0]));
} }
if (sets.length >= 3) { if (sets.length >= 3) {
setCombos.add(String.format("%s, %s, %s, %s", sets[2], sets[2], sets[0], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[2], ", ", sets[2], ", ", sets[0], ", ", sets[0]));
setCombos.add(String.format("%s, %s, %s, %s", sets[2], sets[1], sets[0], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[2], ", ", sets[1], ", ", sets[0], ", ", sets[0]));
} }
if (sets.length >= 4) { if (sets.length >= 4) {
setCombos.add(String.format("%s, %s, %s, %s", sets[3], sets[2], sets[1], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[3], ", ", sets[2], ", ", sets[1], ", ", sets[0]));
} }
} }
else if (nPacks == 5) { else if (nPacks == 5) {
if (sets.length == 1 || !sets[0].equals(sets[1]) ) { if (sets.length == 1 || !sets[0].equals(sets[1]) ) {
setCombos.add(String.format("5 %s", sets[0])); setCombos.add(TextUtil.concatNoSpace("5 ", sets[0]));
} }
if (sets.length >= 2 && !sets[0].equals(sets[1])) { if (sets.length >= 2 && !sets[0].equals(sets[1])) {
setCombos.add(String.format("3 %s, 2 %s", sets[0], sets[1])); setCombos.add(TextUtil.concatNoSpace("3 ", sets[0], ", 2 ", sets[1]));
setCombos.add(String.format("2 %s, 3 %s", sets[0], sets[1])); setCombos.add(TextUtil.concatNoSpace("2 ", sets[0], ", 3 ", sets[1]));
} }
if (sets.length >= 3 && !sets[0].equals(sets[2])) { if (sets.length >= 3 && !sets[0].equals(sets[2])) {
setCombos.add(String.format("3 %s, 2 %s", sets[0], sets[2])); setCombos.add(TextUtil.concatNoSpace("3 ", sets[0], ", 2 ", sets[2]));
setCombos.add(String.format("3 %s, %s, %s", sets[0], sets[1], sets[2])); setCombos.add(TextUtil.concatNoSpace("3 ", sets[0], ", ", sets[1], ", ", sets[2]));
setCombos.add(String.format("2 %s, 2 %s, %s", sets[0], sets[1], sets[2])); setCombos.add(TextUtil.concatNoSpace("2 ", sets[0], ", 2 ", sets[1], ", ", sets[2]));
} }
if (sets.length >= 4) { if (sets.length >= 4) {
if( sets[1].equals(sets[2]) && sets[1].equals(sets[0])) { if( sets[1].equals(sets[2]) && sets[1].equals(sets[0])) {
setCombos.add(String.format("%s, 4 %s", sets[3], sets[0])); // for guild sealed setCombos.add(TextUtil.concatNoSpace(sets[3], ", 4 ", sets[0])); // for guild sealed
} else { } else {
setCombos.add(String.format("%s, %s, %s, 2 %s", sets[3], sets[2], sets[1], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[3], ", ", sets[2], ", ", sets[1], ", 2 ", sets[0]));
} }
} }
if (sets.length >= 5) { if (sets.length >= 5) {
setCombos.add(String.format("%s, %s, %s, %s, %s", sets[4], sets[3], sets[2], sets[1], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[4], ", ", sets[3], ", ", sets[2], ", ", sets[1], ", ", sets[0]));
} }
} }
else if (nPacks == 7 && (sets.length == 4 || sets.length >= 7)) { else if (nPacks == 7 && (sets.length == 4 || sets.length >= 7)) {
// Sorry. This whole function is awful, it really needs to be rewritten to just generate permutations // Sorry. This whole function is awful, it really needs to be rewritten to just generate permutations
if (sets.length >= 7) { if (sets.length >= 7) {
setCombos.add(String.format("%s, %s, %s, %s, %s, %s, %s", sets[6], sets[5], sets[4], sets[3], sets[2], sets[1], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[6], ", ", sets[5], ", ", sets[4], ", ", sets[3], ", ", sets[2], ", ", sets[1], ", ", sets[0]));
setCombos.add(String.format("%s, %s, %s, %s, %s, %s, %s", sets[5], sets[4], sets[3], sets[2], sets[1], sets[0], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[5], ", ", sets[4], ", ", sets[3], ", ", sets[2], ", ", sets[1], ", ", sets[0], ", ", sets[0]));
setCombos.add(String.format("%s, %s, %s, %s, %s, %s, %s", sets[4], sets[3], sets[2], sets[1], sets[1], sets[0], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[4], ", ", sets[3], ", ", sets[2], ", ", sets[1], ", ", sets[1], ", ", sets[0], ", ", sets[0]));
setCombos.add(String.format("%s, %s, %s, %s, %s, %s, %s", sets[4], sets[3], sets[2], sets[1], sets[0], sets[0], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[4], ", ", sets[3], ", ", sets[2], ", ", sets[1], ", ", sets[0], ", ", sets[0], ", ", sets[0]));
setCombos.add(String.format("%s, %s, %s, %s, %s, %s, %s", sets[3], sets[2], sets[2], sets[1], sets[1], sets[0], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[3], ", ", sets[2], ", ", sets[2], ", ", sets[1], ", ", sets[1], ", ", sets[0], ", ", sets[0]));
setCombos.add(String.format("%s, %s, %s, %s, %s, %s, %s", sets[3], sets[2], sets[1], sets[1], sets[0], sets[0], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[3], ", ", sets[2], ", ", sets[1], ", ", sets[1], ", ", sets[0], ", ", sets[0], ", ", sets[0]));
setCombos.add(String.format("%s, %s, %s, %s, %s, %s, %s", sets[3], sets[2], sets[1], sets[0], sets[0], sets[0], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[3], ", ", sets[2], ", ", sets[1], ", ", sets[0], ", ", sets[0], ", ", sets[0], ", ", sets[0]));
setCombos.add(String.format("%s, %s, %s, %s, %s, %s, %s", sets[2], sets[2], sets[1], sets[1], sets[0], sets[0], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[2], ", ", sets[2], ", ", sets[1], ", ", sets[1], ", ", sets[0], ", ", sets[0], ", ", sets[0]));
setCombos.add(String.format("%s, %s, %s, %s, %s, %s, %s", sets[2], sets[1], sets[1], sets[0], sets[0], sets[0], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[2], ", ", sets[1], ", ", sets[1], ", ", sets[0], ", ", sets[0], ", ", sets[0], ", ", sets[0]));
setCombos.add(String.format("%s, %s, %s, %s, %s, %s, %s", sets[2], sets[2], sets[2], sets[0], sets[0], sets[0], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[2], ", ", sets[2], ", ", sets[2], ", ", sets[0], ", ", sets[0], ", ", sets[0], ", ", sets[0]));
setCombos.add(String.format("%s, %s, %s, %s, %s, %s, %s", sets[1], sets[1], sets[1], sets[0], sets[0], sets[0], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[1], ", ", sets[1], ", ", sets[1], ", ", sets[0], ", ", sets[0], ", ", sets[0], ", ", sets[0]));
setCombos.add(String.format("%s, %s, %s, %s, %s, %s, %s", sets[0], sets[0], sets[0], sets[0], sets[0], sets[0], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[0], ", ", sets[0], ", ", sets[0], ", ", sets[0], ", ", sets[0], ", ", sets[0], ", ", sets[0]));
} else if (sets.length == 4) { } else if (sets.length == 4) {
if( sets[1].equals(sets[2]) && sets[1].equals(sets[0])) { if( sets[1].equals(sets[2]) && sets[1].equals(sets[0])) {
setCombos.add(String.format("%s, 6 %s", sets[3], sets[0])); // for origins sealed setCombos.add(TextUtil.concatNoSpace(sets[3], ", 6 ", sets[0])); // for origins sealed
} else { } else {
setCombos.add(String.format("%s, 2 %s, 2 %s, 2 %s", sets[3], sets[2], sets[1], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[3], ", 2 ", sets[2], ", 2 ", sets[1], ", 2 ", sets[0]));
} }
} }
} }
else if (nPacks == 8 && sets.length >= 8) { else if (nPacks == 8 && sets.length >= 8) {
setCombos.add(String.format("%s, %s, %s, %s, %s, %s, %s, %s", sets[7], sets[6], sets[5], sets[4], sets[3], sets[2], sets[1], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[7], ", ", sets[6], ", ", sets[5], ", ", sets[4], ", ", sets[3], ", ", sets[2], ", ", sets[1], ", ", sets[0]));
setCombos.add(String.format("%s, %s, %s, %s, %s, %s, %s, %s", sets[6], sets[5], sets[4], sets[3], sets[2], sets[1], sets[0], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[6], ", ", sets[5], ", ", sets[4], ", ", sets[3], ", ", sets[2], ", ", sets[1], ", ", sets[0], ", ", sets[0]));
setCombos.add(String.format("%s, %s, %s, %s, %s, %s, %s, %s", sets[5], sets[4], sets[3], sets[2], sets[1], sets[1], sets[0], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[5], ", ", sets[4], ", ", sets[3], ", ", sets[2], ", ", sets[1], ", ", sets[1], ", ", sets[0], ", ", sets[0]));
setCombos.add(String.format("%s, %s, %s, %s, %s, %s, %s, %s", sets[5], sets[4], sets[3], sets[2], sets[1], sets[0], sets[0], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[5], ", ", sets[4], ", ", sets[3], ", ", sets[2], ", ", sets[1], ", ", sets[0], ", ", sets[0], ", ", sets[0]));
setCombos.add(String.format("%s, %s, %s, %s, %s, %s, %s, %s", sets[4], sets[3], sets[2], sets[2], sets[1], sets[1], sets[0], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[4], ", ", sets[3], ", ", sets[2], ", ", sets[2], ", ", sets[1], ", ", sets[1], ", ", sets[0], ", ", sets[0]));
setCombos.add(String.format("%s, %s, %s, %s, %s, %s, %s, %s", sets[4], sets[3], sets[2], sets[1], sets[1], sets[0], sets[0], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[4], ", ", sets[3], ", ", sets[2], ", ", sets[1], ", ", sets[1], ", ", sets[0], ", ", sets[0], ", ", sets[0]));
setCombos.add(String.format("%s, %s, %s, %s, %s, %s, %s, %s", sets[4], sets[3], sets[2], sets[1], sets[0], sets[0], sets[0], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[4], ", ", sets[3], ", ", sets[2], ", ", sets[1], ", ", sets[0], ", ", sets[0], ", ", sets[0], ", ", sets[0]));
setCombos.add(String.format("%s, %s, %s, %s, %s, %s, %s, %s", sets[3], sets[3], sets[2], sets[2], sets[1], sets[1], sets[0], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[3], ", ", sets[3], ", ", sets[2], ", ", sets[2], ", ", sets[1], ", ", sets[1], ", ", sets[0], ", ", sets[0]));
setCombos.add(String.format("%s, %s, %s, %s, %s, %s, %s, %s", sets[3], sets[2], sets[2], sets[1], sets[1], sets[0], sets[0], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[3], ", ", sets[2], ", ", sets[2], ", ", sets[1], ", ", sets[1], ", ", sets[0], ", ", sets[0], ", ", sets[0]));
setCombos.add(String.format("%s, %s, %s, %s, %s, %s, %s, %s", sets[3], sets[2], sets[1], sets[1], sets[0], sets[0], sets[0], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[3], ", ", sets[2], ", ", sets[1], ", ", sets[1], ", ", sets[0], ", ", sets[0], ", ", sets[0], ", ", sets[0]));
setCombos.add(String.format("%s, %s, %s, %s, %s, %s, %s, %s", sets[3], sets[2], sets[1], sets[0], sets[0], sets[0], sets[0], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[3], ", ", sets[2], ", ", sets[1], ", ", sets[0], ", ", sets[0], ", ", sets[0], ", ", sets[0], ", ", sets[0]));
setCombos.add(String.format("%s, %s, %s, %s, %s, %s, %s, %s", sets[2], sets[2], sets[1], sets[1], sets[0], sets[0], sets[0], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[2], ", ", sets[2], ", ", sets[1], ", ", sets[1], ", ", sets[0], ", ", sets[0], ", ", sets[0], ", ", sets[0]));
setCombos.add(String.format("%s, %s, %s, %s, %s, %s, %s, %s", sets[2], sets[2], sets[2], sets[2], sets[0], sets[0], sets[0], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[2], ", ", sets[2], ", ", sets[2], ", ", sets[2], ", ", sets[0], ", ", sets[0], ", ", sets[0], ", ", sets[0]));
setCombos.add(String.format("%s, %s, %s, %s, %s, %s, %s, %s", sets[1], sets[1], sets[1], sets[1], sets[0], sets[0], sets[0], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[1], ", ", sets[1], ", ", sets[1], ", ", sets[1], ", ", sets[0], ", ", sets[0], ", ", sets[0], ", ", sets[0]));
setCombos.add(String.format("%s, %s, %s, %s, %s, %s, %s, %s", sets[0], sets[0], sets[0], sets[0], sets[0], sets[0], sets[0], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[0], ", ", sets[0], ", ", sets[0], ", ", sets[0], ", ", sets[0], ", ", sets[0], ", ", sets[0], ", ", sets[0]));
} }
else if (nPacks == 9 && sets.length >= 9) { else if (nPacks == 9 && sets.length >= 9) {
setCombos.add(String.format("%s, %s, %s, %s, %s, %s, %s, %s, %s", sets[8], sets[7], sets[6], sets[5], sets[4], sets[3], sets[2], sets[1], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[8], ", ", sets[7], ", ", sets[6], ", ", sets[5], ", ", sets[4], ", ", sets[3], ", ", sets[2], ", ", sets[1], ", ", sets[0]));
setCombos.add(String.format("%s, %s, %s, %s, %s, %s, %s, %s, %s", sets[7], sets[6], sets[5], sets[4], sets[3], sets[2], sets[1], sets[0], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[7], ", ", sets[6], ", ", sets[5], ", ", sets[4], ", ", sets[3], ", ", sets[2], ", ", sets[1], ", ", sets[0], ", ", sets[0]));
setCombos.add(String.format("%s, %s, %s, %s, %s, %s, %s, %s, %s", sets[6], sets[5], sets[4], sets[3], sets[2], sets[1], sets[1], sets[0], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[6], ", ", sets[5], ", ", sets[4], ", ", sets[3], ", ", sets[2], ", ", sets[1], ", ", sets[1], ", ", sets[0], ", ", sets[0]));
setCombos.add(String.format("%s, %s, %s, %s, %s, %s, %s, %s, %s", sets[6], sets[5], sets[4], sets[3], sets[2], sets[1], sets[0], sets[0], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[6], ", ", sets[5], ", ", sets[4], ", ", sets[3], ", ", sets[2], ", ", sets[1], ", ", sets[0], ", ", sets[0], ", ", sets[0]));
setCombos.add(String.format("%s, %s, %s, %s, %s, %s, %s, %s, %s", sets[4], sets[3], sets[3], sets[2], sets[2], sets[1], sets[1], sets[0], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[4], ", ", sets[3], ", ", sets[3], ", ", sets[2], ", ", sets[2], ", ", sets[1], ", ", sets[1], ", ", sets[0], ", ", sets[0]));
setCombos.add(String.format("%s, %s, %s, %s, %s, %s, %s, %s, %s", sets[4], sets[3], sets[2], sets[2], sets[1], sets[1], sets[0], sets[0], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[4], ", ", sets[3], ", ", sets[2], ", ", sets[2], ", ", sets[1], ", ", sets[1], ", ", sets[0], ", ", sets[0], ", ", sets[0]));
setCombos.add(String.format("%s, %s, %s, %s, %s, %s, %s, %s, %s", sets[4], sets[3], sets[2], sets[1], sets[1], sets[1], sets[0], sets[0], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[4], ", ", sets[3], ", ", sets[2], ", ", sets[1], ", ", sets[1], ", ", sets[1], ", ", sets[0], ", ", sets[0], ", ", sets[0]));
setCombos.add(String.format("%s, %s, %s, %s, %s, %s, %s, %s, %s", sets[4], sets[3], sets[2], sets[2], sets[1], sets[1], sets[0], sets[0], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[4], ", ", sets[3], ", ", sets[2], ", ", sets[2], ", ", sets[1], ", ", sets[1], ", ", sets[0], ", ", sets[0], ", ", sets[0]));
setCombos.add(String.format("%s, %s, %s, %s, %s, %s, %s, %s, %s", sets[4], sets[3], sets[2], sets[1], sets[1], sets[0], sets[0], sets[0], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[4], ", ", sets[3], ", ", sets[2], ", ", sets[1], ", ", sets[1], ", ", sets[0], ", ", sets[0], ", ", sets[0], ", ", sets[0]));
setCombos.add(String.format("%s, %s, %s, %s, %s, %s, %s, %s, %s", sets[4], sets[3], sets[2], sets[1], sets[0], sets[0], sets[0], sets[0], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[4], ", ", sets[3], ", ", sets[2], ", ", sets[1], ", ", sets[0], ", ", sets[0], ", ", sets[0], ", ", sets[0], ", ", sets[0]));
setCombos.add(String.format("%s, %s, %s, %s, %s, %s, %s, %s, %s", sets[3], sets[3], sets[2], sets[2], sets[1], sets[1], sets[0], sets[0], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[3], ", ", sets[3], ", ", sets[2], ", ", sets[2], ", ", sets[1], ", ", sets[1], ", ", sets[0], ", ", sets[0], ", ", sets[0]));
setCombos.add(String.format("%s, %s, %s, %s, %s, %s, %s, %s, %s", sets[3], sets[2], sets[2], sets[1], sets[1], sets[1], sets[0], sets[0], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[3], ", ", sets[2], ", ", sets[2], ", ", sets[1], ", ", sets[1], ", ", sets[1], ", ", sets[0], ", ", sets[0], ", ", sets[0]));
setCombos.add(String.format("%s, %s, 2 %s, 5 %s", sets[3], sets[2], sets[1], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[3], ", ", sets[2], ", 2 ", sets[1], ", 5 ", sets[0]));
setCombos.add(String.format("3 %s, 3 %s, 3 %s", sets[2], sets[1], sets[0])); setCombos.add(TextUtil.concatNoSpace("3 ", sets[2], ", 3 ", sets[1], ", 3 ", sets[0]));
setCombos.add(String.format("2 %s, 2 %s, 5 %s", sets[2], sets[1], sets[0])); setCombos.add(TextUtil.concatNoSpace("2 ", sets[2], ", 2 ", sets[1], ", 5 ", sets[0]));
setCombos.add(String.format("%s, %s, 7 %s", sets[2], sets[1], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[2], ", ", sets[1], ", 7 ", sets[0]));
setCombos.add(String.format("4 %s, 5 %s", sets[2], sets[0])); setCombos.add(TextUtil.concatNoSpace("4 ", sets[2], ", 5 ", sets[0]));
setCombos.add(String.format("4 %s, 5 %s", sets[1], sets[0])); setCombos.add(TextUtil.concatNoSpace("4 ", sets[1], ", 5 ", sets[0]));
setCombos.add(String.format("9 %s", sets[0])); setCombos.add(TextUtil.concatNoSpace("9 ", sets[0]));
} }
else { // Default to 6 packs else { // Default to 6 packs
if (sets.length == 1 || !sets[0].equals(sets[1]) ) { if (sets.length == 1 || !sets[0].equals(sets[1]) ) {
setCombos.add(String.format("6 %s", sets[0])); setCombos.add(TextUtil.concatNoSpace("6 ", sets[0]));
} }
if (sets.length >= 2 && !sets[0].equals(sets[1])) { if (sets.length >= 2 && !sets[0].equals(sets[1])) {
setCombos.add(String.format("4 %s, 2 %s", sets[0], sets[1])); setCombos.add(TextUtil.concatNoSpace("4 ", sets[0], ", 2 ", sets[1]));
setCombos.add(String.format("3 %s, 3 %s", sets[0], sets[1])); setCombos.add(TextUtil.concatNoSpace("3 ", sets[0], ", 3 ", sets[1]));
setCombos.add(String.format("2 %s, 4 %s", sets[0], sets[1])); setCombos.add(TextUtil.concatNoSpace("2 ", sets[0], ", 4 ", sets[1]));
} }
if (sets.length >= 3 && !sets[0].equals(sets[2])) { if (sets.length >= 3 && !sets[0].equals(sets[2])) {
setCombos.add(String.format("3 %s, 3 %s", sets[0], sets[2])); setCombos.add(TextUtil.concatNoSpace("3 ", sets[0], ", 3 ", sets[2]));
setCombos.add(String.format("2 %s, 2 %s, 2 %s", sets[0], sets[1], sets[2])); setCombos.add(TextUtil.concatNoSpace("2 ", sets[0], ", 2 ", sets[1], ", 2 ", sets[2]));
} }
if (sets.length >= 4) { if (sets.length >= 4) {
if ( sets[1].equals(sets[2]) && sets[1].equals(sets[0])) { if ( sets[1].equals(sets[2]) && sets[1].equals(sets[0])) {
setCombos.add(String.format("%s, 5 %s", sets[3], sets[0])); // for guild sealed setCombos.add(TextUtil.concatNoSpace(sets[3], ", 5 ", sets[0])); // for guild sealed
} }
else { else {
setCombos.add(String.format("%s, %s, %s, 3 %s", sets[3], sets[2], sets[1], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[3], ", ", sets[2], ", ", sets[1], ", 3 ", sets[0]));
setCombos.add(String.format("%s, %s, 2 %s, 2 %s", sets[3], sets[2], sets[1], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[3], ", ", sets[2], ", 2 ", sets[1], ", 2 ", sets[0]));
} }
} }
if (sets.length >= 5) { if (sets.length >= 5) {
setCombos.add(String.format("%s, %s, %s, %s, 2 %s", sets[4], sets[3], sets[2], sets[1], sets[0])); setCombos.add(TextUtil.concatNoSpace(sets[4], ", ", sets[3], ", ", sets[2], ", ", sets[1], ", 2 ", sets[0]));
} }
if (sets.length >= 6) { if (sets.length >= 6) {
setCombos.add(String.format("%s, %s, %s, %s, %s, %s", sets[5], sets[4], sets[3], sets[2], sets[1], sets[0])); setCombos.add(TextUtil.concatNoSpace( sets[5], ", ", sets[4], ", ", sets[3], ", ", sets[2], ", ", sets[1], ", ", sets[0]));
} }
} }
return setCombos; return setCombos;

View File

@@ -8,6 +8,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import forge.util.TextUtil;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
@@ -305,16 +306,16 @@ public abstract class GameLobby implements IHasGameType {
for (final LobbySlot slot : activeSlots) { for (final LobbySlot slot : activeSlots) {
if (!slot.isReady() && slot.getType() != LobbySlotType.OPEN) { if (!slot.isReady() && slot.getType() != LobbySlotType.OPEN) {
SOptionPane.showMessageDialog(String.format("Player %s is not ready", slot.getName())); SOptionPane.showMessageDialog(TextUtil.concatNoSpace("Player ", slot.getName(), " is not ready"));
return null; return null;
} }
if (slot.getDeck() == null) { if (slot.getDeck() == null) {
SOptionPane.showMessageDialog(String.format("Please specify a deck for %s", slot.getName())); SOptionPane.showMessageDialog(TextUtil.concatNoSpace("Please specify a deck for ", slot.getName()));
return null; return null;
} }
if (hasVariant(GameType.Commander) || hasVariant(GameType.TinyLeaders)) { if (hasVariant(GameType.Commander) || hasVariant(GameType.TinyLeaders)) {
if (!slot.getDeck().has(DeckSection.Commander)) { if (!slot.getDeck().has(DeckSection.Commander)) {
SOptionPane.showMessageDialog(String.format("%s doesn't have a commander", slot.getName())); SOptionPane.showMessageDialog(TextUtil.concatNoSpace(slot.getName(), " doesn't have a commander"));
return null; return null;
} }
} }

View File

@@ -8,6 +8,7 @@ import java.util.Map;
import java.util.Map.Entry; import java.util.Map.Entry;
import java.util.Set; import java.util.Set;
import forge.util.TextUtil;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap;
@@ -112,9 +113,9 @@ public class HostedMatch {
}); });
if (sortedPlayers.size() == 2) { if (sortedPlayers.size() == 2) {
title = String.format("%s vs %s", sortedPlayers.get(0).getPlayer().getName(), sortedPlayers.get(1).getPlayer().getName()); title = TextUtil.concatNoSpace(sortedPlayers.get(0).getPlayer().getName(), " vs ", sortedPlayers.get(1).getPlayer().getName());
} else { } else {
title = String.format("Multiplayer Game (%d players)", sortedPlayers.size()); title = TextUtil.concatNoSpace("Multiplayer Game (", String.valueOf(sortedPlayers.size()), " players)");
} }
this.match = new Match(gameRules, sortedPlayers, title); this.match = new Match(gameRules, sortedPlayers, title);
startGame(); startGame();

View File

@@ -7,6 +7,7 @@ import java.util.List;
import java.util.Queue; import java.util.Queue;
import forge.game.GameActionUtil; import forge.game.GameActionUtil;
import forge.util.TextUtil;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import forge.FThreads; import forge.FThreads;
@@ -460,7 +461,7 @@ public abstract class InputPayMana extends InputSyncronizedBase {
@Override @Override
public String toString() { public String toString() {
return String.format("PayManaBase %s left", manaCost.toString()); return TextUtil.concatNoSpace("PayManaBase ", manaCost.toString(), " left");
} }
public boolean isPaid() { return bPaid; } public boolean isPaid() { return bPaid; }

View File

@@ -6,6 +6,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Map.Entry; import java.util.Map.Entry;
import forge.util.TextUtil;
import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.ImmutablePair;
import forge.model.FModel; import forge.model.FModel;
@@ -51,7 +52,7 @@ public final class InputSelectCardsForConvokeOrImprovise extends InputSelectMany
sa != null ) { sa != null ) {
sb.append(sa.getStackDescription()).append("\n"); sb.append(sa.getStackDescription()).append("\n");
} }
sb.append(String.format("Choose %s to tap for %s .\nRemaining mana cost is %s", cardType, description, remainingCost.toString())); sb.append(TextUtil.concatNoSpace("Choose ", cardType, " to tap for ", description, " .\nRemaining mana cost is ", remainingCost.toString()));
return sb.toString(); return sb.toString();
} }
@@ -104,7 +105,7 @@ public final class InputSelectCardsForConvokeOrImprovise extends InputSelectMany
@Override @Override
public String getActivateAction(final Card card) { public String getActivateAction(final Card card) {
if (availableCards.contains(card)) { if (availableCards.contains(card)) {
return String.format("tap %s for %s", cardType, description); return TextUtil.concatNoSpace("tap ", cardType, " for ", description);
} }
return null; return null;
} }

View File

@@ -55,16 +55,18 @@ public final class InputSelectTargets extends InputSyncronizedBase {
// sb.append(sa.getStackDescription().replace("(Targeting ERROR)", "")).append("\n").append(tgt.getVTSelection()); // sb.append(sa.getStackDescription().replace("(Targeting ERROR)", "")).append("\n").append(tgt.getVTSelection());
// Apparently <b>...</b> tags do not work in mobile Forge, so don't include them (for now) // Apparently <b>...</b> tags do not work in mobile Forge, so don't include them (for now)
sb.append(sa.getHostCard().toString()).append(" - "); sb.append(sa.getHostCard().toString()).append(" - ");
sb.append(sa.toString()).append("\n\n").append(tgt.getVTSelection()); sb.append(sa.toString()).append("\n");
if(!ForgeConstants.isGdxPortLandscape)
sb.append("\n");
sb.append(tgt.getVTSelection());
} else { } else {
sb.append(sa.getHostCard()).append(" - ").append(tgt.getVTSelection()); sb.append(sa.getHostCard()).append(" - ").append(tgt.getVTSelection());
} }
if (!targetDepth.entrySet().isEmpty()) { if (!targetDepth.entrySet().isEmpty()) {
sb.append("\nTargeted:"); sb.append("\nTargeted: ");
} }
for (final Entry<GameEntity, Integer> o : targetDepth.entrySet()) { for (final Entry<GameEntity, Integer> o : targetDepth.entrySet()) {
//if it's not in gdx port landscape mode, append the linebreak or it will make the android port //if it's not in gdx port landscape mode, append the linebreak
// display smaller fonts consecutively when targeting with multiple targets
if(!ForgeConstants.isGdxPortLandscape) if(!ForgeConstants.isGdxPortLandscape)
sb.append("\n"); sb.append("\n");
sb.append(o.getKey()); sb.append(o.getKey());