protected override void Update()
{
if (Parent.Paused) return;
Lifetime++;
if (!states.ContainsKey(currentState)) return;
StateFrames++;
FrameRand = Program.rand.NextDouble();
states[currentState].CheckTriggers(this, Parent);
states[currentState].RunLogic(Parent);
if (stateChanged)
{
states[currentState].Initialize(Parent);
stateChanged = false;
if (StateChanged != null) StateChanged(currentState);
}
}