*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;
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.util.FileUtil;
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>

View File

@@ -1,9 +1,5 @@
package forge;
import java.io.File;
import java.util.Map;
import java.util.TreeMap;
import forge.card.CardDb;
import forge.card.CardEdition;
import forge.card.CardRules;
@@ -13,6 +9,10 @@ import forge.item.SealedProduct;
import forge.util.storage.IStorage;
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

View File

@@ -17,31 +17,22 @@
*/
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.Predicates;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import forge.StaticData;
import forge.card.CardEdition.FoilType;
import forge.item.PaperCard;
import forge.item.IPaperCard;
import forge.item.PaperCard;
import forge.item.SealedProduct;
import forge.util.Aggregates;
import forge.util.MyRandom;
import forge.util.TextUtil;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.Pair;
import java.util.*;
/**
* <p>

View File

@@ -17,35 +17,20 @@
*/
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.collect.Iterables;
import com.google.common.collect.ListMultimap;
import com.google.common.collect.Lists;
import com.google.common.collect.Multimaps;
import forge.card.CardEdition.CardInSet;
import forge.card.CardEdition.Type;
import forge.item.PaperCard;
import forge.util.Aggregates;
import forge.util.CollectionSuppliers;
import forge.util.Lang;
import forge.util.MyRandom;
import forge.util.TextUtil;
import forge.util.*;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.Pair;
import java.util.*;
import java.util.Map.Entry;
public final class CardDb implements ICardDatabase {
public final static String foilSuffix = "+";

View File

@@ -17,29 +17,10 @@
*/
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.Predicate;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import forge.StaticData;
import forge.card.CardDb.SetPreference;
import forge.deck.CardPool;
@@ -52,6 +33,14 @@ import forge.util.IItemReader;
import forge.util.storage.StorageBase;
import forge.util.storage.StorageReaderBase;
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;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.TreeMap;
import forge.card.mana.ManaCost;
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

View File

@@ -17,14 +17,13 @@
*/
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.ManaCost;
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

View File

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

View File

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

View File

@@ -17,14 +17,13 @@
*/
package forge.card;
import java.util.Iterator;
import java.util.NoSuchElementException;
import com.google.common.collect.UnmodifiableIterator;
import forge.card.mana.ManaCost;
import forge.util.BinaryUtil;
import java.util.Iterator;
import java.util.NoSuchElementException;
/**
* <p>CardColor class.</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;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import com.google.common.base.Function;
import com.google.common.base.Predicate;
import com.google.common.base.Predicates;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import forge.item.PaperCard;
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
* Cards in its random deck.

View File

@@ -1,14 +1,13 @@
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.Date;
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> {
PaperCard getCard(String cardName);
PaperCard getCard(String cardName, String edition);

View File

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

View File

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

View File

@@ -1,19 +1,18 @@
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 forge.util.ItemPool;
import forge.deck.CardPool;
import forge.item.PaperCard;
import forge.util.ItemPool;
import forge.util.MyRandom;
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.

View File

@@ -1,20 +1,18 @@
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.List;
import java.util.Map;
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 {

View File

@@ -17,22 +17,21 @@
*/
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 forge.StaticData;
import forge.card.CardDb;
import forge.item.PaperCard;
import forge.util.ItemPool;
import forge.util.ItemPoolSorter;
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.

View File

@@ -17,22 +17,15 @@
*/
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 forge.StaticData;
import forge.card.CardEdition;
import forge.card.CardDb.SetPreference;
import forge.card.CardEdition;
import forge.item.PaperCard;
import java.util.*;
import java.util.Map.Entry;
/**

View File

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

View File

@@ -17,21 +17,19 @@
*/
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.Arrays;
import java.util.List;
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. :)
*/

View File

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

View File

@@ -17,17 +17,16 @@
*/
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.SetPreference;
import forge.card.ICardDatabase;
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>

View File

