From f1e35a730129e1e54893fc85a033e286763652bc Mon Sep 17 00:00:00 2001 From: jendave Date: Sat, 6 Aug 2011 03:29:28 +0000 Subject: [PATCH] - Updated copyCard in CardFactory.java, it will actually reference the different CardFactories now to make the correct copy (fixes Planeswalkers returning from a bounced/destroyed Oblivion Ring). --- src/forge/CardFactory.java | 37 +++++++++++++++++++++++- src/forge/CardFactory_Planeswalkers.java | 8 +++++ 2 files changed, 44 insertions(+), 1 deletion(-) diff --git a/src/forge/CardFactory.java b/src/forge/CardFactory.java index 38dee75e673..a1fde808d13 100644 --- a/src/forge/CardFactory.java +++ b/src/forge/CardFactory.java @@ -102,9 +102,44 @@ public class CardFactory implements NewConstants { }// readCard() final public Card copyCard(Card in) { - Card out = getCard(in.getName(), in.getOwner()); + /* + Card out = getCard(in.getName(), in.getOwner()); out.setUniqueNumber(in.getUniqueNumber()); return out; + */ + + if(in.getType().contains("Creature")) { + Card card2 = new Card(); + card2 = CardFactory_Creatures.getCard(in, in.getName(), in.getOwner(), this); + + return card2; + } else if(in.getType().contains("Aura")) { + Card card2 = new Card(); + card2 = CardFactory_Auras.getCard(in, in.getName(), in.getOwner()); + + return card2; + } else if(in.getType().contains("Equipment")) { + Card card2 = new Card(); + card2 = CardFactory_Equipment.getCard(in, in.getName(), in.getOwner()); + + return card2; + } else if(in.getType().contains("Planeswalker")) { + Card card2 = new Card(); + card2 = CardFactory_Planeswalkers.getCard(in, in.getName(), in.getOwner()); + + return card2; + } else if(in.getType().contains("Land")) { + Card card2 = new Card(); + card2 = CardFactory_Lands.getCard(in, in.getName(), in.getOwner()); + + return card2; + } + else + { + Card out = getCard(in.getName(), in.getOwner()); + out.setUniqueNumber(in.getUniqueNumber()); + return out; + } } /* diff --git a/src/forge/CardFactory_Planeswalkers.java b/src/forge/CardFactory_Planeswalkers.java index b6f7304c701..33f873454e8 100644 --- a/src/forge/CardFactory_Planeswalkers.java +++ b/src/forge/CardFactory_Planeswalkers.java @@ -2670,6 +2670,14 @@ class CardFactory_Planeswalkers { card2.setManaCost(card.getManaCost()); card2.addSpellAbility(new Spell_Permanent(card2)); card2.addComesIntoPlayCommand(CardFactoryUtil.entersBattleFieldWithCounters(card2, Counters.LOYALTY, 3)); + /* + card2.addComesIntoPlayCommand(new Command() { + public void execute() + { + turn[0] = -1; + } + }); + */ final Ability ability1 = new Ability(card2, "0") { @Override