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.action.handler.StandardAction;
26 import net.sf.magicproject.clickable.ability.Ability;
27 import net.sf.magicproject.clickable.targetable.card.MCard;
28 import net.sf.magicproject.event.context.ContextEventListener;
29 import net.sf.magicproject.test.TestOn;
30
31 /***
32 * Remove all copy effects from a card.
33 *
34 * @author <a href="mailto:fabdouglas@users.sourceforge.net">Fabrice Daugan </a>
35 * @since 0.94
36 */
37 class RestoreCard extends UserAction implements StandardAction {
38
39 /***
40 * Create an instance of RestoreCard by reading a file Offset's file must
41 * pointing on the first byte of this action
42 * <ul>
43 * Structure of InputStream : Data[size]
44 * <li>card to restore [TestOn]</li>
45 * </ul>
46 *
47 * @param inputFile
48 * file containing this action
49 * @throws IOException
50 * if error occurred during the reading process from the specified
51 * input stream
52 */
53 RestoreCard(InputStream inputFile) throws IOException {
54 super(inputFile);
55 restore = TestOn.deserialize(inputFile);
56 }
57
58 @Override
59 public final Actiontype getIdAction() {
60 return Actiontype.RESTORE_CARD;
61 }
62
63 public boolean play(ContextEventListener context, Ability ability) {
64 MCard restore = this.restore.getCard(ability, context, null);
65 if (restore.hasDirtyDataBase()) {
66 restore.setDataBase(restore.getOriginalDatabase());
67 }
68 return true;
69 }
70
71 @Override
72 public String toString(Ability ability) {
73 return "restore card";
74 }
75
76 /***
77 * The card to restore.
78 */
79 private final TestOn restore;
80
81 }