diff options
author | DracoOmega <draco_omega@live.com> | 2013-07-06 22:12:25 -0230 |
---|---|---|
committer | DracoOmega <draco_omega@live.com> | 2013-07-06 22:48:14 -0230 |
commit | e250b60d2c6a7470c8a4d2e56ea69e5e00b86ade (patch) | |
tree | 9c105f7483834a48fc68352a92e370aa6aacb02e /crawl-ref/source/ouch.h | |
parent | 9d2c9726270f533ec2d13abcb7bea29e448e3755 (diff) | |
download | crawl-ref-e250b60d2c6a7470c8a4d2e56ea69e5e00b86ade.tar.gz crawl-ref-e250b60d2c6a7470c8a4d2e56ea69e5e00b86ade.zip |
Revamp player xp draining
Instead of permanently reducing player xp (and xl), draining attacks
now inflict a temporary reduction in all skill levels (similar to Ash
wrath) which is worked off by gaining xp. The xp used to overcome the
penalty is not actually deducted, so draining does not reduce long-term
xp totals. Draining causes both a flat and (smaller) percentile reduction
(meaning that higher level skills are somewhat more strongly affected
than low ones).
The amount of draining inflicted by an attack scales with the damage
taken, meaning that low EV, high AC characters will be less
proportionately vulnerable to draining than their inverse counterparts,
at least compared to the present situation.
The xp cost of removing a point of draining decreases the more heavily
drained the player is, so that it is a bit easier to dig yourself out
of a deep hole if you manage to end up in one.
The numbers are provisional, but should hopefully be fairly sane. Ideally,
I think it would be good if draining had a noticable enough impact to
encourage wearing rN more often than is presently done, as a counter to
it, but let's see how it plays.
For the time-being, draining still works the same against monsters as
it always has.
Diffstat (limited to 'crawl-ref/source/ouch.h')
-rw-r--r-- | crawl-ref/source/ouch.h | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/crawl-ref/source/ouch.h b/crawl-ref/source/ouch.h index 3c5b21af11..c4353635b1 100644 --- a/crawl-ref/source/ouch.h +++ b/crawl-ref/source/ouch.h @@ -77,8 +77,7 @@ void ouch(int dam, int death_source, kill_method_type death_type, const char *death_source_name = NULL, bool attacker_effects = true); void lose_level(int death_source, const char* aux); -bool drain_exp(bool announce_full = true, int death_source = NON_MONSTER, - const char *aux = NULL); +bool drain_exp(bool announce_full = true, int power = 25); bool expose_items_to_element(beam_type flavour, const coord_def& where, int strength = 0); |