mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 10:48:00 +00:00
*Variants: Removed avatars with RemAiDeck:True from AI's avatar list.
*Variants: Made AI aware of the avatar.
This commit is contained in:
@@ -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));
|
||||
}
|
||||
|
||||
@@ -120,18 +120,16 @@ public enum CSubmenuVanguard implements ICDoc {
|
||||
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<CardPrinted> all = VSubmenuVanguard.SINGLETON_INSTANCE.getAllAvatars();
|
||||
Iterable<CardPrinted> 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
|
||||
{
|
||||
|
||||
@@ -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<CSubmenuVanguard> {
|
||||
|
||||
private final Predicate<CardPrinted> avatarTypePred = CardPrinted.Predicates.type("Vanguard");
|
||||
private final Iterable<CardPrinted> allAvatars = Iterables.filter(CardDb.instance().getAllCards(), avatarTypePred);
|
||||
private final List<CardPrinted> allAiAvatars = new ArrayList<CardPrinted>();
|
||||
|
||||
private final FLabel lblAvatarHuman = new FLabel.Builder()
|
||||
.text("Human avatar:")
|
||||
@@ -83,17 +86,22 @@ public enum VSubmenuVanguard implements IVSubmenu<CSubmenuVanguard> {
|
||||
|
||||
lblTitle.setBackground(FSkin.getColor(FSkin.Colors.CLR_THEME2));
|
||||
|
||||
Predicate<CardPrinted> typePred = CardPrinted.Predicates.type("Vanguard");
|
||||
|
||||
Vector<Object> listData = new Vector<Object>();
|
||||
listData.add("Random");
|
||||
for(CardPrinted cp : Iterables.filter(CardDb.instance().getAllCards(), typePred))
|
||||
Vector<Object> humanListData = new Vector<Object>();
|
||||
Vector<Object> aiListData = new Vector<Object>();
|
||||
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<CSubmenuVanguard> {
|
||||
public Iterable<CardPrinted> getAllAvatars() {
|
||||
return allAvatars;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the allAiAvatars
|
||||
*/
|
||||
public List<CardPrinted> getAllAiAvatars() {
|
||||
return allAiAvatars;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user