diff options
author | dolorous <dolorous@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-05-01 16:55:17 +0000 |
---|---|---|
committer | dolorous <dolorous@c06c8d41-db1a-0410-9941-cceddc491573> | 2008-05-01 16:55:17 +0000 |
commit | 2329a042264d5e1a288dcbcad605030785d1e0ce (patch) | |
tree | d85f8fd503805686c553739d7648dc3f1457a25f /crawl-ref/source/mutation.cc | |
parent | c9b07a1a83b5839c45b7eb11bd9d0645e66d9268 (diff) | |
download | crawl-ref-2329a042264d5e1a288dcbcad605030785d1e0ce.tar.gz crawl-ref-2329a042264d5e1a288dcbcad605030785d1e0ce.zip |
Add a random bad mutation type.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@4793 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/mutation.cc')
-rw-r--r-- | crawl-ref/source/mutation.cc | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/crawl-ref/source/mutation.cc b/crawl-ref/source/mutation.cc index 57469bab00..745452d0c2 100644 --- a/crawl-ref/source/mutation.cc +++ b/crawl-ref/source/mutation.cc @@ -1768,6 +1768,11 @@ bool mutate(mutation_type which_mutation, bool failMsg, if ((mutat = get_random_mutation(true, 500)) == NUM_MUTATIONS) return false; } + else if (which_mutation == RANDOM_BAD_MUTATION) + { + if ((mutat = get_random_mutation(false, 500)) == NUM_MUTATIONS) + return false; + } else if (you.mutation[mutat] >= 3 && mutat != MUT_STRONG && mutat != MUT_CLEVER && mutat != MUT_AGILE && mutat != MUT_WEAK @@ -2207,7 +2212,8 @@ bool delete_mutation(mutation_type which_mutation, if (which_mutation == RANDOM_MUTATION || which_mutation == RANDOM_XOM_MUTATION - || which_mutation == RANDOM_GOOD_MUTATION) + || which_mutation == RANDOM_GOOD_MUTATION + || which_mutation == RANDOM_BAD_MUTATION) { do { @@ -2222,8 +2228,10 @@ bool delete_mutation(mutation_type which_mutation, && mutat != MUT_CLUMSY)) || random2(10) >= mutation_defs[mutat].rarity || you.demon_pow[mutat] >= you.mutation[mutat] - || which_mutation == RANDOM_GOOD_MUTATION - && (mutation_defs[mutat].bad || one_chance_in(10))); + || (which_mutation == RANDOM_GOOD_MUTATION + && (mutation_defs[mutat].bad || one_chance_in(10))) + || (which_mutation == RANDOM_BAD_MUTATION + && (!mutation_defs[mutat].bad || one_chance_in(10)))); } if (you.mutation[mutat] == 0) |