public void Update(float elapsedMilliseconds)
{
NewMass = 0.0f;
NewVictims = new List<Victim>();
MouseControl.Update(elapsedMilliseconds);
//System.Diagnostics.Debug.WriteLine("mouse rot accel: " + MouseControl.RotationalAccelerationFactor.ToString());
if (ParentLevel.CurrentWinState == Level.WinState.InProgress)
{
UpdateRotationalSpeed(elapsedMilliseconds);
//System.Diagnostics.Debug.WriteLine("rot speed: " + RotationalSpeed.ToString());
UpdatePosition(elapsedMilliseconds);
}
else
{
Velocity.X = 0f;
Velocity.Y = 0f;
}
UpdateRadius();
UpdateDamageFactor();
//System.Diagnostics.Debug.WriteLine("damage factor: " + DamageFactor.ToString());
// update victims
for (int i = 0; i < Victims.Count; i++)
{
Victim v = Victims[i];
v.Update(elapsedMilliseconds);
// check if dead
if (v.DeleteFlag)
{
Victims.Remove(v);
i--;
}
}
CollideVictims();
CalculateTotalMass();
//System.Diagnostics.Debug.WriteLine("tornado mass: " + TotalMass.ToString());
CalculateCategory(elapsedMilliseconds);
CalculateLife(elapsedMilliseconds);
// add any new victims to the tornado
foreach (Victim v in NewVictims)
{
Victims.Add(v);
}
// check for god mode
if (Input.KeysHit.Contains(Keys.F12))
{
GodMode = !GodMode;
}
}