summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicholas Feinberg <pleasingfung@gmail.com>2014-07-24 23:25:21 -0700
committerNicholas Feinberg <pleasingfung@gmail.com>2014-07-24 23:31:57 -0700
commitcc8d6ef1a9a08f1e3ddb6d5f29ab5323a9f79d0d (patch)
tree10d9e7b867c6432191ce7fef90cd756efef6d5f3
parentf11e77305c2c7c242be67821183def72ec7b1b90 (diff)
downloadcrawl-ref-cc8d6ef1a9a08f1e3ddb6d5f29ab5323a9f79d0d.tar.gz
crawl-ref-cc8d6ef1a9a08f1e3ddb6d5f29ab5323a9f79d0d.zip
Make Ice/Statue Form use spellpower instead of Ice/Earth
Also adjusts max power (Ice Form 200->100, Statue Form 200->150) to get roughly the same scaling as before; statue form now scales slightly more slowly, but caps out at 1.5 ac higher, if you can eke out enough spellpower. AC from non-spell-caused polymorphs will be based on the power of the polymorph.
-rw-r--r--crawl-ref/source/player.cc10
-rw-r--r--crawl-ref/source/player.h1
-rw-r--r--crawl-ref/source/spl-data.h4
-rw-r--r--crawl-ref/source/transform.cc2
4 files changed, 10 insertions, 7 deletions
diff --git a/crawl-ref/source/player.cc b/crawl-ref/source/player.cc
index 2420f86d71..e2c1f649f4 100644
--- a/crawl-ref/source/player.cc
+++ b/crawl-ref/source/player.cc
@@ -6532,8 +6532,8 @@ int player::armour_class() const
case SP_GARGOYLE:
AC += 200 + 100 * experience_level * 2 / 5 // max 20
+ 100 * (max(0, experience_level - 7) * 2 / 5);
- if (form == TRAN_STATUE)
- AC += 1300 + skill(SK_EARTH_MAGIC, 50);
+ if (form == TRAN_STATUE) // max 28
+ AC += 1300 + you.props[TRANSFORM_POW_KEY].get_int() * 10;
break;
default:
@@ -6566,10 +6566,10 @@ int player::armour_class() const
break;
case TRAN_ICE_BEAST:
- AC += 500 + skill(SK_ICE_MAGIC, 25) + 25; // max 12
+ AC += 500 + you.props[TRANSFORM_POW_KEY].get_int() * 7; // max 12
if (duration[DUR_ICY_ARMOUR])
- AC += 100 + skill(SK_ICE_MAGIC, 25); // max +7
+ AC += 100 + you.props[ICY_ARMOUR_KEY].get_int() * 6; // max +7
break;
case TRAN_WISP:
@@ -6583,7 +6583,7 @@ int player::armour_class() const
break;
case TRAN_STATUE: // main ability is armour (high bonus)
- AC += 1700 + skill(SK_EARTH_MAGIC, 50);// max 30
+ AC += 1700 + you.props[TRANSFORM_POW_KEY].get_int() * 10; // max 32
// Stoneskin bonus already accounted for.
break;
diff --git a/crawl-ref/source/player.h b/crawl-ref/source/player.h
index c2b51628f3..f6fa48b3fc 100644
--- a/crawl-ref/source/player.h
+++ b/crawl-ref/source/player.h
@@ -25,6 +25,7 @@
#define CONDENSATION_SHIELD_KEY "condensation_shield_pow"
#define ICY_ARMOUR_KEY "ozocubu's_armour_pow"
#define STONESKIN_KEY "stoneskin_pow"
+#define TRANSFORM_POW_KEY "transform_pow"
class targetter;
diff --git a/crawl-ref/source/spl-data.h b/crawl-ref/source/spl-data.h
index 182745d6d5..dd5223fdef 100644
--- a/crawl-ref/source/spl-data.h
+++ b/crawl-ref/source/spl-data.h
@@ -1363,7 +1363,7 @@ static const struct spell_desc spelldata[] =
SPTYP_TRANSMUTATION | SPTYP_EARTH,
SPFLAG_HELPFUL | SPFLAG_CHAOTIC,
6,
- 200,
+ 150,
-1, -1,
0,
NULL,
@@ -1376,7 +1376,7 @@ static const struct spell_desc spelldata[] =
SPTYP_ICE | SPTYP_TRANSMUTATION,
SPFLAG_HELPFUL | SPFLAG_CHAOTIC,
4,
- 200,
+ 100,
-1, -1,
0,
NULL,
diff --git a/crawl-ref/source/transform.cc b/crawl-ref/source/transform.cc
index bb2ba6956f..23b1175632 100644
--- a/crawl-ref/source/transform.cc
+++ b/crawl-ref/source/transform.cc
@@ -1054,6 +1054,8 @@ bool transform(int pow, transformation_type which_trans, bool involuntary,
_remove_equipment(rem_stuff);
+ you.props[TRANSFORM_POW_KEY] = pow;
+
if (str)
{
notify_stat_change(STAT_STR, str, true,