@@ -17,16 +17,15 @@
*/
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 forge.card.ColorSet;
import forge.card.ICardDatabase;
import forge.card.MagicColor;
import forge.deck.CardPool;
import org.apache.commons.lang3.tuple.ImmutablePair;
import java.util.Arrays;
import java.util.List;
/**
* <p>

View File

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

View File

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

View File

@@ -17,32 +17,21 @@
*/
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.Predicates;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import forge.card.CardRules;
import forge.card.CardRulesPredicates;
import forge.card.ColorSet;
import forge.card.ICardDatabase;
import forge.card.MagicColor;
import forge.card.*;
import forge.card.mana.ManaCost;
import forge.deck.CardPool;
import forge.item.PaperCard;
import forge.util.Aggregates;
import forge.util.ItemPool;
import forge.util.MyRandom;
import org.apache.commons.lang3.tuple.ImmutablePair;
import java.util.*;
import java.util.Map.Entry;
/**
* <p>

View File

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

View File

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

View File

@@ -1,13 +1,5 @@
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.deck.CardPool;
import forge.deck.Deck;
@@ -16,6 +8,13 @@ import forge.item.IPaperCard;
import forge.util.FileSection;
import forge.util.FileSectionManual;
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 {

View File

@@ -17,13 +17,6 @@
*/
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.util.FileSection;
import forge.util.FileUtil;
@@ -31,6 +24,11 @@ import forge.util.IItemReader;
import forge.util.IItemSerializer;
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.
*/

View File

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

View File

