Merge pull request #1284 from Howaner/Monster
Attempt to fix knockback and swimming.
This commit is contained in:
commit
b18794d835
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -290,22 +290,30 @@ void cMonster::Tick(float a_Dt, cChunk & a_Chunk)
|
||||
|
||||
if (m_bOnGround)
|
||||
{
|
||||
Distance *= 2.5;
|
||||
Distance *= 2.5f;
|
||||
}
|
||||
else if (IsSwimming())
|
||||
{
|
||||
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);
|
||||
AddSpeedZ(Distance.z);
|
||||
|
||||
// It's too buggy!
|
||||
/*
|
||||
if (m_EMState == ESCAPING)
|
||||
{ // Runs Faster when escaping :D otherwise they just walk away
|
||||
{
|
||||
// Runs Faster when escaping :D otherwise they just walk away
|
||||
SetSpeedX (GetSpeedX() * 2.f);
|
||||
SetSpeedZ (GetSpeedZ() * 2.f);
|
||||
}
|
||||
*/
|
||||
}
|
||||
else
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user