public void Update()
{
if (!active)
return;
alpha += alphaDir * 0.05f;
if (alpha <= 0.6)
alphaDir = 1;
if (alpha >= 1.0)
{
alpha = 1f;
alphaDir = -1;
}
if (dot)
{
velocity.Y += 0.15f;
}
else
{
velocity.Y *= 0.92f;
if (crit)
velocity.Y *= 0.92f;
}
velocity.X *= 0.93f;
position += velocity;
--lifeTime;
if (lifeTime <= 0)
{
scale -= 0.1f;
if (scale < 0.1)
active = false;
lifeTime = 0;
if (!crit)
return;
alphaDir = -1;
scale += 0.07f;
}
else
{
if (crit)
{
if (velocity.X < 0.0)
rotation += 1.0f / 1000.0f;
else
rotation -= 1.0f / 1000.0f;
}
if (dot)
{
scale += 0.5f;
if (scale <= 0.8)
return;
scale = 0.8f;
}
else
{
if (scale < 1.0)
scale += 0.1f;
if (scale <= 1.0)
return;
scale = 1f;
}
}
}