stored index, added setCardDefinition

master
melvin 2011-06-18 12:09:44 +08:00
parent cbbfa2d1d8
commit 2eba1c94f4
1 changed files with 29 additions and 8 deletions

View File

@ -12,22 +12,30 @@ import magic.model.condition.MagicSingleActivationCondition;
public abstract class MagicActivation implements MagicEventAction, Comparable<MagicActivation> { public abstract class MagicActivation implements MagicEventAction, Comparable<MagicActivation> {
private final MagicCardDefinition cardDefinition; private MagicCardDefinition cardDefinition;
private final MagicCondition conditions[]; private final MagicCondition conditions[];
private final MagicTargetChoice targetChoice; private final MagicTargetChoice targetChoice;
private final String text;
protected final MagicActivationHints hints; protected final MagicActivationHints hints;
protected final int priority; protected final int priority;
protected final int id; protected int id;
private final int index;
/** Conditions can be null. */ /** Conditions can be null. */
public MagicActivation( public MagicActivation(
final MagicCardDefinition cardDefinition, final MagicCardDefinition cardDefinition,
final int index, final int index,
final MagicCondition conditions[], final MagicCondition conditions[],
final MagicActivationHints hints) { final MagicActivationHints hints,
final String txt
) {
this.text = txt;
this.index = index;
if (cardDefinition != null) {
this.cardDefinition=cardDefinition; this.cardDefinition=cardDefinition;
this.id=(cardDefinition.getIndex()<<16)+index; this.id=(cardDefinition.getIndex()<<16)+index;
}
this.conditions=conditions; this.conditions=conditions;
this.targetChoice=getTargetChoice(); this.targetChoice=getTargetChoice();
this.hints=hints; this.hints=hints;
@ -44,18 +52,27 @@ public abstract class MagicActivation implements MagicEventAction, Comparable<Ma
} }
} }
/*
public MagicActivation( public MagicActivation(
final String name, final String name,
final int index, final int index,
final MagicCondition conditions[], final MagicCondition conditions[],
final MagicActivationHints hints) { final MagicActivationHints hints,
this(CardDefinitions.getInstance().getCard(name),index,conditions,hints); final String txt
) {
this(CardDefinitions.getInstance().getCard(name),index,conditions,hints,txt);
} }
*/
public final MagicCardDefinition getCardDefinition() { public final MagicCardDefinition getCardDefinition() {
return cardDefinition; return cardDefinition;
} }
public void setCardDefinition(final MagicCardDefinition cdef) {
this.cardDefinition = cdef;
this.id=(this.cardDefinition.getIndex()<<16)+index;
}
public final MagicCondition[] getConditions() { public final MagicCondition[] getConditions() {
return conditions; return conditions;
} }
@ -68,6 +85,10 @@ public abstract class MagicActivation implements MagicEventAction, Comparable<Ma
return id; return id;
} }
public final String getText() {
return text;
}
private final boolean checkActivationPriority(final MagicSource source) { private final boolean checkActivationPriority(final MagicSource source) {
final MagicActivationPriority actpri = source.getController().getActivationPriority(); final MagicActivationPriority actpri = source.getController().getActivationPriority();
final int priorityDif = priority - actpri.getPriority(); final int priorityDif = priority - actpri.getPriority();