@Override public boolean containsColor(ColoredManaSymbol coloredManaSymbol) { for (ManaCost manaCost : this) { if (manaCost.containsColor(coloredManaSymbol)) { return true; } } return false; } }
if (unpaid.containsColor(ColoredManaSymbol.W) && choice.getChoices().contains("White")) { colorToAutoPay = "White"; if (unpaid.containsColor(ColoredManaSymbol.R) && choice.getChoices().contains("Red")) { if (colorToAutoPay != null) { return false; if (unpaid.containsColor(ColoredManaSymbol.G) && choice.getChoices().contains("Green")) { if (colorToAutoPay != null) { return false; if (unpaid.containsColor(ColoredManaSymbol.U) && choice.getChoices().contains("Blue")) { if (colorToAutoPay != null) { return false; if (unpaid.containsColor(ColoredManaSymbol.B) && choice.getChoices().contains("Black")) { if (colorToAutoPay != null) { return false;
if (mc instanceof ColoredManaCost) { for (Map.Entry<ColoredManaSymbol, ManaSymbol> entry : coloredManaMap.entrySet()) { if (mc.containsColor(entry.getKey())) { manaSymbols.add(entry.getValue()); break;
@Override public int calculate(Game game, Ability sourceAbility, Effect effect) { int devotion = 0; for (Permanent permanent : game.getBattlefield().getAllActivePermanents(sourceAbility.getControllerId())) { for (ManaCost manaCost : permanent.getManaCost()) { for (ColoredManaSymbol coloredManaSymbol : devotionColors) { if (manaCost.containsColor(coloredManaSymbol)) { devotion++; break; // count each manaCost maximum of one time (Hybrid don't count for multiple colors of devotion) } } } } return devotion; }
if (currentUnpaidMana.containsColor(ColoredManaSymbol.W) && choice.getChoices().contains("White")) { choice.setChoice("White"); return true; if (currentUnpaidMana.containsColor(ColoredManaSymbol.R) && choice.getChoices().contains("Red")) { choice.setChoice("Red"); return true; if (currentUnpaidMana.containsColor(ColoredManaSymbol.G) && choice.getChoices().contains("Green")) { choice.setChoice("Green"); return true; if (currentUnpaidMana.containsColor(ColoredManaSymbol.U) && choice.getChoices().contains("Blue")) { choice.setChoice("Blue"); return true; if (currentUnpaidMana.containsColor(ColoredManaSymbol.B) && choice.getChoices().contains("Black")) { choice.setChoice("Black"); return true;
if (((cost.containsColor(ColoredManaSymbol.W)) && (pool.getWhite() > 0 || pool.ConditionalManaHasManaType(ManaType.WHITE))) || ((cost.containsColor(ColoredManaSymbol.B)) && (pool.getBlack() > 0 || pool.ConditionalManaHasManaType(ManaType.BLACK))) || ((cost.containsColor(ColoredManaSymbol.R)) && (pool.getRed() > 0 || pool.ConditionalManaHasManaType(ManaType.RED))) || ((cost.containsColor(ColoredManaSymbol.G)) && (pool.getGreen() > 0 || pool.ConditionalManaHasManaType(ManaType.GREEN))) || ((cost.containsColor(ColoredManaSymbol.U)) && (pool.getBlue() > 0) || pool.ConditionalManaHasManaType(ManaType.BLUE))) { cost.assignPayment(game, ability, pool, costToPay); if (pool.isEmpty() && pool.getConditionalMana().isEmpty()) {