summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/abl-show.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/abl-show.cc')
-rw-r--r--crawl-ref/source/abl-show.cc21
1 files changed, 14 insertions, 7 deletions
diff --git a/crawl-ref/source/abl-show.cc b/crawl-ref/source/abl-show.cc
index 69c9ea6bd3..1f745ed30e 100644
--- a/crawl-ref/source/abl-show.cc
+++ b/crawl-ref/source/abl-show.cc
@@ -806,7 +806,7 @@ std::vector<const char*> get_ability_names()
{
std::vector<talent> talents = your_talents(false);
std::vector<const char*> result;
- for ( unsigned int i = 0; i < talents.size(); ++i )
+ for (unsigned int i = 0; i < talents.size(); ++i)
result.push_back(get_ability_def(talents[i].which).name);
return result;
}
@@ -930,7 +930,7 @@ static bool _activate_talent(const talent& tal)
return (false);
}
- // some abilities don't need a hunger check
+ // Some abilities don't need a hunger check.
bool hungerCheck = true;
switch (tal.which)
{
@@ -957,7 +957,7 @@ static bool _activate_talent(const talent& tal)
const ability_def& abil = get_ability_def(tal.which);
- // check that we can afford to pay the costs
+ // Check that we can afford to pay the costs.
if (!enough_mp( abil.mp_cost, false ))
{
crawl_state.zero_turns_taken();
@@ -977,8 +977,8 @@ static bool _activate_talent(const talent& tal)
return (false);
}
- // don't insta-starve the player
- // (happens at 100, losing consciousness possible from 500 downward)
+ // Don't insta-starve the player.
+ // (Happens at 100, losing consciousness possible from 500 downward.)
if (hungerCheck && you.species != SP_VAMPIRE)
{
const int expected_hunger = you.hunger - abil.food_cost * 2;
@@ -987,7 +987,7 @@ static bool _activate_talent(const talent& tal)
"hunger: %d, max. food_cost: %d, expected hunger: %d",
you.hunger, abil.food_cost * 2, expected_hunger);
#endif
- // safety margin for natural hunger, mutations etc.
+ // Safety margin for natural hunger, mutations etc.
if (expected_hunger <= 150)
{
mpr("You're too hungry.");
@@ -996,7 +996,14 @@ static bool _activate_talent(const talent& tal)
}
}
- // no turning back now... {dlb}
+ if ((tal.which == ABIL_EVOKE_BERSERK || tal.which == ABIL_TROG_BERSERK)
+ && !berserk_check_wielded_weapon())
+ {
+ crawl_state.zero_turns_taken();
+ return (false);
+ }
+
+ // No turning back now... {dlb}
if (random2avg(100, 3) < tal.fail)
{
mpr("You fail to use your ability.");