package com.vdom.core; import com.vdom.api.VictoryCard; public class TreasureVictoryCardImpl extends TreasureCardImpl implements VictoryCard { protected TreasureVictoryCardImpl(Builder builder) { super(builder); } public static class Builder extends TreasureCardImpl.Builder { public Builder(Cards.Type type, int cost, int value, int vp) { super(type, cost, value); this.vp = vp; } public TreasureCardImpl build() { return new TreasureVictoryCardImpl(this); } } @Override public int getVictoryPoints() { return vp; } @Override public CardImpl instantiate() { checkInstantiateOK(); TreasureVictoryCardImpl c = new TreasureVictoryCardImpl(); copyValues(c); return c; } protected void copyValues(TreasureVictoryCardImpl c) { super.copyValues(c); c.vp = vp; } protected TreasureVictoryCardImpl() { } @Override public void isBought(MoveContext context) { context.game.trashHovelsInHandOption(context.player, context, this); } @Override public String getStats() { StringBuilder sb = new StringBuilder(); sb.append(super.getStats()); if (vp > 0 || value > 0) { sb.append(" "); boolean start = true; if (value > 0) { if (start) { start = false; } else { sb.append(", "); } sb.append("" + value + " Gold"); } if (vp > 0) { if (start) { start = false; } else { sb.append(", "); } sb.append("" + vp + " Victory Point"); if (vp > 1) { sb.append("s"); } } } return sb.toString(); } }