diff options
Diffstat (limited to '')
-rw-r--r-- | src/Entities/ArrowEntity.cpp | 4 | ||||
-rw-r--r-- | src/Entities/ArrowEntity.h | 2 |
2 files changed, 6 insertions, 0 deletions
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<float>(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 */ |