fantasy_realms_unofficial_api 0.1.0

An unofficial API for the Fantasy Realms card game.
Documentation
use super::*;

pub(crate) const BLIZZARD: Card = Card {
    name: Name::Blizzard,
    suit: Suit::Weather,
    strength: 30,
    adder: None,
    wild: None,
    modifier: None,
    immunity: None,
    blanks: Some(blizzard_blanks),
    bonus: None,
    penalty: Some(blizzard_penalty),
};

pub(crate) fn blizzard_blanks(_: &Vec<Card>, imunity: &CardCollection, blanks: &mut CardCollection) {
    let mut updated_blanks = CardCollection::new();
    if !imunity.contains(Suit::Flood) {
        updated_blanks += Suit::Flood;
    }
    *blanks += updated_blanks;
}

pub(crate) fn blizzard_penalty(hand: &ScoringHand, immunity: &CardCollection) -> i16 {
    [Suit::Army, Suit::Leader, Suit::Beast, Suit::Flame]
        .iter()
        .filter(|&&suit| !immunity.contains(suit))
        .map(|&suit| hand.number_of_suit(suit))
        .sum::<i16>() * 5
}