mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-16 02:38:02 +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.Battlefield));
|
||||||
all.addAll(player.getCardsIn(ZoneType.Exile));
|
all.addAll(player.getCardsIn(ZoneType.Exile));
|
||||||
all.addAll(player.getCardsIn(ZoneType.Graveyard));
|
all.addAll(player.getCardsIn(ZoneType.Graveyard));
|
||||||
|
all.addAll(player.getCardsIn(ZoneType.Command));
|
||||||
if (!player.getCardsIn(ZoneType.Library).isEmpty()) {
|
if (!player.getCardsIn(ZoneType.Library).isEmpty()) {
|
||||||
all.add(player.getCardsIn(ZoneType.Library).get(0));
|
all.add(player.getCardsIn(ZoneType.Library).get(0));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -120,18 +120,16 @@ public enum CSubmenuVanguard implements ICDoc {
|
|||||||
LobbyPlayer humanPlayer = lobby.findLocalPlayer(PlayerType.HUMAN);
|
LobbyPlayer humanPlayer = lobby.findLocalPlayer(PlayerType.HUMAN);
|
||||||
LobbyPlayer aiPlayer = lobby.findLocalPlayer(PlayerType.COMPUTER);
|
LobbyPlayer aiPlayer = lobby.findLocalPlayer(PlayerType.COMPUTER);
|
||||||
|
|
||||||
PlayerStartConditions aiCond = new PlayerStartConditions(aiDeck);
|
|
||||||
PlayerStartConditions humanCond = new PlayerStartConditions(humanDeck);
|
|
||||||
|
|
||||||
MatchStartHelper helper = new MatchStartHelper();
|
MatchStartHelper helper = new MatchStartHelper();
|
||||||
|
|
||||||
final CardPrinted aiVanguard,humanVanguard;
|
final CardPrinted aiVanguard,humanVanguard;
|
||||||
Iterable<CardPrinted> all = VSubmenuVanguard.SINGLETON_INSTANCE.getAllAvatars();
|
Iterable<CardPrinted> all = VSubmenuVanguard.SINGLETON_INSTANCE.getAllAvatars();
|
||||||
|
Iterable<CardPrinted> aiAll = VSubmenuVanguard.SINGLETON_INSTANCE.getAllAiAvatars();
|
||||||
if(selAiAv instanceof String)
|
if(selAiAv instanceof String)
|
||||||
{
|
{
|
||||||
//Random is the only string in the list so grab a random avatar.
|
//Random is the only string in the list so grab a random avatar.
|
||||||
Random r = new Random();
|
Random r = new Random();
|
||||||
aiVanguard = Iterables.get(all,r.nextInt(Iterables.size(all)));
|
aiVanguard = Iterables.get(aiAll,r.nextInt(Iterables.size(all)));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package forge.gui.home.variant;
|
package forge.gui.home.variant;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Vector;
|
import java.util.Vector;
|
||||||
|
|
||||||
import javax.swing.JButton;
|
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 Predicate<CardPrinted> avatarTypePred = CardPrinted.Predicates.type("Vanguard");
|
||||||
private final Iterable<CardPrinted> allAvatars = Iterables.filter(CardDb.instance().getAllCards(), avatarTypePred);
|
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()
|
private final FLabel lblAvatarHuman = new FLabel.Builder()
|
||||||
.text("Human avatar:")
|
.text("Human avatar:")
|
||||||
@@ -83,17 +86,22 @@ public enum VSubmenuVanguard implements IVSubmenu<CSubmenuVanguard> {
|
|||||||
|
|
||||||
lblTitle.setBackground(FSkin.getColor(FSkin.Colors.CLR_THEME2));
|
lblTitle.setBackground(FSkin.getColor(FSkin.Colors.CLR_THEME2));
|
||||||
|
|
||||||
Predicate<CardPrinted> typePred = CardPrinted.Predicates.type("Vanguard");
|
Vector<Object> humanListData = new Vector<Object>();
|
||||||
|
Vector<Object> aiListData = new Vector<Object>();
|
||||||
Vector<Object> listData = new Vector<Object>();
|
humanListData.add("Random");
|
||||||
listData.add("Random");
|
aiListData.add("Random");
|
||||||
for(CardPrinted cp : Iterables.filter(CardDb.instance().getAllCards(), typePred))
|
for(CardPrinted cp : allAvatars)
|
||||||
{
|
{
|
||||||
listData.add(cp);
|
humanListData.add(cp);
|
||||||
|
if(!cp.getCard().getRemAIDecks())
|
||||||
|
{
|
||||||
|
aiListData.add(cp);
|
||||||
|
allAiAvatars.add(cp);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
avHuman.setListData(listData);
|
avHuman.setListData(humanListData);
|
||||||
avAi.setListData(listData);
|
avAi.setListData(aiListData);
|
||||||
avHuman.setSelectedIndex(0);
|
avHuman.setSelectedIndex(0);
|
||||||
avAi.setSelectedIndex(0);
|
avAi.setSelectedIndex(0);
|
||||||
|
|
||||||
@@ -247,4 +255,11 @@ public enum VSubmenuVanguard implements IVSubmenu<CSubmenuVanguard> {
|
|||||||
public Iterable<CardPrinted> getAllAvatars() {
|
public Iterable<CardPrinted> getAllAvatars() {
|
||||||
return allAvatars;
|
return allAvatars;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the allAiAvatars
|
||||||
|
*/
|
||||||
|
public List<CardPrinted> getAllAiAvatars() {
|
||||||
|
return allAiAvatars;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user