git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@10277 c06c8d41-db1a-0410-9941-cceddc491573
PUO3U5MM6BGXC7BO4PKI77KWEOAWOFF3ZYSVDZJBG2XO7JT3II3AC
TJ544OJG4CFFMGMAQ2B7UJT432EIBUV5HOHDAQ7GMKZZKSDBFXZQC
5WVUTEZLEZEML54CKPR6GACQBYY3EMVNXMLJOREN6SSEUZGC47AQC
NVD2HSEW2ONWNYDDCTOMZZOUP6NG4DCXI4LNYYIY4BQEBDMJQK5AC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
WHY6LRRJ5T2NSBE3IUCR4X3TOAH7TTK5NPUPUIFT7TPNJ6J4HBDAC
JW2KRJHES33W7UTWZ6NDO4TLMK4EFU4HKZXBWR2UJOMPCCOTR4CQC
GE5BVIRQVT4PARCIODIUK5UXW4AYLFR55UCA4J2DIJU4AMYWQIZAC
WXSNNK2RXP3DQFAEQGQUZJHFWXJC7ZKG2WURZGL566UDM4YXFSWQC
UXYQEI6GLKABRWITOJVAFK5QETIMVRRBJO3DCHFUAC5A6YTVI64QC
QUFPPRIIRXHUFEDH3EFES7CSHTA7GG2DAXTRHUAUQBYMSWK4BP6AC
S34LKQDIQJLIWVIPASOJBBZ6ZCXDHP5KPS7TRBZJSCDRVNCLK6UAC
}
bool jiyva_remove_bad_mutations()
{
if (!how_mutated())
{
mpr("You have no bad mutations to be cured!");
return (false);
}
// delete_mutation(RANDOM_BAD_MUTATION) defaults to removing a
// random mutation if the player has no bad mutations, so any newly
// added bad mutations need to be included here.
const mutation_type bad[] = {
MUT_HERBIVOROUS, MUT_CARNIVOROUS, MUT_FRAIL, MUT_SLOW_HEALING,
MUT_FAST_METABOLISM, MUT_WEAK, MUT_DOPEY, MUT_CLUMSY, MUT_DEFORMED,
MUT_TELEPORT, MUT_SCREAM, MUT_BERSERK, MUT_BLURRY_VISION,
MUT_LOW_MAGIC, MUT_DETERIORATION
};
bool done = false;
for (int tries = 0; !done && tries < 100; tries++)
{
mutation_type mutat = RANDOM_ELEMENT(bad);
if (you.mutation[mutat] > 0)
done = delete_mutation(mutat);
}
if (!done)
{
canned_msg(MSG_NOTHING_HAPPENS);
return (false);
}
mpr("You feel cleansed.");
return (true);
case ABIL_JIYVA_BAD_MUT_REMOVE:
{
// Removes a bad mutation from the player.
// delete_mutation(RANDOM_BAD_MUTATION) defaults to removing
// a random mutation if the player has no bad mutations
// so any newly added bad mutations need to be included here.
const mutation_type bad[] = {
MUT_HERBIVOROUS, MUT_CARNIVOROUS,
MUT_FRAIL, MUT_SLOW_HEALING,
MUT_FAST_METABOLISM, MUT_WEAK, MUT_DOPEY,
MUT_CLUMSY, MUT_DEFORMED, MUT_TELEPORT,
MUT_SCREAM, MUT_BERSERK, MUT_BLURRY_VISION,
MUT_LOW_MAGIC, MUT_DETERIORATION
};
if (!how_mutated())
{
mpr("You have no mutations to remove.");
return (false);
}
bool done = false;
for (int tries = 0; !done && tries < 100; tries++)
{
mutation_type mutat = RANDOM_ELEMENT(bad);
if (you.mutation[mutat] > 0)
done = delete_mutation(mutat);
}
if (done)
{
mpr("You feel cleansed.");
case ABIL_JIYVA_CURE_BAD_MUTATIONS:
if (jiyva_remove_bad_mutations())