1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package net.sf.magicproject.action.listener;
20
21 import java.util.List;
22
23 import net.sf.magicproject.clickable.ability.Ability;
24 import net.sf.magicproject.clickable.targetable.card.MCard;
25
26 /***
27 * @author <a href="mailto:fabdouglas@users.sourceforge.net">Fabrice Daugan </a>
28 * @since 0.86
29 */
30 public interface WaitingAbility extends Waiting {
31
32 /***
33 * Called to specify the triggered card chosen for the current action by the
34 * handed player
35 *
36 * @param ability
37 * the clicked card by the handed player for the current action
38 * @return true if this click has been managed. Return false if this click has
39 * been ignored
40 */
41 boolean clickOn(Ability ability);
42
43 /***
44 * Return activated abilities of the specified card.
45 *
46 * @param card
47 * the requesting card the abilities will be listed from.
48 * @return activated abilities of the specified card.
49 */
50 List<Ability> abilitiesOf(MCard card);
51
52 /***
53 * Return activated advanced abilities of the specified card.
54 *
55 * @param card
56 * the requesting card the abilities will be listed from.
57 * @return activated advanced abilities of the specified card.
58 */
59 List<Ability> advancedAbilitiesOf(MCard card);
60
61 /***
62 * This function should be called by the 'clickOn' caller in case of the
63 * specified ability has been handled during the checking validity of this
64 * click in the <code>clickOn(Ability)</code> function. <br>
65 * <ul>
66 * The calls chain is :
67 * <li>actionListener call clickOn(Ability)
68 * <li>if returned value is false we give hand to the player and exit, else
69 * we continue
70 * <li>actionListener call succeedClickOn(Ability)
71 * </ul>
72 *
73 * @param ability
74 * the ability that was clicked and successfuly handled by the
75 * <code>clickOn(Ability)</code> function.
76 * @return true if this action is completed
77 * @see #clickOn(Ability)
78 */
79 boolean succeedClickOn(Ability ability);
80
81 void finished();
82
83 boolean manualSkip();
84 }