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
}