@@ -18,19 +18,17 @@
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 forge.StaticData;
import forge.card.BoosterGenerator;
import forge.card.CardEdition;
import forge.util.TextUtil;
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 static final Function<CardEdition, FatPack> FN_FROM_SET = new Function<CardEdition, FatPack>() {

View File

@@ -1,18 +1,17 @@
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.List;
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.CardRarity;
import forge.card.CardRules;
import forge.util.PredicateString;
public interface IPaperCard extends InventoryItem {

View File

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

View File

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

View File

@@ -17,13 +17,7 @@
*/
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 forge.StaticData;
import forge.deck.Deck;
import forge.deck.io.DeckSerializer;
@@ -32,6 +26,11 @@ import forge.util.FileSection;
import forge.util.FileUtil;
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.
*

View File

@@ -18,19 +18,11 @@
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.Predicate;
import com.google.common.base.Predicates;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import forge.StaticData;
import forge.card.BoosterGenerator;
import forge.card.BoosterSlots;
@@ -38,6 +30,12 @@ import forge.card.CardRulesPredicates;
import forge.util.Aggregates;
import forge.util.TextUtil;
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 {
protected final Template contents;

View File

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

View File

@@ -1,15 +1,10 @@
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 java.util.*;
import java.util.Map.Entry;
/**
* TODO: Write javadoc for this type.
*

View File

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

View File

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

View File

@@ -17,19 +17,13 @@
*/
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.Predicate;
import forge.item.InventoryItem;
import java.util.*;
import java.util.Map.Entry;
/**
* <p>
* ItemPool class.

View File

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

View File

@@ -1,13 +1,12 @@
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.collect.Iterables;
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.

View File

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

View File

@@ -1,5 +1,9 @@
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.util.ArrayList;
import java.util.List;
@@ -7,11 +11,6 @@ import java.util.Locale;
import java.util.Map;
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.
*

View File

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

View File

@@ -1,12 +1,12 @@
package forge.util.maps;
import com.google.common.base.Supplier;
import java.util.Collection;
import java.util.EnumMap;
import java.util.List;
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> {
private final Supplier<? extends Collection<V>> factory;

View File

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

View File

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

View File

@@ -17,17 +17,12 @@
*/
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.collect.Iterables;
import forge.util.IItemReader;
import java.util.*;
/**
* <p>
* StorageBase class.

View File

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

View File

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

View File

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

View File

@@ -17,16 +17,14 @@
*/
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.util.Map;
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.
*

View File

@@ -17,18 +17,16 @@
*/
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.util.ArrayList;
import java.util.List;
import java.util.Map;
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.
*

View File

@@ -17,18 +17,13 @@
*/
package forge.util.storage;
import com.google.common.base.Function;
import java.io.File;
import java.io.FileFilter;
import java.io.FilenameFilter;
import java.io.IOException;
import java.util.ArrayList;
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;
import java.util.*;
/**
* This class treats every file in the given folder as a source for a named

View File

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

View File

@@ -17,13 +17,8 @@
*/
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.collect.Lists;
import forge.game.GameEntity;
import forge.game.card.Card;
import forge.game.card.CardLists;
@@ -35,6 +30,10 @@ import forge.game.trigger.Trigger;
import forge.game.trigger.TriggerType;
import forge.game.zone.ZoneType;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
//doesHumanAttackAndWin() uses the global variable AllZone.getComputerPlayer()
/**

View File

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

View File

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

View File

@@ -1,53 +1,25 @@
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.collect.Lists;
import forge.card.CardType;
import forge.game.Game;
import forge.game.ability.AbilityUtils;
import forge.game.card.Card;
import forge.game.card.CardLists;
import forge.game.card.CardPredicates;
import forge.game.card.CounterType;
import forge.game.card.CardPredicates.Presets;
import forge.game.cost.CostAddMana;
import forge.game.cost.CostChooseCreatureType;
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.card.CounterType;
import forge.game.cost.*;
import forge.game.player.Player;
import forge.game.player.PlayerControllerAi;
import forge.game.spellability.SpellAbility;
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> {

View File

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

View File

@@ -17,41 +17,22 @@
*/
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.collect.Iterables;
import forge.card.CardType;
import forge.card.MagicColor;
import forge.card.CardType.Constant;
import forge.card.MagicColor;
import forge.game.Game;
import forge.game.GameObject;
import forge.game.ability.AbilityFactory;
import forge.game.ability.AbilityUtils;
import forge.game.ability.ApiType;
import forge.game.ability.effects.CharmEffect;
import forge.game.card.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.*;
import forge.game.card.CardPredicates.Presets;
import forge.game.combat.Combat;
import forge.game.combat.CombatUtil;
import forge.game.cost.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.cost.*;
import forge.game.phase.PhaseHandler;
import forge.game.phase.PhaseType;
import forge.game.player.Player;
@@ -67,6 +48,9 @@ import forge.game.zone.Zone;
import forge.game.zone.ZoneType;
import forge.util.Aggregates;
import forge.util.MyRandom;
import org.apache.commons.lang3.StringUtils;
import java.util.*;
/**
@@ -1754,7 +1738,7 @@ public class ComputerUtil {
theTriggers.addAll(card.getTriggers());
}
for (Trigger trigger : theTriggers) {
HashMap<String, String> trigParams = trigger.getMapParams();
Map<String, String> trigParams = trigger.getMapParams();
final Card source = trigger.getHostCard();

View File

@@ -1,22 +1,9 @@
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.Predicate;
import com.google.common.base.Predicates;
import com.google.common.collect.Iterables;
import forge.card.CardType;
import forge.card.ColorSet;
import forge.card.MagicColor;
@@ -24,17 +11,18 @@ import forge.deck.CardPool;
import forge.deck.Deck;
import forge.deck.DeckSection;
import forge.game.Game;
import forge.game.card.Card;
import forge.game.card.CardFactoryUtil;
import forge.game.card.CardLists;
import forge.game.card.CardPredicates;
import forge.game.card.CardUtil;
import forge.game.card.*;
import forge.game.combat.Combat;
import forge.game.player.Player;
import forge.game.spellability.SpellAbility;
import forge.game.zone.ZoneType;
import forge.item.PaperCard;
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.

View File

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

View File

@@ -1,28 +1,19 @@
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.card.Card;
import forge.game.card.CardLists;
import forge.game.card.CounterType;
import forge.game.cost.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.cost.*;
import forge.game.player.Player;
import forge.game.spellability.Spell;
import forge.game.spellability.SpellAbility;
import forge.game.zone.ZoneType;
import forge.util.TextUtil;
import org.apache.commons.lang3.StringUtils;
import java.util.ArrayList;
import java.util.List;
/**
* TODO: Write javadoc for this type.

View File

@@ -1,21 +1,8 @@
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.collect.ArrayListMultimap;
import com.google.common.collect.Multimap;
import forge.card.MagicColor;
import forge.card.mana.ManaAtom;
import forge.card.mana.ManaCost;
@@ -41,6 +28,10 @@ import forge.util.CollectionSuppliers;
import forge.util.TextUtil;
import forge.util.maps.EnumMapOfLists;
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.

View File

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

View File

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

View File

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

View File

@@ -1,29 +1,12 @@
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.Predicates;
import forge.ai.ComputerUtil;
import forge.ai.ComputerUtilCard;
import forge.ai.ComputerUtilCost;
import forge.ai.ComputerUtilMana;
import forge.ai.SpellAbilityAi;
import forge.ai.*;
import forge.game.GameObject;
import forge.game.ability.AbilityUtils;
import forge.game.ability.ApiType;
import forge.game.card.Card;
import forge.game.card.CardFactoryUtil;
import forge.game.card.CardLists;
import forge.game.card.CardPredicates;
import forge.game.card.CardUtil;
import forge.game.card.*;
import forge.game.combat.CombatUtil;
import forge.game.cost.Cost;
import forge.game.phase.PhaseHandler;
@@ -37,6 +20,8 @@ import forge.game.trigger.Trigger;
import forge.game.trigger.TriggerType;
import forge.util.MyRandom;
import java.util.*;
public class AttachAi extends SpellAbilityAi {
/* (non-Javadoc)
@@ -778,7 +763,7 @@ public class AttachAi extends SpellAbilityAi {
for (Card target : list) {
for (Trigger t : target.getTriggers()) {
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"))) {
magnetList.add(target);
break;

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,22 +1,10 @@
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.Predicates;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
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.ai.*;
import forge.card.MagicColor;
import forge.game.Game;
import forge.game.GameObject;
@@ -40,6 +28,11 @@ import forge.game.spellability.TargetRestrictions;
import forge.game.zone.ZoneType;
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 {
/**

View File

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

View File

@@ -1,10 +1,5 @@
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.game.ability.effects.CharmEffect;
import forge.game.player.Player;
@@ -13,6 +8,11 @@ import forge.game.spellability.SpellAbility;
import forge.util.Aggregates;
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 {
@Override

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -17,12 +17,7 @@
*/
package forge.ai.ability;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import com.google.common.base.Predicate;
import forge.ai.ComputerUtilCard;
import forge.ai.SpellAbilityAi;
import forge.game.Game;
@@ -37,6 +32,10 @@ import forge.game.spellability.TargetRestrictions;
import forge.game.zone.ZoneType;
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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,18 +1,8 @@
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.collect.Iterables;
import forge.ai.ComputerUtil;
import forge.ai.ComputerUtilCard;
import forge.ai.ComputerUtilCost;
import forge.ai.ComputerUtilMana;
import forge.ai.SpellAbilityAi;
import forge.ai.*;
import forge.game.ability.AbilityUtils;
import forge.game.card.Card;
import forge.game.card.CardLists;
@@ -28,6 +18,11 @@ import forge.game.zone.ZoneType;
import forge.util.Aggregates;
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 {
@Override
protected boolean canPlayAI(Player ai, final SpellAbility sa) {

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,13 +1,6 @@
package forge.ai.ability;
import java.util.ArrayList;
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.ai.*;
import forge.game.Game;
import forge.game.GameObject;
import forge.game.ability.AbilityUtils;
@@ -24,6 +17,9 @@ import forge.game.spellability.TargetChoices;
import forge.game.spellability.TargetRestrictions;
import forge.game.zone.ZoneType;
import java.util.ArrayList;
import java.util.List;
public class DamagePreventAi extends SpellAbilityAi {
@Override

View File

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

View File

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

View File

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

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