private void init(int active)
        {
            base.init(true);
            Ghost ghost = this.allGhosts[0];
            Mob   mob   = this.mobs[0];

            mob.Inactive = true;

            this.activeScenarios = new Queue <BaseTutorialScenario>();
            this.activeScenarios.Enqueue(new SelectionTutorial(content, "Unitselect", ghost, mob));
            this.activeScenarios.Enqueue(new MovementTutorial(content, "Movement", ghost, mob));
            this.activeScenarios.Enqueue(new EnemySpawnTutorial(content, "Invisible", ghost, mob));
            this.activeScenarios.Enqueue(new EvadeTutorial(content, "Evade", ghost, mob));
            this.activeScenarios.Enqueue(new KillingTutorial(content, "Killing", ghost, mob, this.allGhosts));
            this.activeScenarios.Enqueue(new ArmyTutorial(content, "Army", ghost, mob, allGhosts, GameStateMachine.getInstance()));
            for (int i = 0; i <= active; i++)
            {
                // the last scenario requires 2 ghosts
                if (0 == this.activeScenarios.Count - 1)
                {
                    break;
                }
                this.activeScenario = this.activeScenarios.Dequeue();
                this.activeScenario.init();
            }

            this.scenario = active;
        }
        public override void update(float elapsed)
        {
            base.update(elapsed);
            foreach (var button in this.buttons)
            {
                button.update(elapsed);
            }

            if (this.activeScenario != null)
            {
                this.activeScenario.update(elapsed);
                if (this.activeScenario.Completed)
                {
                    if (this.activeScenarios.Count > 0)
                    {
                        this.activeScenario = this.activeScenarios.Dequeue();
                        this.activeScenario.init();
                        this.scenario++;
                    }
                }
            }
        }