From 640fbbbd927d096c704cdf8512d7bdfc5f5782b4 Mon Sep 17 00:00:00 2001 From: Persson-dev <66266021+Persson-dev@users.noreply.github.com> Date: Sun, 19 Dec 2021 20:58:55 +0100 Subject: Slow down arrows in water (#5350) * Slow down arrow in water * Added myself to contributors --- src/Entities/ArrowEntity.cpp | 4 ++++ src/Entities/ArrowEntity.h | 2 ++ 2 files changed, 6 insertions(+) (limited to 'src/Entities') diff --git a/src/Entities/ArrowEntity.cpp b/src/Entities/ArrowEntity.cpp index c7c088361..c21f2a7f3 100644 --- a/src/Entities/ArrowEntity.cpp +++ b/src/Entities/ArrowEntity.cpp @@ -194,6 +194,10 @@ void cArrowEntity::Tick(std::chrono::milliseconds a_Dt, cChunk & a_Chunk) m_IsInGround = false; // Yes, begin simulating physics again } } + else if (IsInWater()) // Arrow in water? + { + ApplyFriction(m_Speed, ARROW_WATER_FRICTION, static_cast(a_Dt.count())); // Yes, slow down arrow + } } diff --git a/src/Entities/ArrowEntity.h b/src/Entities/ArrowEntity.h index 2ddc43617..793e09401 100644 --- a/src/Entities/ArrowEntity.h +++ b/src/Entities/ArrowEntity.h @@ -39,6 +39,8 @@ public: // tolua_end + static constexpr float ARROW_WATER_FRICTION = 50.0f; ///< Value used to calculate arrow speed in water + CLASS_PROTODEF(cArrowEntity) /** Creates a new arrow with psNoPickup state and default damage modifier coeff */ -- cgit v1.2.3