summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/fight.cc
diff options
context:
space:
mode:
authordshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2007-07-13 19:51:13 +0000
committerdshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2007-07-13 19:51:13 +0000
commit95b32e8537f724d38594b06473a966229c708999 (patch)
tree3cf71a307afa618c6c3f011144a66d3cfeeed8e9 /crawl-ref/source/fight.cc
parent3600271e4eacec0160f88dba0c76a72467e84a07 (diff)
downloadcrawl-ref-95b32e8537f724d38594b06473a966229c708999.tar.gz
crawl-ref-95b32e8537f724d38594b06473a966229c708999.zip
[1731587] Kenku get claw-kick and a small speed boost when flying unladen.
Swiftness speed boost is now given only if flying, not levitating. git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1857 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/fight.cc')
-rw-r--r--crawl-ref/source/fight.cc29
1 files changed, 23 insertions, 6 deletions
diff --git a/crawl-ref/source/fight.cc b/crawl-ref/source/fight.cc
index 620e314ddf..b647428c04 100644
--- a/crawl-ref/source/fight.cc
+++ b/crawl-ref/source/fight.cc
@@ -545,6 +545,7 @@ bool melee_attack::player_aux_unarmed()
damage_brand = SPWPN_NORMAL;
int uattack = UNAT_NO_ATTACK;
bool simple_miss_message = false;
+ std::string miss_verb;
if (can_do_unarmed)
{
@@ -575,9 +576,11 @@ bool melee_attack::player_aux_unarmed()
switch (scount)
{
case 0:
+ {
if (uattack != UNAT_KICK) //jmf: hooves mutation
{
- if ((you.species != SP_CENTAUR && !you.mutation[MUT_HOOVES])
+ if ((you.species != SP_CENTAUR && you.species != SP_KENKU
+ && !you.mutation[MUT_HOOVES])
|| coinflip())
{
continue;
@@ -592,10 +595,23 @@ bool melee_attack::player_aux_unarmed()
continue;
}
- unarmed_attack = "kick";
+ // Kenku have large taloned feet that do good damage.
+ const bool clawed_kick =
+ you.species == SP_KENKU && !you.mutation[MUT_HOOVES];
+
+ if (clawed_kick)
+ {
+ unarmed_attack = "claw";
+ miss_verb = "kick";
+ }
+ else
+ unarmed_attack = "kick";
+
aux_damage = ((you.mutation[MUT_HOOVES]
- || you.species == SP_CENTAUR) ? 10 : 5);
+ || you.species == SP_CENTAUR
+ || clawed_kick) ? 10 : 5);
break;
+ }
case 1:
if (uattack != UNAT_HEADBUTT)
@@ -744,7 +760,8 @@ bool melee_attack::player_aux_unarmed()
defender->name(DESC_NOCAP_THE).c_str());
else
mprf("Your %s misses %s.",
- unarmed_attack.c_str(),
+ miss_verb.empty()? unarmed_attack.c_str()
+ : miss_verb.c_str(),
defender->name(DESC_NOCAP_THE).c_str());
}
}
@@ -1583,7 +1600,7 @@ bool melee_attack::apply_damage_brand()
break;
case SPWPN_ELECTROCUTION:
- if (defender->levitates())
+ if (defender->flies())
break;
else if (defender->res_elec() > 0)
break;
@@ -2881,7 +2898,7 @@ void melee_attack::mons_apply_attack_flavour(const mon_attack_def &attk)
defender->res_elec(),
atk->hit_dice + random2( atk->hit_dice / 2 ));
- if (defender->levitates())
+ if (defender->flies())
special_damage = special_damage * 2 / 3;
if (needs_message && special_damage)