diff options
author | haranp <haranp@c06c8d41-db1a-0410-9941-cceddc491573> | 2007-07-22 09:43:36 +0000 |
---|---|---|
committer | haranp <haranp@c06c8d41-db1a-0410-9941-cceddc491573> | 2007-07-22 09:43:36 +0000 |
commit | a141fc03319b9a5c6c8b1c89c499c9715d58438f (patch) | |
tree | 67b1d0fdafdd06374f2abe7429c45e19de7ba658 /crawl-ref/source/acr.cc | |
parent | 5eeb46e53790c89bed3c90527f765c40d25bf737 (diff) | |
download | crawl-ref-a141fc03319b9a5c6c8b1c89c499c9715d58438f.tar.gz crawl-ref-a141fc03319b9a5c6c8b1c89c499c9715d58438f.zip |
Fixed unnecessary bat-transformation ability when already in batform.
Redid how bat durations are handled.
(both by dolorous, 1757094, with a minor bugfix.)
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1909 c06c8d41-db1a-0410-9941-cceddc491573
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); |