reworked Clairvoyance and Infuse, better this way

master
Landhotel.Westerwald@gmail.com 2014-04-13 20:03:24 +02:00
parent 8f78918b57
commit 72c2495e2c
2 changed files with 45 additions and 44 deletions

View File

@ -1,3 +1,21 @@
def MagicAtUpkeepTrigger cantrip(final MagicEvent event) {
return new MagicAtUpkeepTrigger() {
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPlayer upkeepPlayer) {
return new MagicEvent(
event.getSource(),
event.getPlayer(),
{
final MagicGame game2, final MagicEvent event2 ->
game2.doAction(new MagicDrawAction(event2.getPlayer()));
game2.doAction(new MagicRemoveTriggerAction(this));
},
"PN draws a card"
);
}
}
};
[
new MagicSpellCardEvent() {
@Override
@ -11,30 +29,12 @@
);
}
@Override
public void executeEvent(final MagicGame outerGame, final MagicEvent outerEvent) {
MagicPlayer outerPlayer = outerEvent.getPlayer();
MagicSource outerSource = outerEvent.getSource();
outerEvent.processTargetPlayer(outerGame, {
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetPlayer(game, {
MagicPlayer player ->
outerGame.doAction(new MagicRevealAction(player.getHand()));
game.doAction(new MagicRevealAction(player.getHand()));
});
outerGame.doAction(new MagicAddTriggerAction(new MagicAtUpkeepTrigger() {
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPlayer upkeepPlayer) {
new MagicEvent(
outerSource,
outerPlayer,
this,
"PN draws a card"
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
game.doAction(new MagicDrawAction(outerPlayer));
game.doAction(new MagicRemoveTriggerAction(this));
}
}));
game.doAction(new MagicAddTriggerAction(cantrip(event)));
}
}
]

View File

@ -1,3 +1,21 @@
def MagicAtUpkeepTrigger cantrip(final MagicEvent event) {
return new MagicAtUpkeepTrigger() {
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPlayer upkeepPlayer) {
return new MagicEvent(
event.getSource(),
event.getPlayer(),
{
final MagicGame game2, final MagicEvent event2 ->
game2.doAction(new MagicDrawAction(event2.getPlayer()));
game2.doAction(new MagicRemoveTriggerAction(this));
},
"PN draws a card"
);
}
}
};
def ARTIFACT_CREATURE_OR_LAND = new MagicPermanentFilterImpl() {
public boolean accept(final MagicGame game,final MagicPlayer player,final MagicPermanent target) {
return target.isLand() || target.isCreature() || target.isArtifact();
@ -8,6 +26,7 @@ def TARGET_ARTIFACT_CREATURE_OR_LAND = new MagicTargetChoice(
ARTIFACT_CREATURE_OR_LAND,
"target artifact, creature or land"
);
[
new MagicSpellCardEvent() {
@Override
@ -21,30 +40,12 @@ def TARGET_ARTIFACT_CREATURE_OR_LAND = new MagicTargetChoice(
);
}
@Override
public void executeEvent(final MagicGame outerGame, final MagicEvent outerEvent) {
MagicPlayer outerPlayer = outerEvent.getPlayer();
MagicSource outerSource = outerEvent.getSource();
outerEvent.processTargetPermanent(outerGame, {
public void executeEvent(final MagicGame game, final MagicEvent event) {
event.processTargetPermanent(game, {
MagicPermanent permanent ->
outerGame.doAction(new MagicUntapAction(permanent));
game.doAction(new MagicUntapAction(permanent));
});
outerGame.doAction(new MagicAddTriggerAction(new MagicAtUpkeepTrigger() {
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPlayer upkeepPlayer) {
new MagicEvent(
outerSource,
outerPlayer,
this,
"PN draws a card"
);
}
@Override
public void executeEvent(final MagicGame game, final MagicEvent event) {
game.doAction(new MagicDrawAction(outerPlayer));
game.doAction(new MagicRemoveTriggerAction(this));
}
}));
game.doAction(new MagicAddTriggerAction(cantrip(event)));
}
}
]