public MODEL_Card drawMaxCard(String propertyName, String matchKeywords, String excludeKeywords) throws XCFException { MODEL_Card drawnCard = null; int max = -1; for (MODEL_Card card : cards) { if (card.matches(matchKeywords)) { if (excludeKeywords == null || !card.matches(excludeKeywords)) { int amount = 0; String sCardAttributeValue = card.getProperty(propertyName); try { amount = Integer.parseInt(sCardAttributeValue); } catch (NumberFormatException e) { throw new XCFException(propertyName + " not and integer for " + card.getName()); } if (amount > max) { drawnCard = card; max = amount; } } } } if (drawnCard == null) return null; cards.remove(drawnCard); return drawnCard; }
public int size(String matchKeywords, String excludeKeywords) { if ("*".equals(matchKeywords) && excludeKeywords == null) return cards.size(); int size = 0; for (MODEL_Card card : cards) { if (card.matches(matchKeywords)) { if (excludeKeywords == null || !card.matches(excludeKeywords)) { size++; } } } return size; }
public MODEL_Card add(Integer cardId, int limit) throws XCFException { MODEL_Card card = cardMgr.getCard(cardId); if (card == null) throw new XCFException(cardId + " is not a registed card."); if ((cost + card.getCost()) > limit) { throw new XCFException( "You can't add " + card.getName() + ". You are out of action points."); } cost += card.getCost(); add(card); return card; }
public MODEL_Card drawCard(String matchKeywords, String excludeKeywords) { MODEL_Card drawnCard = null; for (MODEL_Card card : cards) { if (card.matches(matchKeywords)) { if (excludeKeywords == null || !card.matches(excludeKeywords)) { drawnCard = card; break; } } } if (drawnCard == null) return null; cards.remove(drawnCard); return drawnCard; }
public Integer[] getOverrideState() { if (numOverrides <= 0) return null; Integer[] overrideState = new Integer[2]; overrideState[0] = override.getID(); overrideState[1] = numOverrides; return overrideState; }
public MODEL_Card drawCardFromBottom(String matchKeywords, String excludeKeywords) { MODEL_Card drawnCard = null; int i = 0; for (i = cards.size() - 1; i >= 0; i--) { MODEL_Card card = cards.get(i); if (card.matches(matchKeywords)) { if (excludeKeywords == null || !card.matches(excludeKeywords)) { drawnCard = card; break; } } } if (drawnCard == null) return null; cards.remove(i); return drawnCard; }