use super::*;
pub(crate) const SHAPESHIFTER: Card = Card {
name: Name::Shapeshifter,
suit: Suit::Wild,
strength: 0,
adder: None,
wild: Some(shapeshifter_wild),
modifier: None,
immunity: None,
blanks: None,
bonus: None,
penalty: None,
};
pub(crate) fn shapeshifter_wild(hand: &Vec<Card>, index: usize) -> Vec<Vec<Card>> {
let mut possible_cards = CardCollection::new();
possible_cards += Suit::Artifact;
possible_cards += Suit::Leader;
possible_cards += Suit::Wizard;
possible_cards += Suit::Weapon;
possible_cards += Suit::Beast;
possible_cards
.iter()
.map(|card| {
let mut new_hand: Vec<Card> = hand.clone();
let new_card = Card {
strength: 0,
adder: None,
wild: None,
modifier: None,
immunity: None,
blanks: None,
bonus: None,
penalty: None,
..card
};
new_hand[index] = new_card;
new_hand
})
.collect::<Vec<Vec<Card>>>()
}