Apply tigerw's suggestion.
This commit is contained in:
parent
a9e111678a
commit
2cd7e63e87
@ -71,7 +71,6 @@ void cSlime::KilledBy(TakeDamageInfo & a_TDI)
|
|||||||
|
|
||||||
if (m_Size != 1)
|
if (m_Size != 1)
|
||||||
{
|
{
|
||||||
// Queue slimes to be spawned after death animation delay:
|
|
||||||
auto & Random = GetRandomProvider();
|
auto & Random = GetRandomProvider();
|
||||||
int SpawnAmount = Random.RandInt(2, 4);
|
int SpawnAmount = Random.RandInt(2, 4);
|
||||||
|
|
||||||
@ -80,18 +79,18 @@ void cSlime::KilledBy(TakeDamageInfo & a_TDI)
|
|||||||
double AddX = (i % 2 - 0.5) * m_Size / 4.0;
|
double AddX = (i % 2 - 0.5) * m_Size / 4.0;
|
||||||
double AddZ = (i / 2 - 0.5) * m_Size / 4.0;
|
double AddZ = (i / 2 - 0.5) * m_Size / 4.0;
|
||||||
|
|
||||||
Vector3d SpawnPos(GetPosX() + AddX, GetPosY() + 0.5, GetPosZ() + AddZ);
|
// Queue slimes to be spawned after the 1 second death animation has finished playing:
|
||||||
double Yaw = Random.RandReal(360.0f);
|
m_World->ScheduleTask(cTickTime(20), [
|
||||||
int Size = m_Size/2;
|
Position = GetPosition() + Vector3d(AddX, 0.5, AddZ),
|
||||||
auto lambda = [SpawnPos, Yaw, Size](cWorld &a_World)
|
Yaw = Random.RandReal(360.0f),
|
||||||
|
Size = m_Size / 2
|
||||||
|
](cWorld & a_World)
|
||||||
{
|
{
|
||||||
auto NewSlime = std::make_unique<cSlime>(Size);
|
auto NewSlime = std::make_unique<cSlime>(Size);
|
||||||
NewSlime->SetPosition(SpawnPos);
|
NewSlime->SetPosition(Position);
|
||||||
NewSlime->SetYaw(Yaw);
|
NewSlime->SetYaw(Yaw);
|
||||||
a_World.SpawnMobFinalize(std::move(NewSlime));
|
a_World.SpawnMobFinalize(std::move(NewSlime));
|
||||||
};
|
});
|
||||||
cTickTime DelayTime(20);
|
|
||||||
m_World->ScheduleTask(DelayTime, lambda);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Super::KilledBy(a_TDI);
|
Super::KilledBy(a_TDI);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user