Add two new Ru sacrifices: resistance and eye
[crawl.git] / crawl-ref / source / sacrifice-data.h
1 struct sacrifice_def
2 {
3     ability_type  sacrifice;        // The ability that executes the sacrifice.
4     mutation_type mutation;         // The mutation that will be inflicted.
5     const char*   sacrifice_text;   // Format: "sacrifice your hand"
6                                     // in case of variable sacrifices or sac
7                                     // hand, this will be extended later
8     const char*   milestone_text;   // Format: "sacrificed <foo>"
9                                     // in case of variable sacrifices this will
10                                     // be extended later
11     int           base_piety;       // The piety that will be gained, modified
12                                     // by the skill points in the skill below.
13     skill_type    sacrifice_skill;  // This skill will be eliminated.
14     const char*   sacrifice_vector; // This is used for sacrifices which give
15                                     // multiple mutations. It is a key into
16                                     // you.props, yielding a list of mutations
17                                     // granted by the sacrifice.
18     bool (*valid)();                // Whether the sacrifice is currently an
19                                     // valid choice for Ru to offer. Only
20                                     // checks factors specific to this
21                                     // sacrifice, not general checks.
22 };
23
24 static const sacrifice_def sac_data[] =
25 {
26
27 { ABIL_RU_SACRIFICE_PURITY, MUT_NON_MUTATION,
28   "corrupt yourself with",
29   "sacrificed purity",
30
31   0,
32   SK_NONE,
33   PURITY_SAC_KEY,
34   nullptr,
35 },
36
37 { ABIL_RU_SACRIFICE_WORDS, MUT_NO_READ,
38   "sacrifice your ability to read while threatened",
39   "sacrificed words",
40
41   30,
42   SK_NONE,
43   nullptr,
44   nullptr,
45 },
46
47 { ABIL_RU_SACRIFICE_DRINK, MUT_NO_DRINK,
48   "sacrifice your ability to drink while threatened",
49   "sacrificed drink",
50
51   30,
52   SK_NONE,
53   nullptr,
54   []() { return you.species != SP_MUMMY; },
55 },
56
57 { ABIL_RU_SACRIFICE_ESSENCE, MUT_NON_MUTATION,
58   "corrupt yourself with",
59   "sacrificed essence",
60
61   0,
62   SK_NONE,
63   ESSENCE_SAC_KEY,
64   nullptr,
65 },
66
67 { ABIL_RU_SACRIFICE_HEALTH, MUT_NON_MUTATION,
68   "corrupt yourself with",
69   "sacrificed health",
70
71   20,
72   SK_NONE,
73   HEALTH_SAC_KEY,
74   nullptr,
75 },
76
77 { ABIL_RU_SACRIFICE_STEALTH, MUT_NO_STEALTH,
78   "sacrifice your ability to go unnoticed",
79   "sacrificed stealth",
80
81   15,
82   SK_STEALTH,
83   nullptr,
84   nullptr,
85 },
86
87 { ABIL_RU_SACRIFICE_ARTIFICE, MUT_NO_ARTIFICE,
88   "sacrifice all use of magical tools",
89   "sacrificed evocations",
90
91   70,
92   SK_EVOCATIONS,
93   nullptr,
94   nullptr,
95 },
96
97 { ABIL_RU_SACRIFICE_LOVE, MUT_NO_LOVE,
98   "sacrifice your ability to be loved",
99   "sacrificed love",
100
101   22,
102   SK_NONE,
103   nullptr,
104   nullptr,
105 },
106
107 { ABIL_RU_SACRIFICE_COURAGE, MUT_COWARDICE,
108   "sacrifice your courage",
109   "sacrificed courage",
110
111   25,
112   SK_NONE,
113   nullptr,
114   nullptr,
115 },
116
117 { ABIL_RU_SACRIFICE_ARCANA, MUT_NON_MUTATION,
118   "sacrifice all use of",
119   "sacrificed arcana",
120
121   25,
122   SK_NONE,
123   ARCANA_SAC_KEY,
124   []() { return !_player_sacrificed_arcana(); },
125 },
126
127 { ABIL_RU_SACRIFICE_NIMBLENESS, MUT_NO_DODGING,
128   "sacrifice your Dodging skill",
129   "sacrificed dodging",
130
131   30,
132   SK_DODGING,
133   nullptr,
134   nullptr,
135 },
136
137 { ABIL_RU_SACRIFICE_DURABILITY, MUT_NO_ARMOUR,
138   "sacrifice your Armour skill",
139   "sacrificed armour",
140
141   30,
142   SK_ARMOUR,
143   nullptr,
144   []() { return you_can_wear(EQ_BODY_ARMOUR) != MB_FALSE; },
145 },
146
147 { ABIL_RU_SACRIFICE_HAND, MUT_MISSING_HAND,
148   "sacrifice one of your ",
149   "sacrificed a hand",
150
151   70,
152   SK_SHIELDS,
153   nullptr,
154   nullptr,
155 },
156
157 { ABIL_RU_SACRIFICE_EXPERIENCE, MUT_INEXPERIENCED,
158   "sacrifice your experiences",
159   "sacrificed experience",
160
161   28,
162   SK_NONE,
163   nullptr,
164   []() { return you.experience_level > RU_SAC_XP_LEVELS; }
165 },
166
167 { ABIL_RU_SACRIFICE_SKILL, MUT_UNSKILLED,
168   "sacrifice your skill",
169   "sacrificed skill",
170
171   35,
172   SK_NONE,
173   nullptr,
174   nullptr,
175 },
176
177 { ABIL_RU_SACRIFICE_EYE, MUT_MISSING_EYE,
178   "sacrifice an eye",
179   "sacrificed an eye",
180
181   45,
182   SK_NONE,
183   nullptr,
184   nullptr,
185 },
186
187 { ABIL_RU_SACRIFICE_RESISTANCE, MUT_TEMPERATURE_SENSITIVITY,
188   "sacrifice your resistance to extreme temperatures",
189   "sacrificed resistance",
190
191   70,
192   SK_NONE,
193   nullptr,
194   nullptr,
195 },
196 };