diff options
author | Nicholas Feinberg <pleasingfung@gmail.com> | 2014-07-24 23:25:21 -0700 |
---|---|---|
committer | Nicholas Feinberg <pleasingfung@gmail.com> | 2014-07-24 23:31:57 -0700 |
commit | cc8d6ef1a9a08f1e3ddb6d5f29ab5323a9f79d0d (patch) | |
tree | 10d9e7b867c6432191ce7fef90cd756efef6d5f3 | |
parent | f11e77305c2c7c242be67821183def72ec7b1b90 (diff) | |
download | crawl-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.cc | 10 | ||||
-rw-r--r-- | crawl-ref/source/player.h | 1 | ||||
-rw-r--r-- | crawl-ref/source/spl-data.h | 4 | ||||
-rw-r--r-- | crawl-ref/source/transform.cc | 2 |
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, |