diff options
Diffstat (limited to 'crawl-ref/source/acr.cc')
-rw-r--r-- | crawl-ref/source/acr.cc | 28 |
1 files changed, 10 insertions, 18 deletions
diff --git a/crawl-ref/source/acr.cc b/crawl-ref/source/acr.cc index 2cd7011704..cbe9a13471 100644 --- a/crawl-ref/source/acr.cc +++ b/crawl-ref/source/acr.cc @@ -1743,29 +1743,21 @@ static void decrement_durations() you.wield_change = true; } - if (you.duration[DUR_TRANSFORMATION] > 1) + // Vampire bat transformations are permanent (until ended.) + if ( you.species != SP_VAMPIRE || + you.attribute[ATTR_TRANSFORMATION] != TRAN_BAT || + you.duration[DUR_TRANSFORMATION] < 100 ) { - you.duration[DUR_TRANSFORMATION]--; - - if (you.species == SP_VAMPIRE - && you.attribute[ATTR_TRANSFORMATION] == TRAN_BAT - && you.duration[DUR_TRANSFORMATION] > 2) - { - you.duration[DUR_TRANSFORMATION] = 5; - } - - if (you.duration[DUR_TRANSFORMATION] == 10) + if ( decrement_a_duration(DUR_TRANSFORMATION, + NULL, 10, random2(3), + "Your transformation is almost over.") ) { - mpr("Your transformation is almost over.", MSGCH_DURATION); - you.duration[DUR_TRANSFORMATION] -= random2(3); + untransform(); + you.duration[DUR_BREATH_WEAPON] = 0; } } - else if (you.duration[DUR_TRANSFORMATION] == 1) - { - untransform(); - you.duration[DUR_BREATH_WEAPON] = 0; - } + // must come after transformation duration decrement_a_duration(DUR_BREATH_WEAPON, "You have got your breath back.", -1, 0, NULL, MSGCH_RECOVERY); |