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