public override void Update(ActorAIController AI)
            {
                AIChaseController chaseAI = AI as AIChaseController;

                if (chaseAI == null)
                    return;

                chaseAI.actor.Attack();
            }
            public override void Update(ActorAIController AI)
            {
                AIRangedAttackController rangedAI = AI as AIRangedAttackController;

                if (AI == null)
                    return;

                rangedAI.actor.Attack();
            }
            public override void Update(ActorAIController AI)
            {
                AIKamikazeeController killAI = AI as AIKamikazeeController;

                if (killAI == null)
                    return;

                killAI._horizontalStop();
            }
            public override void Update(ActorAIController AI)
            {
                AIChaseController chaseAI = AI as AIChaseController;

                if (chaseAI == null)
                    return;

                if (chaseAI.OnLeft)
                    chaseAI._moveLeft();
                else
                    chaseAI._moveRight();

                if (chaseAI.Bounces)
                    chaseAI._jump();
            }
            public override void Update(ActorAIController AI)
            {
                AIChaseController chaseAI = AI as AIChaseController;

                if (chaseAI == null)
                    return;

                chaseAI._horizontalStop();
            }
            public override void Update(ActorAIController AI)
            {
                AIHybridController hybridAI = AI as AIHybridController;

                if (AI == null)
                    return;

                hybridAI._horizontalStop();
                hybridAI.actor.Attack();
            }
            public override void Update(ActorAIController AI)
            {
                AIHybridController hybridAI = AI as AIHybridController;

                if (AI == null)
                    return;

                if (hybridAI.OnLeft)
                    hybridAI._moveLeft();
                else
                    hybridAI._moveRight();
            }
 /// <summary>
 /// Use the Update method to run state-specific AI code. This is called once for each ProcessTick that this 
 /// AIState is the ActorAIController's CurrentState.
 /// </summary>
 /// <param name="AI">The ActorAIController object on which this is the current state.</param>
 public abstract void Update(ActorAIController AI);
            public override void Update(ActorAIController AI)
            {
                AIKamikazeeController killAI = AI as AIKamikazeeController;

                if (killAI == null)
                    return;
                if (killAI.OnLeft)
                    killAI._moveLeft();
                else
                    killAI._moveRight();
            }
            public override void Update(ActorAIController AI)
            {
                LuaAIController luaAI = AI as LuaAIController;

                if (luaAI == null)
                    return;

                ScriptingEngine.Instance.RunScript("data/scripts/" + luaAI.UpdateScript);
            }