summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/mutation.cc
diff options
context:
space:
mode:
authordolorous <dolorous@c06c8d41-db1a-0410-9941-cceddc491573>2008-05-01 16:55:17 +0000
committerdolorous <dolorous@c06c8d41-db1a-0410-9941-cceddc491573>2008-05-01 16:55:17 +0000
commit2329a042264d5e1a288dcbcad605030785d1e0ce (patch)
treed85f8fd503805686c553739d7648dc3f1457a25f /crawl-ref/source/mutation.cc
parentc9b07a1a83b5839c45b7eb11bd9d0645e66d9268 (diff)
downloadcrawl-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.cc14
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)