*Moved common functionality of Trigger and ReplacementEffect into base class.

This commit is contained in:
Hellfish
2014-02-09 13:56:04 +00:00
parent e9da0ec519
commit a54a0ba985
808 changed files with 3451 additions and 6003 deletions

View File

@@ -17,33 +17,17 @@
*/ */
package forge; package forge;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Comparator;
import java.util.Enumeration;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
import java.util.concurrent.Callable;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Future;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import org.apache.commons.lang3.time.StopWatch;
import forge.card.CardRules; import forge.card.CardRules;
import forge.util.FileUtil; import forge.util.FileUtil;
import forge.util.ThreadUtil; import forge.util.ThreadUtil;
import org.apache.commons.lang3.time.StopWatch;
import java.io.*;
import java.nio.charset.Charset;
import java.util.*;
import java.util.concurrent.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
/** /**
* <p> * <p>

View File

@@ -1,9 +1,5 @@
package forge; package forge;
import java.io.File;
import java.util.Map;
import java.util.TreeMap;
import forge.card.CardDb; import forge.card.CardDb;
import forge.card.CardEdition; import forge.card.CardEdition;
import forge.card.CardRules; import forge.card.CardRules;
@@ -13,6 +9,10 @@ import forge.item.SealedProduct;
import forge.util.storage.IStorage; import forge.util.storage.IStorage;
import forge.util.storage.StorageBase; import forge.util.storage.StorageBase;
import java.io.File;
import java.util.Map;
import java.util.TreeMap;
/** /**
* The class holding game invariants, such as cards, editions, game formats. All that data, which is not supposed to be changed by player * The class holding game invariants, such as cards, editions, game formats. All that data, which is not supposed to be changed by player

View File

@@ -17,31 +17,22 @@
*/ */
package forge.card; package forge.card;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.Pair;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import com.google.common.base.Predicates; import com.google.common.base.Predicates;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import forge.StaticData; import forge.StaticData;
import forge.card.CardEdition.FoilType; import forge.card.CardEdition.FoilType;
import forge.item.PaperCard;
import forge.item.IPaperCard; import forge.item.IPaperCard;
import forge.item.PaperCard;
import forge.item.SealedProduct; import forge.item.SealedProduct;
import forge.util.Aggregates; import forge.util.Aggregates;
import forge.util.MyRandom; import forge.util.MyRandom;
import forge.util.TextUtil; import forge.util.TextUtil;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.Pair;
import java.util.*;
/** /**
* <p> * <p>

View File

@@ -17,35 +17,20 @@
*/ */
package forge.card; package forge.card;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.Pair;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
import com.google.common.collect.ListMultimap; import com.google.common.collect.ListMultimap;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Multimaps; import com.google.common.collect.Multimaps;
import forge.card.CardEdition.CardInSet; import forge.card.CardEdition.CardInSet;
import forge.card.CardEdition.Type; import forge.card.CardEdition.Type;
import forge.item.PaperCard; import forge.item.PaperCard;
import forge.util.Aggregates; import forge.util.*;
import forge.util.CollectionSuppliers; import org.apache.commons.lang3.StringUtils;
import forge.util.Lang; import org.apache.commons.lang3.tuple.Pair;
import forge.util.MyRandom;
import forge.util.TextUtil; import java.util.*;
import java.util.Map.Entry;
public final class CardDb implements ICardDatabase { public final class CardDb implements ICardDatabase {
public final static String foilSuffix = "+"; public final static String foilSuffix = "+";

View File

@@ -17,29 +17,10 @@
*/ */
package forge.card; package forge.card;
import java.io.File;
import java.io.FilenameFilter;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap;
import org.apache.commons.lang3.StringUtils;
import com.google.common.base.Function; import com.google.common.base.Function;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import forge.StaticData; import forge.StaticData;
import forge.card.CardDb.SetPreference; import forge.card.CardDb.SetPreference;
import forge.deck.CardPool; import forge.deck.CardPool;
@@ -52,6 +33,14 @@ import forge.util.IItemReader;
import forge.util.storage.StorageBase; import forge.util.storage.StorageBase;
import forge.util.storage.StorageReaderBase; import forge.util.storage.StorageReaderBase;
import forge.util.storage.StorageReaderFolder; import forge.util.storage.StorageReaderFolder;
import org.apache.commons.lang3.StringUtils;
import java.io.File;
import java.io.FilenameFilter;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.Map.Entry;
/** /**

View File

@@ -1,15 +1,10 @@
package forge.card; package forge.card;
import java.util.ArrayList; import forge.card.mana.ManaCost;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.TreeMap;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import forge.card.mana.ManaCost; import java.util.*;
import java.util.Map.Entry;
// //
// DO NOT AUTOFORMAT / CHECKSTYLE THIS FILE // DO NOT AUTOFORMAT / CHECKSTYLE THIS FILE

View File

@@ -17,14 +17,13 @@
*/ */
package forge.card; package forge.card;
import java.util.List;
import java.util.StringTokenizer;
import org.apache.commons.lang3.StringUtils;
import forge.card.mana.IParserManaCost; import forge.card.mana.IParserManaCost;
import forge.card.mana.ManaCost; import forge.card.mana.ManaCost;
import forge.card.mana.ManaCostShard; import forge.card.mana.ManaCostShard;
import org.apache.commons.lang3.StringUtils;
import java.util.List;
import java.util.StringTokenizer;
/** /**
* A collection of methods containing full * A collection of methods containing full

View File

@@ -1,15 +1,14 @@
package forge.card; package forge.card;
import java.util.ArrayList;
import java.util.List;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import com.google.common.base.Predicates; import com.google.common.base.Predicates;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
import forge.util.ComparableOp; import forge.util.ComparableOp;
import forge.util.PredicateString; import forge.util.PredicateString;
import java.util.ArrayList;
import java.util.List;
/** /**
* Filtering conditions specific for CardRules class, defined here along with * Filtering conditions specific for CardRules class, defined here along with
* some presets. * some presets.

View File

@@ -17,13 +17,13 @@
*/ */
package forge.card; package forge.card;
import org.apache.commons.lang3.StringUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.EnumSet; import java.util.EnumSet;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import org.apache.commons.lang3.StringUtils;
/** /**
* <p> * <p>
* Immutable Card type. Can be built only from parsing a string. * Immutable Card type. Can be built only from parsing a string.

View File

@@ -17,14 +17,13 @@
*/ */
package forge.card; package forge.card;
import java.util.Iterator;
import java.util.NoSuchElementException;
import com.google.common.collect.UnmodifiableIterator; import com.google.common.collect.UnmodifiableIterator;
import forge.card.mana.ManaCost; import forge.card.mana.ManaCost;
import forge.util.BinaryUtil; import forge.util.BinaryUtil;
import java.util.Iterator;
import java.util.NoSuchElementException;
/** /**
* <p>CardColor class.</p> * <p>CardColor class.</p>
* <p>Represents a set of any number of colors out of 5 possible in the game</p> * <p>Represents a set of any number of colors out of 5 possible in the game</p>

View File

@@ -1,18 +1,17 @@
package forge.card; package forge.card;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import com.google.common.base.Function; import com.google.common.base.Function;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import com.google.common.base.Predicates; import com.google.common.base.Predicates;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import forge.item.PaperCard; import forge.item.PaperCard;
import forge.util.PredicateString.StringOp; import forge.util.PredicateString.StringOp;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
/** /**
* DeckHints provides the ability for a Card to "want" another Card or type of * DeckHints provides the ability for a Card to "want" another Card or type of
* Cards in its random deck. * Cards in its random deck.

View File

@@ -1,14 +1,13 @@
package forge.card; package forge.card;
import com.google.common.base.Predicate;
import forge.card.CardDb.SetPreference;
import forge.item.PaperCard;
import java.util.Collection; import java.util.Collection;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import com.google.common.base.Predicate;
import forge.card.CardDb.SetPreference;
import forge.item.PaperCard;
public interface ICardDatabase extends Iterable<PaperCard> { public interface ICardDatabase extends Iterable<PaperCard> {
PaperCard getCard(String cardName); PaperCard getCard(String cardName);
PaperCard getCard(String cardName, String edition); PaperCard getCard(String cardName, String edition);

View File

@@ -1,11 +1,10 @@
package forge.card; package forge.card;
import java.util.List;
import com.google.common.base.Supplier; import com.google.common.base.Supplier;
import forge.item.PaperCard; import forge.item.PaperCard;
import java.util.List;
/** /**
* TODO: Write javadoc for this type. * TODO: Write javadoc for this type.
* *

View File

@@ -1,9 +1,9 @@
package forge.card; package forge.card;
import java.util.List;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import java.util.List;
/** /**
* Holds byte values for each color magic has. * Holds byte values for each color magic has.
* *

View File

@@ -1,19 +1,18 @@
package forge.card; package forge.card;
import java.io.File;
import java.util.List;
import java.util.Map.Entry;
import java.util.ArrayList;
import java.util.Collection;
import com.google.common.base.Function; import com.google.common.base.Function;
import forge.util.ItemPool;
import forge.deck.CardPool; import forge.deck.CardPool;
import forge.item.PaperCard; import forge.item.PaperCard;
import forge.util.ItemPool;
import forge.util.MyRandom; import forge.util.MyRandom;
import forge.util.storage.StorageReaderFileSections; import forge.util.storage.StorageReaderFileSections;
import java.io.File;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map.Entry;
/** /**
* TODO: Write javadoc for this type. * TODO: Write javadoc for this type.

View File

@@ -1,20 +1,18 @@
package forge.card; package forge.card;
import com.google.common.base.Predicate;
import com.google.common.collect.Iterables;
import forge.StaticData;
import forge.item.PaperCard;
import forge.item.SealedProduct;
import forge.util.ItemPool;
import org.apache.commons.lang3.tuple.Pair;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.TreeMap; import java.util.TreeMap;
import org.apache.commons.lang3.tuple.Pair;
import com.google.common.base.Predicate;
import com.google.common.collect.Iterables;
import forge.StaticData;
import forge.item.PaperCard;
import forge.item.SealedProduct;
import forge.util.ItemPool;
public class UnOpenedProduct implements IUnOpenedProduct { public class UnOpenedProduct implements IUnOpenedProduct {

View File

@@ -17,22 +17,21 @@
*/ */
package forge.deck; package forge.deck;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Map.Entry;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.commons.lang3.StringUtils;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import forge.StaticData; import forge.StaticData;
import forge.card.CardDb; import forge.card.CardDb;
import forge.item.PaperCard; import forge.item.PaperCard;
import forge.util.ItemPool; import forge.util.ItemPool;
import forge.util.ItemPoolSorter; import forge.util.ItemPoolSorter;
import forge.util.MyRandom; import forge.util.MyRandom;
import org.apache.commons.lang3.StringUtils;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Map.Entry;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/** /**
* Deck section. * Deck section.

View File

@@ -17,22 +17,15 @@
*/ */
package forge.deck; package forge.deck;
import java.util.Calendar;
import java.util.Date;
import java.util.EnumMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeSet;
import com.google.common.base.Function; import com.google.common.base.Function;
import forge.StaticData; import forge.StaticData;
import forge.card.CardEdition;
import forge.card.CardDb.SetPreference; import forge.card.CardDb.SetPreference;
import forge.card.CardEdition;
import forge.item.PaperCard; import forge.item.PaperCard;
import java.util.*;
import java.util.Map.Entry;
/** /**

View File

@@ -17,10 +17,10 @@
*/ */
package forge.deck; package forge.deck;
import java.io.Serializable;
import forge.item.InventoryItem; import forge.item.InventoryItem;
import java.io.Serializable;
/** /**
* TODO: Write javadoc for this type. * TODO: Write javadoc for this type.
* *

View File

@@ -17,21 +17,19 @@
*/ */
package forge.deck; package forge.deck;
import forge.StaticData;
import forge.card.CardType;
import forge.card.ColorSet;
import forge.item.IPaperCard;
import forge.item.PaperCard;
import forge.util.Aggregates;
import org.apache.commons.lang3.Range;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Map.Entry; import java.util.Map.Entry;
import org.apache.commons.lang3.Range;
import forge.StaticData;
import forge.card.CardType;
import forge.card.ColorSet;
import forge.item.PaperCard;
import forge.item.IPaperCard;
import forge.util.Aggregates;
/** /**
* GameType is an enum to determine the type of current game. :) * GameType is an enum to determine the type of current game. :)
*/ */

View File

@@ -17,13 +17,13 @@
*/ */
package forge.deck; package forge.deck;
import com.google.common.base.Function;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
import java.util.List; import java.util.List;
import com.google.common.base.Function;
/** /**
* TODO: Write javadoc for this type. * TODO: Write javadoc for this type.
* *

View File

@@ -17,17 +17,16 @@
*/ */
package forge.deck; package forge.deck;
import java.util.Calendar;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.commons.lang3.StringUtils;
import forge.card.CardDb; import forge.card.CardDb;
import forge.card.CardDb.SetPreference; import forge.card.CardDb.SetPreference;
import forge.card.ICardDatabase; import forge.card.ICardDatabase;
import forge.item.PaperCard; import forge.item.PaperCard;
import org.apache.commons.lang3.StringUtils;
import java.util.Calendar;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/** /**
* <p> * <p>

View File

@@ -17,16 +17,15 @@
*/ */
package forge.deck.generation; package forge.deck.generation;
import java.util.Arrays;
import java.util.List;
import org.apache.commons.lang3.tuple.ImmutablePair;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import forge.card.ColorSet; import forge.card.ColorSet;
import forge.card.ICardDatabase; import forge.card.ICardDatabase;
import forge.card.MagicColor; import forge.card.MagicColor;
import forge.deck.CardPool; import forge.deck.CardPool;
import org.apache.commons.lang3.tuple.ImmutablePair;
import java.util.Arrays;
import java.util.List;
/** /**
* <p> * <p>

View File

@@ -17,17 +17,15 @@
*/ */
package forge.deck.generation; package forge.deck.generation;
import java.util.List;
import org.apache.commons.lang3.tuple.ImmutablePair;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import forge.card.ColorSet; import forge.card.ColorSet;
import forge.card.ICardDatabase; import forge.card.ICardDatabase;
import forge.card.MagicColor; import forge.card.MagicColor;
import forge.deck.CardPool; import forge.deck.CardPool;
import forge.util.MyRandom; import forge.util.MyRandom;
import org.apache.commons.lang3.tuple.ImmutablePair;
import java.util.List;
/** /**
* <p> * <p>

View File

@@ -17,15 +17,13 @@
*/ */
package forge.deck.generation; package forge.deck.generation;
import java.util.List;
import org.apache.commons.lang3.tuple.ImmutablePair;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import forge.card.ColorSet; import forge.card.ColorSet;
import forge.card.ICardDatabase; import forge.card.ICardDatabase;
import forge.deck.CardPool; import forge.deck.CardPool;
import org.apache.commons.lang3.tuple.ImmutablePair;
import java.util.List;
/** /**
* <p> * <p>

View File

@@ -17,32 +17,21 @@
*/ */
package forge.deck.generation; package forge.deck.generation;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Random;
import java.util.TreeMap;
import org.apache.commons.lang3.tuple.ImmutablePair;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import com.google.common.base.Predicates; import com.google.common.base.Predicates;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import forge.card.*;
import forge.card.CardRules;
import forge.card.CardRulesPredicates;
import forge.card.ColorSet;
import forge.card.ICardDatabase;
import forge.card.MagicColor;
import forge.card.mana.ManaCost; import forge.card.mana.ManaCost;
import forge.deck.CardPool; import forge.deck.CardPool;
import forge.item.PaperCard; import forge.item.PaperCard;
import forge.util.Aggregates; import forge.util.Aggregates;
import forge.util.ItemPool; import forge.util.ItemPool;
import forge.util.MyRandom; import forge.util.MyRandom;
import org.apache.commons.lang3.tuple.ImmutablePair;
import java.util.*;
import java.util.Map.Entry;
/** /**
* <p> * <p>

View File

@@ -17,16 +17,14 @@
*/ */
package forge.deck.generation; package forge.deck.generation;
import java.util.List;
import org.apache.commons.lang3.tuple.ImmutablePair;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import forge.card.ColorSet; import forge.card.ColorSet;
import forge.card.ICardDatabase; import forge.card.ICardDatabase;
import forge.card.MagicColor; import forge.card.MagicColor;
import forge.deck.CardPool; import forge.deck.CardPool;
import org.apache.commons.lang3.tuple.ImmutablePair;
import java.util.List;
/** /**
* <p> * <p>

View File

@@ -17,13 +17,12 @@
*/ */
package forge.deck.io; package forge.deck.io;
import java.util.Set;
import java.util.TreeSet;
import org.apache.commons.lang3.StringUtils;
import forge.deck.DeckFormat; import forge.deck.DeckFormat;
import forge.util.FileSection; import forge.util.FileSection;
import org.apache.commons.lang3.StringUtils;
import java.util.Set;
import java.util.TreeSet;
/** /**
* TODO: Write javadoc for this type. * TODO: Write javadoc for this type.

View File

@@ -1,13 +1,5 @@
package forge.deck.io; package forge.deck.io;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import org.apache.commons.lang3.StringUtils;
import forge.card.CardDb; import forge.card.CardDb;
import forge.deck.CardPool; import forge.deck.CardPool;
import forge.deck.Deck; import forge.deck.Deck;
@@ -16,6 +8,13 @@ import forge.item.IPaperCard;
import forge.util.FileSection; import forge.util.FileSection;
import forge.util.FileSectionManual; import forge.util.FileSectionManual;
import forge.util.FileUtil; import forge.util.FileUtil;
import org.apache.commons.lang3.StringUtils;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
public class DeckSerializer { public class DeckSerializer {

View File

@@ -17,13 +17,6 @@
*/ */
package forge.deck.io; package forge.deck.io;
import java.io.File;
import java.io.FilenameFilter;
import java.util.List;
import java.util.Map;
import forge.deck.Deck; import forge.deck.Deck;
import forge.util.FileSection; import forge.util.FileSection;
import forge.util.FileUtil; import forge.util.FileUtil;
@@ -31,6 +24,11 @@ import forge.util.IItemReader;
import forge.util.IItemSerializer; import forge.util.IItemSerializer;
import forge.util.storage.StorageReaderFolder; import forge.util.storage.StorageReaderFolder;
import java.io.File;
import java.io.FilenameFilter;
import java.util.List;
import java.util.Map;
/** /**
* This class knows how to make a file out of a deck object and vice versa. * This class knows how to make a file out of a deck object and vice versa.
*/ */

View File

@@ -19,7 +19,6 @@
package forge.item; package forge.item;
import com.google.common.base.Function; import com.google.common.base.Function;
import forge.StaticData; import forge.StaticData;
import forge.card.CardEdition; import forge.card.CardEdition;
import forge.util.MyRandom; import forge.util.MyRandom;

View File

@@ -18,19 +18,17 @@
package forge.item; package forge.item;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair;
import com.google.common.base.Function; import com.google.common.base.Function;
import forge.StaticData; import forge.StaticData;
import forge.card.BoosterGenerator; import forge.card.BoosterGenerator;
import forge.card.CardEdition; import forge.card.CardEdition;
import forge.util.TextUtil; import forge.util.TextUtil;
import forge.util.storage.StorageReaderFile; import forge.util.storage.StorageReaderFile;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair;
import java.util.ArrayList;
import java.util.List;
public class FatPack extends SealedProduct { public class FatPack extends SealedProduct {
public static final Function<CardEdition, FatPack> FN_FROM_SET = new Function<CardEdition, FatPack>() { public static final Function<CardEdition, FatPack> FN_FROM_SET = new Function<CardEdition, FatPack>() {

View File

@@ -1,18 +1,17 @@
package forge.item; package forge.item;
import com.google.common.base.Predicate;
import com.google.common.collect.Lists;
import forge.card.CardRarity;
import forge.card.CardRules;
import forge.util.PredicateString;
import org.apache.commons.lang3.StringUtils;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import org.apache.commons.lang3.StringUtils;
import com.google.common.base.Predicate;
import com.google.common.collect.Lists;
//import forge.Card; //import forge.Card;
import forge.card.CardRarity;
import forge.card.CardRules;
import forge.util.PredicateString;
public interface IPaperCard extends InventoryItem { public interface IPaperCard extends InventoryItem {

View File

@@ -18,7 +18,6 @@
package forge.item; package forge.item;
import com.google.common.base.Function; import com.google.common.base.Function;
import forge.card.CardRarity; import forge.card.CardRarity;
import forge.card.CardRules; import forge.card.CardRules;

View File

@@ -1,11 +1,11 @@
package forge.item; package forge.item;
import java.util.Locale;
import forge.card.CardEdition; import forge.card.CardEdition;
import forge.card.CardRarity; import forge.card.CardRarity;
import forge.card.CardRules; import forge.card.CardRules;
import java.util.Locale;
public class PaperToken implements InventoryItemFromSet, IPaperCard { public class PaperToken implements InventoryItemFromSet, IPaperCard {
private String name; private String name;

View File

@@ -17,13 +17,7 @@
*/ */
package forge.item; package forge.item;
import java.io.File;
import java.io.FilenameFilter;
import java.util.List;
import java.util.Map;
import com.google.common.base.Function; import com.google.common.base.Function;
import forge.StaticData; import forge.StaticData;
import forge.deck.Deck; import forge.deck.Deck;
import forge.deck.io.DeckSerializer; import forge.deck.io.DeckSerializer;
@@ -32,6 +26,11 @@ import forge.util.FileSection;
import forge.util.FileUtil; import forge.util.FileUtil;
import forge.util.storage.StorageReaderFolder; import forge.util.storage.StorageReaderFolder;
import java.io.File;
import java.io.FilenameFilter;
import java.util.List;
import java.util.Map;
/** /**
* TODO: Write javadoc for this type. * TODO: Write javadoc for this type.
* *

View File

@@ -18,19 +18,11 @@
package forge.item; package forge.item;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair;
import com.google.common.base.Function; import com.google.common.base.Function;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import com.google.common.base.Predicates; import com.google.common.base.Predicates;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import forge.StaticData; import forge.StaticData;
import forge.card.BoosterGenerator; import forge.card.BoosterGenerator;
import forge.card.BoosterSlots; import forge.card.BoosterSlots;
@@ -38,6 +30,12 @@ import forge.card.CardRulesPredicates;
import forge.util.Aggregates; import forge.util.Aggregates;
import forge.util.TextUtil; import forge.util.TextUtil;
import forge.util.storage.StorageReaderFile; import forge.util.storage.StorageReaderFile;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public abstract class SealedProduct implements InventoryItemFromSet { public abstract class SealedProduct implements InventoryItemFromSet {
protected final Template contents; protected final Template contents;

View File

@@ -17,14 +17,13 @@
*/ */
package forge.item; package forge.item;
import java.util.List;
import com.google.common.base.Function; import com.google.common.base.Function;
import forge.StaticData; import forge.StaticData;
import forge.card.BoosterGenerator; import forge.card.BoosterGenerator;
import forge.card.CardEdition; import forge.card.CardEdition;
import java.util.List;
public class TournamentPack extends SealedProduct { public class TournamentPack extends SealedProduct {
/** The Constant fnFromSet. */ /** The Constant fnFromSet. */

View File

@@ -1,15 +1,10 @@
package forge.util; package forge.util;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Random;
import com.google.common.base.Function; import com.google.common.base.Function;
import java.util.*;
import java.util.Map.Entry;
/** /**
* TODO: Write javadoc for this type. * TODO: Write javadoc for this type.
* *

View File

@@ -1,11 +1,11 @@
package forge.util; package forge.util;
import com.google.common.base.Supplier;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashSet; import java.util.HashSet;
import java.util.TreeSet; import java.util.TreeSet;
import com.google.common.base.Supplier;
/** /**
* TODO: Write javadoc for this type. * TODO: Write javadoc for this type.
* *

View File

@@ -17,20 +17,15 @@
*/ */
package forge.util; package forge.util;
import java.io.BufferedReader; import org.apache.commons.lang3.StringUtils;
import java.io.File; import org.apache.commons.lang3.tuple.Pair;
import java.io.FileReader;
import java.io.IOException; import java.io.*;
import java.io.PrintWriter;
import java.io.Reader;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.Pair;
/** /**
* <p> * <p>
* FileUtil class. * FileUtil class.

View File

@@ -17,19 +17,13 @@
*/ */
package forge.util; package forge.util;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import com.google.common.base.Function; import com.google.common.base.Function;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import forge.item.InventoryItem; import forge.item.InventoryItem;
import java.util.*;
import java.util.Map.Entry;
/** /**
* <p> * <p>
* ItemPool class. * ItemPool class.

View File

@@ -17,13 +17,12 @@
*/ */
package forge.util; package forge.util;
import com.google.common.base.Function;
import forge.item.PaperCard;
import java.util.Comparator; import java.util.Comparator;
import java.util.Map.Entry; import java.util.Map.Entry;
import com.google.common.base.Function;
import forge.item.PaperCard;
/** /**
* <p> * <p>

View File

@@ -1,13 +1,12 @@
package forge.util; package forge.util;
import java.util.Collection;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import com.google.common.base.Function; import com.google.common.base.Function;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import org.apache.commons.lang3.StringUtils;
import java.util.Collection;
import java.util.List;
/** /**
* TODO: Write javadoc for this type. * TODO: Write javadoc for this type.

View File

@@ -17,9 +17,8 @@
*/ */
package forge.util; package forge.util;
import org.apache.commons.lang3.StringUtils;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import org.apache.commons.lang3.StringUtils;
/** /**
* Special predicate class to perform string operations. * Special predicate class to perform string operations.

View File

@@ -1,5 +1,9 @@
package forge.util; package forge.util;
import forge.item.PaperCard;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import java.awt.event.KeyEvent; import java.awt.event.KeyEvent;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@@ -7,11 +11,6 @@ import java.util.Locale;
import java.util.Map; import java.util.Map;
import java.util.Map.Entry; import java.util.Map.Entry;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import forge.item.PaperCard;
/** /**
* TODO: Write javadoc for this type. * TODO: Write javadoc for this type.
* *

View File

@@ -1,10 +1,6 @@
package forge.util; package forge.util;
import java.util.concurrent.ExecutorService; import java.util.concurrent.*;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.TimeUnit;
public class ThreadUtil { public class ThreadUtil {
static { static {

View File

@@ -1,12 +1,12 @@
package forge.util.maps; package forge.util.maps;
import com.google.common.base.Supplier;
import java.util.Collection; import java.util.Collection;
import java.util.EnumMap; import java.util.EnumMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import com.google.common.base.Supplier;
public class EnumMapOfLists<K extends Enum<K>, V> extends EnumMap<K, Collection<V>> implements MapOfLists<K, V> { public class EnumMapOfLists<K extends Enum<K>, V> extends EnumMap<K, Collection<V>> implements MapOfLists<K, V> {
private final Supplier<? extends Collection<V>> factory; private final Supplier<? extends Collection<V>> factory;

View File

@@ -1,12 +1,12 @@
package forge.util.maps; package forge.util.maps;
import com.google.common.base.Supplier;
import java.util.Collection; import java.util.Collection;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import com.google.common.base.Supplier;
public class HashMapOfLists<K, V> extends HashMap<K, Collection<V>> implements MapOfLists<K, V> { public class HashMapOfLists<K, V> extends HashMap<K, Collection<V>> implements MapOfLists<K, V> {
private final Supplier<? extends Collection<V>> factory; private final Supplier<? extends Collection<V>> factory;

View File

@@ -17,12 +17,11 @@
*/ */
package forge.util.storage; package forge.util.storage;
import java.util.Collection;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import forge.util.IHasName; import forge.util.IHasName;
import java.util.Collection;
/** /**
* TODO: Write javadoc for this type. * TODO: Write javadoc for this type.
* *

View File

@@ -17,17 +17,12 @@
*/ */
package forge.util.storage; package forge.util.storage;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
import forge.util.IItemReader; import forge.util.IItemReader;
import java.util.*;
/** /**
* <p> * <p>
* StorageBase class. * StorageBase class.

View File

@@ -17,13 +17,12 @@
*/ */
package forge.util.storage; package forge.util.storage;
import java.io.File;
import com.google.common.base.Function; import com.google.common.base.Function;
import forge.util.IItemSerializer; import forge.util.IItemSerializer;
import forge.util.TextUtil; import forge.util.TextUtil;
import java.io.File;
/** /**
* <p> * <p>
* StorageImmediatelySerialized class. * StorageImmediatelySerialized class.

View File

@@ -1,10 +1,10 @@
package forge.util.storage; package forge.util.storage;
import com.google.common.base.Function;
import java.io.File; import java.io.File;
import java.util.HashMap; import java.util.HashMap;
import com.google.common.base.Function;
public class StorageNestedFolders<T> extends StorageBase<IStorage<T>> { public class StorageNestedFolders<T> extends StorageBase<IStorage<T>> {
private final File thisFolder; private final File thisFolder;

View File

@@ -1,12 +1,11 @@
package forge.util.storage; package forge.util.storage;
import java.io.File;
import com.google.common.base.Function; import com.google.common.base.Function;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import forge.util.IItemReader; import forge.util.IItemReader;
import java.io.File;
public abstract class StorageReaderBase<T> implements IItemReader<T> { public abstract class StorageReaderBase<T> implements IItemReader<T> {
protected final Function<? super T, String> keySelector; protected final Function<? super T, String> keySelector;
public StorageReaderBase(final Function<? super T, String> keySelector0) { public StorageReaderBase(final Function<? super T, String> keySelector0) {

View File

@@ -17,16 +17,14 @@
*/ */
package forge.util.storage; package forge.util.storage;
import com.google.common.base.Function;
import forge.util.FileUtil;
import org.apache.commons.lang3.StringUtils;
import java.io.File; import java.io.File;
import java.util.Map; import java.util.Map;
import java.util.TreeMap; import java.util.TreeMap;
import org.apache.commons.lang3.StringUtils;
import com.google.common.base.Function;
import forge.util.FileUtil;
/** /**
* This class treats every line of a given file as a source for a named object. * This class treats every line of a given file as a source for a named object.
* *

View File

@@ -17,18 +17,16 @@
*/ */
package forge.util.storage; package forge.util.storage;
import com.google.common.base.Function;
import forge.util.FileUtil;
import org.apache.commons.lang3.StringUtils;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.TreeMap; import java.util.TreeMap;
import org.apache.commons.lang3.StringUtils;
import com.google.common.base.Function;
import forge.util.FileUtil;
/** /**
* This class treats every line of a given file as a source for a named object. * This class treats every line of a given file as a source for a named object.
* *

View File

@@ -17,18 +17,13 @@
*/ */
package forge.util.storage; package forge.util.storage;
import com.google.common.base.Function;
import java.io.File; import java.io.File;
import java.io.FileFilter; import java.io.FileFilter;
import java.io.FilenameFilter; import java.io.FilenameFilter;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.*;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.NoSuchElementException;
import java.util.TreeMap;
import com.google.common.base.Function;
/** /**
* This class treats every file in the given folder as a source for a named * This class treats every file in the given folder as a source for a named

View File

@@ -1,13 +1,7 @@
package forge; package forge;
import forge.card.CardDb; import forge.card.CardDb;
import forge.item.BoosterPack; import forge.item.*;
import forge.item.FatPack;
import forge.item.InventoryItem;
import forge.item.PaperCard;
import forge.item.PaperToken;
import forge.item.PreconDeck;
import forge.item.TournamentPack;
public class ImageKeys { public class ImageKeys {
public static final String CARD_PREFIX = "c:"; public static final String CARD_PREFIX = "c:";

View File

@@ -17,13 +17,8 @@
*/ */
package forge.ai; package forge.ai;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import forge.game.GameEntity; import forge.game.GameEntity;
import forge.game.card.Card; import forge.game.card.Card;
import forge.game.card.CardLists; import forge.game.card.CardLists;
@@ -35,6 +30,10 @@ import forge.game.trigger.Trigger;
import forge.game.trigger.TriggerType; import forge.game.trigger.TriggerType;
import forge.game.zone.ZoneType; import forge.game.zone.ZoneType;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
//doesHumanAttackAndWin() uses the global variable AllZone.getComputerPlayer() //doesHumanAttackAndWin() uses the global variable AllZone.getComputerPlayer()
/** /**

View File

@@ -17,13 +17,8 @@
*/ */
package forge.ai; package forge.ai;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import com.google.common.base.Predicates; import com.google.common.base.Predicates;
import forge.game.GameEntity; import forge.game.GameEntity;
import forge.game.TriggerReplacementBase; import forge.game.TriggerReplacementBase;
import forge.game.card.Card; import forge.game.card.Card;
@@ -36,6 +31,10 @@ import forge.game.player.Player;
import forge.game.trigger.Trigger; import forge.game.trigger.Trigger;
import forge.game.trigger.TriggerType; import forge.game.trigger.TriggerType;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/** /**
* <p> * <p>
@@ -227,7 +226,7 @@ public class AiBlockController {
// check for triggers when unblocked // check for triggers when unblocked
for (Trigger trigger : attacker.getTriggers()) { for (Trigger trigger : attacker.getTriggers()) {
final HashMap<String, String> trigParams = trigger.getMapParams(); final Map<String, String> trigParams = trigger.getMapParams();
TriggerType mode = trigger.getMode(); TriggerType mode = trigger.getMode();
if (!trigger.requirementsCheck(attacker.getGame())) { if (!trigger.requirementsCheck(attacker.getGame())) {

View File

@@ -17,55 +17,39 @@
*/ */
package forge.ai; package forge.ai;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import com.esotericsoftware.minlog.Log; import com.esotericsoftware.minlog.Log;
import com.google.common.base.Function; import com.google.common.base.Function;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import com.google.common.base.Predicates; import com.google.common.base.Predicates;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import forge.card.CardType; import forge.card.CardType;
import forge.card.MagicColor; import forge.card.MagicColor;
import forge.deck.CardPool; import forge.deck.CardPool;
import forge.deck.Deck; import forge.deck.Deck;
import forge.deck.DeckSection; import forge.deck.DeckSection;
import forge.game.GameActionUtil;
import forge.game.Game; import forge.game.Game;
import forge.game.GameActionUtil;
import forge.game.GameEntity; import forge.game.GameEntity;
import forge.game.ability.ApiType; import forge.game.ability.ApiType;
import forge.game.card.Card; import forge.game.card.*;
import forge.game.card.CardFactoryUtil;
import forge.game.card.CardLists;
import forge.game.card.CardPredicates;
import forge.game.card.CardPredicates.Presets; import forge.game.card.CardPredicates.Presets;
import forge.game.card.CounterType;
import forge.game.combat.Combat; import forge.game.combat.Combat;
import forge.game.cost.CostDiscard; import forge.game.cost.CostDiscard;
import forge.game.cost.CostPart; import forge.game.cost.CostPart;
import forge.game.phase.PhaseType; import forge.game.phase.PhaseType;
import forge.game.player.Player; import forge.game.player.Player;
import forge.game.player.PlayerActionConfirmMode; import forge.game.player.PlayerActionConfirmMode;
import forge.game.spellability.Ability; import forge.game.spellability.*;
import forge.game.spellability.AbilityManaPart;
import forge.game.spellability.Spell;
import forge.game.spellability.SpellAbility;
import forge.game.spellability.SpellPermanent;
import forge.game.zone.ZoneType; import forge.game.zone.ZoneType;
import forge.item.PaperCard; import forge.item.PaperCard;
import forge.util.Aggregates; import forge.util.Aggregates;
import forge.util.Expressions; import forge.util.Expressions;
import forge.util.MyRandom; import forge.util.MyRandom;
import java.util.*;
import java.util.Map.Entry;
/** /**
* <p> * <p>
* ComputerAI_General class. * ComputerAI_General class.

View File

@@ -1,53 +1,25 @@
package forge.ai; package forge.ai;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import forge.card.CardType; import forge.card.CardType;
import forge.game.Game; import forge.game.Game;
import forge.game.ability.AbilityUtils; import forge.game.ability.AbilityUtils;
import forge.game.card.Card; import forge.game.card.Card;
import forge.game.card.CardLists; import forge.game.card.CardLists;
import forge.game.card.CardPredicates; import forge.game.card.CardPredicates;
import forge.game.card.CounterType;
import forge.game.card.CardPredicates.Presets; import forge.game.card.CardPredicates.Presets;
import forge.game.cost.CostAddMana; import forge.game.card.CounterType;
import forge.game.cost.CostChooseCreatureType; import forge.game.cost.*;
import forge.game.cost.CostDamage;
import forge.game.cost.CostDecisionMakerBase;
import forge.game.cost.CostDiscard;
import forge.game.cost.CostDraw;
import forge.game.cost.CostExile;
import forge.game.cost.CostExiledMoveToGrave;
import forge.game.cost.CostFlipCoin;
import forge.game.cost.CostGainControl;
import forge.game.cost.CostGainLife;
import forge.game.cost.CostMill;
import forge.game.cost.CostPartMana;
import forge.game.cost.CostPayLife;
import forge.game.cost.CostPutCardToLib;
import forge.game.cost.CostPutCounter;
import forge.game.cost.CostRemoveAnyCounter;
import forge.game.cost.CostRemoveCounter;
import forge.game.cost.CostReturn;
import forge.game.cost.CostReveal;
import forge.game.cost.CostSacrifice;
import forge.game.cost.CostTap;
import forge.game.cost.CostTapType;
import forge.game.cost.CostUnattach;
import forge.game.cost.CostUntap;
import forge.game.cost.CostUntapType;
import forge.game.cost.PaymentDecision;
import forge.game.cost.ICostVisitor;
import forge.game.player.Player; import forge.game.player.Player;
import forge.game.player.PlayerControllerAi; import forge.game.player.PlayerControllerAi;
import forge.game.spellability.SpellAbility; import forge.game.spellability.SpellAbility;
import forge.game.zone.ZoneType; import forge.game.zone.ZoneType;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class AiCostDecision extends CostDecisionMakerBase implements ICostVisitor<PaymentDecision> { public class AiCostDecision extends CostDecisionMakerBase implements ICostVisitor<PaymentDecision> {

View File

@@ -21,14 +21,13 @@ import forge.game.player.LobbyPlayer;
import forge.game.player.LobbyPlayerAi; import forge.game.player.LobbyPlayerAi;
import forge.util.Aggregates; import forge.util.Aggregates;
import forge.util.FileUtil; import forge.util.FileUtil;
import org.apache.commons.lang3.ArrayUtils;
import java.io.File; import java.io.File;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.ArrayList;
import org.apache.commons.lang3.ArrayUtils;
/** /**
* Holds default AI personality profile values in an enum. * Holds default AI personality profile values in an enum.

View File

@@ -17,41 +17,22 @@
*/ */
package forge.ai; package forge.ai;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
import org.apache.commons.lang3.StringUtils;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
import forge.card.CardType; import forge.card.CardType;
import forge.card.MagicColor;
import forge.card.CardType.Constant; import forge.card.CardType.Constant;
import forge.card.MagicColor;
import forge.game.Game; import forge.game.Game;
import forge.game.GameObject; import forge.game.GameObject;
import forge.game.ability.AbilityFactory; import forge.game.ability.AbilityFactory;
import forge.game.ability.AbilityUtils; import forge.game.ability.AbilityUtils;
import forge.game.ability.ApiType; import forge.game.ability.ApiType;
import forge.game.ability.effects.CharmEffect; import forge.game.ability.effects.CharmEffect;
import forge.game.card.Card; import forge.game.card.*;
import forge.game.card.CardLists;
import forge.game.card.CardPredicates;
import forge.game.card.CardUtil;
import forge.game.card.CounterType;
import forge.game.card.CardPredicates.Presets; import forge.game.card.CardPredicates.Presets;
import forge.game.combat.Combat; import forge.game.combat.Combat;
import forge.game.combat.CombatUtil; import forge.game.combat.CombatUtil;
import forge.game.cost.Cost; import forge.game.cost.*;
import forge.game.cost.CostDiscard;
import forge.game.cost.CostPart;
import forge.game.cost.CostPayment;
import forge.game.cost.CostPutCounter;
import forge.game.cost.CostSacrifice;
import forge.game.phase.PhaseHandler; import forge.game.phase.PhaseHandler;
import forge.game.phase.PhaseType; import forge.game.phase.PhaseType;
import forge.game.player.Player; import forge.game.player.Player;
@@ -67,6 +48,9 @@ import forge.game.zone.Zone;
import forge.game.zone.ZoneType; import forge.game.zone.ZoneType;
import forge.util.Aggregates; import forge.util.Aggregates;
import forge.util.MyRandom; import forge.util.MyRandom;
import org.apache.commons.lang3.StringUtils;
import java.util.*;
/** /**
@@ -1754,7 +1738,7 @@ public class ComputerUtil {
theTriggers.addAll(card.getTriggers()); theTriggers.addAll(card.getTriggers());
} }
for (Trigger trigger : theTriggers) { for (Trigger trigger : theTriggers) {
HashMap<String, String> trigParams = trigger.getMapParams(); Map<String, String> trigParams = trigger.getMapParams();
final Card source = trigger.getHostCard(); final Card source = trigger.getHostCard();

View File

@@ -1,22 +1,9 @@
package forge.ai; package forge.ai;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import org.apache.commons.lang3.tuple.MutablePair;
import org.apache.commons.lang3.tuple.Pair;
import com.google.common.base.Function; import com.google.common.base.Function;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import com.google.common.base.Predicates; import com.google.common.base.Predicates;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
import forge.card.CardType; import forge.card.CardType;
import forge.card.ColorSet; import forge.card.ColorSet;
import forge.card.MagicColor; import forge.card.MagicColor;
@@ -24,17 +11,18 @@ import forge.deck.CardPool;
import forge.deck.Deck; import forge.deck.Deck;
import forge.deck.DeckSection; import forge.deck.DeckSection;
import forge.game.Game; import forge.game.Game;
import forge.game.card.Card; import forge.game.card.*;
import forge.game.card.CardFactoryUtil;
import forge.game.card.CardLists;
import forge.game.card.CardPredicates;
import forge.game.card.CardUtil;
import forge.game.combat.Combat; import forge.game.combat.Combat;
import forge.game.player.Player; import forge.game.player.Player;
import forge.game.spellability.SpellAbility; import forge.game.spellability.SpellAbility;
import forge.game.zone.ZoneType; import forge.game.zone.ZoneType;
import forge.item.PaperCard; import forge.item.PaperCard;
import forge.util.Aggregates; import forge.util.Aggregates;
import org.apache.commons.lang3.tuple.MutablePair;
import org.apache.commons.lang3.tuple.Pair;
import java.util.*;
import java.util.Map.Entry;
/** /**
* TODO: Write javadoc for this type. * TODO: Write javadoc for this type.

View File

@@ -17,13 +17,7 @@
*/ */
package forge.ai; package forge.ai;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import forge.game.Game; import forge.game.Game;
import forge.game.GameEntity; import forge.game.GameEntity;
import forge.game.GlobalRuleChange; import forge.game.GlobalRuleChange;
@@ -47,6 +41,11 @@ import forge.game.trigger.TriggerHandler;
import forge.game.trigger.TriggerType; import forge.game.trigger.TriggerType;
import forge.game.zone.ZoneType; import forge.game.zone.ZoneType;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/** /**
* <p> * <p>
@@ -605,7 +604,7 @@ public class ComputerUtilCombat {
public static boolean combatTriggerWillTrigger(final Card attacker, final Card defender, final Trigger trigger, public static boolean combatTriggerWillTrigger(final Card attacker, final Card defender, final Trigger trigger,
Combat combat) { Combat combat) {
final Game game = attacker.getGame(); final Game game = attacker.getGame();
final HashMap<String, String> trigParams = trigger.getMapParams(); final Map<String, String> trigParams = trigger.getMapParams();
boolean willTrigger = false; boolean willTrigger = false;
final Card source = trigger.getHostCard(); final Card source = trigger.getHostCard();
if (combat == null) { if (combat == null) {
@@ -789,7 +788,7 @@ public class ComputerUtilCombat {
} }
theTriggers.addAll(attacker.getTriggers()); theTriggers.addAll(attacker.getTriggers());
for (final Trigger trigger : theTriggers) { for (final Trigger trigger : theTriggers) {
final HashMap<String, String> trigParams = trigger.getMapParams(); final Map<String, String> trigParams = trigger.getMapParams();
final Card source = trigger.getHostCard(); final Card source = trigger.getHostCard();
if (!ComputerUtilCombat.combatTriggerWillTrigger(attacker, defender, trigger, null) if (!ComputerUtilCombat.combatTriggerWillTrigger(attacker, defender, trigger, null)
@@ -902,7 +901,7 @@ public class ComputerUtilCombat {
} }
theTriggers.addAll(attacker.getTriggers()); theTriggers.addAll(attacker.getTriggers());
for (final Trigger trigger : theTriggers) { for (final Trigger trigger : theTriggers) {
final HashMap<String, String> trigParams = trigger.getMapParams(); final Map<String, String> trigParams = trigger.getMapParams();
final Card source = trigger.getHostCard(); final Card source = trigger.getHostCard();
if (!ComputerUtilCombat.combatTriggerWillTrigger(attacker, defender, trigger, null) if (!ComputerUtilCombat.combatTriggerWillTrigger(attacker, defender, trigger, null)
@@ -1079,7 +1078,7 @@ public class ComputerUtilCombat {
} }
for (final Trigger trigger : theTriggers) { for (final Trigger trigger : theTriggers) {
final HashMap<String, String> trigParams = trigger.getMapParams(); final Map<String, String> trigParams = trigger.getMapParams();
final Card source = trigger.getHostCard(); final Card source = trigger.getHostCard();
if (!ComputerUtilCombat.combatTriggerWillTrigger(attacker, defender, trigger, combat) if (!ComputerUtilCombat.combatTriggerWillTrigger(attacker, defender, trigger, combat)
@@ -1245,7 +1244,7 @@ public class ComputerUtilCombat {
} }
for (final Trigger trigger : theTriggers) { for (final Trigger trigger : theTriggers) {
final HashMap<String, String> trigParams = trigger.getMapParams(); final Map<String, String> trigParams = trigger.getMapParams();
final Card source = trigger.getHostCard(); final Card source = trigger.getHostCard();
if (!ComputerUtilCombat.combatTriggerWillTrigger(attacker, defender, trigger, combat) if (!ComputerUtilCombat.combatTriggerWillTrigger(attacker, defender, trigger, combat)
@@ -1376,7 +1375,7 @@ public class ComputerUtilCombat {
theTriggers.addAll(card.getTriggers()); theTriggers.addAll(card.getTriggers());
} }
for (Trigger trigger : theTriggers) { for (Trigger trigger : theTriggers) {
HashMap<String, String> trigParams = trigger.getMapParams(); Map<String, String> trigParams = trigger.getMapParams();
final Card source = trigger.getHostCard(); final Card source = trigger.getHostCard();
if (!ComputerUtilCombat.combatTriggerWillTrigger(attacker, defender, trigger, null)) { if (!ComputerUtilCombat.combatTriggerWillTrigger(attacker, defender, trigger, null)) {
@@ -1431,7 +1430,7 @@ public class ComputerUtilCombat {
theTriggers.addAll(card.getTriggers()); theTriggers.addAll(card.getTriggers());
} }
for (Trigger trigger : theTriggers) { for (Trigger trigger : theTriggers) {
HashMap<String, String> trigParams = trigger.getMapParams(); Map<String, String> trigParams = trigger.getMapParams();
final Card source = trigger.getHostCard(); final Card source = trigger.getHostCard();
if (!ComputerUtilCombat.combatTriggerWillTrigger(attacker, defender, trigger, null)) { if (!ComputerUtilCombat.combatTriggerWillTrigger(attacker, defender, trigger, null)) {

View File

@@ -1,28 +1,19 @@
package forge.ai; package forge.ai;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import forge.game.ability.AbilityUtils; import forge.game.ability.AbilityUtils;
import forge.game.card.Card; import forge.game.card.Card;
import forge.game.card.CardLists; import forge.game.card.CardLists;
import forge.game.card.CounterType; import forge.game.card.CounterType;
import forge.game.cost.Cost; import forge.game.cost.*;
import forge.game.cost.CostDamage;
import forge.game.cost.CostDiscard;
import forge.game.cost.CostPart;
import forge.game.cost.CostPayLife;
import forge.game.cost.CostPayment;
import forge.game.cost.CostPutCounter;
import forge.game.cost.CostRemoveCounter;
import forge.game.cost.CostSacrifice;
import forge.game.player.Player; import forge.game.player.Player;
import forge.game.spellability.Spell; import forge.game.spellability.Spell;
import forge.game.spellability.SpellAbility; import forge.game.spellability.SpellAbility;
import forge.game.zone.ZoneType; import forge.game.zone.ZoneType;
import forge.util.TextUtil; import forge.util.TextUtil;
import org.apache.commons.lang3.StringUtils;
import java.util.ArrayList;
import java.util.List;
/** /**
* TODO: Write javadoc for this type. * TODO: Write javadoc for this type.

View File

@@ -1,21 +1,8 @@
package forge.ai; package forge.ai;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import org.apache.commons.lang3.StringUtils;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import com.google.common.collect.ArrayListMultimap; import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Multimap; import com.google.common.collect.Multimap;
import forge.card.MagicColor; import forge.card.MagicColor;
import forge.card.mana.ManaAtom; import forge.card.mana.ManaAtom;
import forge.card.mana.ManaCost; import forge.card.mana.ManaCost;
@@ -41,6 +28,10 @@ import forge.util.CollectionSuppliers;
import forge.util.TextUtil; import forge.util.TextUtil;
import forge.util.maps.EnumMapOfLists; import forge.util.maps.EnumMapOfLists;
import forge.util.maps.MapOfLists; import forge.util.maps.MapOfLists;
import org.apache.commons.lang3.StringUtils;
import java.util.*;
import java.util.Map.Entry;
/** /**
* TODO: Write javadoc for this type. * TODO: Write javadoc for this type.

View File

@@ -1,11 +1,7 @@
package forge.ai; package forge.ai;
import java.util.Collection;
import java.util.List;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
import forge.game.GameEntity; import forge.game.GameEntity;
import forge.game.ability.SaTargetRoutines; import forge.game.ability.SaTargetRoutines;
import forge.game.card.Card; import forge.game.card.Card;
@@ -17,6 +13,9 @@ import forge.game.spellability.AbilitySub;
import forge.game.spellability.SpellAbility; import forge.game.spellability.SpellAbility;
import forge.game.spellability.TargetRestrictions; import forge.game.spellability.TargetRestrictions;
import java.util.Collection;
import java.util.List;
public abstract class SpellAbilityAi extends SaTargetRoutines { public abstract class SpellAbilityAi extends SaTargetRoutines {
public final boolean canPlayAIWithSubs(final Player aiPlayer, final SpellAbility sa) { public final boolean canPlayAIWithSubs(final Player aiPlayer, final SpellAbility sa) {

View File

@@ -17,13 +17,13 @@
*/ */
package forge.ai.ability; package forge.ai.ability;
import java.util.List;
import forge.ai.SpellAbilityAi; import forge.ai.SpellAbilityAi;
import forge.game.ability.AbilityUtils; import forge.game.ability.AbilityUtils;
import forge.game.player.Player; import forge.game.player.Player;
import forge.game.spellability.SpellAbility; import forge.game.spellability.SpellAbility;
import java.util.List;
/** /**
* <p> * <p>
* AbilityFactory_Turns class. * AbilityFactory_Turns class.

View File

@@ -1,9 +1,6 @@
package forge.ai.ability; package forge.ai.ability;
import java.util.List;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
import forge.ai.SpellAbilityAi; import forge.ai.SpellAbilityAi;
import forge.game.Game; import forge.game.Game;
import forge.game.ability.AbilityUtils; import forge.game.ability.AbilityUtils;
@@ -16,6 +13,8 @@ import forge.game.spellability.SpellAbility;
import forge.game.spellability.TargetRestrictions; import forge.game.spellability.TargetRestrictions;
import forge.game.zone.ZoneType; import forge.game.zone.ZoneType;
import java.util.List;
/** /**
* <p> * <p>
* AbilityFactoryAnimate class. * AbilityFactoryAnimate class.

View File

@@ -1,29 +1,12 @@
package forge.ai.ability; package forge.ai.ability;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Random;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import com.google.common.base.Predicates; import com.google.common.base.Predicates;
import forge.ai.*;
import forge.ai.ComputerUtil;
import forge.ai.ComputerUtilCard;
import forge.ai.ComputerUtilCost;
import forge.ai.ComputerUtilMana;
import forge.ai.SpellAbilityAi;
import forge.game.GameObject; import forge.game.GameObject;
import forge.game.ability.AbilityUtils; import forge.game.ability.AbilityUtils;
import forge.game.ability.ApiType; import forge.game.ability.ApiType;
import forge.game.card.Card; import forge.game.card.*;
import forge.game.card.CardFactoryUtil;
import forge.game.card.CardLists;
import forge.game.card.CardPredicates;
import forge.game.card.CardUtil;
import forge.game.combat.CombatUtil; import forge.game.combat.CombatUtil;
import forge.game.cost.Cost; import forge.game.cost.Cost;
import forge.game.phase.PhaseHandler; import forge.game.phase.PhaseHandler;
@@ -37,6 +20,8 @@ import forge.game.trigger.Trigger;
import forge.game.trigger.TriggerType; import forge.game.trigger.TriggerType;
import forge.util.MyRandom; import forge.util.MyRandom;
import java.util.*;
public class AttachAi extends SpellAbilityAi { public class AttachAi extends SpellAbilityAi {
/* (non-Javadoc) /* (non-Javadoc)
@@ -778,7 +763,7 @@ public class AttachAi extends SpellAbilityAi {
for (Card target : list) { for (Card target : list) {
for (Trigger t : target.getTriggers()) { for (Trigger t : target.getTriggers()) {
if (t.getMode() == TriggerType.SpellCast) { if (t.getMode() == TriggerType.SpellCast) {
final HashMap<String, String> params = t.getMapParams(); final Map<String, String> params = t.getMapParams();
if ("Card.Self".equals(params.get("TargetsValid")) && "You".equals(params.get("ValidActivatingPlayer"))) { if ("Card.Self".equals(params.get("TargetsValid")) && "You".equals(params.get("ValidActivatingPlayer"))) {
magnetList.add(target); magnetList.add(target);
break; break;

View File

@@ -1,7 +1,5 @@
package forge.ai.ability; package forge.ai.ability;
import java.util.List;
import forge.ai.SpellAbilityAi; import forge.ai.SpellAbilityAi;
import forge.game.card.Card; import forge.game.card.Card;
import forge.game.card.CardLists; import forge.game.card.CardLists;
@@ -11,6 +9,8 @@ import forge.game.spellability.SpellAbility;
import forge.game.zone.ZoneType; import forge.game.zone.ZoneType;
import forge.util.MyRandom; import forge.util.MyRandom;
import java.util.List;
public class BalanceAi extends SpellAbilityAi { public class BalanceAi extends SpellAbilityAi {
/* (non-Javadoc) /* (non-Javadoc)

View File

@@ -1,8 +1,6 @@
package forge.ai.ability; package forge.ai.ability;
import java.util.List;
import forge.ai.ComputerUtilCard; import forge.ai.ComputerUtilCard;
import forge.ai.SpellAbilityAi; import forge.ai.SpellAbilityAi;
import forge.game.Game; import forge.game.Game;
@@ -14,6 +12,8 @@ import forge.game.spellability.SpellAbility;
import forge.game.spellability.TargetRestrictions; import forge.game.spellability.TargetRestrictions;
import forge.game.zone.ZoneType; import forge.game.zone.ZoneType;
import java.util.List;
public class BecomesBlockedAi extends SpellAbilityAi { public class BecomesBlockedAi extends SpellAbilityAi {
@Override @Override

View File

@@ -17,14 +17,14 @@
*/ */
package forge.ai.ability; package forge.ai.ability;
import java.util.Collection;
import forge.ai.ComputerUtilCard; import forge.ai.ComputerUtilCard;
import forge.ai.SpellAbilityAi; import forge.ai.SpellAbilityAi;
import forge.game.card.Card; import forge.game.card.Card;
import forge.game.player.Player; import forge.game.player.Player;
import forge.game.spellability.SpellAbility; import forge.game.spellability.SpellAbility;
import java.util.Collection;
/** /**
* <p> * <p>
* AbilityFactoryBond class. * AbilityFactoryBond class.

View File

@@ -1,12 +1,12 @@
package forge.ai.ability; package forge.ai.ability;
import java.util.List;
import forge.ai.SpellAbilityAi; import forge.ai.SpellAbilityAi;
import forge.game.player.Player; import forge.game.player.Player;
import forge.game.spellability.SpellAbility; import forge.game.spellability.SpellAbility;
import java.util.List;
public class CanPlayAsDrawbackAi extends SpellAbilityAi { public class CanPlayAsDrawbackAi extends SpellAbilityAi {
/* (non-Javadoc) /* (non-Javadoc)

View File

@@ -1,22 +1,10 @@
package forge.ai.ability; package forge.ai.ability;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Random;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import com.google.common.base.Predicates; import com.google.common.base.Predicates;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import forge.ai.*;
import forge.ai.AiBlockController;
import forge.ai.ComputerUtil;
import forge.ai.ComputerUtilCard;
import forge.ai.ComputerUtilCombat;
import forge.ai.ComputerUtilCost;
import forge.ai.ComputerUtilMana;
import forge.ai.SpellAbilityAi;
import forge.card.MagicColor; import forge.card.MagicColor;
import forge.game.Game; import forge.game.Game;
import forge.game.GameObject; import forge.game.GameObject;
@@ -40,6 +28,11 @@ import forge.game.spellability.TargetRestrictions;
import forge.game.zone.ZoneType; import forge.game.zone.ZoneType;
import forge.util.MyRandom; import forge.util.MyRandom;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Random;
public class ChangeZoneAi extends SpellAbilityAi { public class ChangeZoneAi extends SpellAbilityAi {
/** /**

View File

@@ -1,8 +1,5 @@
package forge.ai.ability; package forge.ai.ability;
import java.util.List;
import java.util.Random;
import forge.ai.ComputerUtilCard; import forge.ai.ComputerUtilCard;
import forge.ai.ComputerUtilCost; import forge.ai.ComputerUtilCost;
import forge.ai.SpellAbilityAi; import forge.ai.SpellAbilityAi;
@@ -17,6 +14,9 @@ import forge.game.spellability.TargetRestrictions;
import forge.game.zone.ZoneType; import forge.game.zone.ZoneType;
import forge.util.MyRandom; import forge.util.MyRandom;
import java.util.List;
import java.util.Random;
public class ChangeZoneAllAi extends SpellAbilityAi { public class ChangeZoneAllAi extends SpellAbilityAi {
/* (non-Javadoc) /* (non-Javadoc)

View File

@@ -1,10 +1,5 @@
package forge.ai.ability; package forge.ai.ability;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Random;
import forge.ai.SpellAbilityAi; import forge.ai.SpellAbilityAi;
import forge.game.ability.effects.CharmEffect; import forge.game.ability.effects.CharmEffect;
import forge.game.player.Player; import forge.game.player.Player;
@@ -13,6 +8,11 @@ import forge.game.spellability.SpellAbility;
import forge.util.Aggregates; import forge.util.Aggregates;
import forge.util.MyRandom; import forge.util.MyRandom;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Random;
public class CharmAi extends SpellAbilityAi { public class CharmAi extends SpellAbilityAi {
@Override @Override

View File

@@ -1,11 +1,6 @@
package forge.ai.ability; package forge.ai.ability;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import forge.ai.ComputerUtilCard; import forge.ai.ComputerUtilCard;
import forge.ai.ComputerUtilCombat; import forge.ai.ComputerUtilCombat;
import forge.ai.SpellAbilityAi; import forge.ai.SpellAbilityAi;
@@ -20,6 +15,10 @@ import forge.game.spellability.SpellAbility;
import forge.game.spellability.TargetRestrictions; import forge.game.spellability.TargetRestrictions;
import forge.game.zone.ZoneType; import forge.game.zone.ZoneType;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
public class ChooseCardAi extends SpellAbilityAi { public class ChooseCardAi extends SpellAbilityAi {
/* (non-Javadoc) /* (non-Javadoc)

View File

@@ -1,12 +1,12 @@
package forge.ai.ability; package forge.ai.ability;
import java.util.List;
import forge.ai.SpellAbilityAi; import forge.ai.SpellAbilityAi;
import forge.game.player.Player; import forge.game.player.Player;
import forge.game.spellability.SpellAbility; import forge.game.spellability.SpellAbility;
import forge.util.Aggregates; import forge.util.Aggregates;
import java.util.List;
/** /**
* TODO: Write javadoc for this type. * TODO: Write javadoc for this type.
* *

View File

@@ -1,17 +1,16 @@
package forge.ai.ability; package forge.ai.ability;
import java.util.Collection;
import java.util.List;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import forge.ai.ComputerUtil; import forge.ai.ComputerUtil;
import forge.ai.SpellAbilityAi; import forge.ai.SpellAbilityAi;
import forge.game.player.Player; import forge.game.player.Player;
import forge.game.spellability.SpellAbility; import forge.game.spellability.SpellAbility;
import forge.game.zone.ZoneType; import forge.game.zone.ZoneType;
import java.util.Collection;
import java.util.List;
public class ChoosePlayerAi extends SpellAbilityAi { public class ChoosePlayerAi extends SpellAbilityAi {
/* (non-Javadoc) /* (non-Javadoc)

View File

@@ -1,10 +1,6 @@
package forge.ai.ability; package forge.ai.ability;
import java.util.Collection;
import java.util.List;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import forge.ai.ComputerUtilCard; import forge.ai.ComputerUtilCard;
import forge.ai.ComputerUtilCombat; import forge.ai.ComputerUtilCombat;
import forge.ai.ComputerUtilCost; import forge.ai.ComputerUtilCost;
@@ -24,6 +20,9 @@ import forge.game.spellability.SpellAbilityStackInstance;
import forge.game.spellability.TargetRestrictions; import forge.game.spellability.TargetRestrictions;
import forge.game.zone.ZoneType; import forge.game.zone.ZoneType;
import java.util.Collection;
import java.util.List;
public class ChooseSourceAi extends SpellAbilityAi { public class ChooseSourceAi extends SpellAbilityAi {
/* (non-Javadoc) /* (non-Javadoc)

View File

@@ -1,7 +1,5 @@
package forge.ai.ability; package forge.ai.ability;
import java.util.List;
import forge.ai.SpellAbilityAi; import forge.ai.SpellAbilityAi;
import forge.game.Game; import forge.game.Game;
import forge.game.ability.AbilityUtils; import forge.game.ability.AbilityUtils;
@@ -13,6 +11,8 @@ import forge.game.player.PlayerActionConfirmMode;
import forge.game.spellability.SpellAbility; import forge.game.spellability.SpellAbility;
import forge.game.spellability.TargetRestrictions; import forge.game.spellability.TargetRestrictions;
import java.util.List;
public class CloneAi extends SpellAbilityAi { public class CloneAi extends SpellAbilityAi {
@Override @Override

View File

@@ -1,10 +1,6 @@
package forge.ai.ability; package forge.ai.ability;
import java.util.List;
import java.util.Map;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import forge.ai.ComputerUtilCard; import forge.ai.ComputerUtilCard;
import forge.ai.SpellAbilityAi; import forge.ai.SpellAbilityAi;
import forge.game.ability.AbilityUtils; import forge.game.ability.AbilityUtils;
@@ -16,6 +12,9 @@ import forge.game.spellability.TargetRestrictions;
import forge.game.zone.ZoneType; import forge.game.zone.ZoneType;
import forge.util.MyRandom; import forge.util.MyRandom;
import java.util.List;
import java.util.Map;
public class ControlExchangeAi extends SpellAbilityAi { public class ControlExchangeAi extends SpellAbilityAi {
/* (non-Javadoc) /* (non-Javadoc)

View File

@@ -17,12 +17,7 @@
*/ */
package forge.ai.ability; package forge.ai.ability;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import forge.ai.ComputerUtilCard; import forge.ai.ComputerUtilCard;
import forge.ai.SpellAbilityAi; import forge.ai.SpellAbilityAi;
import forge.game.Game; import forge.game.Game;
@@ -37,6 +32,10 @@ import forge.game.spellability.TargetRestrictions;
import forge.game.zone.ZoneType; import forge.game.zone.ZoneType;
import forge.util.Aggregates; import forge.util.Aggregates;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
//AB:GainControl|ValidTgts$Creature|TgtPrompt$Select target legendary creature|LoseControl$Untap,LoseControl|SpellDescription$Gain control of target xxxxxxx //AB:GainControl|ValidTgts$Creature|TgtPrompt$Select target legendary creature|LoseControl$Untap,LoseControl|SpellDescription$Gain control of target xxxxxxx

View File

@@ -1,11 +1,6 @@
package forge.ai.ability; package forge.ai.ability;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import forge.ai.ComputerUtil; import forge.ai.ComputerUtil;
import forge.ai.ComputerUtilCard; import forge.ai.ComputerUtilCard;
import forge.ai.SpellAbilityAi; import forge.ai.SpellAbilityAi;
@@ -19,6 +14,10 @@ import forge.game.spellability.SpellAbility;
import forge.game.spellability.TargetRestrictions; import forge.game.spellability.TargetRestrictions;
import forge.game.zone.ZoneType; import forge.game.zone.ZoneType;
import java.util.Collection;
import java.util.List;
import java.util.Map;
public class CopyPermanentAi extends SpellAbilityAi { public class CopyPermanentAi extends SpellAbilityAi {
/* (non-Javadoc) /* (non-Javadoc)

View File

@@ -17,16 +17,15 @@
*/ */
package forge.ai.ability; package forge.ai.ability;
import java.util.List;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import forge.ai.ComputerUtilCard; import forge.ai.ComputerUtilCard;
import forge.game.card.Card; import forge.game.card.Card;
import forge.game.card.CardLists; import forge.game.card.CardLists;
import forge.game.card.CounterType; import forge.game.card.CounterType;
import forge.util.Aggregates; import forge.util.Aggregates;
import java.util.List;
/** /**
* <p> * <p>

View File

@@ -1,8 +1,5 @@
package forge.ai.ability; package forge.ai.ability;
import java.util.List;
import java.util.Random;
import forge.ai.ComputerUtilCard; import forge.ai.ComputerUtilCard;
import forge.ai.SpellAbilityAi; import forge.ai.SpellAbilityAi;
import forge.game.ability.AbilityUtils; import forge.game.ability.AbilityUtils;
@@ -16,6 +13,9 @@ import forge.game.zone.ZoneType;
import forge.util.Aggregates; import forge.util.Aggregates;
import forge.util.MyRandom; import forge.util.MyRandom;
import java.util.List;
import java.util.Random;
public class CountersMoveAi extends SpellAbilityAi { public class CountersMoveAi extends SpellAbilityAi {
@Override @Override
protected boolean canPlayAI(Player ai, SpellAbility sa) { protected boolean canPlayAI(Player ai, SpellAbility sa) {

View File

@@ -1,9 +1,6 @@
package forge.ai.ability; package forge.ai.ability;
import java.util.List;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import forge.ai.ComputerUtil; import forge.ai.ComputerUtil;
import forge.ai.SpellAbilityAi; import forge.ai.SpellAbilityAi;
import forge.game.card.Card; import forge.game.card.Card;
@@ -13,6 +10,8 @@ import forge.game.player.Player;
import forge.game.spellability.SpellAbility; import forge.game.spellability.SpellAbility;
import forge.game.zone.ZoneType; import forge.game.zone.ZoneType;
import java.util.List;
public class CountersProliferateAi extends SpellAbilityAi { public class CountersProliferateAi extends SpellAbilityAi {
@Override @Override

View File

@@ -1,18 +1,8 @@
package forge.ai.ability; package forge.ai.ability;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Random;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
import forge.ai.*;
import forge.ai.ComputerUtil;
import forge.ai.ComputerUtilCard;
import forge.ai.ComputerUtilCost;
import forge.ai.ComputerUtilMana;
import forge.ai.SpellAbilityAi;
import forge.game.ability.AbilityUtils; import forge.game.ability.AbilityUtils;
import forge.game.card.Card; import forge.game.card.Card;
import forge.game.card.CardLists; import forge.game.card.CardLists;
@@ -28,6 +18,11 @@ import forge.game.zone.ZoneType;
import forge.util.Aggregates; import forge.util.Aggregates;
import forge.util.MyRandom; import forge.util.MyRandom;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Random;
public class CountersPutAi extends SpellAbilityAi { public class CountersPutAi extends SpellAbilityAi {
@Override @Override
protected boolean canPlayAI(Player ai, final SpellAbility sa) { protected boolean canPlayAI(Player ai, final SpellAbility sa) {

View File

@@ -1,10 +1,6 @@
package forge.ai.ability; package forge.ai.ability;
import java.util.List;
import java.util.Random;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import forge.ai.ComputerUtilCost; import forge.ai.ComputerUtilCost;
import forge.ai.ComputerUtilMana; import forge.ai.ComputerUtilMana;
import forge.ai.SpellAbilityAi; import forge.ai.SpellAbilityAi;
@@ -22,6 +18,9 @@ import forge.game.spellability.TargetRestrictions;
import forge.game.zone.ZoneType; import forge.game.zone.ZoneType;
import forge.util.MyRandom; import forge.util.MyRandom;
import java.util.List;
import java.util.Random;
public class CountersPutAllAi extends SpellAbilityAi { public class CountersPutAllAi extends SpellAbilityAi {
@Override @Override
protected boolean canPlayAI(Player ai, SpellAbility sa) { protected boolean canPlayAI(Player ai, SpellAbility sa) {

View File

@@ -17,10 +17,7 @@
*/ */
package forge.ai.ability; package forge.ai.ability;
import java.util.List;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import forge.ai.SpellAbilityAi; import forge.ai.SpellAbilityAi;
import forge.game.card.Card; import forge.game.card.Card;
import forge.game.card.CardLists; import forge.game.card.CardLists;
@@ -30,6 +27,8 @@ import forge.game.spellability.TargetRestrictions;
import forge.game.zone.ZoneType; import forge.game.zone.ZoneType;
import forge.util.MyRandom; import forge.util.MyRandom;
import java.util.List;
/** /**
* <p> * <p>
* AbilityFactory_PutOrRemoveCountersAi class. * AbilityFactory_PutOrRemoveCountersAi class.

View File

@@ -1,9 +1,6 @@
package forge.ai.ability; package forge.ai.ability;
import java.util.List;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
import forge.ai.ComputerUtilCombat; import forge.ai.ComputerUtilCombat;
import forge.ai.SpellAbilityAi; import forge.ai.SpellAbilityAi;
import forge.game.Game; import forge.game.Game;
@@ -14,6 +11,8 @@ import forge.game.player.Player;
import forge.game.spellability.SpellAbility; import forge.game.spellability.SpellAbility;
import forge.game.zone.ZoneType; import forge.game.zone.ZoneType;
import java.util.List;
public abstract class DamageAiBase extends SpellAbilityAi { public abstract class DamageAiBase extends SpellAbilityAi {
protected boolean shouldTgtP(final Player comp, final SpellAbility sa, final int d, final boolean noPrevention) { protected boolean shouldTgtP(final Player comp, final SpellAbility sa, final int d, final boolean noPrevention) {
int restDamage = d; int restDamage = d;

View File

@@ -1,16 +1,7 @@
package forge.ai.ability; package forge.ai.ability;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import forge.ai.*;
import forge.ai.ComputerUtilCard;
import forge.ai.ComputerUtilCombat;
import forge.ai.ComputerUtilCost;
import forge.ai.ComputerUtilMana;
import forge.ai.SpellAbilityAi;
import forge.game.ability.AbilityUtils; import forge.game.ability.AbilityUtils;
import forge.game.card.Card; import forge.game.card.Card;
import forge.game.card.CardLists; import forge.game.card.CardLists;
@@ -21,6 +12,10 @@ import forge.game.spellability.TargetRestrictions;
import forge.game.zone.ZoneType; import forge.game.zone.ZoneType;
import forge.util.MyRandom; import forge.util.MyRandom;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class DamageAllAi extends SpellAbilityAi { public class DamageAllAi extends SpellAbilityAi {
@Override @Override

View File

@@ -1,17 +1,8 @@
package forge.ai.ability; package forge.ai.ability;
import java.util.List;
import java.util.Random;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import forge.ai.*;
import forge.ai.ComputerUtil;
import forge.ai.ComputerUtilCard;
import forge.ai.ComputerUtilCombat;
import forge.ai.ComputerUtilCost;
import forge.ai.ComputerUtilMana;
import forge.ai.SpellAbilityAi;
import forge.game.Game; import forge.game.Game;
import forge.game.GameObject; import forge.game.GameObject;
import forge.game.ability.AbilityUtils; import forge.game.ability.AbilityUtils;
@@ -30,6 +21,9 @@ import forge.game.zone.ZoneType;
import forge.util.Aggregates; import forge.util.Aggregates;
import forge.util.MyRandom; import forge.util.MyRandom;
import java.util.List;
import java.util.Random;
public class DamageDealAi extends DamageAiBase { public class DamageDealAi extends DamageAiBase {
@Override @Override
public boolean chkAIDrawback(SpellAbility sa, Player ai) { public boolean chkAIDrawback(SpellAbility sa, Player ai) {

View File

@@ -1,13 +1,6 @@
package forge.ai.ability; package forge.ai.ability;
import java.util.ArrayList; import forge.ai.*;
import java.util.List;
import forge.ai.ComputerUtil;
import forge.ai.ComputerUtilCard;
import forge.ai.ComputerUtilCombat;
import forge.ai.ComputerUtilCost;
import forge.ai.SpellAbilityAi;
import forge.game.Game; import forge.game.Game;
import forge.game.GameObject; import forge.game.GameObject;
import forge.game.ability.AbilityUtils; import forge.game.ability.AbilityUtils;
@@ -24,6 +17,9 @@ import forge.game.spellability.TargetChoices;
import forge.game.spellability.TargetRestrictions; import forge.game.spellability.TargetRestrictions;
import forge.game.zone.ZoneType; import forge.game.zone.ZoneType;
import java.util.ArrayList;
import java.util.List;
public class DamagePreventAi extends SpellAbilityAi { public class DamagePreventAi extends SpellAbilityAi {
@Override @Override

View File

@@ -1,13 +1,8 @@
package forge.ai.ability; package forge.ai.ability;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import forge.ai.ComputerUtilCard; import forge.ai.ComputerUtilCard;
import forge.ai.ComputerUtilCost; import forge.ai.ComputerUtilCost;
import forge.ai.SpellAbilityAi; import forge.ai.SpellAbilityAi;
@@ -25,6 +20,10 @@ import forge.game.spellability.SpellAbilityRestriction;
import forge.game.spellability.TargetRestrictions; import forge.game.spellability.TargetRestrictions;
import forge.game.zone.ZoneType; import forge.game.zone.ZoneType;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class DebuffAi extends SpellAbilityAi { public class DebuffAi extends SpellAbilityAi {
// ************************************************************************* // *************************************************************************
// ***************************** Debuff ************************************ // ***************************** Debuff ************************************

View File

@@ -1,10 +1,6 @@
package forge.ai.ability; package forge.ai.ability;
import java.util.List;
import java.util.Random;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import forge.ai.SpellAbilityAi; import forge.ai.SpellAbilityAi;
import forge.game.card.Card; import forge.game.card.Card;
import forge.game.card.CardLists; import forge.game.card.CardLists;
@@ -15,6 +11,9 @@ import forge.game.spellability.SpellAbility;
import forge.game.zone.ZoneType; import forge.game.zone.ZoneType;
import forge.util.MyRandom; import forge.util.MyRandom;
import java.util.List;
import java.util.Random;
public class DebuffAllAi extends SpellAbilityAi { public class DebuffAllAi extends SpellAbilityAi {
@Override @Override
protected boolean canPlayAI(Player ai, SpellAbility sa) { protected boolean canPlayAI(Player ai, SpellAbility sa) {

View File

@@ -1,11 +1,6 @@
package forge.ai.ability; package forge.ai.ability;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import forge.ai.ComputerUtil; import forge.ai.ComputerUtil;
import forge.ai.ComputerUtilCard; import forge.ai.ComputerUtilCard;
import forge.ai.ComputerUtilCost; import forge.ai.ComputerUtilCost;
@@ -23,6 +18,10 @@ import forge.game.spellability.TargetRestrictions;
import forge.game.zone.ZoneType; import forge.game.zone.ZoneType;
import forge.util.MyRandom; import forge.util.MyRandom;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class DestroyAi extends SpellAbilityAi { public class DestroyAi extends SpellAbilityAi {
/* (non-Javadoc) /* (non-Javadoc)

Some files were not shown because too many files have changed in this diff Show More