summaryrefslogtreecommitdiffstats
path: root/crawl-ref
diff options
context:
space:
mode:
authorharanp <haranp@c06c8d41-db1a-0410-9941-cceddc491573>2009-02-08 23:26:33 +0000
committerharanp <haranp@c06c8d41-db1a-0410-9941-cceddc491573>2009-02-08 23:26:33 +0000
commitb0f60edc94392cb64c055879184b76264b63e817 (patch)
tree75b9b8d009974ebbd4c365c434c447896b5d5fe8 /crawl-ref
parent228bd3081cfdcc717bc22a7c47348f19a3309c89 (diff)
downloadcrawl-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')
-rw-r--r--crawl-ref/source/newgame.cc81
-rw-r--r--crawl-ref/source/skills2.cc23
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)
{