Added builder method to cards

This commit is contained in:
magenoxx 2012-06-29 10:02:02 +04:00
parent ebf8e372bd
commit 533cc69101
4 changed files with 12 additions and 1 deletions

View file

@ -99,6 +99,8 @@ public interface Card extends MageObject {
public boolean putOntoBattlefield(Game game, Zone fromZone, UUID sourceId, UUID controllerId);
public List<Mana> getMana();
public void build();
@Override
public Card copy();
}

View file

@ -124,6 +124,7 @@ public abstract class CardImpl<T extends CardImpl<T>> extends MageObjectImpl<T>
Class<?> theClass = Class.forName(name);
Constructor<?> con = theClass.getConstructor(new Class[]{UUID.class});
Card card = (Card) con.newInstance(new Object[]{null});
card.build();
return card;
} catch (Exception e) {
logger.fatal("Error loading card: " + name, e);
@ -453,4 +454,7 @@ public abstract class CardImpl<T extends CardImpl<T>> extends MageObjectImpl<T>
}
info.put(key, value);
}
@Override
public void build() {}
}

View file

@ -122,7 +122,9 @@ public abstract class ExpansionSet implements Serializable {
private Card createCard(Class clazz) {
try {
Constructor<?> con = clazz.getConstructor(new Class[]{UUID.class});
return (Card) con.newInstance(new Object[]{null});
Card card = (Card) con.newInstance(new Object[]{null});
card.build();
return card;
} catch (Exception ex) {
logger.fatal("Error creating card:" + clazz.getName(), ex);
return null;

View file

@ -468,5 +468,8 @@ public class Spell<T extends Spell<T>> implements StackObject, Card {
public boolean isCopy() {
return isCopiedSpell();
}
@Override
public void build() {}
}