diff options
author | dshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573> | 2007-10-28 18:46:28 +0000 |
---|---|---|
committer | dshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573> | 2007-10-28 18:46:28 +0000 |
commit | e0f370bd7ac3e1f97c72af235f24b8f65a7d02df (patch) | |
tree | fb2e9660cb44c2059916b5a4b7b671d1b5718326 /crawl-ref | |
parent | fe84ffe6b34c1ccc69e4ab4334d63c893d231f3a (diff) | |
download | crawl-ref-e0f370bd7ac3e1f97c72af235f24b8f65a7d02df.tar.gz crawl-ref-e0f370bd7ac3e1f97c72af235f24b8f65a7d02df.zip |
Transform fixes for trunk.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2644 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref')
-rw-r--r-- | crawl-ref/source/skills2.cc | 31 | ||||
-rw-r--r-- | crawl-ref/source/transfor.cc | 4 |
2 files changed, 19 insertions, 16 deletions
diff --git a/crawl-ref/source/skills2.cc b/crawl-ref/source/skills2.cc index 6cff23559f..79ea20dd57 100644 --- a/crawl-ref/source/skills2.cc +++ b/crawl-ref/source/skills2.cc @@ -2184,21 +2184,24 @@ int calc_hp(bool real_hp) hitp /= 10; } - // some transformations give you extra hp - switch (you.attribute[ATTR_TRANSFORMATION] && !real_hp) + if (!real_hp) { - case TRAN_STATUE: - hitp *= 15; - hitp /= 10; - break; - case TRAN_ICE_BEAST: - hitp *= 12; - hitp /= 10; - break; - case TRAN_DRAGON: - hitp *= 16; - hitp /= 10; - break; + // some transformations give you extra hp + switch (you.attribute[ATTR_TRANSFORMATION]) + { + case TRAN_STATUE: + hitp *= 15; + hitp /= 10; + break; + case TRAN_ICE_BEAST: + hitp *= 12; + hitp /= 10; + break; + case TRAN_DRAGON: + hitp *= 16; + hitp /= 10; + break; + } } // frail and robust mutations diff --git a/crawl-ref/source/transfor.cc b/crawl-ref/source/transfor.cc index f2a495fef1..8bcf271a64 100644 --- a/crawl-ref/source/transfor.cc +++ b/crawl-ref/source/transfor.cc @@ -584,8 +584,7 @@ void untransform(void) if (you.species == SP_NAGA || you.species == SP_CENTAUR) remove_one_equip(EQ_BOOTS); - calc_hp(); - if (hp_downscale != 10) + if (hp_downscale != 10 && you.hp != you.hp_max) { you.hp = you.hp * 10 / hp_downscale; if (you.hp < 1) @@ -593,6 +592,7 @@ void untransform(void) else if (you.hp > you.hp_max) you.hp = you.hp_max; } + calc_hp(); } // end untransform() // XXX: This whole system is a mess as it still relies on special |