- 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()) { for (final Card imp : card.getImprinted()) {
sas.addAll(imp.getSpellAbilities()); 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")) { } else if (defined.equals("Imprinted.doesNotShareNameWith+TriggeredCard+Exiled")) {
//get Imprinted list //get Imprinted list
ArrayList<SpellAbility> imprintedCards = new ArrayList<SpellAbility>(); ArrayList<SpellAbility> imprintedCards = new ArrayList<SpellAbility>();

View File

@@ -4720,6 +4720,8 @@ public class CardFactoryUtil {
@Override @Override
public void resolve() { public void resolve() {
String name = card.toString() + " Epic";
if (card.getController().getCardsIn(ZoneType.Battlefield, name).isEmpty()) {
// Create Epic emblem // Create Epic emblem
final Card eff = new Card(); final Card eff = new Card();
eff.setName(card.toString() + " Epic"); eff.setName(card.toString() + " Epic");
@@ -4731,22 +4733,24 @@ public class CardFactoryUtil {
eff.setImageName(card.getImageName()); eff.setImageName(card.getImageName());
eff.setColor(card.getColor()); eff.setColor(card.getColor());
eff.setImmutable(true); eff.setImmutable(true);
eff.setEffectSource(card);
eff.addStaticAbility("Mode$ CantBeCast | ValidCard$ Card | Caster$ You " eff.addStaticAbility("Mode$ CantBeCast | ValidCard$ Card | Caster$ You "
+ "| Description$ For the rest of the game, you can't cast spells."); + "| Description$ For the rest of the game, you can't cast spells.");
final Trigger copyTrigger = forge.card.trigger.TriggerHandler.parseTrigger( eff.setSVar("EpicCopy", "AB$ CopySpell | Cost$ 0 | Defined$ EffectSource");
"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); 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); eff.addTrigger(copyTrigger);
AllZone.getTriggerHandler().suppressMode(TriggerType.ChangesZone); AllZone.getTriggerHandler().suppressMode(TriggerType.ChangesZone);
Singletons.getModel().getGameAction().moveToPlay(eff); Singletons.getModel().getGameAction().moveToPlay(eff);
AllZone.getTriggerHandler().clearSuppression(TriggerType.ChangesZone); AllZone.getTriggerHandler().clearSuppression(TriggerType.ChangesZone);
}
if (card.getController().isHuman()) { if (card.getController().isHuman()) {
Singletons.getModel().getGameAction().playSpellAbilityNoStack(origSA, false); Singletons.getModel().getGameAction().playSpellAbilityNoStack(origSA, false);