From 2329a042264d5e1a288dcbcad605030785d1e0ce Mon Sep 17 00:00:00 2001 From: dolorous Date: Thu, 1 May 2008 16:55:17 +0000 Subject: 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 --- crawl-ref/source/mutation.cc | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'crawl-ref/source/mutation.cc') 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) -- cgit v1.2.3-54-g00ecf