public override void Initialize(World world, WorldCell cell)
{
base.Initialize(world, cell);
IsAlive = true;
SetEnergy(MaxEnergyValue);
RandomGenerator = CurrentWorld.RandomGenerator;
Direction = Vector2Int.zero;
NormalMoveSeconds = (float)MathFunctions.RandomDouble(RandomGenerator, MinAndMaxMoveSeconds);
FastMoveDivisor = (float)MathFunctions.RandomDouble(RandomGenerator, MinAndMaxFastMoveDivisor);
FastMoveSeconds = NormalMoveSeconds / FastMoveDivisor;
MovementProgress = 0;
IsFemale = RandomGenerator.NextDouble() >= 0.5f;
FemenineSprite.enabled = IsFemale;
MasculineSprite.enabled = !IsFemale;
Render.transform.localScale = ChildScale.Div(transform.parent.lossyScale);
transform.position = CurrentPositionToReal();
SecondsToGrow = (float)MathFunctions.RandomDouble(RandomGenerator, MinAndMaxSecondsToGrow);
ReproductionCooldown = (float)MathFunctions.RandomDouble(RandomGenerator, MinAndMaxReproductionCooldown);
SecondsToOld = (float)MathFunctions.RandomDouble(RandomGenerator, MinAndMaxSecondsToOld);
ActionsList = CreateActionsList();
UpdateStateRenderer();
}