added card Inkmoth Nexus

added mana action for Tectonic Edge and Inkmoth Nexus

improve rules compliance for man lands by giving them the appropriate type and
subtype
master
melvin 2011-06-04 12:07:34 +08:00
parent 5e8ef39ca3
commit b370d7e4bb
3 changed files with 98 additions and 47 deletions

View File

@ -8097,7 +8097,6 @@ cube=default
value=3 value=3
rarity=2 rarity=2
type=Land type=Land
basic=
timing=land timing=land
>Flashfreeze >Flashfreeze
@ -8132,3 +8131,11 @@ type=Artifact
converted=3 converted=3
cost={3} cost={3}
timing=artifact timing=artifact
>Inkmoth Nexus
image=http://magiccards.info/scans/en/mbs/145.jpg
cube=default
value=4
rarity=3
type=Land
timing=land

View File

@ -55,11 +55,15 @@ public class ManaActivationDefinitions {
addManaActivation("Lotus Petal",new MagicSacrificeTapManaActivation(MagicManaType.ALL_TYPES)); addManaActivation("Lotus Petal",new MagicSacrificeTapManaActivation(MagicManaType.ALL_TYPES));
addManaActivation("Mind Stone",new MagicTapManaActivation(new MagicManaType[]{MagicManaType.Colorless},0)); addManaActivation("Mind Stone",new MagicTapManaActivation(new MagicManaType[]{MagicManaType.Colorless},0));
// Land generating colorless mana
addManaActivation("Tectonic Edge",new MagicTapManaActivation(new MagicManaType[]{MagicManaType.Colorless},0));
// Man lands. // Man lands.
addCreatureActivations("Celestial Colonnade",new MagicManaType[]{MagicManaType.Blue,MagicManaType.White}); addCreatureActivations("Celestial Colonnade",new MagicManaType[]{MagicManaType.Blue,MagicManaType.White});
addCreatureActivations("Creeping Tar Pit",new MagicManaType[]{MagicManaType.Blue,MagicManaType.Black}); addCreatureActivations("Creeping Tar Pit",new MagicManaType[]{MagicManaType.Blue,MagicManaType.Black});
addCreatureActivations("Raging Ravine",new MagicManaType[]{MagicManaType.Red,MagicManaType.Green}); addCreatureActivations("Raging Ravine",new MagicManaType[]{MagicManaType.Red,MagicManaType.Green});
addCreatureActivations("Stirring Wildwood",new MagicManaType[]{MagicManaType.Green,MagicManaType.White}); addCreatureActivations("Stirring Wildwood",new MagicManaType[]{MagicManaType.Green,MagicManaType.White});
addCreatureActivations("Inkmoth Nexus",new MagicManaType[]{MagicManaType.Colorless});
// Creatures. // Creatures.
addCreatureActivations("Alloy Myr",MagicManaType.ALL_TYPES); addCreatureActivations("Alloy Myr",MagicManaType.ALL_TYPES);

View File

@ -19,6 +19,7 @@ import magic.model.MagicPlayer;
import magic.model.MagicPowerToughness; import magic.model.MagicPowerToughness;
import magic.model.MagicSource; import magic.model.MagicSource;
import magic.model.MagicSubType; import magic.model.MagicSubType;
import magic.model.MagicType;
import magic.model.action.MagicAddTurnTriggerAction; import magic.model.action.MagicAddTurnTriggerAction;
import magic.model.action.MagicBecomesCreatureAction; import magic.model.action.MagicBecomesCreatureAction;
import magic.model.action.MagicChangeCountersAction; import magic.model.action.MagicChangeCountersAction;
@ -2241,32 +2242,23 @@ public class PermanentActivationDefinitions {
} }
}; };
private static final MagicLocalVariable CHIMERIC_MASS_VARIABLE=new MagicLocalVariable() { private static final MagicLocalVariable CHIMERIC_MASS_VARIABLE=new MagicDummyLocalVariable() {
@Override @Override
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) { public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
final int charge=permanent.getCounters(MagicCounterType.Charge); final int charge=permanent.getCounters(MagicCounterType.Charge);
pt.power=charge; pt.power=charge;
pt.toughness=charge; pt.toughness=charge;
} }
@Override
public long getAbilityFlags(final MagicGame game,final MagicPermanent permanent,final long flags) {
return flags;
}
@Override @Override
public int getSubTypeFlags(final MagicPermanent permanent,final int flags) { public int getSubTypeFlags(final MagicPermanent permanent,final int flags) {
return flags|MagicSubType.Construct.getMask();
return 0;
} }
@Override @Override
public int getColorFlags(final MagicPermanent permanent,final int flags) { public int getTypeFlags(final MagicPermanent permanent,final int flags) {
return flags|MagicType.Creature.getMask();
return flags;
} }
}; };
@ -2468,30 +2460,31 @@ public class PermanentActivationDefinitions {
} }
}; };
private static final MagicLocalVariable CELESTIAL_COLONNADE_VARIABLE=new MagicLocalVariable() { private static final MagicLocalVariable CELESTIAL_COLONNADE_VARIABLE=new MagicDummyLocalVariable() {
@Override @Override
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) { public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
pt.power=4; pt.power=4;
pt.toughness=4; pt.toughness=4;
} }
@Override @Override
public long getAbilityFlags(final MagicGame game,final MagicPermanent permanent,final long flags) { public long getAbilityFlags(final MagicGame game,final MagicPermanent permanent,final long flags) {
return flags|MagicAbility.Flying.getMask()|MagicAbility.Vigilance.getMask(); return flags|MagicAbility.Flying.getMask()|MagicAbility.Vigilance.getMask();
} }
@Override @Override
public int getSubTypeFlags(final MagicPermanent permanent,final int flags) { public int getSubTypeFlags(final MagicPermanent permanent,final int flags) {
return flags|MagicSubType.Elemental.getMask();
}
return 0; @Override
public int getTypeFlags(final MagicPermanent permanent,final int flags) {
return flags|MagicType.Creature.getMask();
} }
@Override @Override
public int getColorFlags(final MagicPermanent permanent,final int flags) { public int getColorFlags(final MagicPermanent permanent,final int flags) {
return MagicColor.White.getMask()|MagicColor.Blue.getMask(); return MagicColor.White.getMask()|MagicColor.Blue.getMask();
} }
}; };
@ -2521,30 +2514,30 @@ public class PermanentActivationDefinitions {
} }
}; };
private static final MagicLocalVariable CREEPING_TAR_PIT_VARIABLE=new MagicLocalVariable() { private static final MagicLocalVariable CREEPING_TAR_PIT_VARIABLE=new MagicDummyLocalVariable() {
@Override @Override
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) { public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
pt.power=3; pt.power=3;
pt.toughness=2; pt.toughness=2;
} }
@Override @Override
public long getAbilityFlags(final MagicGame game,final MagicPermanent permanent,final long flags) { public long getAbilityFlags(final MagicGame game,final MagicPermanent permanent,final long flags) {
return flags|MagicAbility.Unblockable.getMask(); return flags|MagicAbility.Unblockable.getMask();
} }
@Override @Override
public int getSubTypeFlags(final MagicPermanent permanent,final int flags) { public int getSubTypeFlags(final MagicPermanent permanent,final int flags) {
return flags|MagicSubType.Elemental.getMask();
}
return 0; @Override
public int getTypeFlags(final MagicPermanent permanent,final int flags) {
return flags|MagicType.Creature.getMask();
} }
@Override @Override
public int getColorFlags(final MagicPermanent permanent,final int flags) { public int getColorFlags(final MagicPermanent permanent,final int flags) {
return MagicColor.Blue.getMask()|MagicColor.Black.getMask(); return MagicColor.Blue.getMask()|MagicColor.Black.getMask();
} }
}; };
@ -2574,25 +2567,22 @@ public class PermanentActivationDefinitions {
} }
}; };
private static final MagicLocalVariable RAGING_RAVINE_VARIABLE=new MagicLocalVariable() { private static final MagicLocalVariable RAGING_RAVINE_VARIABLE=new MagicDummyLocalVariable() {
@Override @Override
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) { public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
pt.power=3; pt.power=3;
pt.toughness=3; pt.toughness=3;
} }
@Override @Override
public long getAbilityFlags(final MagicGame game,final MagicPermanent permanent,final long flags) { public int getSubTypeFlags(final MagicPermanent permanent,final int flags) {
return flags|MagicSubType.Elemental.getMask();
return flags;
} }
@Override @Override
public int getSubTypeFlags(final MagicPermanent permanent,final int flags) { public int getTypeFlags(final MagicPermanent permanent,final int flags) {
return flags|MagicType.Creature.getMask();
return 0;
} }
@Override @Override
@ -2619,6 +2609,54 @@ public class PermanentActivationDefinitions {
} }
}; };
private static final MagicLocalVariable INKMOTH_NEXUS_VARIABLE=new MagicDummyLocalVariable() {
@Override
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
pt.power=1;
pt.toughness=1;
}
@Override
public long getAbilityFlags(final MagicGame game,final MagicPermanent permanent,final long flags) {
return flags|MagicAbility.Flying.getMask()|MagicAbility.Infect.getMask();
}
@Override
public int getTypeFlags(final MagicPermanent permanent,final int flags) {
return flags|MagicType.Artifact.getMask()|MagicType.Creature.getMask();
}
};
private static final MagicPermanentActivation INKMOTH_NEXUS=new MagicPermanentActivation(
"Inkmoth Nexus",new MagicCondition[]{new MagicArtificialCondition(
MagicManaCost.ONE.getCondition(),
MagicManaCost.ONE.getCondition())},
new MagicActivationHints(MagicTiming.Animate)) {
@Override
public MagicEvent[] getCostEvent(final MagicSource source) {
return new MagicEvent[]{new MagicPayManaCostEvent(source,source.getController(),MagicManaCost.ONE)};
}
@Override
public MagicEvent getPermanentEvent(final MagicPermanent source,final MagicPayedCost payedCost) {
return new MagicEvent(source,source.getController(),new Object[]{source},this,
"Inkmoth Nexus becomes a 1/1 Blinkmoth artifact creature with flying and infect until end of turn." +
" It's still a land.");
}
@Override
public void executeEvent(final MagicGame game,final MagicEvent
event,final Object[] data,final Object[] choiceResults) {
final MagicPermanent permanent=(MagicPermanent)data[0];
game.doAction(new MagicBecomesCreatureAction(permanent,INKMOTH_NEXUS_VARIABLE));
}
};
private static final MagicPermanentActivation RAGING_RAVINE=new MagicPermanentActivation( private static final MagicPermanentActivation RAGING_RAVINE=new MagicPermanentActivation(
"Raging Ravine",new MagicCondition[]{new MagicArtificialCondition( "Raging Ravine",new MagicCondition[]{new MagicArtificialCondition(
MagicManaCost.TWO_RED_GREEN.getCondition(), MagicManaCost.TWO_RED_GREEN.getCondition(),
@ -2649,30 +2687,31 @@ public class PermanentActivationDefinitions {
} }
}; };
private static final MagicLocalVariable STIRRING_WILDWOOD_VARIABLE=new MagicLocalVariable() { private static final MagicLocalVariable STIRRING_WILDWOOD_VARIABLE=new MagicDummyLocalVariable() {
@Override @Override
public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) { public void getPowerToughness(final MagicGame game,final MagicPermanent permanent,final MagicPowerToughness pt) {
pt.power=3; pt.power=3;
pt.toughness=4; pt.toughness=4;
} }
@Override @Override
public long getAbilityFlags(final MagicGame game,final MagicPermanent permanent,final long flags) { public long getAbilityFlags(final MagicGame game,final MagicPermanent permanent,final long flags) {
return flags|MagicAbility.Reach.getMask(); return flags|MagicAbility.Reach.getMask();
} }
@Override @Override
public int getSubTypeFlags(final MagicPermanent permanent,final int flags) { public int getSubTypeFlags(final MagicPermanent permanent,final int flags) {
return flags|MagicSubType.Elemental.getMask();
}
return 0; @Override
public int getTypeFlags(final MagicPermanent permanent,final int flags) {
return flags|MagicType.Creature.getMask();
} }
@Override @Override
public int getColorFlags(final MagicPermanent permanent,final int flags) { public int getColorFlags(final MagicPermanent permanent,final int flags) {
return MagicColor.Green.getMask()|MagicColor.White.getMask(); return MagicColor.Green.getMask()|MagicColor.White.getMask();
} }
}; };
@ -2850,7 +2889,8 @@ public class PermanentActivationDefinitions {
RAGING_RAVINE, RAGING_RAVINE,
STIRRING_WILDWOOD, STIRRING_WILDWOOD,
TECTONIC_EDGE, TECTONIC_EDGE,
TUMBLE_MAGNET TUMBLE_MAGNET,
INKMOTH_NEXUS
); );
public static void addPermanentActivations() { public static void addPermanentActivations() {