summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/mon-act.cc
diff options
context:
space:
mode:
authorDarshan Shaligram <dshaligram@users.sourceforge.net>2010-01-08 13:11:44 +0530
committerDarshan Shaligram <dshaligram@users.sourceforge.net>2010-01-08 13:16:12 +0530
commit6d0eb3000187dd587e961ca87ddb9eca947f15dc (patch)
tree420aac3eaf6aee2ef5ccf5eebcef33d1fcd19791 /crawl-ref/source/mon-act.cc
parent2aef97c76417be892660cf4f91da3953f222d2b9 (diff)
downloadcrawl-ref-6d0eb3000187dd587e961ca87ddb9eca947f15dc.tar.gz
crawl-ref-6d0eb3000187dd587e961ca87ddb9eca947f15dc.zip
Add snapping turtles, alligator snapping turtles and sea snakes to the Shoals, remove yaktaurs, centaurs and stone giants.
Snapping turtles get reaching attacks. Sea snakes get strong venom.
Diffstat (limited to 'crawl-ref/source/mon-act.cc')
-rw-r--r--crawl-ref/source/mon-act.cc10
1 files changed, 6 insertions, 4 deletions
diff --git a/crawl-ref/source/mon-act.cc b/crawl-ref/source/mon-act.cc
index 092fb0aaa7..2065414df9 100644
--- a/crawl-ref/source/mon-act.cc
+++ b/crawl-ref/source/mon-act.cc
@@ -737,7 +737,8 @@ static bool _handle_potion(monsters *monster, bolt & beem)
static bool _handle_reaching(monsters *monster)
{
bool ret = false;
- const int wpn = monster->inv[MSLOT_WEAPON];
+ item_def *wpn = monster->weapon(0);
+ const mon_attack_def attk(mons_attack_spec(monster, 0));
if (monster->submerged())
return (false);
@@ -745,7 +746,8 @@ static bool _handle_reaching(monsters *monster)
if (mons_aligned(monster->mindex(), monster->foe))
return (false);
- if (wpn != NON_ITEM && get_weapon_brand(mitm[wpn]) == SPWPN_REACHING)
+ if ((wpn && get_weapon_brand(*wpn) == SPWPN_REACHING)
+ || (attk.flavour == AF_REACH && attk.damage))
{
if (monster->foe == MHITYOU)
{
@@ -782,8 +784,8 @@ static bool _handle_reaching(monsters *monster)
}
// Player saw the item reach.
- if (ret && !is_artefact(mitm[wpn]) && you.can_see(monster))
- set_ident_flags(mitm[wpn], ISFLAG_KNOW_TYPE);
+ if (ret && wpn && !is_artefact(*wpn) && you.can_see(monster))
+ set_ident_flags(*wpn, ISFLAG_KNOW_TYPE);
return (ret);
}