added lord pt and lord ability to ability property

master
melvin 2013-08-26 11:53:41 +08:00
parent cf0b836e5b
commit b9840bf0db
2 changed files with 47 additions and 0 deletions

View File

@ -1,6 +1,8 @@
package magic.model;
import magic.model.choice.MagicTargetChoice;
import magic.model.target.MagicTargetFilter;
import magic.model.target.MagicTargetFilterFactory;
import magic.model.event.MagicActivationHints;
import magic.model.event.MagicGainActivation;
import magic.model.event.MagicLevelUpActivation;
@ -798,6 +800,21 @@ public enum MagicAbility {
card.add(MagicCascadeTrigger.create());
}
},
LordPT("lord pt", 0) {
public void addAbilityImpl(final MagicCardDefinition card, final String arg) {
final String[] tokens = arg.split(" gets ");
final MagicTargetFilter<MagicPermanent> filter = MagicTargetFilterFactory.build(tokens[0]);
final String[] pt = tokens[1].replace('+','0').split("/");
card.add(MagicStatic.genPTStatic(filter, Integer.parseInt(pt[0]), Integer.parseInt(pt[1])));
}
},
LordAbility("lord ability", 0) {
public void addAbilityImpl(final MagicCardDefinition card, final String arg) {
final String[] tokens = arg.split(" have ");
final MagicTargetFilter<MagicPermanent> filter = MagicTargetFilterFactory.build(tokens[0]);
card.add(MagicStatic.genABStatic(filter, MagicAbility.getAbilities(tokens[1].split(","))));
}
},
None("",0);
public static final Set<MagicAbility> PROTECTION_FLAGS = EnumSet.of(

View File

@ -82,6 +82,21 @@ public abstract class MagicStatic extends MagicDummyModifier implements MagicCha
(source == target && source.isPaired());
}
}
public static MagicStatic genPTStatic(final MagicTargetFilter<MagicPermanent> filter, final int givenPower, final int givenToughness) {
return new MagicStatic(
MagicLayer.ModPT,
filter
) {
@Override
public void modPowerToughness(
final MagicPermanent source,
final MagicPermanent permanent,
final MagicPowerToughness pt) {
pt.add(givenPower, givenToughness);
}
};
}
public static MagicStatic genPTStatic(final int givenPower, final int givenToughness) {
return new MagicStatic(MagicLayer.ModPT) {
@ -98,6 +113,21 @@ public abstract class MagicStatic extends MagicDummyModifier implements MagicCha
}
};
}
public static MagicStatic genABStatic(final MagicTargetFilter<MagicPermanent> filter, final Set<MagicAbility> givenAbilityFlags) {
return new MagicStatic(
MagicLayer.Ability,
filter
) {
@Override
public void modAbilityFlags(
final MagicPermanent source,
final MagicPermanent permanent,
final Set<MagicAbility> flags) {
flags.addAll(givenAbilityFlags);
}
};
}
public static MagicStatic genABStatic(final Set<MagicAbility> givenAbilityFlags) {
return new MagicStatic(MagicLayer.Ability) {