summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/ouch.h
diff options
context:
space:
mode:
authorDracoOmega <draco_omega@live.com>2013-07-06 22:12:25 -0230
committerDracoOmega <draco_omega@live.com>2013-07-06 22:48:14 -0230
commite250b60d2c6a7470c8a4d2e56ea69e5e00b86ade (patch)
tree9c105f7483834a48fc68352a92e370aa6aacb02e /crawl-ref/source/ouch.h
parent9d2c9726270f533ec2d13abcb7bea29e448e3755 (diff)
downloadcrawl-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.h3
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);