summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/debug.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/debug.cc')
-rw-r--r--crawl-ref/source/debug.cc33
1 files changed, 8 insertions, 25 deletions
diff --git a/crawl-ref/source/debug.cc b/crawl-ref/source/debug.cc
index f1097def10..4aa9b6f07e 100644
--- a/crawl-ref/source/debug.cc
+++ b/crawl-ref/source/debug.cc
@@ -278,7 +278,6 @@ void wizard_change_species( void )
// Change permanent mutations, but preserve non-permanent ones.
unsigned char prev_muts[NUM_MUTATIONS];
- you.attribute[ATTR_NUM_DEMONIC_POWERS] = 0;
for (i = 0; i < NUM_MUTATIONS; ++i)
{
if (you.demon_pow[i] > 0)
@@ -326,33 +325,17 @@ void wizard_change_species( void )
case SP_DEMONSPAWN:
{
- int powers = 0;
-
- if (you.experience_level < 4)
- powers = 0;
- else if (you.experience_level < 9)
- powers = 1;
- else if (you.experience_level < 14)
- powers = 2;
- else if (you.experience_level < 19)
- powers = 3;
- else if (you.experience_level < 24)
- powers = 4;
- else if (you.experience_level == 27)
- powers = 5;
+ roll_demonspawn_mutations();
+ for (i = 2; i <= you.experience_level; ++i)
+ {
+ mutation_type m = you.demon_trait[i-2];
- int levels[] = {4, 9, 14, 19, 27};
- int real_level = you.experience_level;
+ if (m == NUM_MUTATIONS)
+ continue;
- for (i = 0; i < powers; ++i)
- {
- // The types of demonspawn mutations you get depends on your
- // experience level at the time of gaining it.
- you.experience_level = levels[i];
- demonspawn();
+ ++you.mutation[m];
+ ++you.demon_pow[m];
}
- you.experience_level = real_level;
-
break;
}