public override void VisitStart(World world)
        {
            base.VisitStart(world);

            this.backgroundLayer = world.LoadedLayers["slidesLayer"] as ImageBackgroundLayer;

            this.currentRulesPhase = RulesPhase.SLIDE1;
            this.backgroundLayer.PreInitImageId = this.phaseToImageIds[this.currentRulesPhase];

            world.InitializeLevel(new List <string>()
            {
                "slidesLayer"
            }, this);
        }
        public AstraRulesLevel(World world)
            : base(world)
        {
            this.currentRulesPhase = RulesPhase.VOID;

            this.phaseToImageIds = new Dictionary <RulesPhase, string>()
            {
                { RulesPhase.SLIDE0, "slide_credits1" },
                { RulesPhase.SLIDE1, "slide_rules1" },
                { RulesPhase.SLIDE2, "slide_rules2" },
                { RulesPhase.SLIDE3, "slide_rules3" },
                { RulesPhase.SLIDE4, "slide_rules4" }
            };
        }
        protected override void InternalUpdateLogic(World world, Time timeElapsed)
        {
            if (this.CheckNextRulesPhaseEvent())
            {
                int indexNextRulePhase = ((int)this.CurrentRulesPhase) + 1;

                if (indexNextRulePhase < 5)
                {
                    RulesPhase nextRulePhase = (RulesPhase)indexNextRulePhase;

                    this.CurrentRulesPhase = nextRulePhase;
                }
                else
                {
                    world.NotifyInternalGameEvent(new InternalGameEvent(InternalEventType.GO_TO_LEVEL, "StartPageLevel"));
                }
            }
        }