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/defensive_magical_capability.rs ]
crate::ix!();

#[derive(Copy,EnumIter,Debug, Clone, PartialEq, Eq, Hash)]
pub enum WarriorDefensiveMagicCapability {
    /// Optimal for entities entrusted with magical safeguarding of specific locations or domains,
    /// chosen when territorial integrity is the highest priority.
    DefendsDomainWithMagic,

    /// Ideal for integrating magical defenses into broader tactical strategies, ensuring
    /// defensive spells complement comprehensive battle plans.
    StrategicallyUsesMagicalDefenses,

    /// Chosen for entities that combine traditional magical defenses with offensive deterrents,
    /// valuable in balanced threat-response scenarios.
    SkilledInMagicalDefenseAndCurses,

    /// Selected for entities capable of rapidly deploying energy barriers, essential for mitigating
    /// immediate magical threats during fast-paced conflicts.
    ConjuresProtectiveEnergyBarriers,

    /// Appropriate for protecting allies specifically from enemy spells, beneficial in leadership
    /// or supporting combat roles to maintain team integrity.
    WardsAlliesAgainstHarmfulSpells,

    /// Assigned when an entity's primary role involves restricting enemy mobility or actions through
    /// enchantments, crucial for tactical containment and crowd control.
    BindsFoesWithRestrictiveEnchantments,

    /// Preferred for entities establishing persistent magical protections over territories, particularly
    /// effective in sustained defense scenarios against prolonged magical intrusions.
    ShieldsTerritoryWithRunicWardings,

    /// Crucial when an entity is frequently tasked with counteracting enemy magical intrusions or
    /// breaking hostile enchantments, significantly increasing team's magical resilience.
    AdeptAtCounteringMagicalIntrusions,

    /// Ideal for swiftly identifying, analyzing, and dispelling harmful enchantments placed upon allies,
    /// terrain, or objects, crucial in complex magical combat environments.
    ProficientInDispellingNegativeEnchantments,

    /// Chosen for entities that specialize in revealing hidden magical threats, illusions, or magically
    /// concealed adversaries, critical in scenarios demanding high perceptual acuity.
    SkilledAtDetectingHiddenMagicalThreats,

    /// Suitable for entities who can temporarily or permanently nullify an opponent's magical abilities,
    /// particularly effective against magically superior adversaries.
    SpecializedInMagicNullification,

    /// Selected when entities use reflective magic or spell redirection, turning enemy spells against them
    /// to maintain strategic defensive advantages.
    MasterOfReflectiveSpellcraft,

    /// Optimal for entities capable of reinforcing structural integrity or repairing magical barriers mid-battle,
    /// essential in prolonged engagements or sieges.
    RepairsAndStrengthensMagicalStructures,

    /// Best suited for entities who deploy proactive magical wards that actively repel enemies, hindering
    /// their movements or reducing their combat effectiveness upon approach.
    ExpertInProactiveRepulsionWards,
}

