diff --git a/resources/magic/data/cards.txt b/resources/magic/data/cards.txt index f7e5e2652b..829c640191 100644 --- a/resources/magic/data/cards.txt +++ b/resources/magic/data/cards.txt @@ -12088,3 +12088,55 @@ cost={2} pt=1/1 ability=infect timing=main + +>Blade Splicer +image=http://magiccards.info/scans/en/nph/4.jpg +value=4 +rarity=R +type=Creature +subtype=Human,Artificer +color=w +converted=3 +cost={2}{W} +pt=1/1 +static=player +timing=fmain + +>Master Splicer +image=http://magiccards.info/scans/en/nph/16.jpg +value=4 +rarity=U +type=Creature +subtype=Human,Artificer +color=w +converted=4 +cost={3}{W} +pt=1/1 +static=player +timing=fmain + +>Maul Splicer +image=http://magiccards.info/scans/en/nph/114.jpg +value=5 +rarity=C +type=Creature +subtype=Human,Artificer +color=g +converted=7 +cost={6}{G} +pt=1/1 +static=player +timing=fmain + +>Sensor Splicer +image=http://magiccards.info/scans/en/nph/22.jpg +value=4 +rarity=C +type=Creature +subtype=Artificer +color=w +converted=5 +cost={4}{W} +pt=1/1 +static=player +timing=fmain diff --git a/src/magic/card/Blade_Splicer.java b/src/magic/card/Blade_Splicer.java new file mode 100644 index 0000000000..08befc0fc2 --- /dev/null +++ b/src/magic/card/Blade_Splicer.java @@ -0,0 +1,46 @@ +package magic.card; + +import magic.data.TokenCardDefinitions; +import magic.model.MagicAbility; +import magic.model.MagicGame; +import magic.model.MagicPermanent; +import magic.model.MagicPlayer; +import magic.model.action.MagicPlayTokenAction; +import magic.model.event.MagicEvent; +import magic.model.mstatic.MagicLayer; +import magic.model.mstatic.MagicStatic; +import magic.model.target.MagicTargetFilter; +import magic.model.trigger.MagicWhenComesIntoPlayTrigger; + +public class Blade_Splicer { + public static final MagicStatic S = new MagicStatic( + MagicLayer.Ability, + MagicTargetFilter.TARGET_GOLEM_YOU_CONTROL) { + @Override + public long getAbilityFlags(final MagicGame game,final MagicPermanent permanent,final long flags) { + return flags | MagicAbility.FirstStrike.getMask(); + } + }; + + public static final MagicWhenComesIntoPlayTrigger T = new MagicWhenComesIntoPlayTrigger() { + @Override + public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPlayer player) { + return new MagicEvent( + permanent, + player, + new Object[]{player}, + this, + player + " puts a 3/3 colorless Golem artifact creature token onto the battlefield."); + } + + @Override + public void executeEvent( + final MagicGame game, + final MagicEvent event, + final Object data[], + final Object[] choiceResults) { + final MagicPlayer player=(MagicPlayer)data[0]; + game.doAction(new MagicPlayTokenAction(player,TokenCardDefinitions.GOLEM3_ARTIFACT_TOKEN_CARD)); + } + }; +} diff --git a/src/magic/card/Master_Splicer.java b/src/magic/card/Master_Splicer.java new file mode 100644 index 0000000000..4a4a8a349a --- /dev/null +++ b/src/magic/card/Master_Splicer.java @@ -0,0 +1,46 @@ +package magic.card; + +import magic.data.TokenCardDefinitions; +import magic.model.MagicGame; +import magic.model.MagicPermanent; +import magic.model.MagicPlayer; +import magic.model.MagicPowerToughness; +import magic.model.action.MagicPlayTokenAction; +import magic.model.event.MagicEvent; +import magic.model.mstatic.MagicLayer; +import magic.model.mstatic.MagicStatic; +import magic.model.target.MagicTargetFilter; +import magic.model.trigger.MagicWhenComesIntoPlayTrigger; + +public class Master_Splicer { + public static final MagicStatic S = new MagicStatic( + MagicLayer.ModPT, + MagicTargetFilter.TARGET_GOLEM_YOU_CONTROL) { + @Override + public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) { + pt.add(1,1); + } + }; + + public static final MagicWhenComesIntoPlayTrigger T = new MagicWhenComesIntoPlayTrigger() { + @Override + public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPlayer player) { + return new MagicEvent( + permanent, + player, + new Object[]{player}, + this, + player + " puts a 3/3 colorless Golem artifact creature token onto the battlefield."); + } + + @Override + public void executeEvent( + final MagicGame game, + final MagicEvent event, + final Object data[], + final Object[] choiceResults) { + final MagicPlayer player=(MagicPlayer)data[0]; + game.doAction(new MagicPlayTokenAction(player,TokenCardDefinitions.GOLEM3_ARTIFACT_TOKEN_CARD)); + } + }; +} diff --git a/src/magic/card/Maul_Splicer.java b/src/magic/card/Maul_Splicer.java new file mode 100644 index 0000000000..1b53cbff5e --- /dev/null +++ b/src/magic/card/Maul_Splicer.java @@ -0,0 +1,47 @@ +package magic.card; + +import magic.data.TokenCardDefinitions; +import magic.model.MagicAbility; +import magic.model.MagicGame; +import magic.model.MagicPermanent; +import magic.model.MagicPlayer; +import magic.model.action.MagicPlayTokenAction; +import magic.model.event.MagicEvent; +import magic.model.mstatic.MagicLayer; +import magic.model.mstatic.MagicStatic; +import magic.model.target.MagicTargetFilter; +import magic.model.trigger.MagicWhenComesIntoPlayTrigger; + +public class Maul_Splicer { + public static final MagicStatic S = new MagicStatic( + MagicLayer.Ability, + MagicTargetFilter.TARGET_GOLEM_YOU_CONTROL) { + @Override + public long getAbilityFlags(final MagicGame game,final MagicPermanent permanent,final long flags) { + return flags | MagicAbility.Trample.getMask(); + } + }; + + public static final MagicWhenComesIntoPlayTrigger T = new MagicWhenComesIntoPlayTrigger() { + @Override + public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPlayer player) { + return new MagicEvent( + permanent, + player, + new Object[]{player}, + this, + player + " puts two 3/3 colorless Golem artifact creature tokens onto the battlefield."); + } + + @Override + public void executeEvent( + final MagicGame game, + final MagicEvent event, + final Object data[], + final Object[] choiceResults) { + final MagicPlayer player=(MagicPlayer)data[0]; + game.doAction(new MagicPlayTokenAction(player,TokenCardDefinitions.GOLEM3_ARTIFACT_TOKEN_CARD)); + game.doAction(new MagicPlayTokenAction(player,TokenCardDefinitions.GOLEM3_ARTIFACT_TOKEN_CARD)); + } + }; +} diff --git a/src/magic/card/Sensor_Splicer.java b/src/magic/card/Sensor_Splicer.java new file mode 100644 index 0000000000..a0df40efb3 --- /dev/null +++ b/src/magic/card/Sensor_Splicer.java @@ -0,0 +1,46 @@ +package magic.card; + +import magic.data.TokenCardDefinitions; +import magic.model.MagicAbility; +import magic.model.MagicGame; +import magic.model.MagicPermanent; +import magic.model.MagicPlayer; +import magic.model.action.MagicPlayTokenAction; +import magic.model.event.MagicEvent; +import magic.model.mstatic.MagicLayer; +import magic.model.mstatic.MagicStatic; +import magic.model.target.MagicTargetFilter; +import magic.model.trigger.MagicWhenComesIntoPlayTrigger; + +public class Sensor_Splicer { + public static final MagicStatic S = new MagicStatic( + MagicLayer.Ability, + MagicTargetFilter.TARGET_GOLEM_YOU_CONTROL) { + @Override + public long getAbilityFlags(final MagicGame game,final MagicPermanent permanent,final long flags) { + return flags | MagicAbility.Vigilance.getMask(); + } + }; + + public static final MagicWhenComesIntoPlayTrigger T = new MagicWhenComesIntoPlayTrigger() { + @Override + public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPlayer player) { + return new MagicEvent( + permanent, + player, + new Object[]{player}, + this, + player + " puts a 3/3 colorless Golem artifact creature token onto the battlefield."); + } + + @Override + public void executeEvent( + final MagicGame game, + final MagicEvent event, + final Object data[], + final Object[] choiceResults) { + final MagicPlayer player=(MagicPlayer)data[0]; + game.doAction(new MagicPlayTokenAction(player,TokenCardDefinitions.GOLEM3_ARTIFACT_TOKEN_CARD)); + } + }; +} diff --git a/src/magic/model/target/MagicTargetFilter.java b/src/magic/model/target/MagicTargetFilter.java index a3a6496ba0..fb3eb1296d 100644 --- a/src/magic/model/target/MagicTargetFilter.java +++ b/src/magic/model/target/MagicTargetFilter.java @@ -732,6 +732,17 @@ public interface MagicTargetFilter { } }; + MagicTargetFilter TARGET_GOLEM_YOU_CONTROL = new MagicTargetFilter() { + public boolean accept(final MagicGame game,final MagicPlayer player,final MagicTarget target) { + return target.getController() == player && + ((MagicPermanent)target).isCreature(game) && + ((MagicPermanent)target).hasSubType(MagicSubType.Golem,game); + } + public boolean acceptType(final MagicTargetType targetType) { + return targetType == MagicTargetType.Permanent; + } + }; + MagicTargetFilter TARGET_KNIGHT_YOU_CONTROL=new MagicTargetFilter() { public boolean accept(final MagicGame game,final MagicPlayer player,final MagicTarget target) { return target.getController()==player &&