1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package net.sf.magicproject.action;
20
21 import java.io.IOException;
22 import java.io.InputStream;
23
24 import net.sf.magicproject.action.handler.StandardAction;
25 import net.sf.magicproject.clickable.ability.Ability;
26 import net.sf.magicproject.clickable.targetable.player.Player;
27 import net.sf.magicproject.event.context.ContextEventListener;
28 import net.sf.magicproject.stack.StackManager;
29 import net.sf.magicproject.test.TestOn;
30
31 /***
32 * Cause the specified player to lose <br>
33 *
34 * @author <a href="mailto:fabdouglas@users.sourceforge.net">Fabrice Daugan </a>
35 * @since 0.54
36 */
37 class LoseGame extends UserAction implements StandardAction {
38
39 /***
40 * Create an instance of LoseGame by reading a file Offset's file must
41 * pointing on the first byte of this action <br>
42 * <ul>
43 * Structure of InputStream : Data[size]
44 * <li>Player [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 LoseGame(InputStream inputFile) throws IOException {
54 super(inputFile);
55 player = TestOn.deserialize(inputFile);
56 }
57
58 @Override
59 public final Actiontype getIdAction() {
60 return Actiontype.LOSE_GAME;
61 }
62
63 public boolean play(ContextEventListener context, Ability ability) {
64 StackManager.postLoseGame(((Player) player.getTargetable(ability, context,
65 null)).idPlayer);
66 return true;
67 }
68
69 @Override
70 public String toString(Ability ability) {
71 return "lose play";
72 }
73
74 /***
75 * Player who would lose the play
76 */
77 private TestOn player;
78
79 }