diff options
author | Stefan O'Rear <stefanor@cox.net> | 2009-12-30 13:55:22 -0800 |
---|---|---|
committer | Stefan O'Rear <stefanor@cox.net> | 2009-12-30 13:55:39 -0800 |
commit | 2bcfb277b46cdad617064a14cf0a85da61010892 (patch) | |
tree | 5585512be108f7d60daf10daa0bb8024be949889 | |
parent | a45301cf5c154ede35f21cfd69aec7cf3e415b2e (diff) | |
download | crawl-ref-2bcfb277b46cdad617064a14cf0a85da61010892.tar.gz crawl-ref-2bcfb277b46cdad617064a14cf0a85da61010892.zip |
Don't give DS multiple breath weapons, they overlap and devalue each other (Xiberia)
-rw-r--r-- | crawl-ref/source/mutation.cc | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/crawl-ref/source/mutation.cc b/crawl-ref/source/mutation.cc index b7934cca2a..241fee02be 100644 --- a/crawl-ref/source/mutation.cc +++ b/crawl-ref/source/mutation.cc @@ -2853,6 +2853,7 @@ try_again: int slow_dig = 0; int regen = 0; int slots_lost = 0; + int breath_weapons = 0; std::set<const facet_def *> facets_used; @@ -2887,6 +2888,10 @@ try_again: if (m == MUT_REGENERATION) regen = 1; + if (m == MUT_SPIT_POISON || m == MUT_BREATHE_POISON + || m == MUT_BREATHE_FLAMES) + breath_weapons++; + if (m == MUT_CLAWS && i == 2 || m == MUT_HORNS && i == 0) ++slots_lost; } @@ -2904,6 +2909,9 @@ try_again: if (slow_dig && regen) goto try_again; + if (breath_weapons > 1) + goto try_again; + return ret; } |