Esempio n. 1
0
        /// <summary>
        /// Load Stage screen
        /// </summary>
        public override void LoadScreen()
        {
            base.LoadScreen();

            #region Debug
            DebugConsole.InitializeConsole((Viewer)this.Game, _SpriteBatch, _Service);
            #endregion

            //Reset de certaines propriétés
            _Interface.EscapeMenuOpened = false;

            //Stage
            _Stage = _Service.GetStageData(CurrentStageGuid);
            ScriptManager.InitScriptManager(_Service, _Game, _Stage, _Interface, _SpriteBatch);
            ScriptManager.ScriptDefaultCamera();


            //Configuration de l'image manager
            ImageManager.SetCurrentStage(_Stage.Id);
            MatrixManager.SetCurrentStage(_Stage.Id);

            //Chargements graphiques
            _Service.PreLoadStage(_Stage, _ProjectData.Resolution.MatrixPrecision);

            //Chargement sauvegarde courante
            if (GameState.State.CurrentStagePNJ != null)
            {
                GameState.LoadGamePNJ();
                GameState.State.CurrentStagePNJ = null;
            }

            //Musique
            _Music          = PathTools.GetProjectPath(Enums.ProjectPath.Musics) + _Stage.Music.Filename;
            _MusicFrequency = _Stage.Music.Frequency;

            //Chargement du perso player
            float ratio = _Service.GetRatioFromMatrix(PlayableCharactersManager.CurrentPlayerCharacter.CharacterSprite.Location, _ProjectData.Resolution.MatrixPrecision);
            PlayableCharactersManager.CurrentPlayerCharacter.CharacterSprite.SetScale(new Vector2(ratio, ratio));
            PlayableCharactersManager.CurrentPlayerCharacter.CharacterSprite.SetPosition(StartingPosition.X, StartingPosition.Y);
            PlayableCharactersManager.CurrentPlayerCharacter.CurrentStage = CurrentStageGuid;

            //Execution du script de démarrage
            _LaunchedEndingScripts = false;
            LaunchStartingScript();
        }