Skip to main content

civ_map_generator/ruleset/
policy.rs

1use super::enums::VictoryType;
2use serde::{Deserialize, Serialize};
3use std::collections::HashMap;
4
5#[derive(Debug, Serialize, Deserialize)]
6pub struct PolicyBranchInfo {
7    pub name: String,
8    pub era: String,
9    /// The priority that Civilization choose this policy branch is up to its victory type.
10    pub priorities: HashMap<VictoryType, u8>,
11    pub uniques: Vec<String>,
12    pub policies: Vec<PolicyInfo>,
13}
14
15// TODO: Will not derive `Clone` in the future.
16#[derive(Debug, Serialize, Deserialize, Clone)]
17pub struct PolicyInfo {
18    pub name: String,
19    pub uniques: Vec<String>,
20    #[serde(default)]
21    pub requires: Vec<String>,
22    #[serde(default)]
23    pub row: u8,
24    #[serde(default)]
25    pub column: u8,
26}