diff options
author | haranp <haranp@c06c8d41-db1a-0410-9941-cceddc491573> | 2009-02-08 23:26:33 +0000 |
---|---|---|
committer | haranp <haranp@c06c8d41-db1a-0410-9941-cceddc491573> | 2009-02-08 23:26:33 +0000 |
commit | b0f60edc94392cb64c055879184b76264b63e817 (patch) | |
tree | 75b9b8d009974ebbd4c365c434c447896b5d5fe8 /crawl-ref/source | |
parent | 228bd3081cfdcc717bc22a7c47348f19a3309c89 (diff) | |
download | crawl-ref-b0f60edc94392cb64c055879184b76264b63e817.tar.gz crawl-ref-b0f60edc94392cb64c055879184b76264b63e817.zip |
Revert r8981, specifically the part which changed how max MP depends
on class and spellcasting (the !oMagic change is still in.)
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@9001 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source')
-rw-r--r-- | crawl-ref/source/newgame.cc | 81 | ||||
-rw-r--r-- | crawl-ref/source/skills2.cc | 23 |
2 files changed, 55 insertions, 49 deletions
diff --git a/crawl-ref/source/newgame.cc b/crawl-ref/source/newgame.cc index 84e155df2d..61894e43cb 100644 --- a/crawl-ref/source/newgame.cc +++ b/crawl-ref/source/newgame.cc @@ -2783,54 +2783,55 @@ static void _jobs_stat_init(job_type which_job) int i = 0; // intelligence mod int d = 0; // dexterity mod int hp = 0; // HP base + int mp = 0; // MP base // Note: Wanderers are correct, they're a challenging class. -- bwr switch (which_job) { - 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; 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; 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; 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_HUNTER: s = 3; i = 3; d = 4; hp = 13; break; - case JOB_WARPER: s = 3; i = 4; d = 3; hp = 12; break; - - case JOB_MONK: s = 2; i = 2; d = 6; hp = 13; break; - case JOB_TRANSMUTER: s = 2; i = 4; d = 4; hp = 12; 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_WANDERER: s = 2; i = 2; d = 2; hp = 11; break; - - case JOB_ARTIFICER: s = 2; i = 3; d = 4; hp = 13; break; - default: s = 0; i = 0; d = 0; hp = 10; break; + 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_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_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_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_HUNTER: s = 3; i = 3; d = 4; hp = 13; mp = 0; break; + case JOB_WARPER: s = 3; i = 4; d = 3; hp = 12; mp = 1; break; + + case JOB_MONK: s = 2; i = 2; d = 6; hp = 13; mp = 0; break; + case JOB_TRANSMUTER: s = 2; i = 4; d = 4; hp = 12; mp = 1; 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_WANDERER: s = 2; i = 2; d = 2; hp = 11; mp = 1; 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; } modify_all_stats( s, i, d ); - set_hp(hp, true); - set_mp(0, true); + set_hp( hp, true ); + set_mp( mp, true ); } void give_basic_mutations(species_type speci) diff --git a/crawl-ref/source/skills2.cc b/crawl-ref/source/skills2.cc index 300b190b84..e33b7643e5 100644 --- a/crawl-ref/source/skills2.cc +++ b/crawl-ref/source/skills2.cc @@ -2152,23 +2152,28 @@ void init_skill_order( void ) int calc_hp(bool real_hp) { int hitp = get_real_hp(!real_hp, false); + you.hp_max = hitp; - deflate_hp(you.hp_max, false); + + deflate_hp( you.hp_max, false ); + return (hitp); -} +} // end calc_hp() int calc_mp(bool real_mp) { - // base_magic_points2 accounts for species - int enp = (you.base_magic_points2 - 5000); + int enp; - // 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); + // base_magic_points2 accounts for species and magic potions + enp = (you.base_magic_points2 - 5000); + int spell_extra = (you.experience_level * you.skills[SK_SPELLCASTING]) / 4; int invoc_extra = (you.experience_level * you.skills[SK_INVOCATIONS]) / 6; - enp += std::max(spell_extra, invoc_extra); + if (spell_extra > invoc_extra) + enp += spell_extra; + else + enp += invoc_extra; you.max_magic_points = stepdown_value( enp, 9, 18, 45, 100 ); @@ -2202,7 +2207,7 @@ int calc_mp(bool real_mp) you.redraw_magic_points = true; return (you.max_magic_points); -} +} // end calc_mp() unsigned int skill_exp_needed(int lev) { |