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.clickable.targetable.card.DelayedCard;
27 import net.sf.magicproject.event.context.ContextEventListener;
28 import net.sf.magicproject.stack.StackManager;
29
30 /***
31 * @author <a href="mailto:fabdouglas@users.sourceforge.net">Fabrice Daugan </a>
32 * @since 0.80
33 */
34 class ModifyAbilityRegister extends ModifyRegister {
35
36 /***
37 * Create an instance of ModifyAbilityRegister by reading a file Offset's file
38 * must pointing on the first byte of this action <br>
39 * <ul>
40 * Structure of InputStream : Data[size]
41 * <li> [super]</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 ModifyAbilityRegister(InputStream inputFile) throws IOException {
51 super(inputFile);
52 }
53
54 @Override
55 public final Actiontype getIdAction() {
56 return Actiontype.MODIFY_ABILITY_REGISTER;
57 }
58
59 @Override
60 public boolean play(ContextEventListener context, Ability ability) {
61 DelayedCard delayedCard = StackManager.triggered.getDelayedCard();
62 delayedCard.registers[index.getValue(ability, null, context)] = op.process(
63 delayedCard.registers[index.getValue(ability, null, context)],
64 getValue(ability, null, context));
65 return true;
66 }
67
68 /***
69 * return the string representation of this action
70 *
71 * @param ability
72 * is the ability owning this test. The card component of this
73 * ability should correspond to the card owning this test too.
74 * @return the string representation of this action
75 * @see Object#toString()
76 */
77 @Override
78 public String toString(Ability ability) {
79 return "Modify attachedto register";
80 }
81 }