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
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.
24 static const sacrifice_def sac_data[] =
27 { ABIL_RU_SACRIFICE_PURITY, MUT_NON_MUTATION,
28 "corrupt yourself with",
37 { ABIL_RU_SACRIFICE_WORDS, MUT_NO_READ,
38 "sacrifice your ability to read while threatened",
47 { ABIL_RU_SACRIFICE_DRINK, MUT_NO_DRINK,
48 "sacrifice your ability to drink while threatened",
54 []() { return you.species != SP_MUMMY; },
57 { ABIL_RU_SACRIFICE_ESSENCE, MUT_NON_MUTATION,
58 "corrupt yourself with",
67 { ABIL_RU_SACRIFICE_HEALTH, MUT_NON_MUTATION,
68 "corrupt yourself with",
77 { ABIL_RU_SACRIFICE_STEALTH, MUT_NO_STEALTH,
78 "sacrifice your ability to go unnoticed",
87 { ABIL_RU_SACRIFICE_ARTIFICE, MUT_NO_ARTIFICE,
88 "sacrifice all use of magical tools",
89 "sacrificed evocations",
97 { ABIL_RU_SACRIFICE_LOVE, MUT_NO_LOVE,
98 "sacrifice your ability to be loved",
107 { ABIL_RU_SACRIFICE_COURAGE, MUT_COWARDICE,
108 "sacrifice your courage",
109 "sacrificed courage",
117 { ABIL_RU_SACRIFICE_ARCANA, MUT_NON_MUTATION,
118 "sacrifice all use of",
124 []() { return !_player_sacrificed_arcana(); },
127 { ABIL_RU_SACRIFICE_NIMBLENESS, MUT_NO_DODGING,
128 "sacrifice your Dodging skill",
129 "sacrificed dodging",
137 { ABIL_RU_SACRIFICE_DURABILITY, MUT_NO_ARMOUR,
138 "sacrifice your Armour skill",
144 []() { return you_can_wear(EQ_BODY_ARMOUR) != MB_FALSE; },
147 { ABIL_RU_SACRIFICE_HAND, MUT_MISSING_HAND,
148 "sacrifice one of your ",
157 { ABIL_RU_SACRIFICE_EXPERIENCE, MUT_INEXPERIENCED,
158 "sacrifice your experiences",
159 "sacrificed experience",
164 []() { return you.experience_level > RU_SAC_XP_LEVELS; }
167 { ABIL_RU_SACRIFICE_SKILL, MUT_UNSKILLED,
168 "sacrifice your skill",
177 { ABIL_RU_SACRIFICE_EYE, MUT_MISSING_EYE,
187 { ABIL_RU_SACRIFICE_RESISTANCE, MUT_TEMPERATURE_SENSITIVITY,
188 "sacrifice your resistance to extreme temperatures",
189 "sacrificed resistance",