1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package net.sf.magicproject.action;
23
24 import java.io.IOException;
25 import java.io.InputStream;
26
27 import net.sf.magicproject.action.handler.StandardAction;
28 import net.sf.magicproject.clickable.ability.Ability;
29 import net.sf.magicproject.clickable.targetable.player.Player;
30 import net.sf.magicproject.event.context.ContextEventListener;
31 import net.sf.magicproject.stack.EventManager;
32 import net.sf.magicproject.test.TestOn;
33
34 /***
35 * Set the current player after the current phase <br>
36 *
37 * @author <a href="mailto:fabdouglas@users.sourceforge.net">Fabrice Daugan </a>
38 * @since 0.80
39 */
40 class NextCurrentPlayer extends UserAction implements StandardAction {
41
42 /***
43 * Create an instance of NextCurrentPlayer by reading a file Offset's file
44 * must pointing on the first byte of this action <br>
45 * <ul>
46 * Structure of InputStream : Data[size]
47 * <li>nextPlayer [TestOn]</li>
48 * </ul>
49 *
50 * @param inputFile
51 * file containing this action
52 * @throws IOException
53 * if error occurred during the reading process from the specified
54 * input stream
55 */
56 NextCurrentPlayer(InputStream inputFile) throws IOException {
57 super(inputFile);
58 nextPlayer = TestOn.deserialize(inputFile);
59 }
60
61 @Override
62 public final Actiontype getIdAction() {
63 return Actiontype.NEXT_CURRENT_PLAYER;
64 }
65
66 public boolean play(ContextEventListener context, Ability ability) {
67 EventManager.nextCurrentPlayer = ((Player) nextPlayer.getTargetable(
68 ability, context, null)).idPlayer;
69 return true;
70 }
71
72 @Override
73 public String toString(Ability ability) {
74 return "set current player";
75 }
76
77 /***
78 * Player who would lose the play
79 */
80 private TestOn nextPlayer;
81
82 }