use yoke::Yoke;

use crate::cards::ActionCard;

/// The players position on the Politburo
pub enum Position {
    /// Very direct, aggressive. Focuses on generating influence.
    /// Public opinion suffers as a result.
    MilitaryChief,
    /// Opposite of Military. Mostly high public opinion, low influence.
    /// Generates influence from public opinion
    PropogandaCheif,
    /// Backroom backstabber. Half of your influence is refunded if you
    /// fail to shut down or support a bill.
    InternalSecurityCheif,
    /// ??
    EconomicPlanningCheif,
    /// ??
    PositionFive,
    /// ??
    PositionSix,
    /// ??
    PositionSeven,
    /// ??
    PositionEight,
}

/// A player participating in the Politburo
pub struct Player {
    /// The player's position on the Politburo
    position: Position,
    /// The display name of the player
    name: String,
    /// The action cards in a player's hand
    cards: heapless::Vec<Yoke<ActionCard<'static>, Vec<u8>>, 7>,
}
