1 /**
2  * @file
3  * @brief Mutant beast-related enums & values, plus small util functions.
4  **/
5 
6 #pragma once
7 
8 #include "god-type.h"
9 
10 #define MUTANT_BEAST_TIER "mutant_beast_tier"
11 #define MUTANT_BEAST_FACETS "mutant_beast_facets"
12 
13 /// types of mutant beast (MONS_MUTANT_BEAST)
14 enum beast_facet
15 {
16     BF_NONE,
17     BF_STING,
18     BF_FIRST = BF_STING,
19     BF_BAT,
20     BF_FIRE,
21     BF_WEIRD,
22     BF_SHOCK,
23     BF_OX,
24     BF_LAST = BF_OX,
25     NUM_BEAST_FACETS,
26 };
27 
28 /// tiers of mutant beast (correspond to HD)
29 enum beast_tier
30 {
31     BT_NONE,
32     BT_LARVAL,
33     BT_FIRST = BT_LARVAL,
34     BT_JUVENILE,
35     BT_MATURE,
36     BT_ELDER,
37     BT_PRIMAL,
38     NUM_BEAST_TIERS,
39 };
40 
41 /// HD of mutant beast tiers
42 const short beast_tiers[] = { 0, 3, 9, 15, 21, 27, };
43 COMPILE_CHECK(ARRAYSZ(beast_tiers) == NUM_BEAST_TIERS);
44 
45 /// names of beast facets
46 const string mutant_beast_facet_names[] = {
47     "buggy", "sting", "bat", "fire", "weird", "shock", "ox",
48 };
49 COMPILE_CHECK(ARRAYSZ(mutant_beast_facet_names) == NUM_BEAST_FACETS);
50 
51 /// names of beast tiers
52 const char* const mutant_beast_tier_names[] = {
53     "buggy", "larval", "juvenile", "mature", "elder", "primal",
54 };
55 COMPILE_CHECK(ARRAYSZ(mutant_beast_tier_names) == NUM_BEAST_TIERS);
56