From 0911072d27820bd608bb908088419d3ec5151434 Mon Sep 17 00:00:00 2001 From: Howaner Date: Mon, 4 Aug 2014 01:34:12 +0200 Subject: Attempt to fix knockback and swimming. --- src/Entities/Entity.cpp | 28 +++++++++++++--------------- src/Mobs/Monster.cpp | 12 +++++++++--- 2 files changed, 22 insertions(+), 18 deletions(-) diff --git a/src/Entities/Entity.cpp b/src/Entities/Entity.cpp index a274e6780..32f220897 100644 --- a/src/Entities/Entity.cpp +++ b/src/Entities/Entity.cpp @@ -244,9 +244,9 @@ void cEntity::TakeDamage(eDamageType a_DamageType, cEntity * a_Attacker, int a_R Vector3d Heading(0, 0, 0); if (a_Attacker != NULL) { - Heading = a_Attacker->GetLookVector() * (a_Attacker->IsSprinting() ? 10 : 8); + Heading = a_Attacker->GetLookVector() * (a_Attacker->IsSprinting() ? 16 : 11); + Heading.y = 1.6; } - Heading.y = 2; TDI.Knockback = Heading * a_KnockbackAmount; DoTakeDamage(TDI); @@ -731,21 +731,19 @@ void cEntity::HandlePhysics(float a_Dt, cChunk & a_Chunk) } NextSpeed.y += fallspeed; } - else + + // Friction + if (NextSpeed.SqrLength() > 0.0004f) { - // Friction - if (NextSpeed.SqrLength() > 0.0004f) + NextSpeed.x *= 0.7f / (1 + a_Dt); + if (fabs(NextSpeed.x) < 0.05) { - NextSpeed.x *= 0.7f / (1 + a_Dt); - if (fabs(NextSpeed.x) < 0.05) - { - NextSpeed.x = 0; - } - NextSpeed.z *= 0.7f / (1 + a_Dt); - if (fabs(NextSpeed.z) < 0.05) - { - NextSpeed.z = 0; - } + NextSpeed.x = 0; + } + NextSpeed.z *= 0.7f / (1 + a_Dt); + if (fabs(NextSpeed.z) < 0.05) + { + NextSpeed.z = 0; } } diff --git a/src/Mobs/Monster.cpp b/src/Mobs/Monster.cpp index 94df991a3..66c9aadeb 100644 --- a/src/Mobs/Monster.cpp +++ b/src/Mobs/Monster.cpp @@ -292,6 +292,10 @@ void cMonster::Tick(float a_Dt, cChunk & a_Chunk) { Distance *= 2.5; } + else if (IsSwimming()) + { + Distance *= 1.3; + } else { // Don't let the mob move too much if he's falling. @@ -301,11 +305,13 @@ void cMonster::Tick(float a_Dt, cChunk & a_Chunk) AddSpeedX(Distance.x); AddSpeedZ(Distance.z); - if (m_EMState == ESCAPING) - { // Runs Faster when escaping :D otherwise they just walk away + /* It's too buggy! */ + /** if (m_EMState == ESCAPING) + { + // Runs Faster when escaping :D otherwise they just walk away SetSpeedX (GetSpeedX() * 2.f); SetSpeedZ (GetSpeedZ() * 2.f); - } + } */ } else { -- cgit v1.2.3 From 7bea90d6caca9f9b4389fe14ab49720f22cb9273 Mon Sep 17 00:00:00 2001 From: Howaner Date: Mon, 4 Aug 2014 01:35:25 +0200 Subject: Fixed warnings --- src/Mobs/Monster.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Mobs/Monster.cpp b/src/Mobs/Monster.cpp index 66c9aadeb..54ad869c2 100644 --- a/src/Mobs/Monster.cpp +++ b/src/Mobs/Monster.cpp @@ -290,16 +290,16 @@ void cMonster::Tick(float a_Dt, cChunk & a_Chunk) if (m_bOnGround) { - Distance *= 2.5; + Distance *= 2.5f; } else if (IsSwimming()) { - Distance *= 1.3; + Distance *= 1.3f; } else { // Don't let the mob move too much if he's falling. - Distance *= 0.25; + Distance *= 0.25f; } AddSpeedX(Distance.x); -- cgit v1.2.3 From e70077361d239f3f3a9d8a94c8262d663018f901 Mon Sep 17 00:00:00 2001 From: Howaner Date: Mon, 4 Aug 2014 11:23:35 +0200 Subject: Changed /** to /* --- src/Mobs/Monster.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Mobs/Monster.cpp b/src/Mobs/Monster.cpp index 54ad869c2..a9889b62f 100644 --- a/src/Mobs/Monster.cpp +++ b/src/Mobs/Monster.cpp @@ -305,13 +305,15 @@ void cMonster::Tick(float a_Dt, cChunk & a_Chunk) AddSpeedX(Distance.x); AddSpeedZ(Distance.z); - /* It's too buggy! */ - /** if (m_EMState == ESCAPING) + // It's too buggy! + /* + if (m_EMState == ESCAPING) { // Runs Faster when escaping :D otherwise they just walk away SetSpeedX (GetSpeedX() * 2.f); SetSpeedZ (GetSpeedZ() * 2.f); - } */ + } + */ } else { -- cgit v1.2.3