- Fixed the Epic keyword.

This commit is contained in:
Sloth
2012-09-08 19:27:36 +00:00
parent ad65d2fe20
commit a56f87494b
2 changed files with 35 additions and 27 deletions

View File

@@ -2228,6 +2228,10 @@ public class AbilityFactory {
for (final Card imp : card.getImprinted()) {
sas.addAll(imp.getSpellAbilities());
}
} else if (defined.equals("EffectSource") ) {
if (card.getEffectSource() != null) {
sas.addAll(card.getEffectSource().getSpellAbilities());
}
} else if (defined.equals("Imprinted.doesNotShareNameWith+TriggeredCard+Exiled")) {
//get Imprinted list
ArrayList<SpellAbility> imprintedCards = new ArrayList<SpellAbility>();

View File

@@ -4720,33 +4720,37 @@ public class CardFactoryUtil {
@Override
public void resolve() {
// Create Epic emblem
final Card eff = new Card();
eff.setName(card.toString() + " Epic");
eff.addType("Effect"); // Or Emblem
eff.setToken(true); // Set token to true, so when leaving
// play it gets nuked
eff.addController(card.getController());
eff.setOwner(card.getController());
eff.setImageName(card.getImageName());
eff.setColor(card.getColor());
eff.setImmutable(true);
eff.addStaticAbility("Mode$ CantBeCast | ValidCard$ Card | Caster$ You "
+ "| Description$ For the rest of the game, you can't cast spells.");
final Trigger copyTrigger = forge.card.trigger.TriggerHandler.parseTrigger(
"Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerDescription$ "
+ "At the beginning of each of your upkeeps, copy " + card.toString()
+ " except for its epic ability.", card, false);
copyTrigger.setOverridingAbility(origSA);
eff.addTrigger(copyTrigger);
AllZone.getTriggerHandler().suppressMode(TriggerType.ChangesZone);
Singletons.getModel().getGameAction().moveToPlay(eff);
AllZone.getTriggerHandler().clearSuppression(TriggerType.ChangesZone);
String name = card.toString() + " Epic";
if (card.getController().getCardsIn(ZoneType.Battlefield, name).isEmpty()) {
// Create Epic emblem
final Card eff = new Card();
eff.setName(card.toString() + " Epic");
eff.addType("Effect"); // Or Emblem
eff.setToken(true); // Set token to true, so when leaving
// play it gets nuked
eff.addController(card.getController());
eff.setOwner(card.getController());
eff.setImageName(card.getImageName());
eff.setColor(card.getColor());
eff.setImmutable(true);
eff.setEffectSource(card);
eff.addStaticAbility("Mode$ CantBeCast | ValidCard$ Card | Caster$ You "
+ "| Description$ For the rest of the game, you can't cast spells.");
eff.setSVar("EpicCopy", "AB$ CopySpell | Cost$ 0 | Defined$ EffectSource");
final Trigger copyTrigger = forge.card.trigger.TriggerHandler.parseTrigger(
"Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | Execute$ EpicCopy | TriggerDescription$ "
+ "At the beginning of each of your upkeeps, copy " + card.toString()
+ " except for its epic ability.", eff, false);
eff.addTrigger(copyTrigger);
AllZone.getTriggerHandler().suppressMode(TriggerType.ChangesZone);
Singletons.getModel().getGameAction().moveToPlay(eff);
AllZone.getTriggerHandler().clearSuppression(TriggerType.ChangesZone);
}
if (card.getController().isHuman()) {
Singletons.getModel().getGameAction().playSpellAbilityNoStack(origSA, false);