summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crawl-ref/source/mutation.cc8
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;
}