impl WarriorDefensiveMagicCapability {
    /// Returns intrinsic dimension ratings for each `WarriorDefensiveMagicCapability`
    /// variant.  Values lie on a **0.0 – 1.0** scale; any dimension not pertinent
    /// to a variant is left explicitly at `0.0`.
    #[must_use]
    pub fn intrinsic_dimension_ratings(&self) -> WarriorCapabilityIntrinsicDimensionRatings {
        info!(?self, "computing intrinsic dimension ratings");
        use WarriorDefensiveMagicCapability::*;
        match self {
            DefendsDomainWithMagic => wc_ratings!(
                0.00,0.00,0.50,0.50,0.00,0.50,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
                0.75,0.00,0.00,0.00,0.75,0.50,0.50,0.50,0.50,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.50,0.00,
                0.00,0.00,0.00,0.75,0.00,0.50,0.00,0.00,0.00,0.00,
                1.00,0.50,0.00,0.75,0.00,0.00,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.50,0.00
            ),
            StrategicallyUsesMagicalDefenses => wc_ratings!(
                0.00,0.00,0.75,0.50,0.00,0.50,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.50,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.50,0.00,
                0.00,0.00,0.00,0.00,0.50,0.75,0.00,0.00,0.50,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.50,0.00,
                0.00,0.00,0.00,0.00,0.00,0.50,0.00,0.00,0.00,0.00,
                0.00,0.75,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.50,0.00
            ),
            SkilledInMagicalDefenseAndCurses => wc_ratings!(
                0.00,0.00,0.50,0.40,0.00,0.60,0.00,0.00,0.00,0.40,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.40,0.50,0.00,0.00,0.60,0.40,0.00,
                0.00,0.00,0.00,0.00,0.60,0.60,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.40,0.00,
                0.50,0.00,0.50,0.75,0.00,0.60,0.00,0.00,0.00,0.00,
                0.00,0.60,0.00,0.50,0.00,0.00,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.60,0.00
            ),
            ConjuresProtectiveEnergyBarriers => wc_ratings!(
                0.00,0.00,0.40,0.50,0.00,0.50,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.70,0.60,0.00,0.00,0.60,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.75,0.00,
                0.75,0.00,0.60,0.80,0.50,0.60,0.50,0.00,0.00,0.00,
                0.00,0.50,0.50,0.50,0.00,0.00,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
                0.75,0.60,0.00,0.75,0.00,0.00,0.00,0.00,0.60,0.75,
                0.00,0.00,0.00,0.60,0.00,0.00,0.00,0.00,0.60,0.00,
                0.00,0.00,0.00,0.60,0.75
            ),
            WardsAlliesAgainstHarmfulSpells => wc_ratings!(
                0.00,0.00,0.50,0.50,0.00,0.50,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.50,0.50,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.70,0.50,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.60,0.00,
                1.00,0.00,0.60,0.80,0.00,0.70,0.00,0.00,0.00,0.60,
                0.00,0.60,0.00,0.60,0.00,0.00,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
                0.60,0.70,0.00,0.70,0.00,0.60,0.00,0.00,0.50,0.50,
                0.60,0.60,0.60,0.50,0.00,0.00,0.00,0.00,0.60,0.00,
                0.00,0.00,0.00,0.60,0.00
            ),
            BindsFoesWithRestrictiveEnchantments => wc_ratings!(
                0.00,0.00,0.40,0.40,0.00,0.50,0.00,0.00,0.00,0.30,
                0.00,0.00,0.00,0.00,0.00,0.00,0.40,0.00,0.00,0.00,
                0.00,0.00,0.00,0.40,0.00,0.00,0.00,0.60,0.60,0.00,
                0.00,0.00,0.00,0.00,0.40,0.40,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.30,0.00,
                0.60,0.00,0.60,0.60,0.00,0.60,0.00,0.00,1.00,0.30,
                0.00,0.50,0.00,0.50,0.30,0.00,0.00,0.00,0.60,0.30,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
                0.50,0.55,0.00,0.50,0.00,0.00,0.00,0.00,0.55,0.50,
                0.30,0.00,0.00,0.45,0.00,0.30,0.00,0.30,0.30,0.00,
                0.00,0.00,0.00,0.60,0.00
            ),
            ShieldsTerritoryWithRunicWardings => wc_ratings!(
                0.00,0.00,0.50,0.50,0.00,0.60,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
                0.70,0.00,0.00,0.00,0.75,0.60,0.50,0.50,0.80,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.50,0.00,
                0.00,0.00,0.00,0.70,0.00,0.60,0.00,0.00,0.00,0.00,
                0.80,0.60,0.00,0.70,0.00,0.00,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
                0.60,0.55,0.00,0.55,0.00,0.00,0.00,0.00,0.60,0.60,
                0.60,0.00,0.00,0.60,0.60
            ),
            AdeptAtCounteringMagicalIntrusions => wc_ratings!(
                0.00,0.00,0.50,0.50,0.00,0.50,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.60,0.50,0.00,0.00,0.00,0.50,0.00,
                0.00,0.00,0.00,0.00,0.70,0.75,0.60,0.60,0.75,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.60,0.00,
                0.75,0.00,0.70,0.70,0.00,0.70,0.00,0.00,0.00,0.00,
                1.00,0.70,0.00,0.60,0.00,0.00,0.00,0.00,0.60,0.50,
                0.00,0.60,0.00,0.50,0.00,0.00,0.00,0.00,0.00,0.00,
                0.50,0.50,0.00,0.50,0.00,0.00,0.00,0.00,0.50,0.50,
                0.50,0.50,0.50,0.50,0.00,0.00,0.00,0.50,0.50,0.50,
                0.50,0.50,0.00,0.50,0.50
            ),
            ProficientInDispellingNegativeEnchantments => wc_ratings!(
                0.00,0.00,0.50,0.50,0.00,0.50,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.60,0.50,0.00,0.00,0.00,0.50,0.00,
                0.00,0.00,0.00,0.00,0.50,0.50,0.00,0.00,0.60,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.55,0.00,
                0.70,0.00,0.75,0.90,0.00,0.75,0.00,0.00,0.00,0.00,
                0.90,0.75,0.00,0.55,0.00,0.00,0.00,0.00,0.50,0.55,
                0.00,0.50,0.00,0.50,0.00,0.00,0.00,0.00,0.00,0.00,
                0.50,0.55,0.00,0.55,0.00,0.00,0.00,0.00,0.55,0.55,
                0.50,0.50,0.50,0.50,0.00,0.00,0.00,0.50,0.50,0.50,
                0.50,0.50,0.00,0.50,0.50
            ),
            SkilledAtDetectingHiddenMagicalThreats => wc_ratings!(
                0.00,0.00,0.40,0.50,0.00,0.50,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.60,0.50,0.00,0.00,0.00,0.40,0.00,
                0.00,0.00,0.00,0.00,0.40,0.40,0.80,0.80,0.50,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.80,0.00,
                0.50,0.00,0.60,0.80,0.00,0.60,0.00,0.00,0.00,0.00,
                0.60,0.60,0.00,0.55,0.00,0.00,0.00,0.00,0.80,0.80,
                0.00,1.00,0.00,0.50,0.00,0.00,0.00,0.00,0.00,0.00,
                0.50,0.50,0.00,0.50,0.00,0.00,0.00,0.00,0.50,0.50,
                0.50,0.50,0.50,0.50,0.00,0.00,0.00,0.50,0.50,0.50,
                0.50,0.50,0.00,0.50,0.50
            ),
            SpecializedInMagicNullification => wc_ratings!(
                0.00,0.00,0.50,0.50,0.00,0.50,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.60,0.50,0.00,0.00,0.00,0.50,0.00,
                0.00,0.00,0.00,0.00,0.50,0.70,0.00,0.00,0.60,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.60,0.00,
                0.80,0.00,0.70,1.00,0.00,0.70,0.00,0.00,0.00,0.00,
                1.00,0.70,0.00,0.60,0.00,0.00,0.00,0.00,0.50,0.55,
                0.00,0.50,0.00,0.50,0.00,0.00,0.00,0.00,0.00,0.00,
                0.50,0.50,0.00,0.50,0.00,0.00,0.00,0.00,0.50,0.50,
                0.50,0.50,0.50,0.50,0.00,0.00,0.00,0.50,0.50,0.50,
                0.50,0.50,0.00,0.50,0.50
            ),
            MasterOfReflectiveSpellcraft => wc_ratings!(
                0.00,0.00,0.50,0.50,0.00,0.50,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.60,0.50,0.00,0.00,0.00,0.50,0.00,
                0.00,0.00,0.00,0.00,0.70,0.70,0.00,0.00,0.60,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.60,0.00,
                0.60,0.00,0.60,0.60,0.00,0.80,0.60,0.00,0.00,0.00,
                0.60,0.60,0.60,0.60,0.00,0.00,0.00,0.00,0.70,0.60,
                0.00,0.60,0.00,0.50,0.00,0.00,0.00,0.00,0.00,0.00,
                0.55,0.60,0.00,0.60,0.00,0.60,0.00,0.00,0.60,0.60,
                0.55,0.55,0.55,0.55,0.00,0.00,0.00,0.55,0.55,0.55,
                0.60,0.55,0.00,0.55,0.55
            ),
            RepairsAndStrengthensMagicalStructures => wc_ratings!(
                0.00,0.00,0.50,0.50,0.00,0.80,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.60,0.60,0.00,0.00,0.00,0.50,0.00,
                0.00,0.00,0.00,0.00,0.75,0.60,0.00,0.00,0.60,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
                0.00,0.60,0.60,0.00,0.00,0.00,0.00,0.00,0.60,0.00,
                0.60,0.00,0.60,0.75,0.00,0.60,0.00,0.00,0.00,0.00,
                0.70,0.60,0.00,0.60,0.00,0.00,0.00,0.00,0.60,0.60,
                0.00,0.60,0.00,0.60,0.00,0.00,0.00,0.00,0.60,0.60,
                0.60,0.60,0.00,0.60,0.00,0.60,0.00,0.00,0.60,0.60,
                0.60,0.60,0.60,0.60,0.00,0.00,0.00,0.60,0.60,0.60,
                0.60,0.60,0.60,1.00,0.60
            ),
            ExpertInProactiveRepulsionWards => wc_ratings!(
                0.00,0.00,0.50,0.50,0.00,0.60,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.60,0.55,0.00,0.00,0.00,0.60,0.00,
                0.00,0.00,0.00,0.00,0.75,0.60,0.60,0.60,0.60,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.60,0.00,
                0.70,0.00,0.55,0.75,0.00,0.60,0.00,0.00,0.00,0.00,
                0.60,0.60,0.00,0.65,0.00,0.00,0.00,0.00,0.60,0.60,
                0.00,0.60,0.00,0.60,0.00,0.00,0.00,0.00,0.00,0.00,
                0.50,0.55,0.00,0.60,0.00,0.60,0.00,0.00,0.60,0.60,
                0.55,0.55,0.55,0.55,0.00,0.00,0.00,0.60,0.60,0.60,
                0.60,0.60,0.60,0.65,0.60
            ),
        }
    }
}