1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
use serde::Deserialize;
use yoke::Yoke;
use crate::cards::ActionCard;
/// The players position on the Politburo
#[derive(Deserialize)]
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>,
}