1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package net.sf.magicproject.clickable.ability;
20
21 import net.sf.magicproject.action.AddModifierFromStaticModifier;
22 import net.sf.magicproject.action.MAction;
23 import net.sf.magicproject.clickable.targetable.card.MCard;
24 import net.sf.magicproject.event.TriggeredEvent;
25 import net.sf.magicproject.event.context.ContextEventListener;
26 import net.sf.magicproject.modifier.ModifierModel;
27 import net.sf.magicproject.token.TrueFalseAuto;
28
29 /***
30 * @author <a href="mailto:fabdouglas@users.sourceforge.net">Fabrice Daugan </a>
31 */
32 public class TriggeredStaticModifierAbility extends AbstractAbility {
33
34 /***
35 * Creates a new instance of TriggeredStaticModifierAbility <br>
36 *
37 * @param event
38 * the event attached to this ability.
39 * @param refreshAction
40 * @param trigger
41 * @param modifiers
42 */
43 public TriggeredStaticModifierAbility(TriggeredEvent event,
44 AddModifierFromStaticModifier refreshAction, MCard trigger,
45 ModifierModel... modifiers) {
46 super("static modifier trigger", event, null, null, TrueFalseAuto.FALSE);
47 actionList = new MAction[] {};
48 effectList = new MAction[] { refreshAction };
49 this.trigger = trigger;
50
51 priority = Priority.hidden_high;
52 }
53
54 @Override
55 public boolean triggerIt(ContextEventListener context) {
56 super.triggerIt(context);
57 trigger.getController().zoneManager.triggeredBuffer
58 .addHidden(this, context);
59 return true;
60 }
61
62 @Override
63 public MCard getCard() {
64 return trigger;
65 }
66
67 @Override
68 public String getLog(ContextEventListener context) {
69 return "updating static ability of " + getCard();
70 }
71
72 @Override
73 public String getAbilityTitle() {
74 return "TriggeredStaticModifierAbility"
75 + (getName() != null ? ": " + getName() : "") + super.getAbilityTitle();
76 }
77
78 private MCard trigger;
79
80 }