summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/mutation.cc
diff options
context:
space:
mode:
authordolorous <dolorous@c06c8d41-db1a-0410-9941-cceddc491573>2009-07-18 22:45:49 +0000
committerdolorous <dolorous@c06c8d41-db1a-0410-9941-cceddc491573>2009-07-18 22:45:49 +0000
commit25586f037e96b929a63ab34fe451d43b3823efef (patch)
tree1e8eaf7b27fdca74aa0f55a4a10f3729bd3540a7 /crawl-ref/source/mutation.cc
parent77025c5c65c95fce61d342d488b9cb4c9d51d25e (diff)
downloadcrawl-ref-25586f037e96b929a63ab34fe451d43b3823efef.tar.gz
crawl-ref-25586f037e96b929a63ab34fe451d43b3823efef.zip
Ensure the the Helix card only removes bad mutations, and that Zin's
retribution only removes good mutations, by adding a parameter to delete_mutation() to disallow mismatches of random good and bad mutations. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@10287 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/mutation.cc')
-rw-r--r--crawl-ref/source/mutation.cc6
1 files changed, 3 insertions, 3 deletions
diff --git a/crawl-ref/source/mutation.cc b/crawl-ref/source/mutation.cc
index c8561d0878..4d9ea1e480 100644
--- a/crawl-ref/source/mutation.cc
+++ b/crawl-ref/source/mutation.cc
@@ -2142,7 +2142,7 @@ bool mutate(mutation_type which_mutation, bool failMsg,
return (false);
else
return (delete_mutation(RANDOM_MUTATION, failMsg,
- force_mutation, non_fatal));
+ force_mutation, false, non_fatal));
}
}
@@ -2401,7 +2401,7 @@ static bool _delete_single_mutation_level(mutation_type mutat)
bool delete_mutation(mutation_type which_mutation, bool failMsg,
bool force_mutation, bool god_gift,
- bool non_fatal)
+ bool disallow_mismatch, bool non_fatal)
{
ASSERT(!non_fatal || _is_random(which_mutation));
@@ -2470,7 +2470,7 @@ bool delete_mutation(mutation_type which_mutation, bool failMsg,
(which_mutation == RANDOM_GOOD_MUTATION && mdef.bad)
|| (which_mutation == RANDOM_BAD_MUTATION && !mdef.bad);
- if (mismatch && !one_chance_in(10))
+ if (mismatch && (disallow_mismatch || !one_chance_in(10)))
continue;
break;