for MP; there is never any max-MP gain. Classes no longer influence max MP. Instead, you get an extra MP point for each level of Spellcasting between 1 and 5. (This might be too good.) Invocations does not get this boost.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@8981 c06c8d41-db1a-0410-9941-cceddc491573
CCVMHSW2XB6RY3B6QRISMTF36QZ5ZA2VW2IFO7EBFUL4EKJ6HWDQC
UXBJL5XV6KLLXA64ADYZRRBHZ7Q3NH6PWVD7HCJX25PP6KMLI7KAC
LPWMHR7OOSSG7BGKV5G6OC72IR3ZYOW3OK62NTO7XTH4OUHYPMQAC
3JLXUHLLGWTSJEGNAUUKFR7HWYDPAOR4WTJKYP5TFGMGQ3GDOU6AC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
CFWPAA7X7JQBNHFFEY7FJUZZ56YIQXGXEQ7EEVZMJ65YCPNO2L5AC
3ZWALZFSTSIVYXY4BAY6ANGINTDACZC6RSSJTEMQSTSUIE66YOBQC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
WMFU65IAJ3LX2YSFXXRS7ZFNDCZYQC3ZQ3QDHHK3DU3UMLJMAP4QC
YDOBAUWITD37IXWXD6EEIOJOYRU7VV7KAXLSCYPX7GGIIRGYYKAAC
Q3DNEB5OOJ34P5ML4CMK3L6SCP7RLW7DDOZEG24KZBX3C7BJRQDAC
DTO3EUKWHZ5RJNGNCFYXSOVTIPVXPP637F2W7WFGYKJ7JK7VNKNQC
VMNTPR5F5RT3SQL6KTWBOTRC6JC3VO5622CZJWCG2BXTN56IWV7QC
MFONX2CQ4V7HA5NSD6P5NDDBXYDSKIOCYUKRZXJ4ZER2OKJWT2HQC
JK3HFJG76OOQHJMXJUSZRTR5CX5ZMS52LRVBLOR7E2NBI6PRSHHAC
4FQAKUKUO6PCAZ3N4HUR5XL6E4VA5UQUZ3AEDGRBLVY7W2LMWI7QC
3KAINFIXO7WNWGUGZB43EUNFRS2ZPBLQZDTY456QACMRHYIJ7WDAC
// base_magic_points2 accounts for species and magic potions
enp = (you.base_magic_points2 - 5000);
// You get 1 bonus MP for each of the first five levels of Spellcasting.
int spell_extra = (you.experience_level * you.skills[SK_SPELLCASTING]) / 4
+ std::min<int>(you.skills[SK_SPELLCASTING], 5);
if (spell_extra > invoc_extra)
enp += spell_extra;
else
enp += invoc_extra;
enp += std::max(spell_extra, invoc_extra);
case JOB_FIGHTER: s = 7; i = 0; d = 3; hp = 15; mp = 0; break;
case JOB_BERSERKER: s = 7; i = -1; d = 4; hp = 15; mp = 0; break;
case JOB_GLADIATOR: s = 6; i = 0; d = 4; hp = 14; mp = 0; break;
case JOB_PALADIN: s = 6; i = 2; d = 2; hp = 14; mp = 0; break;
case JOB_FIGHTER: s = 7; i = 0; d = 3; hp = 15; break;
case JOB_BERSERKER: s = 7; i = -1; d = 4; hp = 15; break;
case JOB_GLADIATOR: s = 6; i = 0; d = 4; hp = 14; break;
case JOB_PALADIN: s = 6; i = 2; d = 2; hp = 14; break;
case JOB_CRUSADER: s = 4; i = 3; d = 3; hp = 13; mp = 1; break;
case JOB_DEATH_KNIGHT: s = 4; i = 3; d = 3; hp = 13; mp = 1; break;
case JOB_CHAOS_KNIGHT: s = 4; i = 3; d = 3; hp = 13; mp = 1; break;
case JOB_CRUSADER: s = 4; i = 3; d = 3; hp = 13; break;
case JOB_DEATH_KNIGHT: s = 4; i = 3; d = 3; hp = 13; break;
case JOB_CHAOS_KNIGHT: s = 4; i = 3; d = 3; hp = 13; break;
case JOB_REAVER: s = 4; i = 4; d = 2; hp = 13; mp = 1; break;
case JOB_HEALER: s = 4; i = 4; d = 2; hp = 13; mp = 1; break;
case JOB_PRIEST: s = 4; i = 4; d = 2; hp = 12; mp = 1; break;
case JOB_REAVER: s = 4; i = 4; d = 2; hp = 13; break;
case JOB_HEALER: s = 4; i = 4; d = 2; hp = 13; break;
case JOB_PRIEST: s = 4; i = 4; d = 2; hp = 12; break;
case JOB_ASSASSIN: s = 2; i = 2; d = 6; hp = 12; mp = 0; break;
case JOB_THIEF: s = 3; i = 2; d = 5; hp = 13; mp = 0; break;
case JOB_STALKER: s = 2; i = 3; d = 5; hp = 12; mp = 1; break;
case JOB_ASSASSIN: s = 2; i = 2; d = 6; hp = 12; break;
case JOB_THIEF: s = 3; i = 2; d = 5; hp = 13; break;
case JOB_STALKER: s = 2; i = 3; d = 5; hp = 12; break;
case JOB_WIZARD: s = -1; i = 8; d = 3; hp = 8; mp = 5; break;
case JOB_CONJURER: s = 0; i = 6; d = 4; hp = 10; mp = 3; break;
case JOB_ENCHANTER: s = 0; i = 6; d = 4; hp = 10; mp = 3; break;
case JOB_FIRE_ELEMENTALIST: s = 0; i = 6; d = 4; hp = 10; mp = 3; break;
case JOB_ICE_ELEMENTALIST: s = 0; i = 6; d = 4; hp = 10; mp = 3; break;
case JOB_AIR_ELEMENTALIST: s = 0; i = 6; d = 4; hp = 10; mp = 3; break;
case JOB_EARTH_ELEMENTALIST:s = 0; i = 6; d = 4; hp = 10; mp = 3; break;
case JOB_SUMMONER: s = 0; i = 6; d = 4; hp = 10; mp = 3; break;
case JOB_VENOM_MAGE: s = 0; i = 6; d = 4; hp = 10; mp = 3; break;
case JOB_NECROMANCER: s = 0; i = 6; d = 4; hp = 10; mp = 3; break;
case JOB_WIZARD: s = -1; i = 8; d = 3; hp = 8; break;
case JOB_CONJURER: s = 0; i = 6; d = 4; hp = 10; break;
case JOB_ENCHANTER: s = 0; i = 6; d = 4; hp = 10; break;
case JOB_FIRE_ELEMENTALIST: s = 0; i = 6; d = 4; hp = 10; break;
case JOB_ICE_ELEMENTALIST: s = 0; i = 6; d = 4; hp = 10; break;
case JOB_AIR_ELEMENTALIST: s = 0; i = 6; d = 4; hp = 10; break;
case JOB_EARTH_ELEMENTALIST:s = 0; i = 6; d = 4; hp = 10; break;
case JOB_SUMMONER: s = 0; i = 6; d = 4; hp = 10; break;
case JOB_VENOM_MAGE: s = 0; i = 6; d = 4; hp = 10; break;
case JOB_NECROMANCER: s = 0; i = 6; d = 4; hp = 10; break;
case JOB_ARTIFICER: s = 2; i = 3; d = 4; hp = 13; mp = 0; break;
default: s = 0; i = 0; d = 0; hp = 10; mp = 0; break;
case JOB_ARTIFICER: s = 2; i = 3; d = 4; hp = 13; break;
default: s = 0; i = 0; d = 0; hp = 10; break;
// Restore all MP
you.magic_points = you.max_magic_points;
// Sometimes boost max
if (one_chance_in(3))
{
mpr("You feel extremely magical!");
inc_mp(1, true);
}
else
{
mpr("You feel magical!");
}
inc_mp((10 + random2avg(28, 3)), false);
mpr("Magic courses through your body.");