use std::borrow::Cow; use yoke::Yokeable; use super::player::Position; /// A card in a players deck which can apply an effect /// to the game or advance a solution #[derive(Yokeable)] pub struct ActionCard<'a> { /// How much influence the card will cost to play influence: i32, /// The effect the card will have on the game once it's played effect: Effect, /// The image on the card image: Cow<'a, str>, /// The name of the card name: Cow<'a, str>, /// A description of what the card does description: Cow<'a, str>, } /// A card which must be solved by someone on the politburo #[derive(Yokeable)] pub struct SituationCard<'a> { /// Points associated with the card points: i32, /// Solving this card benefits the player in this position benefactor: Position, /// The image on the card image: Cow<'a, str>, /// The name of the card name: Cow<'a, str>, /// A description of the situation the card entails description: Cow<'a, str>, } pub enum CardType { /// A card which can be used by anyone General, /// A card which can only be used by the given /// poisition Position(Position), } /// ?? pub enum Effect {}