1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package net.sf.magicproject.expression;
20
21 import java.io.IOException;
22 import java.io.InputStream;
23
24 import net.sf.magicproject.clickable.ability.Ability;
25 import net.sf.magicproject.clickable.targetable.Targetable;
26 import net.sf.magicproject.event.context.ContextEventListener;
27
28 /***
29 * @author <a href="mailto:fabdouglas@users.sourceforge.net">Fabrice Daugan </a>
30 * @since 0.93
31 */
32 public class TestOn extends Expression {
33
34 /***
35 * Creates a new instance of TestOn <br>
36 * <ul>
37 * Structure of InputStream : Data[size]
38 * <li>testOn[TestOn]
39 * </ul>
40 *
41 * @param inputFile
42 * file containing this action
43 * @throws IOException
44 * if error occurred during the reading process from the specified
45 * input stream
46 */
47 public TestOn(InputStream inputFile) throws IOException {
48 super();
49 on = net.sf.magicproject.test.TestOn.deserialize(inputFile);
50 }
51
52 @Override
53 public int getValue(Ability ability, Targetable tested,
54 ContextEventListener context) {
55 Targetable on = this.on.getTargetable(ability, context, tested);
56 if (on == null) {
57 throw new RuntimeException("No valid component for " + this.on
58 + " be sure the XML code is correct for ability "
59 + ability.toString() + " in card " + ability.getCard());
60 }
61 return on.getId();
62 }
63
64 /***
65 * Represents the component used to access manacost.
66 */
67 private final net.sf.magicproject.test.TestOn on;
68
69 }