From 126b14aa09fcde7a54bc8a176b44f5f6c8f936c1 Mon Sep 17 00:00:00 2001 From: Jonathan Frederick Date: Sun, 28 Sep 2014 13:56:41 -0700 Subject: Make endermen take damage in water --- src/Mobs/Enderman.cpp | 20 ++++++++++++++++++++ src/Mobs/Enderman.h | 1 + 2 files changed, 21 insertions(+) (limited to 'src') diff --git a/src/Mobs/Enderman.cpp b/src/Mobs/Enderman.cpp index 51255beb3..fb372709a 100644 --- a/src/Mobs/Enderman.cpp +++ b/src/Mobs/Enderman.cpp @@ -181,3 +181,23 @@ bool cEnderman::CheckLight() return true; } + + + + + +void cEnderman::Tick(float a_Dt, cChunk & a_Chunk) +{ + super::Tick(a_Dt, a_Chunk); + + //TODO take damage in rain + + //Take damage when touching water, drowning damage seems to be most appropriate + if (IsSwimming()) + { + EventLosePlayer(); + TakeDamage(dtDrowning, NULL, 1, 0); + //TODO teleport to a safe location + } + +} diff --git a/src/Mobs/Enderman.h b/src/Mobs/Enderman.h index 4583746e7..947c32b96 100644 --- a/src/Mobs/Enderman.h +++ b/src/Mobs/Enderman.h @@ -21,6 +21,7 @@ public: virtual void CheckEventSeePlayer(void) override; virtual void CheckEventLostPlayer(void) override; virtual void EventLosePlayer(void) override; + virtual void Tick(float a_Dt, cChunk & a_Chunk) override; bool IsScreaming(void) const {return m_bIsScreaming; } BLOCKTYPE GetCarriedBlock(void) const {return CarriedBlock; } -- cgit v1.2.3 From 7a61e1e6040e7df5e5e928a619b5828b8eff556e Mon Sep 17 00:00:00 2001 From: Jonathan Frederick Date: Sun, 28 Sep 2014 19:24:47 -0700 Subject: Fix comments --- src/Mobs/Enderman.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/Mobs/Enderman.cpp b/src/Mobs/Enderman.cpp index fb372709a..ffc24e56b 100644 --- a/src/Mobs/Enderman.cpp +++ b/src/Mobs/Enderman.cpp @@ -190,9 +190,9 @@ void cEnderman::Tick(float a_Dt, cChunk & a_Chunk) { super::Tick(a_Dt, a_Chunk); - //TODO take damage in rain + // TODO take damage in rain - //Take damage when touching water, drowning damage seems to be most appropriate + // Take damage when touching water, drowning damage seems to be most appropriate if (IsSwimming()) { EventLosePlayer(); -- cgit v1.2.3 From c02711633dd3491242ba5d73148bb9289db04ebf Mon Sep 17 00:00:00 2001 From: Jonathan Frederick Date: Sun, 28 Sep 2014 19:27:53 -0700 Subject: Derp --- src/Mobs/Enderman.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/Mobs/Enderman.cpp b/src/Mobs/Enderman.cpp index ffc24e56b..567714382 100644 --- a/src/Mobs/Enderman.cpp +++ b/src/Mobs/Enderman.cpp @@ -197,7 +197,7 @@ void cEnderman::Tick(float a_Dt, cChunk & a_Chunk) { EventLosePlayer(); TakeDamage(dtDrowning, NULL, 1, 0); - //TODO teleport to a safe location + // TODO teleport to a safe location } } -- cgit v1.2.3