1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package net.sf.magicproject.expression;
21
22 import java.io.IOException;
23 import java.io.InputStream;
24
25 import net.sf.magicproject.clickable.ability.Ability;
26 import net.sf.magicproject.clickable.targetable.Targetable;
27 import net.sf.magicproject.event.context.ContextEventListener;
28 import net.sf.magicproject.token.IdConst;
29 import net.sf.magicproject.tools.MToolKit;
30
31 /***
32 * @author <a href="mailto:fabdouglas@users.sourceforge.net">Fabrice Daugan </a>
33 * @since 0.91 the pre-empted value of ALL, is ONE.
34 */
35 public class IntValue extends Expression {
36
37 /***
38 * Creates a new instance of IntValue <br>
39 * <ul>
40 * Structure of InputStream : Data[size]
41 * <li>int 16 value [2]</li>
42 * </ul>
43 *
44 * @param inputFile
45 * file containing this action
46 * @throws IOException
47 * if error occurred during the reading process from the specified
48 * input stream
49 */
50 public IntValue(InputStream inputFile) throws IOException {
51 super();
52 value = MToolKit.getConstant(MToolKit.readInt16(inputFile));
53 }
54
55 /***
56 * Creates a new instance of IntValue with a specified value.
57 *
58 * @param value
59 * integer value of this expression
60 */
61 public IntValue(int value) {
62 super();
63 this.value = value;
64 }
65
66 @Override
67 public int getPreemptionValue(Ability ability, Targetable tested,
68 ContextEventListener context) {
69 if (value == IdConst.ALL) {
70 return 1;
71 }
72 return super.getPreemptionValue(ability, tested, context);
73 }
74
75 @Override
76 public int getValue(Ability ability, Targetable tested,
77 ContextEventListener context) {
78 return value;
79 }
80
81 @Override
82 public String toString() {
83 return String.valueOf(value);
84 }
85
86 @Override
87 public boolean isConstant() {
88 return true;
89 }
90
91 /***
92 * The integer value of this expression
93 */
94 public int value;
95
96 }