summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/player.cc
diff options
context:
space:
mode:
authorharanp <haranp@c06c8d41-db1a-0410-9941-cceddc491573>2009-01-13 15:46:45 +0000
committerharanp <haranp@c06c8d41-db1a-0410-9941-cceddc491573>2009-01-13 15:46:45 +0000
commitc32244f1ca9dfacd55040e1a61c3ff6c5c1ab4d5 (patch)
treead68b92ce822cad4a7ba541282afdeba6b7fd9c4 /crawl-ref/source/player.cc
parentd436eeaf8f01d5e9b0476254171b6a0bcc2c403d (diff)
downloadcrawl-ref-c32244f1ca9dfacd55040e1a61c3ff6c5c1ab4d5.tar.gz
crawl-ref-c32244f1ca9dfacd55040e1a61c3ff6c5c1ab4d5.zip
Remove atk and def from melee_attack.
Rewrite some code to use actor methods instead of calling things directly. In theory, attacker_as_monster() and defender_as_monster() are hacks; any calls to them that can be replaced by calls to actor methods should be. Fix some inconsistencies with monster bleeding and summoned creatures. (This should probably go into actor::can_bleed().) git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@8444 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/player.cc')
-rw-r--r--crawl-ref/source/player.cc18
1 files changed, 18 insertions, 0 deletions
diff --git a/crawl-ref/source/player.cc b/crawl-ref/source/player.cc
index 58a6393271..51eb1dc1d9 100644
--- a/crawl-ref/source/player.cc
+++ b/crawl-ref/source/player.cc
@@ -7143,6 +7143,24 @@ bool player::can_safely_mutate() const
&& you.hunger_state == HS_ENGORGED);
}
+bool player::can_bleed() const
+{
+ if (you.is_undead && (you.species != SP_VAMPIRE
+ || you.hunger_state <= HS_SATIATED))
+ {
+ return (false);
+ }
+
+ const int tran = you.attribute[ATTR_TRANSFORMATION];
+ if (tran == TRAN_STATUE || tran == TRAN_ICE_BEAST
+ || tran == TRAN_AIR || tran == TRAN_LICH
+ || tran == TRAN_SPIDER) // Monster spiders don't bleed either.
+ {
+ return (false);
+ }
+ return (true);
+}
+
bool player::mutate()
{
ASSERT(!crawl_state.arena);