mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-18 19:58:00 +00:00
*Added [avatar] decksection (for deck-default vanguard avatars)
This commit is contained in:
@@ -63,6 +63,7 @@ public class Deck extends DeckBase {
|
||||
|
||||
private final DeckSection main;
|
||||
private final DeckSection sideboard;
|
||||
private CardPrinted avatar;
|
||||
private CardPrinted commander;
|
||||
private final DeckSection planes;
|
||||
private final DeckSection schemes;
|
||||
@@ -86,6 +87,7 @@ public class Deck extends DeckBase {
|
||||
super(name0);
|
||||
this.main = new DeckSection();
|
||||
this.sideboard = new DeckSection();
|
||||
this.avatar = null;
|
||||
this.commander = null;
|
||||
this.planes = new DeckSection();
|
||||
this.schemes = new DeckSection();
|
||||
@@ -150,6 +152,8 @@ public class Deck extends DeckBase {
|
||||
final Deck result = (Deck) clone;
|
||||
result.main.addAll(this.main);
|
||||
result.sideboard.addAll(this.sideboard);
|
||||
result.avatar = this.avatar;
|
||||
result.commander = this.commander;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -207,6 +211,9 @@ public class Deck extends DeckBase {
|
||||
List<String> cmd = Deck.readCardList(sections.get("commander"));
|
||||
String cmdName = cmd.isEmpty() ? null : cmd.get(0);
|
||||
d.commander = CardDb.instance().isCardSupported(cmdName) ? CardDb.instance().getCard(cmdName) : null;
|
||||
List<String> av = Deck.readCardList(sections.get("avatar"));
|
||||
String avName = av.isEmpty() ? null : av.get(0);
|
||||
d.avatar = CardDb.instance().isCardSupported(avName) ? CardDb.instance().getCard(avName) : null;
|
||||
d.getPlanes().set(Deck.readCardList(sections.get("planes")));
|
||||
d.getSchemes().set(Deck.readCardList(sections.get("schemes")));
|
||||
return d;
|
||||
@@ -290,6 +297,10 @@ public class Deck extends DeckBase {
|
||||
out.add(String.format("%s", "[commander]"));
|
||||
out.add(Deck.serializeSingleCard(getCommander(), 1));
|
||||
}
|
||||
if (getAvatar() != null) {
|
||||
out.add(String.format("%s", "[avatar]"));
|
||||
out.add(Deck.serializeSingleCard(getAvatar(), 1));
|
||||
}
|
||||
|
||||
out.add(String.format("%s", "[planes]"));
|
||||
out.addAll(Deck.writeCardPool(this.getPlanes()));
|
||||
@@ -424,6 +435,13 @@ public class Deck extends DeckBase {
|
||||
return schemes;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the avatar
|
||||
*/
|
||||
public CardPrinted getAvatar() {
|
||||
return avatar;
|
||||
}
|
||||
|
||||
public static final Function<Deck, String> FN_NAME_SELECTOR = new Function<Deck, String>() {
|
||||
@Override
|
||||
public String apply(Deck arg1) {
|
||||
|
||||
@@ -115,6 +115,9 @@ public enum CSubmenuVanguard implements ICDoc {
|
||||
@Override
|
||||
public Object doInBackground() {
|
||||
Random rnd = new Random();
|
||||
String nl = System.getProperty("line.separator");
|
||||
boolean usedDefaults = false;
|
||||
StringBuilder defaultAvatarInfo = new StringBuilder("The following decks will use a default avatar:" + nl);
|
||||
|
||||
List<Deck> playerDecks = new ArrayList<Deck>();
|
||||
for (int i = 0; i < view.getNumPlayers(); i++) {
|
||||
@@ -132,17 +135,31 @@ public enum CSubmenuVanguard implements ICDoc {
|
||||
for (int i = 0; i < view.getNumPlayers(); i++) {
|
||||
CardPrinted avatar = null;
|
||||
Object obj = view.getAvatarLists().get(i).getSelectedValue();
|
||||
if (obj instanceof String) {
|
||||
//Random is the only string in the list so grab a random avatar.
|
||||
if (i == 0) {
|
||||
//HUMAN
|
||||
avatar = Iterables.get(view.getAllAvatars(), rnd.nextInt(Iterables.size(view.getNonRandomHumanAvatars())));
|
||||
|
||||
boolean useDefault = VSubmenuVanguard.SINGLETON_INSTANCE.getCbDefaultAvatars().isSelected();
|
||||
useDefault &= playerDecks.get(i).getAvatar() != null;
|
||||
|
||||
if(useDefault)
|
||||
{
|
||||
avatar = playerDecks.get(i).getAvatar();
|
||||
defaultAvatarInfo.append("Player " + (i+1) + ": ");
|
||||
defaultAvatarInfo.append(avatar.getName() + nl);
|
||||
usedDefaults = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (obj instanceof String) {
|
||||
//Random is the only string in the list so grab a random avatar.
|
||||
if (i == 0) {
|
||||
//HUMAN
|
||||
avatar = Iterables.get(view.getAllAvatars(), rnd.nextInt(Iterables.size(view.getNonRandomHumanAvatars())));
|
||||
} else {
|
||||
//AI
|
||||
avatar = Iterables.get(view.getAllAiAvatars(), rnd.nextInt(Iterables.size(view.getNonRandomAiAvatars())));
|
||||
}
|
||||
} else {
|
||||
//AI
|
||||
avatar = Iterables.get(view.getAllAiAvatars(), rnd.nextInt(Iterables.size(view.getNonRandomAiAvatars())));
|
||||
avatar = (CardPrinted) obj;
|
||||
}
|
||||
} else {
|
||||
avatar = (CardPrinted) obj;
|
||||
}
|
||||
if (avatar == null) {
|
||||
//ERROR!
|
||||
@@ -151,6 +168,11 @@ public enum CSubmenuVanguard implements ICDoc {
|
||||
}
|
||||
playerAvatars.add(avatar);
|
||||
}
|
||||
|
||||
if(usedDefaults)
|
||||
{
|
||||
GameActionUtil.showInfoDialg(defaultAvatarInfo.toString());
|
||||
}
|
||||
|
||||
Lobby lobby = Singletons.getControl().getLobby();
|
||||
MatchStartHelper helper = new MatchStartHelper();
|
||||
|
||||
@@ -77,6 +77,7 @@ public enum VSubmenuVanguard implements IVSubmenu<CSubmenuVanguard> {
|
||||
|
||||
private final List<JRadioButton> fieldRadios = new ArrayList<JRadioButton>();
|
||||
private final ButtonGroup grpFields = new ButtonGroup();
|
||||
private final FCheckBox cbDefaultAvatars = new FCheckBox("Use deck-default avatars if possible.");
|
||||
private int currentNumTabsShown = 8;
|
||||
|
||||
//////////////////////////////
|
||||
@@ -140,6 +141,7 @@ public enum VSubmenuVanguard implements IVSubmenu<CSubmenuVanguard> {
|
||||
}
|
||||
settingsPanel.add(radioPane);
|
||||
settingsPanel.add(new FLabel.Builder().text("Set number of opponents").build());
|
||||
settingsPanel.add(cbDefaultAvatars);
|
||||
tabPane.add("Settings", settingsPanel);
|
||||
|
||||
//Player panels (Human + 7 AIs)
|
||||
@@ -351,4 +353,11 @@ public enum VSubmenuVanguard implements IVSubmenu<CSubmenuVanguard> {
|
||||
public List<CardPrinted> getNonRandomAiAvatars() {
|
||||
return nonRandomAiAvatars;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the cbDefaultAvatars
|
||||
*/
|
||||
public FCheckBox getCbDefaultAvatars() {
|
||||
return cbDefaultAvatars;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user