summaryrefslogtreecommitdiffstats
path: root/src/Entities/SplashPotionEntity.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Entities/SplashPotionEntity.cpp')
-rw-r--r--src/Entities/SplashPotionEntity.cpp49
1 files changed, 24 insertions, 25 deletions
diff --git a/src/Entities/SplashPotionEntity.cpp b/src/Entities/SplashPotionEntity.cpp
index dece6a1ea..935f93716 100644
--- a/src/Entities/SplashPotionEntity.cpp
+++ b/src/Entities/SplashPotionEntity.cpp
@@ -11,14 +11,8 @@
////////////////////////////////////////////////////////////////////////////////
// cSplashPotionEntity:
-cSplashPotionEntity::cSplashPotionEntity(
- cEntity * a_Creator,
- Vector3d a_Pos,
- Vector3d a_Speed,
- const cItem & a_Item
-):
- Super(pkSplashPotion, a_Creator, a_Pos, a_Speed, 0.25f, 0.25f),
- m_Item(a_Item)
+cSplashPotionEntity::cSplashPotionEntity(cEntity * a_Creator, Vector3d a_Pos, Vector3d a_Speed, const cItem & a_Item) :
+ Super(pkSplashPotion, a_Creator, a_Pos, a_Speed, 0.25f, 0.25f), m_Item(a_Item)
{
m_EntityEffectType = cEntityEffect::GetPotionEffectType(a_Item.m_ItemDamage);
m_EntityEffect = cEntityEffect(
@@ -35,27 +29,32 @@ cSplashPotionEntity::cSplashPotionEntity(
void cSplashPotionEntity::Splash(Vector3d a_HitPos)
{
// Look for entities in 8.25 (width) x 4.25 (height) cuboid _centred_ on hit position:
- m_World->ForEachEntityInBox({ a_HitPos.addedY(-4.25 / 2), 8.25 / 2, 4.25 }, [this, a_HitPos](cEntity & a_Entity)
- {
- if (!a_Entity.IsPawn())
+ m_World->ForEachEntityInBox(
+ {a_HitPos.addedY(-4.25 / 2), 8.25 / 2, 4.25},
+ [this, a_HitPos](cEntity & a_Entity)
{
- // Not an entity that can take effects
+ if (!a_Entity.IsPawn())
+ {
+ // Not an entity that can take effects
+ return false;
+ }
+
+ double SplashDistance = (a_Entity.GetPosition() - a_HitPos).Length();
+ double Reduction = -0.25 * SplashDistance +
+ 1.0; // y = -0.25x + 1, where x is the distance from the player. Approximation for potion splash.
+ Reduction = std::max(Reduction, 0.0);
+
+ static_cast<cPawn &>(a_Entity).AddEntityEffect(
+ m_EntityEffectType,
+ m_EntityEffect.GetDuration(),
+ m_EntityEffect.GetIntensity(),
+ Reduction
+ );
return false;
}
-
- double SplashDistance = (a_Entity.GetPosition() - a_HitPos).Length();
- double Reduction = -0.25 * SplashDistance + 1.0; // y = -0.25x + 1, where x is the distance from the player. Approximation for potion splash.
- Reduction = std::max(Reduction, 0.0);
-
- static_cast<cPawn &>(a_Entity).AddEntityEffect(m_EntityEffectType, m_EntityEffect.GetDuration(), m_EntityEffect.GetIntensity(), Reduction);
- return false;
- });
-
- m_World->BroadcastSoundParticleEffect(
- EffectID::PARTICLE_SPLASH_POTION,
- a_HitPos.Floor(),
- m_PotionColor
);
+
+ m_World->BroadcastSoundParticleEffect(EffectID::PARTICLE_SPLASH_POTION, a_HitPos.Floor(), m_PotionColor);
}