added Vedalken Ghoul and Venom

master
beholder 2011-10-11 13:51:14 +02:00
parent 0a26905173
commit 0033fef612
3 changed files with 145 additions and 0 deletions

View File

@ -15004,3 +15004,28 @@ converted=3
cost={2}{G}
pt=2/2
timing=main
>Vedalken Ghoul
url=http://magiccards.info/arb/en/32.html
image=http://magiccards.info/scans/en/arb/32.jpg
value=2
rarity=C
type=Creature
subtype=Vedalken,Zombie
color=ub
converted=2
cost={U}{B}
pt=1/1
timing=main
>Venom
url=http://magiccards.info/5e/en/198.html
image=http://magiccards.info/scans/en/5e/198.jpg
value=3
rarity=C
type=Enchantment
subtype=Aura
color=g
converted=3
cost={1}{G}{G}
timing=aura

View File

@ -0,0 +1,34 @@
package magic.card;
import magic.model.MagicGame;
import magic.model.MagicPermanent;
import magic.model.MagicPlayer;
import magic.model.action.MagicChangeLifeAction;
import magic.model.event.MagicEvent;
import magic.model.trigger.MagicWhenBecomesBlockedTrigger;
public class Vedalken_Ghoul {
public static final MagicWhenBecomesBlockedTrigger T = new MagicWhenBecomesBlockedTrigger() {
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPermanent data) {
final MagicPlayer player = permanent.getController();
return (permanent == data ) ?
new MagicEvent(
permanent,
player,
new Object[]{game.getOpponent(player)},
this,
game.getOpponent(player) + " loses 4 life."):
MagicEvent.NONE;
}
@Override
public void executeEvent(
final MagicGame game,
final MagicEvent event,
final Object data[],
final Object[] choiceResults) {
game.doAction(new MagicChangeLifeAction((MagicPlayer)data[0],-4));
}
};
}

86
src/magic/card/Venom.java Normal file
View File

@ -0,0 +1,86 @@
package magic.card;
import magic.model.MagicGame;
import magic.model.MagicPermanent;
import magic.model.MagicPermanentList;
import magic.model.MagicPermanentState;
import magic.model.MagicSubType;
import magic.model.action.MagicChangeStateAction;
import magic.model.choice.MagicTargetChoice;
import magic.model.event.MagicEvent;
import magic.model.event.MagicPlayAuraEvent;
import magic.model.event.MagicSpellCardEvent;
import magic.model.target.MagicPumpTargetPicker;
import magic.model.trigger.MagicWhenBecomesBlockedTrigger;
import magic.model.trigger.MagicWhenBlocksTrigger;
public class Venom {
public static final MagicSpellCardEvent S = new MagicPlayAuraEvent(
MagicTargetChoice.POS_TARGET_CREATURE,
MagicPumpTargetPicker.getInstance());
public static final MagicWhenBecomesBlockedTrigger T1 = new MagicWhenBecomesBlockedTrigger() {
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPermanent creature) {
final MagicPermanent enchantedCreature = permanent.getEnchantedCreature();
if (creature == enchantedCreature) {
final MagicPermanentList plist = new MagicPermanentList();
for (final MagicPermanent blocker : enchantedCreature.getBlockingCreatures()) {
if (!blocker.hasSubType(MagicSubType.Wall,game)) {
plist.add(blocker);
}
}
if (!plist.isEmpty()) {
return new MagicEvent(
permanent,
permanent.getController(),
new Object[]{plist},
this,
plist.size() > 1 ?
"Destroy blocking non-Wall creatures at end of combat." :
"Destroy " + plist.get(0) + " at end of combat.");
}
}
return MagicEvent.NONE;
}
@Override
public void executeEvent(
final MagicGame game,
final MagicEvent event,
final Object data[],
final Object[] choiceResults) {
final MagicPermanentList plist = (MagicPermanentList)data[0];
for (final MagicPermanent blocker : plist) {
game.doAction(new MagicChangeStateAction(blocker,MagicPermanentState.DestroyAtEndOfCombat,true));
}
}
};
public static final MagicWhenBlocksTrigger T2 = new MagicWhenBlocksTrigger() {
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPermanent data) {
final MagicPermanent enchantedCreature = permanent.getEnchantedCreature();
final MagicPermanent blocked = enchantedCreature.getBlockedCreature();
return (enchantedCreature == data &&
blocked.isValid() &&
!blocked.hasSubType(MagicSubType.Wall,game)) ?
new MagicEvent(
permanent,
permanent.getController(),
new Object[]{blocked},
this,
"Destroy " + blocked + " at end of combat."):
MagicEvent.NONE;
}
@Override
public void executeEvent(
final MagicGame game,
final MagicEvent event,
final Object data[],
final Object[] choiceResults) {
final MagicPermanent creature = (MagicPermanent)data[0];
game.doAction(new MagicChangeStateAction(creature,MagicPermanentState.DestroyAtEndOfCombat,true));
}
};
}