summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/acr.cc
diff options
context:
space:
mode:
authorharanp <haranp@c06c8d41-db1a-0410-9941-cceddc491573>2007-07-22 09:43:36 +0000
committerharanp <haranp@c06c8d41-db1a-0410-9941-cceddc491573>2007-07-22 09:43:36 +0000
commita141fc03319b9a5c6c8b1c89c499c9715d58438f (patch)
tree67b1d0fdafdd06374f2abe7429c45e19de7ba658 /crawl-ref/source/acr.cc
parent5eeb46e53790c89bed3c90527f765c40d25bf737 (diff)
downloadcrawl-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.cc28
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);