Skip to main content

character_traits_warrior_capability/
defensive_magical_capability.rs

1// ---------------- [ File: character-traits-warrior-capability/src/defensive_magical_capability.rs ]
2crate::ix!();
3
4#[derive(Copy,EnumIter,Debug, Clone, PartialEq, Eq, Hash)]
5pub enum WarriorDefensiveMagicCapability {
6    /// Optimal for entities entrusted with magical safeguarding of specific locations or domains,
7    /// chosen when territorial integrity is the highest priority.
8    DefendsDomainWithMagic,
9
10    /// Ideal for integrating magical defenses into broader tactical strategies, ensuring
11    /// defensive spells complement comprehensive battle plans.
12    StrategicallyUsesMagicalDefenses,
13
14    /// Chosen for entities that combine traditional magical defenses with offensive deterrents,
15    /// valuable in balanced threat-response scenarios.
16    SkilledInMagicalDefenseAndCurses,
17
18    /// Selected for entities capable of rapidly deploying energy barriers, essential for mitigating
19    /// immediate magical threats during fast-paced conflicts.
20    ConjuresProtectiveEnergyBarriers,
21
22    /// Appropriate for protecting allies specifically from enemy spells, beneficial in leadership
23    /// or supporting combat roles to maintain team integrity.
24    WardsAlliesAgainstHarmfulSpells,
25
26    /// Assigned when an entity's primary role involves restricting enemy mobility or actions through
27    /// enchantments, crucial for tactical containment and crowd control.
28    BindsFoesWithRestrictiveEnchantments,
29
30    /// Preferred for entities establishing persistent magical protections over territories, particularly
31    /// effective in sustained defense scenarios against prolonged magical intrusions.
32    ShieldsTerritoryWithRunicWardings,
33
34    /// Crucial when an entity is frequently tasked with counteracting enemy magical intrusions or
35    /// breaking hostile enchantments, significantly increasing team's magical resilience.
36    AdeptAtCounteringMagicalIntrusions,
37
38    /// Ideal for swiftly identifying, analyzing, and dispelling harmful enchantments placed upon allies,
39    /// terrain, or objects, crucial in complex magical combat environments.
40    ProficientInDispellingNegativeEnchantments,
41
42    /// Chosen for entities that specialize in revealing hidden magical threats, illusions, or magically
43    /// concealed adversaries, critical in scenarios demanding high perceptual acuity.
44    SkilledAtDetectingHiddenMagicalThreats,
45
46    /// Suitable for entities who can temporarily or permanently nullify an opponent's magical abilities,
47    /// particularly effective against magically superior adversaries.
48    SpecializedInMagicNullification,
49
50    /// Selected when entities use reflective magic or spell redirection, turning enemy spells against them
51    /// to maintain strategic defensive advantages.
52    MasterOfReflectiveSpellcraft,
53
54    /// Optimal for entities capable of reinforcing structural integrity or repairing magical barriers mid-battle,
55    /// essential in prolonged engagements or sieges.
56    RepairsAndStrengthensMagicalStructures,
57
58    /// Best suited for entities who deploy proactive magical wards that actively repel enemies, hindering
59    /// their movements or reducing their combat effectiveness upon approach.
60    ExpertInProactiveRepulsionWards,
61}
62
63impl WarriorDefensiveMagicCapability {
64    /// Returns intrinsic dimension ratings for each `WarriorDefensiveMagicCapability`
65    /// variant.  Values lie on a **0.0 – 1.0** scale; any dimension not pertinent
66    /// to a variant is left explicitly at `0.0`.
67    #[must_use]
68    pub fn intrinsic_dimension_ratings(&self) -> WarriorCapabilityIntrinsicDimensionRatings {
69        info!(?self, "computing intrinsic dimension ratings");
70        use WarriorDefensiveMagicCapability::*;
71        match self {
72            DefendsDomainWithMagic => wc_ratings!(
73                0.00,0.00,0.50,0.50,0.00,0.50,0.00,0.00,0.00,0.00,
74                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
75                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
76                0.75,0.00,0.00,0.00,0.75,0.50,0.50,0.50,0.50,0.00,
77                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
78                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.50,0.00,
79                0.00,0.00,0.00,0.75,0.00,0.50,0.00,0.00,0.00,0.00,
80                1.00,0.50,0.00,0.75,0.00,0.00,0.00,0.00,0.00,0.00,
81                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
82                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
83                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
84                0.00,0.00,0.00,0.50,0.00
85            ),
86            StrategicallyUsesMagicalDefenses => wc_ratings!(
87                0.00,0.00,0.75,0.50,0.00,0.50,0.00,0.00,0.00,0.00,
88                0.00,0.00,0.00,0.00,0.00,0.00,0.50,0.00,0.00,0.00,
89                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.50,0.00,
90                0.00,0.00,0.00,0.00,0.50,0.75,0.00,0.00,0.50,0.00,
91                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
92                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.50,0.00,
93                0.00,0.00,0.00,0.00,0.00,0.50,0.00,0.00,0.00,0.00,
94                0.00,0.75,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
95                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
96                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
97                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
98                0.00,0.00,0.00,0.50,0.00
99            ),
100            SkilledInMagicalDefenseAndCurses => wc_ratings!(
101                0.00,0.00,0.50,0.40,0.00,0.60,0.00,0.00,0.00,0.40,
102                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
103                0.00,0.00,0.00,0.40,0.50,0.00,0.00,0.60,0.40,0.00,
104                0.00,0.00,0.00,0.00,0.60,0.60,0.00,0.00,0.00,0.00,
105                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
106                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.40,0.00,
107                0.50,0.00,0.50,0.75,0.00,0.60,0.00,0.00,0.00,0.00,
108                0.00,0.60,0.00,0.50,0.00,0.00,0.00,0.00,0.00,0.00,
109                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
110                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
111                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
112                0.00,0.00,0.00,0.60,0.00
113            ),
114            ConjuresProtectiveEnergyBarriers => wc_ratings!(
115                0.00,0.00,0.40,0.50,0.00,0.50,0.00,0.00,0.00,0.00,
116                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
117                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
118                0.00,0.00,0.00,0.00,0.70,0.60,0.00,0.00,0.60,0.00,
119                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
120                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.75,0.00,
121                0.75,0.00,0.60,0.80,0.50,0.60,0.50,0.00,0.00,0.00,
122                0.00,0.50,0.50,0.50,0.00,0.00,0.00,0.00,0.00,0.00,
123                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
124                0.75,0.60,0.00,0.75,0.00,0.00,0.00,0.00,0.60,0.75,
125                0.00,0.00,0.00,0.60,0.00,0.00,0.00,0.00,0.60,0.00,
126                0.00,0.00,0.00,0.60,0.75
127            ),
128            WardsAlliesAgainstHarmfulSpells => wc_ratings!(
129                0.00,0.00,0.50,0.50,0.00,0.50,0.00,0.00,0.00,0.00,
130                0.00,0.00,0.00,0.00,0.50,0.50,0.00,0.00,0.00,0.00,
131                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
132                0.00,0.00,0.00,0.00,0.70,0.50,0.00,0.00,0.00,0.00,
133                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
134                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.60,0.00,
135                1.00,0.00,0.60,0.80,0.00,0.70,0.00,0.00,0.00,0.60,
136                0.00,0.60,0.00,0.60,0.00,0.00,0.00,0.00,0.00,0.00,
137                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
138                0.60,0.70,0.00,0.70,0.00,0.60,0.00,0.00,0.50,0.50,
139                0.60,0.60,0.60,0.50,0.00,0.00,0.00,0.00,0.60,0.00,
140                0.00,0.00,0.00,0.60,0.00
141            ),
142            BindsFoesWithRestrictiveEnchantments => wc_ratings!(
143                0.00,0.00,0.40,0.40,0.00,0.50,0.00,0.00,0.00,0.30,
144                0.00,0.00,0.00,0.00,0.00,0.00,0.40,0.00,0.00,0.00,
145                0.00,0.00,0.00,0.40,0.00,0.00,0.00,0.60,0.60,0.00,
146                0.00,0.00,0.00,0.00,0.40,0.40,0.00,0.00,0.00,0.00,
147                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
148                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.30,0.00,
149                0.60,0.00,0.60,0.60,0.00,0.60,0.00,0.00,1.00,0.30,
150                0.00,0.50,0.00,0.50,0.30,0.00,0.00,0.00,0.60,0.30,
151                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
152                0.50,0.55,0.00,0.50,0.00,0.00,0.00,0.00,0.55,0.50,
153                0.30,0.00,0.00,0.45,0.00,0.30,0.00,0.30,0.30,0.00,
154                0.00,0.00,0.00,0.60,0.00
155            ),
156            ShieldsTerritoryWithRunicWardings => wc_ratings!(
157                0.00,0.00,0.50,0.50,0.00,0.60,0.00,0.00,0.00,0.00,
158                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
159                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
160                0.70,0.00,0.00,0.00,0.75,0.60,0.50,0.50,0.80,0.00,
161                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
162                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.50,0.00,
163                0.00,0.00,0.00,0.70,0.00,0.60,0.00,0.00,0.00,0.00,
164                0.80,0.60,0.00,0.70,0.00,0.00,0.00,0.00,0.00,0.00,
165                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
166                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
167                0.60,0.55,0.00,0.55,0.00,0.00,0.00,0.00,0.60,0.60,
168                0.60,0.00,0.00,0.60,0.60
169            ),
170            AdeptAtCounteringMagicalIntrusions => wc_ratings!(
171                0.00,0.00,0.50,0.50,0.00,0.50,0.00,0.00,0.00,0.00,
172                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
173                0.00,0.00,0.00,0.60,0.50,0.00,0.00,0.00,0.50,0.00,
174                0.00,0.00,0.00,0.00,0.70,0.75,0.60,0.60,0.75,0.00,
175                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
176                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.60,0.00,
177                0.75,0.00,0.70,0.70,0.00,0.70,0.00,0.00,0.00,0.00,
178                1.00,0.70,0.00,0.60,0.00,0.00,0.00,0.00,0.60,0.50,
179                0.00,0.60,0.00,0.50,0.00,0.00,0.00,0.00,0.00,0.00,
180                0.50,0.50,0.00,0.50,0.00,0.00,0.00,0.00,0.50,0.50,
181                0.50,0.50,0.50,0.50,0.00,0.00,0.00,0.50,0.50,0.50,
182                0.50,0.50,0.00,0.50,0.50
183            ),
184            ProficientInDispellingNegativeEnchantments => wc_ratings!(
185                0.00,0.00,0.50,0.50,0.00,0.50,0.00,0.00,0.00,0.00,
186                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
187                0.00,0.00,0.00,0.60,0.50,0.00,0.00,0.00,0.50,0.00,
188                0.00,0.00,0.00,0.00,0.50,0.50,0.00,0.00,0.60,0.00,
189                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
190                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.55,0.00,
191                0.70,0.00,0.75,0.90,0.00,0.75,0.00,0.00,0.00,0.00,
192                0.90,0.75,0.00,0.55,0.00,0.00,0.00,0.00,0.50,0.55,
193                0.00,0.50,0.00,0.50,0.00,0.00,0.00,0.00,0.00,0.00,
194                0.50,0.55,0.00,0.55,0.00,0.00,0.00,0.00,0.55,0.55,
195                0.50,0.50,0.50,0.50,0.00,0.00,0.00,0.50,0.50,0.50,
196                0.50,0.50,0.00,0.50,0.50
197            ),
198            SkilledAtDetectingHiddenMagicalThreats => wc_ratings!(
199                0.00,0.00,0.40,0.50,0.00,0.50,0.00,0.00,0.00,0.00,
200                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
201                0.00,0.00,0.00,0.60,0.50,0.00,0.00,0.00,0.40,0.00,
202                0.00,0.00,0.00,0.00,0.40,0.40,0.80,0.80,0.50,0.00,
203                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
204                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.80,0.00,
205                0.50,0.00,0.60,0.80,0.00,0.60,0.00,0.00,0.00,0.00,
206                0.60,0.60,0.00,0.55,0.00,0.00,0.00,0.00,0.80,0.80,
207                0.00,1.00,0.00,0.50,0.00,0.00,0.00,0.00,0.00,0.00,
208                0.50,0.50,0.00,0.50,0.00,0.00,0.00,0.00,0.50,0.50,
209                0.50,0.50,0.50,0.50,0.00,0.00,0.00,0.50,0.50,0.50,
210                0.50,0.50,0.00,0.50,0.50
211            ),
212            SpecializedInMagicNullification => wc_ratings!(
213                0.00,0.00,0.50,0.50,0.00,0.50,0.00,0.00,0.00,0.00,
214                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
215                0.00,0.00,0.00,0.60,0.50,0.00,0.00,0.00,0.50,0.00,
216                0.00,0.00,0.00,0.00,0.50,0.70,0.00,0.00,0.60,0.00,
217                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
218                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.60,0.00,
219                0.80,0.00,0.70,1.00,0.00,0.70,0.00,0.00,0.00,0.00,
220                1.00,0.70,0.00,0.60,0.00,0.00,0.00,0.00,0.50,0.55,
221                0.00,0.50,0.00,0.50,0.00,0.00,0.00,0.00,0.00,0.00,
222                0.50,0.50,0.00,0.50,0.00,0.00,0.00,0.00,0.50,0.50,
223                0.50,0.50,0.50,0.50,0.00,0.00,0.00,0.50,0.50,0.50,
224                0.50,0.50,0.00,0.50,0.50
225            ),
226            MasterOfReflectiveSpellcraft => wc_ratings!(
227                0.00,0.00,0.50,0.50,0.00,0.50,0.00,0.00,0.00,0.00,
228                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
229                0.00,0.00,0.00,0.60,0.50,0.00,0.00,0.00,0.50,0.00,
230                0.00,0.00,0.00,0.00,0.70,0.70,0.00,0.00,0.60,0.00,
231                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
232                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.60,0.00,
233                0.60,0.00,0.60,0.60,0.00,0.80,0.60,0.00,0.00,0.00,
234                0.60,0.60,0.60,0.60,0.00,0.00,0.00,0.00,0.70,0.60,
235                0.00,0.60,0.00,0.50,0.00,0.00,0.00,0.00,0.00,0.00,
236                0.55,0.60,0.00,0.60,0.00,0.60,0.00,0.00,0.60,0.60,
237                0.55,0.55,0.55,0.55,0.00,0.00,0.00,0.55,0.55,0.55,
238                0.60,0.55,0.00,0.55,0.55
239            ),
240            RepairsAndStrengthensMagicalStructures => wc_ratings!(
241                0.00,0.00,0.50,0.50,0.00,0.80,0.00,0.00,0.00,0.00,
242                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
243                0.00,0.00,0.00,0.60,0.60,0.00,0.00,0.00,0.50,0.00,
244                0.00,0.00,0.00,0.00,0.75,0.60,0.00,0.00,0.60,0.00,
245                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
246                0.00,0.60,0.60,0.00,0.00,0.00,0.00,0.00,0.60,0.00,
247                0.60,0.00,0.60,0.75,0.00,0.60,0.00,0.00,0.00,0.00,
248                0.70,0.60,0.00,0.60,0.00,0.00,0.00,0.00,0.60,0.60,
249                0.00,0.60,0.00,0.60,0.00,0.00,0.00,0.00,0.60,0.60,
250                0.60,0.60,0.00,0.60,0.00,0.60,0.00,0.00,0.60,0.60,
251                0.60,0.60,0.60,0.60,0.00,0.00,0.00,0.60,0.60,0.60,
252                0.60,0.60,0.60,1.00,0.60
253            ),
254            ExpertInProactiveRepulsionWards => wc_ratings!(
255                0.00,0.00,0.50,0.50,0.00,0.60,0.00,0.00,0.00,0.00,
256                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
257                0.00,0.00,0.00,0.60,0.55,0.00,0.00,0.00,0.60,0.00,
258                0.00,0.00,0.00,0.00,0.75,0.60,0.60,0.60,0.60,0.00,
259                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,
260                0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.60,0.00,
261                0.70,0.00,0.55,0.75,0.00,0.60,0.00,0.00,0.00,0.00,
262                0.60,0.60,0.00,0.65,0.00,0.00,0.00,0.00,0.60,0.60,
263                0.00,0.60,0.00,0.60,0.00,0.00,0.00,0.00,0.00,0.00,
264                0.50,0.55,0.00,0.60,0.00,0.60,0.00,0.00,0.60,0.60,
265                0.55,0.55,0.55,0.55,0.00,0.00,0.00,0.60,0.60,0.60,
266                0.60,0.60,0.60,0.65,0.60
267            ),
268        }
269    }
270}