From af7a73027bddcff39a6ba1b08398a5310e5797ac Mon Sep 17 00:00:00 2001 From: Charles Otto Date: Sun, 15 Nov 2009 20:33:39 -0500 Subject: Make per turn hunger proportional to time_taken This is somewhat sloppy numerically since the per turn hunger values are rather small and scaling them can easily take the value to zero. I'm assuming using div_rand_round is good enough. Also doubling the hunger increase from haste to keep parity now that hasted turns cause half the hunger of unhasted turns. --- crawl-ref/source/main.cc | 4 +++- crawl-ref/source/player.cc | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-) (limited to 'crawl-ref') diff --git a/crawl-ref/source/main.cc b/crawl-ref/source/main.cc index bfb63c82a6..559d377f74 100644 --- a/crawl-ref/source/main.cc +++ b/crawl-ref/source/main.cc @@ -2829,7 +2829,9 @@ void world_reacts() _decrement_durations(); - const int food_use = player_hunger_rate(); + int food_use = player_hunger_rate(); + food_use = div_rand_round(food_use * you.time_taken, BASELINE_DELAY); + if (food_use > 0 && you.hunger >= 40) make_hungry(food_use, true); diff --git a/crawl-ref/source/player.cc b/crawl-ref/source/player.cc index 6593e683ef..f8e655cdc8 100644 --- a/crawl-ref/source/player.cc +++ b/crawl-ref/source/player.cc @@ -1124,8 +1124,11 @@ int player_hunger_rate(void) hunger += 5; // Berserk has its own food penalty -- excluding berserk haste. + // Doubling the hunger cost for haste so that the per turn hunger + // is consistent now that a hasted turn causes 50% the normal hunger + // -cao if (you.duration[DUR_HASTE] > 0 && !you.berserk()) - hunger += 5; + hunger += 10; } if (you.species == SP_VAMPIRE) -- cgit v1.2.3-54-g00ecf