2013-02-26 06:33:13 -08:00
|
|
|
[
|
|
|
|
new MagicPermanentActivation(
|
|
|
|
[
|
|
|
|
MagicCondition.SORCERY_CONDITION,
|
|
|
|
MagicCondition.ABILITY_ONCE_CONDITION
|
|
|
|
],
|
|
|
|
new MagicActivationHints(MagicTiming.Main),
|
|
|
|
"+2") {
|
|
|
|
@Override
|
|
|
|
public MagicEvent[] getCostEvent(final MagicPermanent source) {
|
|
|
|
return [
|
|
|
|
MagicPutCounterEvent.Self(
|
|
|
|
source,
|
|
|
|
MagicCounterType.Charge,
|
|
|
|
2
|
|
|
|
),
|
|
|
|
new MagicPlayAbilityEvent(source)
|
|
|
|
];
|
|
|
|
}
|
|
|
|
@Override
|
|
|
|
public MagicEvent getPermanentEvent(final MagicPermanent source,final MagicPayedCost payedCost) {
|
|
|
|
return new MagicEvent(
|
|
|
|
source,
|
|
|
|
this,
|
|
|
|
"Each player draws a card."
|
|
|
|
);
|
|
|
|
}
|
|
|
|
@Override
|
|
|
|
public void executeEvent(
|
|
|
|
final MagicGame game,
|
|
|
|
final MagicEvent event,
|
|
|
|
final Object[] choiceResults) {
|
|
|
|
for (final MagicPlayer player : game.getPlayers()) {
|
|
|
|
game.doAction(new MagicDrawAction(player, 1));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
new MagicPermanentActivation(
|
|
|
|
[
|
|
|
|
MagicCondition.SORCERY_CONDITION,
|
|
|
|
MagicCondition.ABILITY_ONCE_CONDITION,
|
2013-02-26 17:34:13 -08:00
|
|
|
MagicConditionFactory.ChargeCountersAtLeast(1)
|
2013-02-26 06:33:13 -08:00
|
|
|
],
|
|
|
|
new MagicActivationHints(MagicTiming.Main),
|
|
|
|
"-1") {
|
|
|
|
@Override
|
|
|
|
public MagicEvent[] getCostEvent(final MagicPermanent source) {
|
|
|
|
return [
|
|
|
|
new MagicRemoveCounterEvent(
|
|
|
|
source,
|
|
|
|
MagicCounterType.Charge,
|
|
|
|
1
|
|
|
|
),
|
|
|
|
new MagicPlayAbilityEvent(source)
|
|
|
|
];
|
|
|
|
}
|
|
|
|
@Override
|
|
|
|
public MagicEvent getPermanentEvent(final MagicPermanent source,final MagicPayedCost payedCost) {
|
|
|
|
return new MagicEvent(
|
|
|
|
source,
|
|
|
|
MagicTargetChoice.POS_TARGET_PLAYER,
|
|
|
|
this,
|
|
|
|
"Target player\$ draws a card."
|
|
|
|
);
|
|
|
|
}
|
|
|
|
@Override
|
|
|
|
public void executeEvent(
|
|
|
|
final MagicGame game,
|
|
|
|
final MagicEvent event,
|
|
|
|
final Object[] choiceResults) {
|
|
|
|
event.processTargetPlayer(game,choiceResults,0,new MagicPlayerAction() {
|
|
|
|
public void doAction(final MagicPlayer player) {
|
|
|
|
game.doAction(new MagicDrawAction(player,1));
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
},
|
|
|
|
new MagicPermanentActivation(
|
|
|
|
[
|
|
|
|
MagicCondition.SORCERY_CONDITION,
|
|
|
|
MagicCondition.ABILITY_ONCE_CONDITION,
|
2013-02-26 17:34:13 -08:00
|
|
|
MagicConditionFactory.ChargeCountersAtLeast(10)
|
2013-02-26 06:33:13 -08:00
|
|
|
],
|
|
|
|
new MagicActivationHints(MagicTiming.Main),
|
|
|
|
"-10") {
|
|
|
|
@Override
|
|
|
|
public MagicEvent[] getCostEvent(final MagicPermanent source) {
|
|
|
|
return [
|
|
|
|
new MagicRemoveCounterEvent(
|
|
|
|
source,
|
|
|
|
MagicCounterType.Charge,
|
|
|
|
10
|
|
|
|
),
|
|
|
|
new MagicPlayAbilityEvent(source)
|
|
|
|
];
|
|
|
|
}
|
|
|
|
@Override
|
|
|
|
public MagicEvent getPermanentEvent(final MagicPermanent source,final MagicPayedCost payedCost) {
|
|
|
|
return new MagicEvent(
|
|
|
|
source,
|
|
|
|
MagicTargetChoice.NEG_TARGET_PLAYER,
|
|
|
|
this,
|
|
|
|
"Target player\$ puts the top twenty cards of his or her library into his or her graveyard."
|
|
|
|
);
|
|
|
|
}
|
|
|
|
@Override
|
|
|
|
public void executeEvent(
|
|
|
|
final MagicGame game,
|
|
|
|
final MagicEvent event,
|
|
|
|
final Object[] choiceResults) {
|
|
|
|
event.processTargetPlayer(game,choiceResults,0,new MagicPlayerAction() {
|
|
|
|
public void doAction(final MagicPlayer player) {
|
|
|
|
game.doAction(new MagicMillLibraryAction(player, 20));
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|