def test_colors() -> None: assert mana.colors(['9', 'W', 'W', 'R']) == { 'required': {'W', 'R'}, 'also': set() } assert mana.colors(['2/W', 'G', 'X']) == {'required': {'G'}, 'also': {'W'}} assert mana.colors(['U/P', 'R/P']) == { 'required': set(), 'also': {'U', 'R'} } assert mana.colors(['X']) == {'required': set(), 'also': set()} assert mana.colors(['B/R']) == {'required': set(), 'also': {'B', 'R'}}
def set_colors(d: Deck) -> None: deck_colors: Set[str] = set() deck_colored_symbols: List[str] = [] for c in [entry.card for entry in d.maindeck + d.sideboard]: for cost in c.get('mana_cost') or (): if c.layout == 'split': continue # They might only be using one half so ignore it. card_symbols = mana.parse(cost) card_colors = mana.colors(card_symbols) deck_colors.update(card_colors['required']) card_colored_symbols = mana.colored_symbols(card_symbols) deck_colored_symbols += card_colored_symbols['required'] d.colors = mana.order(deck_colors) d.colored_symbols = deck_colored_symbols
def set_colors(d): deck_colors = set() deck_colored_symbols = [] for card in [c['card'] for c in d.maindeck + d.sideboard]: for cost in card.get('mana_cost') or (): if card.layout == 'split' or card.layout == 'aftermath': continue # They might only be using one half so ignore it. card_symbols = mana.parse(cost) card_colors = mana.colors(card_symbols) deck_colors.update(card_colors['required']) card_colored_symbols = mana.colored_symbols(card_symbols) deck_colored_symbols += card_colored_symbols['required'] d.colors = mana.order(deck_colors) d.colored_symbols = deck_colored_symbols