diff --git a/src/main/java/forge/game/player/ComputerAIGeneral.java b/src/main/java/forge/game/player/ComputerAIGeneral.java index e70fd4ac69c..6c87cf4a914 100644 --- a/src/main/java/forge/game/player/ComputerAIGeneral.java +++ b/src/main/java/forge/game/player/ComputerAIGeneral.java @@ -139,6 +139,7 @@ public class ComputerAIGeneral implements Computer { all.addAll(player.getCardsIn(ZoneType.Battlefield)); all.addAll(player.getCardsIn(ZoneType.Exile)); all.addAll(player.getCardsIn(ZoneType.Graveyard)); + all.addAll(player.getCardsIn(ZoneType.Command)); if (!player.getCardsIn(ZoneType.Library).isEmpty()) { all.add(player.getCardsIn(ZoneType.Library).get(0)); } diff --git a/src/main/java/forge/gui/home/variant/CSubmenuVanguard.java b/src/main/java/forge/gui/home/variant/CSubmenuVanguard.java index e335984ea51..00ddc1ed597 100644 --- a/src/main/java/forge/gui/home/variant/CSubmenuVanguard.java +++ b/src/main/java/forge/gui/home/variant/CSubmenuVanguard.java @@ -119,19 +119,17 @@ public enum CSubmenuVanguard implements ICDoc { Lobby lobby = Singletons.getControl().getLobby(); LobbyPlayer humanPlayer = lobby.findLocalPlayer(PlayerType.HUMAN); LobbyPlayer aiPlayer = lobby.findLocalPlayer(PlayerType.COMPUTER); - - PlayerStartConditions aiCond = new PlayerStartConditions(aiDeck); - PlayerStartConditions humanCond = new PlayerStartConditions(humanDeck); - + MatchStartHelper helper = new MatchStartHelper(); final CardPrinted aiVanguard,humanVanguard; Iterable all = VSubmenuVanguard.SINGLETON_INSTANCE.getAllAvatars(); + Iterable aiAll = VSubmenuVanguard.SINGLETON_INSTANCE.getAllAiAvatars(); if(selAiAv instanceof String) { //Random is the only string in the list so grab a random avatar. Random r = new Random(); - aiVanguard = Iterables.get(all,r.nextInt(Iterables.size(all))); + aiVanguard = Iterables.get(aiAll,r.nextInt(Iterables.size(all))); } else { diff --git a/src/main/java/forge/gui/home/variant/VSubmenuVanguard.java b/src/main/java/forge/gui/home/variant/VSubmenuVanguard.java index 45cfe340117..021c212ff4e 100644 --- a/src/main/java/forge/gui/home/variant/VSubmenuVanguard.java +++ b/src/main/java/forge/gui/home/variant/VSubmenuVanguard.java @@ -1,6 +1,8 @@ package forge.gui.home.variant; +import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import java.util.Vector; import javax.swing.JButton; @@ -69,6 +71,7 @@ public enum VSubmenuVanguard implements IVSubmenu { private final Predicate avatarTypePred = CardPrinted.Predicates.type("Vanguard"); private final Iterable allAvatars = Iterables.filter(CardDb.instance().getAllCards(), avatarTypePred); + private final List allAiAvatars = new ArrayList(); private final FLabel lblAvatarHuman = new FLabel.Builder() .text("Human avatar:") @@ -83,17 +86,22 @@ public enum VSubmenuVanguard implements IVSubmenu { lblTitle.setBackground(FSkin.getColor(FSkin.Colors.CLR_THEME2)); - Predicate typePred = CardPrinted.Predicates.type("Vanguard"); - - Vector listData = new Vector(); - listData.add("Random"); - for(CardPrinted cp : Iterables.filter(CardDb.instance().getAllCards(), typePred)) + Vector humanListData = new Vector(); + Vector aiListData = new Vector(); + humanListData.add("Random"); + aiListData.add("Random"); + for(CardPrinted cp : allAvatars) { - listData.add(cp); + humanListData.add(cp); + if(!cp.getCard().getRemAIDecks()) + { + aiListData.add(cp); + allAiAvatars.add(cp); + } } - avHuman.setListData(listData); - avAi.setListData(listData); + avHuman.setListData(humanListData); + avAi.setListData(aiListData); avHuman.setSelectedIndex(0); avAi.setSelectedIndex(0); @@ -247,4 +255,11 @@ public enum VSubmenuVanguard implements IVSubmenu { public Iterable getAllAvatars() { return allAvatars; } + + /** + * @return the allAiAvatars + */ + public List getAllAiAvatars() { + return allAiAvatars; + } }