summaryrefslogtreecommitdiffstats
path: root/src/Entities/Entity.cpp
diff options
context:
space:
mode:
authorandrew <xdotftw@gmail.com>2014-05-12 20:38:52 +0200
committerandrew <xdotftw@gmail.com>2014-05-12 20:38:52 +0200
commitaea866f5b10d5ab0226260b4d25c70b1cfd31d2a (patch)
treea9d6352a70c41f3b32eb093fb18f8171971738c5 /src/Entities/Entity.cpp
parentcEntity::Killed(cEntity *) Handler; Achievement triggers; cPlayer::AwardAchievement() (diff)
downloadcuberite-aea866f5b10d5ab0226260b4d25c70b1cfd31d2a.tar
cuberite-aea866f5b10d5ab0226260b4d25c70b1cfd31d2a.tar.gz
cuberite-aea866f5b10d5ab0226260b4d25c70b1cfd31d2a.tar.bz2
cuberite-aea866f5b10d5ab0226260b4d25c70b1cfd31d2a.tar.lz
cuberite-aea866f5b10d5ab0226260b4d25c70b1cfd31d2a.tar.xz
cuberite-aea866f5b10d5ab0226260b4d25c70b1cfd31d2a.tar.zst
cuberite-aea866f5b10d5ab0226260b4d25c70b1cfd31d2a.zip
Diffstat (limited to 'src/Entities/Entity.cpp')
-rw-r--r--src/Entities/Entity.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/Entities/Entity.cpp b/src/Entities/Entity.cpp
index 9eb03acde..c393f89fd 100644
--- a/src/Entities/Entity.cpp
+++ b/src/Entities/Entity.cpp
@@ -312,12 +312,16 @@ bool cEntity::DoTakeDamage(TakeDamageInfo & a_TDI)
if ((a_TDI.Attacker != NULL) && (a_TDI.Attacker->IsPlayer()))
{
+ cPlayer * Player = (cPlayer *)a_TDI.Attacker;
+
// IsOnGround() only is false if the player is moving downwards
- if (!((cPlayer *)a_TDI.Attacker)->IsOnGround()) // TODO: Better damage increase, and check for enchantments (and use magic critical instead of plain)
+ if (!Player->IsOnGround()) // TODO: Better damage increase, and check for enchantments (and use magic critical instead of plain)
{
a_TDI.FinalDamage += 2;
m_World->BroadcastEntityAnimation(*this, 4); // Critical hit
}
+
+ Player->GetStatManager().AddValue(statDamageDealt, round(a_TDI.FinalDamage * 10));
}
m_Health -= (short)a_TDI.FinalDamage;
@@ -580,9 +584,16 @@ void cEntity::Tick(float a_Dt, cChunk & a_Chunk)
if (m_AttachedTo != NULL)
{
- if ((m_Pos - m_AttachedTo->GetPosition()).Length() > 0.5)
+ Vector3d DeltaPos = m_Pos - m_AttachedTo->GetPosition();
+ if (DeltaPos.Length() > 0.5)
{
SetPosition(m_AttachedTo->GetPosition());
+
+ if (IsPlayer())
+ {
+ cPlayer * Player = (cPlayer *)this;
+ Player->UpdateMovementStats(DeltaPos);
+ }
}
}
else