character-traits-warrior-capability 0.1.0

A Rust crate for modeling and simulating a broad spectrum of warrior capabilities, aimed at enhancing intricate game mechanics and strategic simulations.
Documentation
// ---------------- [ File: character-traits-warrior-capability/src/warrior_capability_profile.rs ]
crate::ix!();

/// **Flat capability profile.**
///
/// Every field is a `HashSet`—so each leaf‑level capability may appear
/// *0 … n* times (where *n* is expected to be small).  
//
#[derive(Debug, Clone, Getters, Builder)]
#[builder(pattern = "owned", setter(into, strip_option), default)]
#[getset(get = "pub")]
pub struct WarriorCapabilityProfile {
    bravery:               HashSet<WarriorBraveryCapability>,
    leadership:            HashSet<WarriorLeadershipCapability>,
    strategy:              HashSet<WarriorStrategicCapability>,
    protection:            HashSet<WarriorProtectiveCapability>,
    physical:              HashSet<WarriorPhysicalCapability>,
    resilience:            HashSet<WarriorResilienceCapability>,

    responsiveness:        HashSet<WarriorResponsivenessCapability>,
    exploration:           HashSet<WarriorExplorationCapability>,
    threat_adaptation:     HashSet<WarriorThreatAdaptationCapability>,
    conflict_mitigation:   HashSet<WarriorConflictMitigationCapability>,

    approach:              HashSet<WarriorApproachCapability>,
    embodiment:            HashSet<WarriorEmbodimentCapability>,
    meta:                  HashSet<WarriorMetaCapability>,

    offensive_magic:       HashSet<WarriorOffensiveMagicCapability>,
    defensive_magic:       HashSet<WarriorDefensiveMagicCapability>,
    illusionary_magic:     HashSet<WarriorIllusionaryMagicCapability>,

    cyber_defense:         HashSet<WarriorCyberDefenseCapability>,
    tech_adaptation:       HashSet<WarriorTechAdaptationCapability>,
}

impl Default for WarriorCapabilityProfile {
    fn default() -> Self {
        Self {
            bravery:               HashSet::new(),
            leadership:            HashSet::new(),
            strategy:              HashSet::new(),
            protection:            HashSet::new(),
            physical:              HashSet::new(),
            resilience:            HashSet::new(),

            responsiveness:        HashSet::new(),
            exploration:           HashSet::new(),
            threat_adaptation:     HashSet::new(),
            conflict_mitigation:   HashSet::new(),

            approach:              HashSet::new(),
            embodiment:            HashSet::new(),
            meta:                  HashSet::new(),

            offensive_magic:       HashSet::new(),
            defensive_magic:       HashSet::new(),
            illusionary_magic:     HashSet::new(),

            cyber_defense:         HashSet::new(),
            tech_adaptation:       HashSet::new(),
        }
    }
}