df_ls_structure/objects/syndrome/
creature_effect_enums.rs

1use df_ls_syntax_analysis::TokenDeserialize;
2use serde::{Deserialize, Serialize};
3
4// region: Unique single CE_X enums ===============================================================
5#[derive(Serialize, Deserialize, Clone, Debug, TokenDeserialize, PartialEq, Eq)]
6#[token_de(enum_value)]
7pub enum BpEnum {
8    /// Specifies which body parts and tissues are to be affected by the syndrome. You can specify
9    /// by category, by type, or by token, and then specify a specific tissue within that category,
10    /// type or token.
11    ///
12    /// For example, if you wanted to target the lungs of a creature, you would use
13    /// `BP:BY_CATEGORY:LUNG:ALL`. The syndrome would act on all bodyparts within the creature with
14    /// the `CATEGORY` tag `LUNG`, and the `ALL` means it would affect all tissue layers. For another
15    /// example, say you wanted to cause the skin to rot off a creature - you could use
16    /// `BP:BY_CATEGORY:ALL:SKIN`, targeting the `SKIN` tissue on all bodyparts.
17    ///
18    /// This is one of the most powerful and useful aspects of the syndrome system, as it allows you
19    /// to selectively target bodyparts relevant to the contagion, like lungs for coal dust inhalation,
20    /// or the eyes for exposure to an acid gas. Multiple targets can be given in one syndrome by
21    /// placing the `BP` tokens end to end.
22    ///
23    /// This tag is overidden by (and therefore incompatible with) `LOCALIZED`.
24    #[token_de(token = "BP")]
25    Bp,
26}
27impl Default for BpEnum {
28    fn default() -> Self {
29        Self::Bp
30    }
31}
32
33#[derive(Serialize, Deserialize, Clone, Debug, TokenDeserialize, PartialEq, Eq)]
34#[token_de(enum_value)]
35pub enum NameEnum {
36    #[token_de(token = "NAME")]
37    Name,
38}
39impl Default for NameEnum {
40    fn default() -> Self {
41        Self::Name
42    }
43}
44
45#[derive(Serialize, Deserialize, Clone, Debug, TokenDeserialize, PartialEq, Eq)]
46#[token_de(enum_value)]
47pub enum TileEnum {
48    #[token_de(token = "TILE")]
49    Tile,
50}
51impl Default for TileEnum {
52    fn default() -> Self {
53        Self::Tile
54    }
55}
56#[derive(Serialize, Deserialize, Clone, Debug, TokenDeserialize, PartialEq, Eq)]
57#[token_de(enum_value)]
58pub enum FrequencyEnum {
59    /// How many frames to use the normal tile, and how many frames to use the "syndrome" tile for.
60    #[token_de(token = "FREQUENCY")]
61    Frequency,
62}
63impl Default for FrequencyEnum {
64    fn default() -> Self {
65        Self::Frequency
66    }
67}
68
69#[derive(Serialize, Deserialize, Clone, Debug, TokenDeserialize, PartialEq, Eq)]
70#[token_de(enum_value)]
71pub enum SpeedEnum {
72    /// Modifies a creature's in-game speed by a specified percentage; higher numbers are faster.
73    #[token_de(token = "SPEED_PERC")]
74    SpeedPerc,
75    /// Adds to a creature's `[SPEED:XX]` token, with higher numbers being slower.
76    /// Negative numbers are accepted, though will only reduce a creature's speed to zero.
77    #[token_de(token = "SPEED_ADD")]
78    SpeedAdd,
79}
80impl Default for SpeedEnum {
81    fn default() -> Self {
82        Self::SpeedPerc
83    }
84}
85
86#[derive(Serialize, Deserialize, Clone, Debug, TokenDeserialize, PartialEq, Eq)]
87#[token_de(enum_value)]
88pub enum PercEnum {
89    /// Specifies a percentage of the creature's current skill.
90    #[token_de(token = "PERC")]
91    Perc,
92}
93impl Default for PercEnum {
94    fn default() -> Self {
95        Self::Perc
96    }
97}
98
99#[derive(Serialize, Deserialize, Clone, Debug, TokenDeserialize, PartialEq, Eq)]
100#[token_de(enum_value)]
101pub enum PercOnEnum {
102    /// Specifies the probability of the effect being applied on a particular skill roll.
103    #[token_de(token = "PERC_ON")]
104    PercOn,
105}
106impl Default for PercOnEnum {
107    fn default() -> Self {
108        Self::PercOn
109    }
110}
111
112#[derive(Serialize, Deserialize, Clone, Debug, TokenDeserialize, PartialEq, Eq)]
113#[token_de(enum_value)]
114pub enum AppearanceModifierEnum {
115    /// Selects a type of appearance modifier to be altered.
116    #[token_de(token = "APPEARANCE_MODIFIER")]
117    AppearanceModifier,
118}
119impl Default for AppearanceModifierEnum {
120    fn default() -> Self {
121        Self::AppearanceModifier
122    }
123}
124
125#[derive(Serialize, Deserialize, Clone, Debug, TokenDeserialize, PartialEq, Eq)]
126#[token_de(enum_value)]
127pub enum AppModTypeEnum {
128    /// The height of the body part.
129    #[token_de(token = "HEIGHT")]
130    Height,
131    /// The length of the body part.
132    #[token_de(token = "LENGTH")]
133    Length,
134    /// The broadness of the body part.
135    #[token_de(token = "BROADNESS")]
136    Broadness,
137}
138impl Default for AppModTypeEnum {
139    fn default() -> Self {
140        Self::Height
141    }
142}
143
144#[derive(Serialize, Deserialize, Clone, Debug, TokenDeserialize, PartialEq, Eq)]
145#[token_de(enum_value)]
146pub enum MatMultEnum {
147    #[token_de(token = "MAT_MULT")]
148    MatMult,
149}
150impl Default for MatMultEnum {
151    fn default() -> Self {
152        Self::MatMult
153    }
154}
155
156#[derive(Serialize, Deserialize, Clone, Debug, TokenDeserialize, PartialEq, Eq)]
157#[token_de(enum_value)]
158pub enum InteractionEnum {
159    /// References the interaction ID to be used for this special attack.
160    #[token_de(token = "INTERACTION")]
161    Interaction,
162}
163impl Default for InteractionEnum {
164    fn default() -> Self {
165        Self::Interaction
166    }
167}
168
169#[derive(Serialize, Deserialize, Clone, Debug, TokenDeserialize, PartialEq, Eq)]
170#[token_de(enum_value)]
171pub enum MatTokenEnum {
172    /// Specifies the name/ID of a local creature material.
173    #[token_de(token = "MAT_TOKEN")]
174    MatToken,
175}
176impl Default for MatTokenEnum {
177    fn default() -> Self {
178        Self::MatToken
179    }
180}
181
182#[derive(Serialize, Deserialize, Clone, Debug, TokenDeserialize, PartialEq, Eq)]
183#[token_de(enum_value)]
184pub enum ReservedBloodEnum {
185    /// `RESERVED_BLOOD` is a special body material token which can be used to
186    /// specify the `[BLOOD]` material of any creature, regardless of the material's actual ID.
187    #[token_de(token = "RESERVED_BLOOD")]
188    ReservedBlood,
189}
190impl Default for ReservedBloodEnum {
191    fn default() -> Self {
192        Self::ReservedBlood
193    }
194}
195
196#[derive(Serialize, Deserialize, Clone, Debug, TokenDeserialize, PartialEq, Eq)]
197#[token_de(enum_value)]
198pub enum ClassEnum {
199    /// Specifies a creature class (for instance, `GENERAL_POISON`).
200    #[token_de(token = "CLASS")]
201    Class,
202}
203impl Default for ClassEnum {
204    fn default() -> Self {
205        Self::Class
206    }
207}
208
209#[derive(Serialize, Deserialize, Clone, Debug, TokenDeserialize, PartialEq, Eq)]
210#[token_de(enum_value)]
211pub enum EmotionEnum {
212    /// Specifies the emotion.
213    #[token_de(token = "EMOTION")]
214    Emotion,
215}
216impl Default for EmotionEnum {
217    fn default() -> Self {
218        Self::Emotion
219    }
220}
221
222#[derive(Serialize, Deserialize, Clone, Debug, TokenDeserialize, PartialEq, Eq)]
223#[token_de(enum_value)]
224pub enum FacetEnum {
225    /// Specifies a [personality trait/facet](https://dwarffortresswiki.org/index.php/Personality_trait#Facets).
226    #[token_de(token = "FACET")]
227    Facet,
228}
229impl Default for FacetEnum {
230    fn default() -> Self {
231        Self::Facet
232    }
233}
234// endregion ======================================================================================
235
236// region: General CE enums =======================================================================
237#[derive(Serialize, Deserialize, Clone, Debug, TokenDeserialize, PartialEq, Eq)]
238#[token_de(enum_value)]
239pub enum PeriodicTriggerEnum {
240    /// When this token is placed after a syndrome effect, it will prevent that effect from working
241    /// unless within the specified period range.
242    ///
243    /// For example, generated werebeast syndromes have a body transformation effect with
244    /// `[CE:PERIODIC:MOON_PHASE:27:0]`, which makes the transformation active only throughout moon
245    /// phases 27 to 0 (the full moon period). Once the moon phase changes from 0 to 1, the
246    /// transformation will end and remain inactive until phase 27 is reached again (unless of
247    /// course the effect has an `END` time which is reached before this happens. On that note, keep
248    /// in mind that the `START` time of the effect needs to have been reached for activation to
249    /// have become possible).
250    ///
251    /// Only one periodic trigger may currently be specified per effect. Counter triggers can also
252    /// be specified for the same effect, in which case both the periodic trigger and at least one
253    /// counter trigger will need to have its conditions met for the effect to be allowed to work.
254    ///
255    /// `MOON_PHASE` is currently the only valid period type.
256    #[token_de(token = "PERIODIC")]
257    Periodic,
258}
259impl Default for PeriodicTriggerEnum {
260    fn default() -> Self {
261        Self::Periodic
262    }
263}
264#[derive(Serialize, Deserialize, Clone, Debug, TokenDeserialize, PartialEq, Eq)]
265#[token_de(enum_value)]
266pub enum CounterTriggerEnum {
267    /// Creatures in Dwarf Fortress possess internal counters which keep track of their various
268    /// activities and statuses. When this token is placed after a syndrome effect, it will prevent
269    /// the effect from working unless the affected creature has the indicated counter, and its
270    /// value lies within the specified range.
271    ///
272    /// For example, generated vampire syndromes use
273    /// `[CE:COUNTER_TRIGGER:DRINKING_BLOOD:1:NONE:REQUIRED]` with an appearance modifier to make
274    /// the vampire's teeth temporarily lengthen whilst leeching blood.
275    ///
276    /// Note that `NONE` can be used in place of `<max_value>` to indicate that any value above
277    /// `<min_value>` is valid. `NONE` can also be used in place of `<min_value>`, which is
278    /// equivalent to the lowest value attainable by a counter.
279    ///
280    /// Most counters only exist temporarily, so their use as triggers is
281    /// somewhat more restricted than intuition suggests. For example, specifying 0 or `NONE` as the
282    /// `<min_value>` for a `CAVE_ADAPT` trigger wouldn't permit the effect to work when the
283    /// affected creature is outside, since this counter is removed from the unit as soon as its
284    /// value decreases past 1. Similarly, `MILK_COUNTER` is only present for some time after a
285    /// creature is milked.
286    ///
287    /// Multiple counter triggers can be specified per effect, in which case the effect will be
288    /// permitted to work if at least one of the trigger conditions is met. A periodic trigger can
289    /// also be specified for the same effect, in which case both the periodic trigger and at least
290    /// one counter trigger will need to have their conditions met for the effect to work.
291    #[token_de(token = "COUNTER_TRIGGER")]
292    CounterTrigger,
293}
294impl Default for CounterTriggerEnum {
295    fn default() -> Self {
296        Self::CounterTrigger
297    }
298}
299#[derive(Serialize, Deserialize, Clone, Debug, TokenDeserialize, PartialEq, Eq)]
300#[token_de(enum_value)]
301pub enum MoonPhaseEnum {
302    /// The lunar cycle in Dwarf Fortress is composed of 28 segments (each slightly shorter than a
303    /// day in duration), with each segment represented by a value ranging from 0 to 27. These
304    /// correspond to moon phases as follows:
305    /// - 0 = full moon
306    /// - 1-4 = waning gibbous
307    /// - 5-8 = waning half
308    /// - 9-12 = waning crescent
309    /// - 13-14 = new moon
310    /// - 15-18 = waxing crescent
311    /// - 19-22 = waxing half
312    /// - 23-26 = waxing gibbous
313    /// - 27 = full moon
314    #[token_de(token = "MOON_PHASE")]
315    MoonPhase,
316}
317impl Default for MoonPhaseEnum {
318    fn default() -> Self {
319        Self::MoonPhase
320    }
321}
322#[derive(Serialize, Deserialize, Clone, Debug, TokenDeserialize, PartialEq, Eq)]
323#[token_de(enum_value)]
324pub enum CounterTypesEnum {
325    /// For `[ALCOHOL_DEPENDENT]` creatures, this counter increases by 1 each tick, and is reset to
326    /// 0 when the creature drinks alcohol. The following messages are added after "needs alcohol to
327    /// get through the working day" in the creature's description when the counter reaches the
328    /// specified values:
329    /// - 100800 (3 months) = and is starting to work slowly due to its scarcity
330    /// - 201600 (6 months) = and really wants a drink
331    /// - 302400 (9 months) = and has gone without a drink for far, far too long
332    /// - 403200 (1 year) = and can't even remember the last time (s)he had some
333    #[token_de(token = "ALCOHOLIC")]
334    Alcoholic,
335    /// For creatures with the `[CAVE_ADAPT]` token, this counter is created and increases by 1 each
336    /// tick when the creature is in the Dark, and decreases by 10 each tick when Outside.
337    /// The counter is removed if it decreases to 0.
338    /// See [cave adaptation](https://dwarffortresswiki.org/index.php/Cave_adaptation) for more information.
339    /// - 403200 (1 year) = going outside causes irritation
340    /// - 604800 (1.5 years) = going outside causes nausea
341    #[token_de(token = "CAVE_ADAPT")]
342    CaveAdapt,
343    /// When a creature is milked, this counter is created and set to the frequency value specified
344    /// in the creature's `[MILKABLE]` token, and subsequently decreases by 1 each tick until it
345    /// reaches 0, at which point it is immediately removed, making the creature available for
346    /// milking again.
347    #[token_de(token = "MILK_COUNTER")]
348    MilkCounter,
349    /// This counter is created and set to 100800 (3 months' worth of ticks in fortress mode) when a
350    /// creature lays eggs, and thereafter decreases by 1 each tick until it reaches 0, at which
351    /// point it is removed and the creature regains the ability to lay eggs.
352    #[token_de(token = "EGG_SPENT")]
353    EggSpent,
354    /// How angry (and likely to attack) an animal is from being in an overcrowded location. The
355    /// counter is created and set to 200 when the animal is forced to lie on the ground whilst
356    /// sharing a tile with another creature. It subsequently decreases by 1 each tick, but this is
357    /// overcome by the addition of 200 every so often (with a variable delay between each spike) if
358    /// the creature remains grounded. The counter is removed if it decreases to 0.
359    #[token_de(token = "GROUNDED_ANIMAL_ANGER")]
360    GroundedAnimalAnger,
361    /// This counter rises by 1 every tick for creatures with the `[BLOODSUCKER]` token. When it
362    /// rises high enough (generally around 100800; 3 months in fortress mode time), the creature
363    /// will seek an unconscious victim to leech off of. Blood-sucking causes the counter to
364    /// decrease, and will continue until either the victim is dead or the counter reaches 0. Note
365    /// that this counter isn't removed when 0 is reached.
366    ///
367    /// When playing as a bloodsucker in adventure mode, the following bloodthirst indicators are
368    /// displayed when this counter reaches the specified values:
369    /// - 172800 (1 day in adventure mode time) = Thirsty
370    /// - 1209600 (1 week) = Thirsty!
371    /// - 2419200 (2 weeks) = Thirsty!
372    ///
373    /// Various penalties are applied as bloodthirst increases; see the
374    /// [vampire](https://dwarffortresswiki.org/index.php/Vampire) article for more information.
375    #[token_de(token = "TIME_SINCE_SUCKED_BLOOD")]
376    TimeSinceSuckedBlood,
377    /// This appears to be created and set to a fixed value of 20 whilst the creature is sucking
378    /// blood, and begins to decrease by 1 each tick once blood-sucking ceases (as described above)
379    /// until it reaches 0, at which point the counter is removed.
380    #[token_de(token = "DRINKING_BLOOD")]
381    DrinkingBlood,
382    /// How long before the creature will decide to attend another party. The counter is set to the
383    /// tick equivalent of around 3 months when the party being attended ends, and subsequently
384    /// counts down to 0. Redundant as of 0.42.01, since parties no longer occur.
385    #[token_de(token = "PARTIED_OUT")]
386    PartiedOut,
387}
388impl Default for CounterTypesEnum {
389    fn default() -> Self {
390        Self::Alcoholic
391    }
392}
393#[derive(Serialize, Deserialize, Clone, Debug, TokenDeserialize, PartialEq, Eq)]
394#[token_de(enum_value)]
395pub enum RequiredEnum {
396    /// `REQUIRED` implies that the effect won't proceed if the counter exists but doesn't lie within
397    /// the range provided. However, it's actually redunant as `COUNTER_TRIGGER` always checks for
398    /// both of these conditions; replacing it with `NONE` doesn't alter the way the trigger
399    /// functions, though it will fail to work if this slot is left empty instead.
400    #[token_de(token = "REQUIRED")]
401    Required,
402}
403impl Default for RequiredEnum {
404    fn default() -> Self {
405        Self::Required
406    }
407}
408// endregion ======================================================================================
409
410// TODO: append this to the bottom of each enum value when hovering for a description
411/// Creatures have an emotional response to certain circumstances. Different creatures have
412/// differing responses to the same circumstance due to their personalities.
413/// Recent emotion/circumstance pairs are listed in the
414/// [Thoughts and Preferences](https://dwarffortresswiki.org/index.php/Thoughts_and_Preferences)
415/// screen. Different thoughts can have different strengths, depending on time elapsed dwarven
416/// personality. This thought strength is then divided by the "divisor" number given above.
417///
418/// Note that positive thoughts have a negative number, as they _reduce_ stress. Numbers closer
419/// to 1 or -1 have the strongest effect on stress (remember, these are *divisors*).
420#[derive(Serialize, Deserialize, Clone, Debug, TokenDeserialize, PartialEq, Eq)]
421#[token_de(enum_value)]
422pub enum EmotionTypeEnum {
423    /// Emotion: Anything
424    ///
425    /// Divisor: 0
426    #[token_de(token = "ANYTHING")]
427    Anything,
428    /// Emotion: Acceptance
429    ///
430    /// Divisor: -8
431    #[token_de(token = "ACCEPTANCE")]
432    Acceptance,
433    /// Emotion: Adoration
434    ///
435    /// Divisor: -1
436    #[token_de(token = "ADORATION")]
437    Adoration,
438    /// Emotion: Affection
439    ///
440    /// Divisor: -2
441    #[token_de(token = "AFFECTION")]
442    Affection,
443    /// Emotion: Agitation
444    ///
445    /// Divisor: 4
446    #[token_de(token = "AGITATION")]
447    Agitation,
448    /// Emotion: Aggravation
449    ///
450    /// Divisor: 4
451    #[token_de(token = "AGGRAVATION")]
452    Aggravation,
453    /// Emotion: Agony
454    ///
455    /// Divisor: 1
456    #[token_de(token = "AGONY")]
457    Agony,
458    /// Emotion: Alarm
459    ///
460    /// Divisor: 4
461    #[token_de(token = "ALARM")]
462    Alarm,
463    /// Emotion: Alienation
464    ///
465    /// Divisor: 8
466    #[token_de(token = "ALIENATION")]
467    Alienation,
468    /// Emotion: Amazement
469    ///
470    /// Divisor: 0
471    #[token_de(token = "AMAZEMENT")]
472    Amazement,
473    /// Emotion: Ambivalence
474    ///
475    /// Divisor: 0
476    #[token_de(token = "AMBIVALENCE")]
477    Ambivalence,
478    /// Emotion: Amusement
479    ///
480    /// Divisor: -4
481    #[token_de(token = "AMUSEMENT")]
482    Amusement,
483    /// Emotion: Anger
484    ///
485    /// Divisor: 2
486    #[token_de(token = "ANGER")]
487    Anger,
488    /// Emotion: Angst
489    ///
490    /// Divisor: 1
491    #[token_de(token = "ANGST")]
492    Angst,
493    /// Emotion: Anguish
494    ///
495    /// Divisor: 1
496    #[token_de(token = "ANGUISH")]
497    Anguish,
498    /// Emotion: Annoyance
499    ///
500    /// Divisor: 8
501    #[token_de(token = "ANNOYANCE")]
502    Annoyance,
503    /// Emotion: Anxiety
504    ///
505    /// Divisor: 4
506    #[token_de(token = "ANXIETY")]
507    Anxiety,
508    /// Emotion: Apathy
509    ///
510    /// Divisor: 0
511    #[token_de(token = "APATHY")]
512    Apathy,
513    /// Emotion: Arousal
514    ///
515    /// Divisor: -8
516    #[token_de(token = "AROUSAL")]
517    Arousal,
518    /// Emotion: Astonishment
519    ///
520    /// Divisor: 0
521    #[token_de(token = "ASTONISHMENT")]
522    Astonishment,
523    /// Emotion: Aversion
524    ///
525    /// Divisor: 4
526    #[token_de(token = "AVERSION")]
527    Aversion,
528    /// Emotion: Awe
529    ///
530    /// Divisor: 0
531    #[token_de(token = "AWE")]
532    Awe,
533    /// Emotion: Bitterness
534    ///
535    /// Divisor: 2
536    #[token_de(token = "BITTERNESS")]
537    Bitterness,
538    /// Emotion: Bliss
539    ///
540    /// Divisor: -1
541    #[token_de(token = "BLISS")]
542    Bliss,
543    /// Emotion: Boredom
544    ///
545    /// Divisor: 8
546    #[token_de(token = "BOREDOM")]
547    Boredom,
548    /// Emotion: Caring
549    ///
550    /// Divisor: -2
551    #[token_de(token = "CARING")]
552    Caring,
553    /// Emotion: Confusion
554    ///
555    /// Divisor: 8
556    #[token_de(token = "CONFUSION")]
557    Confusion,
558    /// Emotion: Contempt
559    ///
560    /// Divisor: 4
561    #[token_de(token = "CONTEMPT")]
562    Contempt,
563    /// Emotion: Contentment
564    ///
565    /// Divisor: -8
566    #[token_de(token = "CONTENTMENT")]
567    Contentment,
568    /// Emotion: Defeat
569    ///
570    /// Divisor: 2
571    #[token_de(token = "DEFEAT")]
572    Defeat,
573    /// Emotion: Dejection
574    ///
575    /// Divisor: 4
576    #[token_de(token = "DEJECTION")]
577    Dejection,
578    /// Emotion: Delight
579    ///
580    /// Divisor: -1
581    #[token_de(token = "DELIGHT")]
582    Delight,
583    /// Emotion: Despair
584    ///
585    /// Divisor: 1
586    #[token_de(token = "DESPAIR")]
587    Despair,
588    /// Emotion: Disappointment
589    ///
590    /// Divisor: 8
591    #[token_de(token = "DISAPPOINTMENT")]
592    Disappointment,
593    /// Emotion: Disgust
594    ///
595    /// Divisor: 4
596    #[token_de(token = "DISGUST")]
597    Disgust,
598    /// Emotion: Disillusionment
599    ///
600    /// Divisor: 8
601    #[token_de(token = "DISILLUSIONMENT")]
602    Disillusionment,
603    /// Emotion: Dislike
604    ///
605    /// Divisor: 8
606    #[token_de(token = "DISLIKE")]
607    Dislike,
608    /// Emotion: Dismay
609    ///
610    /// Divisor: 2
611    #[token_de(token = "DISMAY")]
612    Dismay,
613    /// Emotion: Displeasure
614    ///
615    /// Divisor: 8
616    #[token_de(token = "DISPLEASURE")]
617    Displeasure,
618    /// Emotion: Distress
619    ///
620    /// Divisor: 2
621    #[token_de(token = "DISTRESS")]
622    Distress,
623    /// Emotion: Doubt
624    ///
625    /// Divisor: 8
626    #[token_de(token = "DOUBT")]
627    Doubt,
628    /// Emotion: Eagerness
629    ///
630    /// Divisor: -4
631    #[token_de(token = "EAGERNESS")]
632    Eagerness,
633    /// Emotion: Elation
634    ///
635    /// Divisor: -2
636    #[token_de(token = "ELATION")]
637    Elation,
638    /// Emotion: Embarrassment
639    ///
640    /// Divisor: 8
641    #[token_de(token = "EMBARRASSMENT")]
642    Embarrassment,
643    /// Emotion: Empathy
644    ///
645    /// Divisor: -2
646    #[token_de(token = "EMPATHY")]
647    Empathy,
648    /// Emotion: Emptiness
649    ///
650    /// Divisor: 4
651    #[token_de(token = "EMPTINESS")]
652    Emptiness,
653    /// Emotion: Enjoyment
654    ///
655    /// Divisor: -8
656    #[token_de(token = "ENJOYMENT")]
657    Enjoyment,
658    /// Emotion: Enthusiasm
659    ///
660    /// Divisor: -8
661    #[token_de(token = "ENTHUSIASM")]
662    Enthusiasm,
663    /// Emotion: Euphoria
664    ///
665    /// Divisor: -1
666    #[token_de(token = "EUPHORIA")]
667    Euphoria,
668    /// Emotion: Exasperation
669    ///
670    /// Divisor: 8
671    #[token_de(token = "EXASPERATION")]
672    Exasperation,
673    /// Emotion: Excitement
674    ///
675    /// Divisor: -2
676    #[token_de(token = "EXCITEMENT")]
677    Excitement,
678    /// Emotion: Exhilaration
679    ///
680    /// Divisor: -2
681    #[token_de(token = "EXHILARATION")]
682    Exhilaration,
683    /// Emotion: Expectancy
684    ///
685    /// Divisor: -8
686    #[token_de(token = "EXPECTANCY")]
687    Expectancy,
688    /// Emotion: Fear
689    ///
690    /// Divisor: 1
691    #[token_de(token = "FEAR")]
692    Fear,
693    /// Emotion: Ferocity
694    ///
695    /// Divisor: 2
696    #[token_de(token = "FEROCITY")]
697    Ferocity,
698    /// Emotion: Fondness
699    ///
700    /// Divisor: -8
701    #[token_de(token = "FONDNESS")]
702    Fondness,
703    /// Emotion: Freedom
704    ///
705    /// Divisor: -4
706    #[token_de(token = "FREEDOM")]
707    Freedom,
708    /// Emotion: Fright
709    ///
710    /// Divisor: 2
711    #[token_de(token = "FRIGHT")]
712    Fright,
713    /// Emotion: Frustration
714    ///
715    /// Divisor: 8
716    #[token_de(token = "FRUSTRATION")]
717    Frustration,
718    /// Emotion: Gaiety
719    ///
720    /// Divisor: -2
721    #[token_de(token = "GAIETY")]
722    Gaiety,
723    /// Emotion: Glee
724    ///
725    /// Divisor: -2
726    #[token_de(token = "GLEE")]
727    Glee,
728    /// Emotion: Gloom
729    ///
730    /// Divisor: 4
731    #[token_de(token = "GLOOM")]
732    Gloom,
733    /// Emotion: Glumness
734    ///
735    /// Divisor: 8
736    #[token_de(token = "GLUMNESS")]
737    Glumness,
738    /// Emotion: Gratitude
739    ///
740    /// Divisor: -4
741    #[token_de(token = "GRATITUDE")]
742    Gratitude,
743    /// Emotion: Grief
744    ///
745    /// Divisor: 2
746    #[token_de(token = "GRIEF")]
747    Grief,
748    /// Emotion: Grim Satisfaction
749    ///
750    /// Divisor: 0
751    #[token_de(token = "GRIM_SATISFACTION")]
752    GrimSatisfaction,
753    /// Emotion: Grouchiness
754    ///
755    /// Divisor: 8
756    #[token_de(token = "GROUCHINESS")]
757    Grouchiness,
758    /// Emotion: Grumpiness
759    ///
760    /// Divisor: 8
761    #[token_de(token = "GRUMPINESS")]
762    Grumpiness,
763    /// Emotion: Guilt
764    ///
765    /// Divisor: 4
766    #[token_de(token = "GUILT")]
767    Guilt,
768    /// Emotion: Happiness
769    ///
770    /// Divisor: -2
771    #[token_de(token = "HAPPINESS")]
772    Happiness,
773    /// Emotion: Hatred
774    ///
775    /// Divisor: 2
776    #[token_de(token = "HATRED")]
777    Hatred,
778    /// Emotion: Hope
779    ///
780    /// Divisor: -2
781    #[token_de(token = "HOPE")]
782    Hope,
783    /// Emotion: Hopelessness
784    ///
785    /// Divisor: 2
786    #[token_de(token = "HOPELESSNESS")]
787    Hopelessness,
788    /// Emotion: Horror
789    ///
790    /// Divisor: 1
791    #[token_de(token = "HORROR")]
792    Horror,
793    /// Emotion: Humiliation
794    ///
795    /// Divisor: 4
796    #[token_de(token = "HUMILIATION")]
797    Humiliation,
798    /// Emotion: Insult
799    ///
800    /// Divisor: 4
801    #[token_de(token = "INSULT")]
802    Insult,
803    /// Emotion: Interest
804    ///
805    /// Divisor: -8
806    #[token_de(token = "INTEREST")]
807    Interest,
808    /// Emotion: Irritation
809    ///
810    /// Divisor: 8
811    #[token_de(token = "IRRITATION")]
812    Irritation,
813    /// Emotion: Isolation
814    ///
815    /// Divisor: 4
816    #[token_de(token = "ISOLATION")]
817    Isolation,
818    /// Emotion: Jolliness
819    ///
820    /// Divisor: -4
821    #[token_de(token = "JOLLINESS")]
822    Jolliness,
823    /// Emotion: Joviality
824    ///
825    /// Divisor: -2
826    #[token_de(token = "JOVIALITY")]
827    Joviality,
828    /// Emotion: Joy
829    ///
830    /// Divisor: -1
831    #[token_de(token = "JOY")]
832    Joy,
833    /// Emotion: Jubilation
834    ///
835    /// Divisor: -1
836    #[token_de(token = "JUBILATION")]
837    Jubilation,
838    /// Emotion: Loathing
839    ///
840    /// Divisor: 2
841    #[token_de(token = "LOATHING")]
842    Loathing,
843    /// Emotion: Loneliness
844    ///
845    /// Divisor: 4
846    #[token_de(token = "LONELINESS")]
847    Loneliness,
848    /// Emotion: Love
849    ///
850    /// Divisor: -1
851    #[token_de(token = "LOVE")]
852    Love,
853    /// Emotion: Lust
854    ///
855    /// Divisor: -8
856    #[token_de(token = "LUST")]
857    Lust,
858    /// Emotion: Misery
859    ///
860    /// Divisor: 1
861    #[token_de(token = "MISERY")]
862    Misery,
863    /// Emotion: Mortification
864    ///
865    /// Divisor: 2
866    #[token_de(token = "MORTIFICATION")]
867    Mortification,
868    /// Emotion: Nervousness
869    ///
870    /// Divisor: 8
871    #[token_de(token = "NERVOUSNESS")]
872    Nervousness,
873    /// Emotion: Nostalgia
874    ///
875    /// Divisor: -8
876    #[token_de(token = "NOSTALGIA")]
877    Nostalgia,
878    /// Emotion: Optimism
879    ///
880    /// Divisor: -4
881    #[token_de(token = "OPTIMISM")]
882    Optimism,
883    /// Emotion: Outrage
884    ///
885    /// Divisor: 2
886    #[token_de(token = "OUTRAGE")]
887    Outrage,
888    /// Emotion: Panic
889    ///
890    /// Divisor: 1
891    #[token_de(token = "PANIC")]
892    Panic,
893    /// Emotion: Patience
894    ///
895    /// Divisor: -8
896    #[token_de(token = "PATIENCE")]
897    Patience,
898    /// Emotion: Passion
899    ///
900    /// Divisor: -2
901    #[token_de(token = "PASSION")]
902    Passion,
903    /// Emotion: Pessimism
904    ///
905    /// Divisor: 8
906    #[token_de(token = "PESSIMISM")]
907    Pessimism,
908    /// Emotion: Pleasure
909    ///
910    /// Divisor: -4
911    #[token_de(token = "PLEASURE")]
912    Pleasure,
913    /// Emotion: Pride
914    ///
915    /// Divisor: -4
916    #[token_de(token = "PRIDE")]
917    Pride,
918    /// Emotion: Rage
919    ///
920    /// Divisor: 1
921    #[token_de(token = "RAGE")]
922    Rage,
923    /// Emotion: Rapture
924    ///
925    /// Divisor: -1
926    #[token_de(token = "RAPTURE")]
927    Rapture,
928    /// Emotion: Rejection
929    ///
930    /// Divisor: 4
931    #[token_de(token = "REJECTION")]
932    Rejection,
933    /// Emotion: Relief
934    ///
935    /// Divisor: -2
936    #[token_de(token = "RELIEF")]
937    Relief,
938    /// Emotion: Regret
939    ///
940    /// Divisor: 8
941    #[token_de(token = "REGRET")]
942    Regret,
943    /// Emotion: Remorse
944    ///
945    /// Divisor: 4
946    #[token_de(token = "REMORSE")]
947    Remorse,
948    /// Emotion: Repentance
949    ///
950    /// Divisor: -2
951    #[token_de(token = "REPENTANCE")]
952    Repentance,
953    /// Emotion: Resentment
954    ///
955    /// Divisor: 8
956    #[token_de(token = "RESENTMENT")]
957    Resentment,
958    /// Emotion: Righteous Indignation
959    ///
960    /// Divisor: 8
961    #[token_de(token = "RIGHTEOUS_INDIGNATION")]
962    RighteousIndignation,
963    /// Emotion: Sadness
964    ///
965    /// Divisor: 4
966    #[token_de(token = "SADNESS")]
967    Sadness,
968    /// Emotion: Satisfaction
969    ///
970    /// Divisor: -8
971    #[token_de(token = "SATISFACTION")]
972    Satisfaction,
973    /// Emotion: Self Pity
974    ///
975    /// Divisor: 8
976    #[token_de(token = "SELF_PITY")]
977    SelfPity,
978    /// Emotion: Servile
979    ///
980    /// Divisor: 0
981    #[token_de(token = "SERVILE")]
982    Servile,
983    /// Emotion: Shaken
984    ///
985    /// Divisor: 1
986    #[token_de(token = "SHAKEN")]
987    Shaken,
988    /// Emotion: Shame
989    ///
990    /// Divisor: 4
991    #[token_de(token = "SHAME")]
992    Shame,
993    /// Emotion: Shock
994    ///
995    /// Divisor: 1
996    #[token_de(token = "SHOCK")]
997    Shock,
998    /// Emotion: Suspicion
999    ///
1000    /// Divisor: 8
1001    #[token_de(token = "SUSPICION")]
1002    Suspicion,
1003    /// Emotion: Sympathy
1004    ///
1005    /// Divisor: -8
1006    #[token_de(token = "SYMPATHY")]
1007    Sympathy,
1008    /// Emotion: Tenderness
1009    ///
1010    /// Divisor: -2
1011    #[token_de(token = "TENDERNESS")]
1012    Tenderness,
1013    /// Emotion: Terror
1014    ///
1015    /// Divisor: 1
1016    #[token_de(token = "TERROR")]
1017    Terror,
1018    /// Emotion: Thrill
1019    ///
1020    /// Divisor: -2
1021    #[token_de(token = "THRILL")]
1022    Thrill,
1023    /// Emotion: Triumph
1024    ///
1025    /// Divisor: -2
1026    #[token_de(token = "TRIUMPH")]
1027    Triumph,
1028    /// Emotion: Uneasiness
1029    ///
1030    /// Divisor: 8
1031    #[token_de(token = "UNEASINESS")]
1032    Uneasiness,
1033    /// Emotion: Unhappiness
1034    ///
1035    /// Divisor: 4
1036    #[token_de(token = "UNHAPPINESS")]
1037    Unhappiness,
1038    /// Emotion: Vengefulness
1039    ///
1040    /// Divisor: 4
1041    #[token_de(token = "VENGEFULNESS")]
1042    Vengefulness,
1043    /// Emotion: Wonder
1044    ///
1045    /// Divisor: -8
1046    #[token_de(token = "WONDER")]
1047    Wonder,
1048    /// Emotion: Worry
1049    ///
1050    /// Divisor: 8
1051    #[token_de(token = "WORRY")]
1052    Worry,
1053    /// Emotion: Wrath
1054    ///
1055    /// Divisor: 1
1056    #[token_de(token = "WRATH")]
1057    Wrath,
1058    /// Emotion: Zeal
1059    ///
1060    /// Divisor: -4
1061    #[token_de(token = "ZEAL")]
1062    Zeal,
1063    /// Emotion: Restless
1064    ///
1065    /// Divisor: 8
1066    #[token_de(token = "RESTLESS")]
1067    Restless,
1068    /// Emotion: Admiration
1069    ///
1070    /// Divisor: -8
1071    #[token_de(token = "ADMIRATION")]
1072    Admiration,
1073}
1074impl Default for EmotionTypeEnum {
1075    fn default() -> Self {
1076        Self::Anything
1077    }
1078}