diff options
Diffstat (limited to 'crawl-ref/source/debug.cc')
-rw-r--r-- | crawl-ref/source/debug.cc | 33 |
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; } |