1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package net.sf.magicproject.test;
22
23 import java.io.IOException;
24 import java.io.InputStream;
25 import java.util.List;
26
27 import net.sf.magicproject.clickable.ability.Ability;
28 import net.sf.magicproject.clickable.targetable.card.MCard;
29 import net.sf.magicproject.expression.Expression;
30 import net.sf.magicproject.expression.ExpressionFactory;
31 import net.sf.magicproject.stack.StackManager;
32 import net.sf.magicproject.token.IdConst;
33
34 /***
35 * @author <a href="mailto:fabdouglas@users.sourceforge.net">Fabrice Daugan </a>
36 * @since 0.60
37 */
38 class TargetListContains extends TestCard {
39
40 /***
41 * Create an instance of InIdCard by reading a file. Offset's file must
42 * pointing on the first byte of this test <br>
43 * <ul>
44 * Structure of InputStream : Data[size]
45 * <li>idCard to test [2]</li>
46 * </ul>
47 *
48 * @param inputFile
49 * is the file containing this event
50 * @throws IOException
51 * if error occurred during the reading process from the specified
52 * input stream
53 */
54 TargetListContains(InputStream inputFile) throws IOException {
55 super(inputFile);
56 inputFile.read();
57 listIndex = ExpressionFactory.readNextExpression(inputFile);
58 }
59
60 @Override
61 protected boolean testCard(Ability ability, MCard tested) {
62 int listIndex = this.listIndex.getValue(ability, tested, null);
63 if (listIndex == IdConst.ALL) {
64 listIndex = StackManager.SAVED_TARGET_LISTS.size() - 1;
65 }
66 if (listIndex < 0) {
67 return StackManager.getTargetListAccess().contains(
68 on.getTargetable(ability, tested));
69 }
70 return ((List) StackManager.SAVED_TARGET_LISTS.get(listIndex)).contains(on
71 .getTargetable(ability, tested));
72 }
73
74 /***
75 * Is the index of saved target list to use for this test
76 */
77 private Expression listIndex;
78 }