added MagicAbility.Modular. added Arcbound Overseer

master
beholder 2011-10-05 21:05:55 +02:00
parent 5168bdc6f5
commit 653993e6ba
4 changed files with 85 additions and 5 deletions

View File

@ -12175,6 +12175,7 @@ type=Artifact,Creature
subtype=Golem
converted=5
cost={5}
ability=modular
timing=main
>Arcbound Hybrid
@ -12185,7 +12186,7 @@ type=Artifact,Creature
subtype=Beast
converted=4
cost={4}
ability=haste
ability=haste,modular
timing=main
>Arcbound Crusher
@ -12196,7 +12197,7 @@ type=Artifact,Creature
subtype=Juggernaut
converted=4
cost={4}
ability=trample
ability=trample,modular
timing=fmain
>Arcbound Fiend
@ -12207,7 +12208,7 @@ type=Artifact,Creature
subtype=Horror
converted=6
cost={6}
ability=fear
ability=fear,modular
timing=main
>Arcbound Lancer
@ -12218,7 +12219,7 @@ type=Artifact,Creature
subtype=Beast
converted=7
cost={7}
ability=first strike
ability=first strike,modular
timing=main
>Arcbound Ravager
@ -12229,4 +12230,16 @@ type=Artifact,Creature
subtype=Beast
converted=2
cost={2}
ability=modular
timing=main
>Arcbound Overseer
image=http://magiccards.info/scans/en/ds/99.jpg
value=5
rarity=R
type=Artifact,Creature
subtype=Golem
converted=8
cost={8}
ability=modular
timing=main

View File

@ -0,0 +1,55 @@
package magic.card;
import java.util.Collection;
import magic.model.MagicCounterType;
import magic.model.MagicGame;
import magic.model.MagicPermanent;
import magic.model.MagicPlayer;
import magic.model.action.MagicChangeCountersAction;
import magic.model.event.MagicEvent;
import magic.model.target.MagicTarget;
import magic.model.target.MagicTargetFilter;
import magic.model.trigger.MagicAtUpkeepTrigger;
import magic.model.trigger.MagicComesIntoPlayWithCounterTrigger;
import magic.model.trigger.MagicModularTrigger;
public class Arcbound_Overseer {
public static final MagicComesIntoPlayWithCounterTrigger T1 =
new MagicComesIntoPlayWithCounterTrigger(MagicCounterType.PlusOne,"+1/+1",6);
public static final MagicModularTrigger T2 = new MagicModularTrigger();
public static final MagicAtUpkeepTrigger T3 = new MagicAtUpkeepTrigger() {
@Override
public MagicEvent executeTrigger(final MagicGame game,final MagicPermanent permanent,final MagicPlayer data) {
final MagicPlayer player = permanent.getController();
return (player == data) ?
new MagicEvent(
permanent,
player,
new Object[]{player},
this,
player + " puts a +1/+1 counter on each creature " +
"with modular he or she controls."):
MagicEvent.NONE;
}
@Override
public void executeEvent(
final MagicGame game,
final MagicEvent event,
final Object data[],
final Object[] choiceResults) {
final MagicPlayer player = (MagicPlayer)data[0];
final Collection<MagicTarget> targets =
game.filterTargets(player,MagicTargetFilter.TARGET_MODULAR_CREATURE_YOU_CONTROL);
for (final MagicTarget target : targets) {
game.doAction(new MagicChangeCountersAction(
(MagicPermanent)target,
MagicCounterType.PlusOne,
1,
true));
}
}
};
}

View File

@ -55,7 +55,8 @@ public enum MagicAbility {
Intimidate("intimidate",45),
BattleCry("battle cry",0),
Infect("infect",35),
LivingWeapon("living weapon", 10);
LivingWeapon("living weapon", 10),
Modular("modular",0);
;
public static final long PROTECTION_FLAGS=

View File

@ -959,6 +959,17 @@ public interface MagicTargetFilter {
}
};
MagicTargetFilter TARGET_MODULAR_CREATURE_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).hasAbility(game,MagicAbility.Modular);
}
public boolean acceptType(final MagicTargetType targetType) {
return targetType == MagicTargetType.Permanent;
}
};
MagicTargetFilter TARGET_CREATURE_YOUR_OPPONENT_CONTROLS=new MagicTargetFilter() {
public boolean accept(final MagicGame game,final MagicPlayer player,final MagicTarget target) {