git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1752 c06c8d41-db1a-0410-9941-cceddc491573
CMNLYUECIMEZSOYG4KOSINOPER5OM7PPCGIHCM7LQVWEO77XFUYQC
X6JLXMSRNWRGP2PVQYX6Z4OUZLDSSQ2VL3EQQM5Q427MXBMRILEQC
KFULGQQOHWUTXOM3BXCCYPGGVGGY4Z6265XUFRCBPNLTZAEHJZSQC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
ACKNLTFL2RI3PMRWLNRVLRWGQAMLRFKNGNS5LED6NFE5GVGFIHFAC
X2FMEN4E345XD26Z2X7JMJ7VGHOGCGIELMHQRE2ITLVNQACP3NOQC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
43ZTEB57FU7KE5EVMYWZONNVJBZCGF3JEAJZIY25LC4LGE65PG5QC
MOT3YZFRY3JG2MH3GN2VD6IY3IJSAXJUXMXS222TXWKRFCENOCDQC
RB3ZDZXUZ3KVU5C4MFWTQB4J3PCQ5IQS4UVUBRS3TLSPFKBWNFDAC
PGTE3JC4J5U536IJTCJFXTUOSRE73JXZJINWAGCANOQOCGC7J6AAC
bool mutate(int which_mutation, bool failMsg, bool force_mutation,
static bool accept_mutation( mutation_type mutat )
{
int limit = 3;
if ( mutat == MUT_STRONG || mutat == MUT_CLEVER ||
mutat == MUT_AGILE || mutat == MUT_WEAK ||
mutat == MUT_DOPEY || mutat == MUT_CLUMSY )
limit = 14;
if ( you.mutation[mutat] >= limit )
return false;
const int rarity = mutation_rarity[mutat] + you.demon_pow[mutat];
// low rarity means unlikely to choose it
return (rarity > random2(10));
}
bool mutate(mutation_type which_mutation, bool failMsg, bool force_mutation,
while ((you.mutation[mutat] >= 3
&& (mutat != MUT_STRONG && mutat != MUT_CLEVER
&& mutat != MUT_AGILE) && (mutat != MUT_WEAK
&& mutat != MUT_DOPEY
&& mutat != MUT_CLUMSY))
|| you.mutation[mutat] > 13
|| random2(10) >= mutation_rarity[mutat] + you.demon_pow[mutat]);
while ((you.mutation[mutat] >= 3
&& (mutat != MUT_STRONG && mutat != MUT_CLEVER
&& mutat != MUT_AGILE) && (mutat != MUT_WEAK
&& mutat != MUT_DOPEY
&& mutat != MUT_CLUMSY))
|| you.mutation[mutat] > 13
|| random2(10) >= mutation_rarity[mutat] + you.demon_pow[mutat]);
while ( !accept_mutation(mutat) );
else if (you.mutation[mutat] >= 3
&& (mutat != MUT_STRONG && mutat != MUT_CLEVER
&& mutat != MUT_AGILE)
&& (mutat != MUT_WEAK && mutat != MUT_DOPEY
&& mutat != MUT_CLUMSY))
else if (you.mutation[mutat] >= 3 &&
mutat != MUT_STRONG && mutat != MUT_CLEVER &&
mutat != MUT_AGILE && mutat != MUT_WEAK &&
mutat != MUT_DOPEY && mutat != MUT_CLUMSY)