package magic.model.choice;
import magic.model.MagicGame;
import magic.model.MagicMappable;
import magic.model.MagicSource;
import magic.model.MurmurHash3;
import magic.model.event.MagicSourceActivation;
public class MagicPlayChoiceResult implements MagicMappable<MagicPlayChoiceResult> {
public static final MagicPlayChoiceResult PASS=new MagicPlayChoiceResult(null);
public static final MagicPlayChoiceResult SKIP=new MagicPlayChoiceResult(null);
public final MagicSourceActivation<? extends MagicSource> sourceActivation;
MagicPlayChoiceResult(final MagicSourceActivation<? extends MagicSource> aSourceActivation) {
sourceActivation = aSourceActivation;
}
@Override
public MagicPlayChoiceResult map(final MagicGame game) {
if (this==PASS) {
return PASS;
} else if (this==SKIP) {
return SKIP;
} else {
return new MagicPlayChoiceResult(
MagicSourceActivation.create(
game,
sourceActivation
)
);
}
}
@Override
public String toString() {
if (this==PASS) {
return "pass";
} else if (this==SKIP) {
return "skip";
} else {
return sourceActivation.source.getName();
}
}
public String getText() {
return sourceActivation.activation.getText();
}
@Override
public long getId() {
return MurmurHash3.hash(new long[] {
sourceActivation.source.getStateId(),
sourceActivation.activation.hashCode(),
});
}
}