civ_map_generator 0.1.5

A civilization map generator
Documentation
use serde::{Deserialize, Serialize};

use super::Name;

#[derive(Debug, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Difficulty {
    name: String,
    base_happiness: i8,
    extra_happiness_per_luxury: i8,
    research_cost_modifier: f32,
    unit_cost_modifier: f32,
    unit_supply_base: i8,
    unit_supply_per_city: i8,
    building_cost_modifier: f32,
    policy_cost_modifier: f32,
    unhappiness_modifier: f32,
    barbarian_bonus: f32,
    barbarian_spawn_delay: i8,
    player_bonus_starting_units: Vec<String>,
    ai_city_growth_modifier: f32,
    ai_unit_cost_modifier: f32,
    ai_building_cost_modifier: f32,
    ai_wonder_cost_modifier: f32,
    ai_building_maintenance_modifier: f32,
    ai_unit_maintenance_modifier: f32,
    ai_unit_supply_modifier: f32,
    ai_free_techs: Vec<String>,
    ai_major_civ_bonus_starting_units: Vec<String>,
    #[serde(default)]
    ai_city_state_bonus_starting_units: Vec<String>,
    ai_unhappiness_modifier: f32,
    ais_exchange_techs: bool,
    turn_barbarians_can_enter_player_tiles: i16,
    clear_barbarian_camp_reward: i8,
}

impl Name for Difficulty {
    fn name(&self) -> String {
        self.name.to_owned()
    }
}