Skip to main content

character_traits_warrior_capability/
tech_adaptation_capability.rs

1// ---------------- [ File: character-traits-warrior-capability/src/tech_adaptation_capability.rs ]
2crate::ix!();
3
4#[derive(Copy,EnumIter,Debug, Clone, PartialEq, Eq, Hash)]
5pub enum WarriorTechAdaptationCapability {
6    /// Ideal when the warrior consistently excels at rapidly understanding, implementing, and adapting defensive technologies to neutralize evolving threats.
7    SkilledInTechnologicalDefenseAndAdaptation,
8
9    /// Optimal for warriors who systematically enhance their combat effectiveness by swiftly integrating and mastering the latest weapon advancements, maintaining technological superiority.
10    IntegratesCuttingEdgeWeaponUpgrades,
11
12    /// Selected when a warrior frequently customizes or dynamically alters their equipment and technological tools, precisely aligning resources with mission-specific objectives and constraints.
13    ReconfiguresEquipmentForMissionNeeds,
14
15    /// Appropriate for warriors who demonstrate exceptional proficiency in seizing, repurposing, and effectively deploying captured or enemy-developed technology to enhance operational capability.
16    CommandeersEnemyTechnologyEfficiently,
17
18    /// Suited for warriors who rigorously enforce digital discipline, protocols, and cybersecurity practices, continuously safeguarding operational integrity against digital espionage or sabotage.
19    MaintainsOperationalSecurityInDigitalSpace,
20
21    /// Chosen when the warrior rapidly prototypes and deploys innovative tactical technological solutions under tight time constraints, enabling unconventional tactical breakthroughs.
22    RapidTacticalInnovationAndPrototyping,
23
24    /// Ideal for warriors who excel at seamlessly integrating diverse technological systems, ensuring interoperability and optimized performance in complex operational environments.
25    IntegratesAndOptimizesDiverseTechnologicalSystems,
26
27    /// Selected for warriors adept at swiftly adapting technological assets to environmental extremes or hostile operational contexts, ensuring mission success under adverse conditions.
28    AdaptsTechnologyForExtremeEnvironments,
29
30    /// Suited for warriors proficient in quickly diagnosing and repairing complex technological failures mid-operation, ensuring minimal disruption to mission objectives.
31    RealTimeTechnologicalTroubleshooting,
32
33    /// Optimal for warriors who effectively forecast technological trends and preemptively position their resources to maintain strategic technological advantage over adversaries.
34    StrategicTechnologyForesightAndPositioning,
35
36    /// Appropriate for warriors who specialize in embedding stealth and low-signature characteristics into technological systems, enhancing operational concealment and surprise.
37    ImplementsStealthAndSignatureReductionTechnologies,
38
39    /// Ideal for warriors proficient in training allies rapidly on newly adopted or adapted technologies, multiplying force effectiveness in coalition or joint-force contexts.
40    EfficientTechnologicalKnowledgeTransfer,
41}
42
43#[allow(clippy::too_many_lines)]
44impl WarriorTechAdaptationCapability {
45    /// Compute the intrinsic‐dimension ratings that characterize how each
46    /// `WarriorTechAdaptationCapability` variant differs along the
47    /// orthogonal capability basis captured by
48    /// `WarriorCapabilityIntrinsicDimensionRatings`.
49    #[instrument(level = "trace", skip(self))]
50    pub fn intrinsic_dimension_ratings(&self) -> WarriorCapabilityIntrinsicDimensionRatings {
51        use WarriorTechAdaptationCapability::*;
52
53        match self {
54            /* ---------------------------------------------------------------
55               Excels at adaptive defensive technologies
56            --------------------------------------------------------------- */
57            SkilledInTechnologicalDefenseAndAdaptation => {
58                tracing::trace!(
59                    "computing ratings for SkilledInTechnologicalDefenseAndAdaptation"
60                );
61                wc_ratings!(
62                    /*  1‑10  */ 0.00,0.25,0.25,0.25,0.25,0.65,0.00,0.90,0.25,0.50,
63                    /* 11‑20  */ 0.40,0.25,0.60,0.25,0.25,0.25,0.25,0.25,0.25,0.25,
64                    /* 21‑30  */ 0.25,0.25,0.25,0.25,0.60,0.25,0.25,0.25,0.60,0.25,
65                    /* 31‑40  */ 0.25,0.25,0.25,0.25,0.00,0.60,0.60,0.25,0.60,0.25,
66                    /* 41‑50  */ 0.25,0.25,0.25,0.25,0.25,0.70,0.25,0.25,0.25,0.25,
67                    /* 51‑60  */ 0.60,0.60,0.25,0.25,0.70,0.25,0.25,0.55,0.60,0.25,
68                    /* 61‑70  */ 0.70,0.25,0.00,0.00,0.25,0.00,0.00,0.25,0.25,0.00,
69                    /* 71‑80  */ 0.25,0.60,0.00,0.60,0.25,0.25,0.00,0.00,0.25,0.25,
70                    /* 81‑90  */ 0.25,0.25,0.85,0.70,0.80,0.80,0.80,0.75,0.75,0.75,
71                    /* 91‑100 */ 0.25,0.25,0.60,0.30,0.60,0.30,0.30,0.40,0.40,0.30,
72                    /* 101‑115*/ 0.60,0.30,0.30,0.50,0.40,0.40,0.50,0.45,0.60,0.70,
73                                 0.60,0.60,0.50,0.40,0.70
74                )
75            }
76
77            /* ---------------------------------------------------------------
78               Maintains technological superiority through weapon upgrades
79            --------------------------------------------------------------- */
80            IntegratesCuttingEdgeWeaponUpgrades => {
81                tracing::trace!("computing ratings for IntegratesCuttingEdgeWeaponUpgrades");
82                wc_ratings!(
83                    0.25,0.25,0.25,0.25,0.50,0.25,0.00,0.90,0.25,0.60,
84                    0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,
85                    0.50,0.25,0.25,0.25,0.60,0.25,0.25,0.25,0.25,0.60,
86                    0.25,0.25,0.25,0.25,0.00,0.25,0.25,0.25,0.25,0.25,
87                    0.25,0.25,0.80,0.80,0.60,0.80,0.25,0.25,0.25,0.25,
88                    0.25,0.25,0.25,0.25,0.60,0.25,0.25,0.25,0.25,0.25,
89                    0.80,0.25,0.00,0.00,0.25,0.00,0.00,0.80,0.70,0.00,
90                    0.25,0.25,0.00,0.40,0.25,0.25,0.00,0.00,0.25,0.25,
91                    0.25,0.25,0.50,0.60,0.60,0.70,0.70,0.60,0.60,0.60,
92                    0.25,0.25,0.60,0.30,0.60,0.30,0.30,0.40,0.40,0.30,
93                    0.60,0.60,0.30,0.50,0.40,0.40,0.50,0.45,0.60,0.70,
94                    0.60,0.60,0.60,0.60,0.60
95                )
96            }
97
98            /* ---------------------------------------------------------------
99               Reconfigures equipment to fit mission constraints
100            --------------------------------------------------------------- */
101            ReconfiguresEquipmentForMissionNeeds => {
102                tracing::trace!("computing ratings for ReconfiguresEquipmentForMissionNeeds");
103                wc_ratings!(
104                    0.25,0.25,0.25,0.25,0.25,0.60,0.00,0.75,0.25,0.50,
105                    0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,
106                    0.25,0.25,0.25,0.25,0.80,0.25,0.25,0.25,0.80,0.25,
107                    0.25,0.25,0.25,0.25,0.00,0.60,0.60,0.25,0.25,0.25,
108                    0.25,0.25,0.25,0.25,0.25,0.70,0.25,0.25,0.25,0.25,
109                    0.60,0.60,0.25,0.25,0.70,0.25,0.25,0.60,0.70,0.80,
110                    0.60,0.25,0.00,0.00,0.25,0.00,0.00,0.25,0.25,0.00,
111                    0.25,0.25,0.00,0.40,0.25,0.25,0.00,0.00,0.25,0.25,
112                    0.25,0.25,0.60,0.70,0.60,0.60,0.60,0.60,0.60,0.70,
113                    0.25,0.25,0.60,0.30,0.60,0.30,0.30,0.40,0.40,0.30,
114                    0.70,0.25,0.25,0.55,0.40,0.40,0.65,0.60,0.80,0.75,
115                    0.60,0.85,0.70,0.75,0.75
116                )
117            }
118
119            /* ---------------------------------------------------------------
120               Seizes and repurposes enemy technology
121            --------------------------------------------------------------- */
122            CommandeersEnemyTechnologyEfficiently => {
123                tracing::trace!("computing ratings for CommandeersEnemyTechnologyEfficiently");
124                wc_ratings!(
125                    0.25,0.25,0.25,0.25,0.25,0.60,0.00,0.85,0.25,0.60,
126                    0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,
127                    0.25,0.70,0.25,0.75,0.90,0.25,0.25,0.75,0.80,0.25,
128                    0.25,0.25,0.25,0.25,0.00,0.60,0.60,0.25,0.60,0.25,
129                    0.25,0.25,0.25,0.25,0.25,0.70,0.25,0.25,0.25,0.25,
130                    0.60,0.60,0.25,0.25,0.70,0.25,0.25,0.55,0.60,0.25,
131                    0.70,0.25,0.00,0.00,0.25,0.00,0.00,0.25,0.25,0.00,
132                    0.25,0.25,0.00,0.40,0.25,0.25,0.00,0.00,0.75,0.70,
133                    0.25,0.25,0.60,0.70,0.70,0.75,0.75,0.70,0.70,0.60,
134                    0.30,0.35,0.60,0.30,0.60,0.30,0.30,0.40,0.40,0.30,
135                    0.60,0.30,0.30,0.55,0.40,0.40,0.60,0.55,0.65,0.70,
136                    0.65,0.65,0.60,0.60,0.60
137                )
138            }
139
140            /* ---------------------------------------------------------------
141               Exemplary cyber‑defence & operational security
142            --------------------------------------------------------------- */
143            MaintainsOperationalSecurityInDigitalSpace => {
144                tracing::trace!("computing ratings for MaintainsOperationalSecurityInDigitalSpace");
145                wc_ratings!(
146                    0.25,0.25,0.25,0.25,0.25,0.60,0.00,0.70,0.25,0.30,
147                    0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,
148                    0.20,0.25,0.25,0.25,0.60,0.20,0.25,0.25,0.25,0.20,
149                    0.25,0.25,0.25,0.25,0.00,0.70,0.70,0.20,0.60,0.25,
150                    0.25,0.25,0.25,0.25,0.25,0.60,0.25,0.25,0.25,0.25,
151                    0.60,0.60,0.25,0.25,0.70,0.25,0.25,0.55,0.70,0.25,
152                    0.60,0.85,0.00,0.00,0.25,0.00,0.00,0.25,0.25,0.00,
153                    0.25,0.25,0.00,0.70,0.25,0.25,0.00,0.00,0.25,0.25,
154                    0.25,0.25,0.90,0.90,0.90,0.85,0.80,0.80,0.90,0.80,
155                    0.25,0.25,0.65,0.30,0.65,0.30,0.30,0.40,0.40,0.30,
156                    0.60,0.30,0.30,0.50,0.40,0.45,0.60,0.55,0.60,0.60,
157                    0.70,0.70,0.60,0.60,0.70
158                )
159            }
160
161            /* ---------------------------------------------------------------
162               Rapid tactical innovation & prototyping
163            --------------------------------------------------------------- */
164            RapidTacticalInnovationAndPrototyping => {
165                tracing::trace!("computing ratings for RapidTacticalInnovationAndPrototyping");
166                wc_ratings!(
167                    0.25,0.25,0.25,0.25,0.25,0.65,0.00,0.85,0.25,0.65,
168                    0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,
169                    0.25,0.25,0.25,0.25,0.80,0.25,0.25,0.25,0.70,0.25,
170                    0.25,0.25,0.25,0.25,0.00,0.70,0.60,0.25,0.60,0.25,
171                    0.25,0.25,0.25,0.25,0.25,0.90,0.25,0.25,0.25,0.25,
172                    0.60,0.65,0.25,0.25,0.70,0.25,0.25,0.75,0.75,0.90,
173                    0.70,0.25,0.00,0.00,0.25,0.00,0.00,1.00,0.70,0.00,
174                    0.25,0.25,0.00,0.60,0.25,0.25,0.00,0.00,0.35,0.25,
175                    0.25,0.25,0.70,0.90,0.85,0.85,0.85,0.80,0.80,0.70,
176                    0.25,0.25,0.65,0.30,0.65,0.30,0.30,0.40,0.40,0.30,
177                    0.80,0.30,0.30,0.55,0.45,0.45,0.65,0.60,0.75,0.90,
178                    0.60,0.70,0.80,0.70,0.70
179                )
180            }
181
182            /* ---------------------------------------------------------------
183               Integrates diverse technological systems
184            --------------------------------------------------------------- */
185            IntegratesAndOptimizesDiverseTechnologicalSystems => {
186                tracing::trace!(
187                    "computing ratings for IntegratesAndOptimizesDiverseTechnologicalSystems"
188                );
189                wc_ratings!(
190                    0.25,0.25,0.25,0.25,0.25,0.60,0.00,0.90,0.25,0.50,
191                    0.25,0.25,0.25,0.25,0.25,0.25,0.80,0.25,0.25,0.25,
192                    0.25,0.25,0.25,0.25,0.70,0.25,0.25,0.25,0.60,0.25,
193                    0.25,0.25,0.25,0.25,0.00,0.80,0.70,0.25,0.60,0.25,
194                    0.25,0.25,0.25,0.25,0.25,0.70,0.25,0.25,0.25,0.25,
195                    0.60,0.60,0.25,0.25,0.70,0.25,0.25,0.55,0.70,0.25,
196                    0.60,0.25,0.00,0.00,0.25,0.00,0.00,0.25,0.25,0.00,
197                    0.25,0.25,0.00,0.40,0.25,0.25,0.00,0.00,0.25,0.85,
198                    0.25,0.60,0.70,0.70,0.75,0.75,0.75,0.70,0.75,0.60,
199                    0.80,0.25,0.80,0.30,0.70,0.30,0.30,0.40,0.40,0.30,
200                    0.65,0.30,0.30,0.55,0.45,0.45,0.60,0.55,0.85,0.75,
201                    0.70,0.75,0.60,0.60,0.65
202                )
203            }
204
205            /* ---------------------------------------------------------------
206               Technology adaptation for extreme environments
207            --------------------------------------------------------------- */
208            AdaptsTechnologyForExtremeEnvironments => {
209                tracing::trace!("computing ratings for AdaptsTechnologyForExtremeEnvironments");
210                wc_ratings!(
211                    0.25,0.25,0.25,0.25,0.25,0.75,0.00,0.80,0.25,0.50,
212                    0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,
213                    0.25,0.25,0.25,0.25,0.70,0.25,0.25,0.25,0.85,0.25,
214                    0.25,0.25,0.85,0.25,0.00,0.60,0.70,0.25,0.60,0.25,
215                    0.25,0.25,0.25,0.25,0.25,0.60,0.80,0.25,0.70,0.25,
216                    0.70,0.70,0.25,0.25,0.85,0.25,0.25,0.70,0.70,0.25,
217                    0.75,0.25,0.00,0.00,0.25,0.00,0.00,0.25,0.25,0.00,
218                    0.25,0.25,0.00,0.40,0.25,0.25,0.00,0.00,0.25,0.25,
219                    0.25,0.60,0.90,0.60,0.70,0.75,0.70,0.70,0.70,0.75,
220                    0.25,0.25,0.70,0.30,0.65,0.30,0.30,0.50,0.50,0.30,
221                    0.75,0.30,0.30,0.60,0.50,0.50,0.70,0.60,0.70,0.75,
222                    0.90,0.80,0.75,0.90,0.75
223                )
224            }
225
226            /* ---------------------------------------------------------------
227               Real‑time technological troubleshooting
228            --------------------------------------------------------------- */
229            RealTimeTechnologicalTroubleshooting => {
230                tracing::trace!("computing ratings for RealTimeTechnologicalTroubleshooting");
231                wc_ratings!(
232                    0.25,0.25,0.25,0.25,0.25,0.70,0.00,0.80,0.25,0.50,
233                    0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,
234                    0.25,0.25,0.25,0.25,0.85,0.25,0.25,0.25,0.80,0.25,
235                    0.25,0.25,0.25,0.25,0.00,0.60,0.70,0.25,0.70,0.25,
236                    0.25,0.25,0.25,0.25,0.25,0.75,0.25,0.25,0.25,0.25,
237                    0.80,0.80,0.25,0.25,0.80,0.25,0.25,0.70,0.80,0.80,
238                    0.60,0.30,0.00,0.00,0.25,0.00,0.00,0.25,0.25,0.00,
239                    0.25,0.25,0.00,0.50,0.25,0.25,0.00,0.00,0.25,0.25,
240                    0.25,0.70,0.70,0.75,0.70,0.70,0.70,0.70,0.70,0.70,
241                    0.25,0.25,0.65,0.30,0.60,0.30,0.30,0.50,0.50,0.30,
242                    0.85,0.30,0.30,0.55,0.45,0.45,0.70,0.65,0.70,0.80,
243                    0.70,0.80,0.70,0.80,0.80
244                )
245            }
246
247            /* ---------------------------------------------------------------
248               Strategic technology foresight & positioning
249            --------------------------------------------------------------- */
250            StrategicTechnologyForesightAndPositioning => {
251                tracing::trace!("computing ratings for StrategicTechnologyForesightAndPositioning");
252                wc_ratings!(
253                    0.25,0.25,0.90,0.25,0.25,0.60,0.00,0.85,0.25,0.50,
254                    0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,
255                    0.25,0.25,0.25,0.25,0.75,0.25,0.25,0.25,0.60,0.25,
256                    0.25,0.25,0.25,0.25,0.00,0.70,0.70,0.25,0.60,0.25,
257                    0.25,0.25,0.25,0.25,0.25,0.70,0.25,0.25,0.25,0.25,
258                    0.60,0.60,0.25,0.25,0.75,0.25,0.25,0.65,0.80,0.25,
259                    0.70,0.25,0.00,0.00,0.25,0.00,0.00,0.25,0.25,0.00,
260                    0.25,0.25,0.00,0.50,0.25,0.25,0.00,0.00,0.25,0.25,
261                    0.25,0.25,0.75,0.80,0.75,0.75,0.75,0.75,0.75,0.65,
262                    0.25,0.25,0.85,0.30,0.85,0.30,0.30,0.40,0.40,0.30,
263                    0.75,0.30,0.30,0.55,0.45,0.45,0.70,0.60,0.85,0.90,
264                    0.75,0.85,0.65,0.90,0.65
265                )
266            }
267
268            /* ---------------------------------------------------------------
269               Stealth & signature reduction technologies
270            --------------------------------------------------------------- */
271            ImplementsStealthAndSignatureReductionTechnologies => {
272                tracing::trace!(
273                    "computing ratings for ImplementsStealthAndSignatureReductionTechnologies"
274                );
275                wc_ratings!(
276                    0.25,0.25,0.25,0.25,0.25,0.60,0.00,0.80,0.25,0.50,
277                    0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,0.25,
278                    0.25,0.25,0.25,0.25,0.60,0.25,0.25,0.75,0.60,0.25,
279                    0.25,0.25,0.25,0.25,0.00,0.70,0.75,0.20,0.60,0.25,
280                    0.25,0.25,0.70,0.70,0.60,0.60,0.25,0.25,0.25,0.25,
281                    0.60,0.60,0.25,0.25,0.65,0.25,0.25,0.55,0.75,0.30,
282                    0.60,0.25,0.00,0.00,0.50,0.00,0.00,0.70,0.60,0.85,
283                    0.60,0.70,0.00,0.25,0.25,0.70,0.00,0.00,0.80,0.85,
284                    0.60,0.70,0.70,0.75,0.80,0.70,0.70,0.65,0.70,0.65,
285                    0.25,0.25,0.70,0.30,0.65,0.30,0.30,0.40,0.40,0.30,
286                    0.65,0.30,0.30,0.55,0.45,0.45,0.70,0.60,0.75,0.80,
287                    0.90,0.85,0.70,0.90,0.65
288                )
289            }
290
291            /* ---------------------------------------------------------------
292               Rapidly transfers tech knowledge to allies
293            --------------------------------------------------------------- */
294            EfficientTechnologicalKnowledgeTransfer => {
295                tracing::trace!("computing ratings for EfficientTechnologicalKnowledgeTransfer");
296                wc_ratings!(
297                    0.25,0.25,0.25,0.25,0.25,0.60,0.00,0.75,0.25,0.50,
298                    0.25,0.25,0.25,0.25,0.25,0.80,0.70,0.25,0.25,0.25,
299                    0.25,0.25,0.25,0.25,0.70,0.25,0.25,0.25,0.60,0.25,
300                    0.25,0.25,0.25,0.25,0.00,0.65,0.60,0.25,0.60,0.25,
301                    0.25,0.25,0.25,0.25,0.25,0.60,0.25,0.25,0.25,0.25,
302                    0.60,0.60,0.25,0.25,0.70,0.25,0.25,0.65,0.70,0.25,
303                    0.60,0.25,0.00,0.00,0.25,0.00,0.00,0.25,0.25,0.00,
304                    0.25,0.25,0.00,0.40,0.25,0.25,0.00,0.00,0.25,0.25,
305                    0.25,0.25,0.70,0.60,0.75,0.70,0.70,0.75,0.75,0.70,
306                    0.25,0.90,0.75,0.30,0.70,0.30,0.30,0.50,0.50,0.30,
307                    0.70,0.85,0.85,0.50,0.45,0.45,0.75,0.60,0.75,0.75,
308                    0.75,0.75,0.60,0.75,0.60
309                )
310            }
311        }
312    }
313}