mutations in place.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5753 c06c8d41-db1a-0410-9941-cceddc491573
2U7VFZ3242P22EPRQKCIHFZRRWHHBZGOEEN2WJNMCXV5BEI67NNAC
WN3ZHNL4T7QMQC6JF5DJR6NHLZVOGQVO4OJNEKEM5FZKQ7AVOP4AC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
JJULXW764V5C2HJKZNWQAEWB6QM5YZADD7ZCE35LYTBFEM6PMYCAC
VXSORUQOM2VZA4CAZDC6KPAY373NQIN3UT7CXQXTRCYXO2WM62DAC
RGWUYJO74FDGTH22CYSHBKFDGJ4S76WTLIULKPXA4QT5ZCNOB4LQC
LABXKXWWQY2V4FUDLGVTDYHXINAP6KRHZDHBQ2FE22FFOEIZPL6QC
7YUGK5Q64KG5O7GJGTUBRRLHAHBCJ5YOE23YUPT6UBKUSB67CYAQC
V4C7Y3VML7H7IXW5IZYL4ONSBUYDEU6RSRCDCOAZD7SZ4ZC2ONPAC
ZBPZZ5A7AB2VFZKQ2UJXVDGUK22OCZJCEN2RWTGDGK3VXFCCDKVAC
else
return;
}
// Re-scale skill-points.
for (i = 0; i < NUM_SKILLS; i++)
{
you.skill_points[i] *= species_skills( i, sp );
you.skill_points[i] /= species_skills( i, you.species );
}
you.species = sp;
you.is_undead = get_undead_state(sp);
// 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)
redraw_screen();
case SP_RED_DRACONIAN:
if (you.experience_level >= 14)
perma_mutate(MUT_HEAT_RESISTANCE, 1);
break;
case SP_WHITE_DRACONIAN:
if (you.experience_level >= 14)
perma_mutate(MUT_COLD_RESISTANCE, 1);
break;
case SP_BLACK_DRACONIAN:
if (you.experience_level >= 18)
perma_mutate(MUT_SHOCK_RESISTANCE, 1);
break;
case SP_DEMONSPAWN:
{
int powers;
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;
int levels[] = {4, 9, 14, 19, 27};
int real_level = you.experience_level;
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.experience_level = real_level;
break;
}
default:
break;