1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package net.sf.magicproject.action;
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.event.context.ContextEventListener;
27 import net.sf.magicproject.stack.StackManager;
28
29 /***
30 * This action is used to modifiy a stack register. There is a register per
31 * ability in the stack.
32 *
33 * @author <a href="mailto:fabdouglas@users.sourceforge.net">Fabrice Daugan </a>
34 * @since 0.71
35 */
36 class ModifyStackRegister extends ModifyRegister {
37
38 /***
39 * Create an instance of ModifyRegister by reading a file Offset's file must
40 * pointing on the first byte of this action <br>
41 * <ul>
42 * Structure of InputStream : Data[size]
43 * <li>[super]</li>
44 * </ul>
45 *
46 * @param inputFile
47 * file containing this action
48 * @throws IOException
49 * if error occurred during the reading process from the specified
50 * input stream
51 */
52 ModifyStackRegister(InputStream inputFile) throws IOException {
53 super(inputFile);
54 }
55
56 @Override
57 public final Actiontype getIdAction() {
58 return Actiontype.MODIFY_STACK_REGISTER;
59 }
60
61 @Override
62 public boolean play(ContextEventListener context, Ability ability) {
63 final int reg = index.getValue(ability, null, context);
64 StackManager.registers[reg] = op.process(StackManager.registers[reg],
65 getValue(ability, ability.getCard(), context));
66 return true;
67 }
68
69 @Override
70 public String toString(Ability ability) {
71 return "";
72 }
73 }