public void Update(GameTime gameTime)
        {
            if (player.HP <= 0)
            {
                m_screenManager.ChangeScreen(new LoseScreen(m_screenManager));
            }

            if (boss.HP <= 0)
            {
                m_screenManager.ChangeScreen(new WinScreen(m_screenManager));
            }

            if (Singleton.Instance._currentkey.IsKeyDown(Keys.K) && Singleton.Instance._currentkey != Singleton.Instance._previouskey)
            {
                freecam = !freecam;
            }


            if (freecam)
            {
                testcam();
            }
            else
            {
                Singleton.Instance._camera.Follow(Singleton.Instance.follow);
            }


            if (player.InTurn)
            {
                if (!select)
                {
                    select = true;
                }
                PlayerModule();
            }
            else
            {
                select = false;
                EnemyModule(gameTime);
            }


            for (int i = 0; i < _gameObjects.Count; i++)
            {
                if (_gameObjects[i].IsActive)
                {
                    _gameObjects[i].Update(gameTime, _gameObjects);
                }
                else
                {
                    _gameObjects.Remove(_gameObjects[i]);
                }
            }
        }
Exemple #2
0
        protected override void LoadContent()
        {
            // Create a new SpriteBatch, which can be used to draw textures.
            spriteBatch               = new SpriteBatch(GraphicsDevice);
            activePlayerTexture       = Content.Load <Texture2D>("Player/player01_Front");
            activePlayer_FightTexture = Content.Load <Texture2D>("Player/player01_Fight");

            // Set The Traveling Content
            activeCompanionTexture       = Content.Load <Texture2D>("NPCs/carl");
            activeCompanion_FightTexture = Content.Load <Texture2D>("NPCs/Carl_Fight");
            worldMapBGM = Content.Load <SoundEffect>("Music/WorldMapLoop");

            // Player Textures
            charaOne_World   = Content.Load <Texture2D>("Player/player01_Front");
            charaTwo_World   = Content.Load <Texture2D>("Player/player02_Front");
            charaThree_World = Content.Load <Texture2D>("Player/player03_Front");

            // Player Fight Textures
            charaOne_Fight   = Content.Load <Texture2D>("Player/player01_Fight");
            charaTwo_Fight   = Content.Load <Texture2D>("Player/player02_Fight");
            charaThree_Fight = Content.Load <Texture2D>("Player/player03_Fight");

            //Set m_screenManager
            m_screenManager             = new GameScreenManager(spriteBatch, Content);
            m_screenManager.OnGameExit += Exit;

            // Start Game By Loading Menu Screen
            m_screenManager.ChangeScreen(new MenuScreen(m_screenManager));
        }
Exemple #3
0
        void Reset()
        {
            MediaPlayer.Stop();
            screenManager.Dispose();

            LoadConfig();

            int width  = (int.TryParse(ConfigurationManager.AppSettings["ScreenWidth"], out width) ? width : GraphicsAdapter.DefaultAdapter.CurrentDisplayMode.Width);
            int height = (int.TryParse(ConfigurationManager.AppSettings["ScreenHeight"], out height) ? height : GraphicsAdapter.DefaultAdapter.CurrentDisplayMode.Height);

            screenSize = new Vector2(width, height);

            graphics.PreferredBackBufferWidth       = (int)screenSize.X;
            graphics.PreferredBackBufferHeight      = (int)screenSize.Y;
            graphics.SynchronizeWithVerticalRetrace = false;
            graphics.ApplyChanges();

            particleSystem = new ParticleSystem();

            currentPlatform  = 0;
            currentThumbnail = 0;

            screenManager             = new GameScreenManager(spriteBatch, Content);
            screenManager.OnGameExit += Exit;

            screenManager.ChangeScreen(new MainScreen(screenManager, GraphicsDevice));
        }
Exemple #4
0
 public void HandleInput(GameTime gameTime)
 {
     if (_inputManager.IsTapped(Keys.Escape))
     {
         MediaPlayer.Stop();
         _gameScreenManager.ChangeScreen(new MenuScreen(_gameScreenManager, _contentManager, false));
     }
 }
Exemple #5
0
        //This Method Begins the game by Changing Screens to the World Map
        public void StartGame(IGameScreenManager m_screenManager)
        {
            if (Game1.m_audioState == Game1.AudioState.PLAYING)
            {
                Game1.currentInstance.Stop();
            }

            m_screenManager.ChangeScreen(new WorldMapScreen(m_screenManager));
        }
Exemple #6
0
        private void Gameover()
        {
            if (Game1.m_audioState == Game1.AudioState.PLAYING)
            {
                Game1.currentInstance.Stop();
            }

            m_ScreenManager.PopScreen();
            m_ScreenManager.ChangeScreen(new GameOverScreen(m_ScreenManager));
        }
Exemple #7
0
 //Loads Up the Load File Screen.
 public void LoadGame(IGameScreenManager m_screenManager)
 {
     //Turn Off Music
     if (Game1.m_audioState == Game1.AudioState.PLAYING)
     {
         Game1.currentInstance.Stop();
     }
     //Load Load File Screen
     m_screenManager.ChangeScreen(new LoadFileScreen(m_screenManager));  //Load File Screen Appears
 }
Exemple #8
0
 // Menu Screen Methods
 #region Menu Screen
 #region New Game
 //Loads a new game by transferring the player to character selection.
 public void NewGame(IGameScreenManager m_screenManager)
 {
     //Turn Off Music
     if (Game1.m_audioState == Game1.AudioState.PLAYING)
     {
         Game1.currentInstance.Stop();
     }
     //Load Character Selection Screen
     m_screenManager.ChangeScreen(new CharacterSelectionScreen(m_screenManager));
 }
Exemple #9
0
        protected override void LoadContent()
        {
            // Create a new SpriteBatch, which can be used to draw textures.
            m_spriteBatch = new SpriteBatch(GraphicsDevice);

            m_screenManager = new GameScreenManager(m_spriteBatch, Content, m_screenBounds);
            m_screenManager.OnGameExit += Exit;

            m_screenManager.ChangeScreen(new IntroScreen(m_screenManager));
        }
Exemple #10
0
 private void MenuButton_Click(object sender, EventArgs e)
 {
     //Turn Music Off
     if (Game1.m_audioState == Game1.AudioState.PLAYING)
     {
         Game1.currentInstance.Stop();
     }
     //Set game variables back to default.
     Game1.isOnWorldMap   = false; //Prevents saving in the options screen.
     Game1.levelsUnlocked = 0;     //Sets the starting level back to zero.
     //Change Screen Back to Main Menu
     m_ScreenManager.ChangeScreen(new MenuScreen(m_ScreenManager));
 }
Exemple #11
0
        /// <summary>
        /// LoadContent will be called once per game and is the place to load
        /// all of your content.
        /// </summary>
        protected override void LoadContent()
        {
            // Create a new SpriteBatch, which can be used to draw textures.
            spriteBatch = new SpriteBatch(GraphicsDevice);
            whitePixel  = Content.Load <Texture2D>("Images/WhitePixel");
            defaultFont = Content.Load <SpriteFont>("Fonts/DefaultFont");

            gameScreenManager = new GameScreenManager(spriteBatch, Content, GraphicsDevice, whitePixel, defaultFont);
            gameScreenManager.Initialize();
            gameScreenManager.GameScreenWidth  = graphics.PreferredBackBufferWidth;
            gameScreenManager.GameScreenHeight = graphics.PreferredBackBufferHeight;
            gameScreenManager.OnGameExit      += Exit;
            gameScreenManager.ChangeScreen(new MenuScreen(gameScreenManager, Content));
        }
Exemple #12
0
        protected override void LoadContent()
        {
            _font = Content.Load <SpriteFont>("font/File");

            song = Content.Load <Song>("sounds/bgm_1");
            MediaPlayer.Volume = Singleton.Instance.MasterBGMVolume;
            MediaPlayer.Play(song);
            MediaPlayer.IsRepeating = true;

            m_spriteBatch = new SpriteBatch(GraphicsDevice);

            m_screenManager = new GameScreenManager(m_spriteBatch, Content);


            m_screenManager.ChangeScreen(new MenuScreen(m_screenManager));

            m_screenManager.OnGameExit += Exit;
        }
Exemple #13
0
        protected override void LoadContent()
        {
            spriteBatch = new SpriteBatch(GraphicsDevice);

            spriteFont = Content.Load <SpriteFont>(@"font");

            buttons = Content.Load <Texture2D>(@"buttons");

            rect = new Texture2D(graphics.GraphicsDevice, 1, 1);
            Color[] data = new Color[1];
            for (int i = 0; i < data.Length; ++i)
            {
                data[i] = Color.White;
                rect.SetData(data);
            }

            screenManager             = new GameScreenManager(spriteBatch, Content);
            screenManager.OnGameExit += Exit;

            screenManager.ChangeScreen(new MainScreen(screenManager, GraphicsDevice));
        }
Exemple #14
0
        public void HandleInput(GameTime gameTime)
        {
            if (_inputManager.IsTapped(Keys.Escape))
            {
                MediaPlayer.Stop();
                _gameScreenManager.ChangeScreen(new MenuScreen(_gameScreenManager, _contentManager, false));
            }

            if (_inputManager.IsPressed(Keys.Down))
            {
                _creditSpeed = _creditSpeedFast;
            }

            if (_inputManager.IsPressed(Keys.Up))
            {
                _creditSpeed = _creditSpeedSlow;
            }

            if (_inputManager.IsFree())
            {
                _creditSpeed = _creditDefaultSpeed;
            }
        }
Exemple #15
0
        public void HandleInput(GameTime gameTime)
        {
            if (Singleton.Instance._currentkey.IsKeyDown(Keys.Escape) && Singleton.Instance._currentkey != Singleton.Instance._previouskey)
            {
                m_screenManager.ChangeScreen(new MenuScreen(m_screenManager));
            }

            if (Singleton.Instance._currentkey.IsKeyDown(Keys.Right) && Singleton.Instance._currentkey != Singleton.Instance._previouskey)
            {
                bool isFirstActive;
                if (!Singleton.Instance.isKeyboardCursorActive)
                {
                    isFirstActive = true;
                    Singleton.Instance.isKeyboardCursorActive = true;
                }
                else
                {
                    isFirstActive = false;
                    keyboardCursorPosCounter++;
                }
                switch (keycursorstate)
                {
                case Keycursorstate.Charater:
                    if (keyboardCursorPosCounter > _gameObjects.Count - 1)
                    {
                        keyboardCursorPosCounter = 0;
                    }
                    KeyboardCursorPos = _gameObjects[keyboardCursorPosCounter].Position;

                    //to do play selection cursor sound
                    _cursorselection.Volume = Singleton.Instance.MasterSFXVolume;
                    _cursorselection.Play();
                    //End to do play selection cursor sound

                    break;

                case Keycursorstate.Navigation:

                    if (keyboardCursorPosCounter >= nav_button_poslist.Count + _gameObjects.Count - 1)
                    {
                        keyboardCursorPosCounter = _gameObjects.Count;
                    }
                    KeyboardCursorPos = nav_button_poslist[keyboardCursorPosCounter - _gameObjects.Count];

                    break;
                }
            }

            if (Singleton.Instance._currentkey.IsKeyDown(Keys.Left) && Singleton.Instance._currentkey != Singleton.Instance._previouskey)
            {
                bool isFirstActive;
                if (!Singleton.Instance.isKeyboardCursorActive)
                {
                    isFirstActive = true;
                    Singleton.Instance.isKeyboardCursorActive = true;
                }
                else
                {
                    isFirstActive = false;
                    keyboardCursorPosCounter--;
                }

                switch (keycursorstate)
                {
                case Keycursorstate.Charater:
                    if (keyboardCursorPosCounter < 0)
                    {
                        keyboardCursorPosCounter = _gameObjects.Count - 1;
                    }
                    KeyboardCursorPos = _gameObjects[keyboardCursorPosCounter].Position;

                    //to do play selection cursor sound
                    _cursorselection.Volume = Singleton.Instance.MasterSFXVolume;
                    _cursorselection.Play();
                    //End to do play selection cursor sound

                    /*                        Console.WriteLine("Skill Right key Pos: " + keyboardCursorPosCounter + "Real pos: " + keyboardCursorPosCounter);
                     *                      Console.WriteLine("State = " + (int)keycursorstate);*/

                    break;

                case Keycursorstate.Navigation:

                    if (keyboardCursorPosCounter < _gameObjects.Count)
                    {
                        keyboardCursorPosCounter = nav_button_poslist.Count + _gameObjects.Count - 1;
                    }
                    KeyboardCursorPos = nav_button_poslist[keyboardCursorPosCounter - _gameObjects.Count];

                    break;
                }
            }

            if (Singleton.Instance._currentkey.IsKeyDown(Keys.Down) && Singleton.Instance._currentkey != Singleton.Instance._previouskey)
            {
                bool isFirstActive;
                if (!Singleton.Instance.isKeyboardCursorActive)
                {
                    isFirstActive = true;
                    Singleton.Instance.isKeyboardCursorActive = true;
                }
                else
                {
                    isFirstActive = false;
                }
                switch (keycursorstate)
                {
                case Keycursorstate.Charater:
                    if (!isFirstActive)
                    {
                        keyboardCursorPosCounter = _gameObjects.Count;
                        KeyboardCursorPos        = nav_button_poslist[keyboardCursorPosCounter - _gameObjects.Count];
                        keycursorstate           = Keycursorstate.Navigation;
                    }
                    //to do play selection cursor sound
                    _cursorselection.Volume = Singleton.Instance.MasterSFXVolume;
                    _cursorselection.Play();
                    //End to do play selection cursor sound
                    break;

                case Keycursorstate.Navigation:
                    if (!isFirstActive)
                    {
                        keyboardCursorPosCounter = 0;
                        KeyboardCursorPos        = _gameObjects[keyboardCursorPosCounter].Position;
                        keycursorstate           = Keycursorstate.Charater;
                    }
                    //to do play selection cursor sound
                    _cursorselection.Volume = Singleton.Instance.MasterSFXVolume;
                    _cursorselection.Play();
                    //End to do play selection cursor sound
                    break;
                }
            }

            if (Singleton.Instance._currentkey.IsKeyDown(Keys.Up) && Singleton.Instance._currentkey != Singleton.Instance._previouskey)
            {
                bool isFirstActive;
                if (!Singleton.Instance.isKeyboardCursorActive)
                {
                    isFirstActive = true;
                    Singleton.Instance.isKeyboardCursorActive = true;
                }
                else
                {
                    isFirstActive = false;
                }
                switch (keycursorstate)
                {
                case Keycursorstate.Charater:
                    if (!isFirstActive)
                    {
                        keyboardCursorPosCounter = _gameObjects.Count;
                        KeyboardCursorPos        = nav_button_poslist[keyboardCursorPosCounter - _gameObjects.Count];
                        keycursorstate           = Keycursorstate.Navigation;
                    }
                    //to do play selection cursor sound
                    _cursorselection.Volume = Singleton.Instance.MasterSFXVolume;
                    _cursorselection.Play();
                    //End to do play selection cursor sound
                    break;

                case Keycursorstate.Navigation:
                    if (!isFirstActive)
                    {
                        keyboardCursorPosCounter = 0;
                        KeyboardCursorPos        = _gameObjects[keyboardCursorPosCounter].Position;
                        keycursorstate           = Keycursorstate.Charater;
                    }
                    //to do play selection cursor sound
                    _cursorselection.Volume = Singleton.Instance.MasterSFXVolume;
                    _cursorselection.Play();
                    //End to do play selection cursor sound
                    break;
                }
            }

            if (Singleton.Instance._currentkey.IsKeyDown(Keys.Enter) && Singleton.Instance._currentkey != Singleton.Instance._previouskey && Singleton.Instance.isKeyboardCursorActive)
            {
                switch (keyboardCursorPosCounter)
                {
                case 0:
                    Singleton.Instance.CurrentHero = "zeus";
                    _gameObjects.Remove(zeus);
                    _gameObjects.Remove(thor);
                    m_screenManager.ChangeScreen(new UpgradeScreen(m_screenManager));
                    //Start to do play selected button sound
                    _selected.Volume = Singleton.Instance.MasterSFXVolume;
                    _selected.Play();
                    //End to do play selected button sound
                    break;

                case 1:
                    Singleton.Instance.CurrentHero = "thor";
                    _gameObjects.Remove(zeus);
                    _gameObjects.Remove(thor);
                    m_screenManager.ChangeScreen(new UpgradeScreen(m_screenManager));
                    //Start to do play selected button sound
                    _selected.Volume = Singleton.Instance.MasterSFXVolume;
                    _selected.Play();
                    //End to do play selected button sound
                    break;

                case 2:
                    _gameObjects.Remove(zeus);
                    _gameObjects.Remove(thor);
                    m_screenManager.ChangeScreen(new MenuScreen(m_screenManager));
                    //Start to do play selected button sound
                    _selected.Volume = Singleton.Instance.MasterSFXVolume;
                    _selected.Play();
                    //End to do play selected button sound
                    break;
                }
            }
        }
        private void Button(int i)
        {
            if (Singleton.Instance._currentmouse.Position.X > menu_button_poslist[i].X - _font.MeasureString("CONTROL").X / 2 &&
                Singleton.Instance._currentmouse.Position.X <menu_button_poslist[i].X + _font.MeasureString("CONTROL").X / 2 &&
                                                             Singleton.Instance._currentmouse.Position.Y> menu_button_poslist[i].Y - _font.MeasureString("CONTROL").Y / 2 &&
                Singleton.Instance._currentmouse.Position.Y < menu_button_poslist[i].Y + _font.MeasureString("CONTROL").Y / 2 &&
                Singleton.Instance.isMouseActive)

            {
                menu_button_scalelist[i] = new Vector2(1.2f, 1.2f);
                menu_button_colorlist[i] = Color.Red;
                KeyboardCursorPos        = menu_button_poslist[i];
                keyboardCursorPosCounter = i;
                //Start to do play selection cursor sound
                cursorselectionPlayedcount++;
                //_cursorselection.IsLooped = false;
                _cursorselection.Volume = Singleton.Instance.MasterSFXVolume;

                if (!iscursorselectionPlayed && cursorselectionPlayedcount > 0)
                {
                    _cursorselection.Play();
                    iscursorselectionPlayed = true;
                }

                //End to do play selection cursor sound
                if (Singleton.Instance._currentmouse.LeftButton == ButtonState.Pressed)
                {
                    menu_button_scalelist[i] = new Vector2(1.1f, 1.1f);
                    menu_button_colorlist[i] = Color.OrangeRed;
                }
                else if (Singleton.Instance._currentmouse.LeftButton == ButtonState.Released && Singleton.Instance._previousmouse.LeftButton == ButtonState.Pressed)
                {
                    switch (i)
                    {
                    case 0:
                        //Start to do play selected button sound
                        _selected.Volume = Singleton.Instance.MasterSFXVolume;
                        _selected.Play();
                        //End to do play selected button sound
                        m_screenManager.ChangeScreen(new MenuScreen(m_screenManager));
                        break;

                    case 1:
                        //Start to do play selected button sound
                        _selected.Volume = Singleton.Instance.MasterSFXVolume;
                        _selected.Play();
                        //End to do play selected button sound
                        if (Singleton.Instance.CurrentStage >= 2)
                        {
                            m_exitGame = true;
                        }
                        else
                        {
                            m_screenManager.ChangeScreen(new UpgradeScreen(m_screenManager));
                        }
                        break;
                    }
                }
            }
            else if (!Singleton.Instance.isKeyboardCursorActive)
            {
                menu_button_scalelist[i] = Vector2.One;
                menu_button_colorlist[i] = Color.White;
                //Check cursor sound played
                cursorselectionPlayedcount--;
                if (cursorselectionPlayedcount == 0)
                {
                    iscursorselectionPlayed = false;
                }
                //End check cursor sound played
            }
        }
Exemple #17
0
        private void BackButton_Click(object sender, EventArgs e)
        {
            click.Play();                                                  //Play Audio Clip

            m_ScreenManager.ChangeScreen(new MenuScreen(m_ScreenManager)); //Pop the current Screen
        }
        public void Update(GameTime gameTime)
        {
            Singleton.Instance._previouskey = Singleton.Instance._currentkey;
            Singleton.Instance._currentkey  = Keyboard.GetState();

            Singleton.Instance._previousmouse = Singleton.Instance._currentmouse;
            Singleton.Instance._currentmouse  = Mouse.GetState();
            //Mouse and Keyboard Detect
            if (Singleton.Instance._currentmouse.Position != Singleton.Instance._previousmouse.Position || Singleton.Instance._currentmouse.LeftButton == ButtonState.Pressed || !Singleton.Instance.isKeyboardCursorActive)
            {
                Singleton.Instance.isMouseActive          = true;
                Singleton.Instance.isKeyboardCursorActive = false;
            }
            else
            {
                Singleton.Instance.isMouseActive = false;
            }
            //End Mouse and Keyboard Detect

            if (Singleton.Instance._currentmouse.Position.X > menu_button_poslist[0].X - _font.MeasureString("OK").X &&
                Singleton.Instance._currentmouse.Position.X <menu_button_poslist[0].X + _font.MeasureString("OK").X &&
                                                             Singleton.Instance._currentmouse.Position.Y> menu_button_poslist[0].Y - _font.MeasureString("OK").Y &&
                Singleton.Instance._currentmouse.Position.Y < menu_button_poslist[0].Y + _font.MeasureString("OK").Y&& Singleton.Instance.isMouseActive)
            //Back button
            {
                KeyboardCursorPos        = menu_button_poslist[0];
                menu_button_colorlist[0] = Color.Red;
                menu_button_scalelist[0] = new Vector2(1.7f, 1.7f);
                keyboardCursorPosCounter = menu_button_poslist.Count - 1;
                //Start to do play selection cursor sound
                cursorselectionPlayedcount++;
                //_cursorselection.IsLooped = false;
                _cursorselection.Volume = Singleton.Instance.MasterSFXVolume;

                if (!iscursorselectionPlayed && cursorselectionPlayedcount > 0)
                {
                    _cursorselection.Play();
                    iscursorselectionPlayed = true;
                }

                //End to do play selection cursor sound
                if (Singleton.Instance._currentmouse.LeftButton == ButtonState.Pressed)
                {
                    menu_button_colorlist[0] = Color.OrangeRed;
                    menu_button_scalelist[0] = new Vector2(1.6f, 1.6f);
                }
                else if (Singleton.Instance._currentmouse.LeftButton == ButtonState.Released && Singleton.Instance._previousmouse.LeftButton == ButtonState.Pressed)
                {
                    menu_button_colorlist[0] = Color.Red;

                    //Do when click Back button
                    if (Singleton.Instance.CurrentStage == 1)
                    {
                        m_screenManager.ChangeScreen(new PlayScreen(m_screenManager));
                    }
                    else if (Singleton.Instance.CurrentStage == 0)
                    {
                        m_screenManager.ChangeScreen(new MenuScreen(m_screenManager));
                    }
                    //Start to do play selected button sound
                    _selected.Volume = Singleton.Instance.MasterSFXVolume;
                    _selected.Play();
                    //End to do play selected button sound
                }
            }
            else
            {
                menu_button_colorlist[0] = Color.White;
                menu_button_scalelist[0] = new Vector2(1.5f, 1.5f);
                //Check cursor sound played
                cursorselectionPlayedcount--;
                if (cursorselectionPlayedcount == 0)
                {
                    iscursorselectionPlayed = false;
                }
                //End check cursor sound played
            }
            cursorselectionPlayedcount = menu_button_colorlist.Count;//Initial check cursor selection
        }
Exemple #19
0
        public void Init(ContentManager content)
        {
            if (Singleton.Instance.CurrentStage >= 2)
            {
                Singleton.Instance.CurrentStage = 0;
                m_screenManager.ChangeScreen(new WinScreen(m_screenManager));
            }

            _gameObjects               = new List <GameObject>();
            skill_button_texturelist   = new List <Texture2D>();
            skill_button_scalelist     = new List <Vector2>();
            skill_button_poslist       = new List <Vector2>();
            nav_button_scalelist       = new List <Vector2>();
            nav_button_poslist         = new List <Vector2>();
            nav_button_colorlist       = new List <Color>();
            _addskill_button_scalelist = new List <Vector2>();
            nav_button_name_list       = new List <string>();
            _skillDes = new string[3, 3];


            _bg2            = content.Load <Texture2D>("sprites/fram1");
            _font           = content.Load <SpriteFont>("font/File");
            _KeyboardCursor = content.Load <Texture2D>("sprites/hitbox");
            _skillwindow    = content.Load <Texture2D>("sprites/newmainskill");
            _addskill       = content.Load <Texture2D>("sprites/newplus");

            _selected        = content.Load <SoundEffect>("sounds/selected_sound").CreateInstance();
            _selected1       = content.Load <SoundEffect>("sounds/selected_sound").CreateInstance();
            _cursorselection = content.Load <SoundEffect>("sounds/selection_sound").CreateInstance();


            switch (Singleton.Instance.CurrentHero)
            {
            case "zeus":
                _bg           = content.Load <Texture2D>("sprites/z1");
                _selectedChar = content.Load <Texture2D>("sprites/sheet_zeus");
                selectedChar  = new GameObject(null,
                                               null,
                                               new CharacterGraphicComponent(content, new Dictionary <string, Animation>()
                {
                    { "Idle", new Animation(_selectedChar, new Rectangle(0, 0, 400, 240), 2) }
                }),
                                               null)
                {
                    Position = new Vector2(Singleton.SCREENWIDTH / 2 - 400, Singleton.SCREENHEIGHT / 2),
                    HP       = 1,
                    IsActive = false
                };
                _gameObjects.Add(selectedChar);

                skill_button_texturelist.Add(content.Load <Texture2D>("sprites/skill_zeus_1"));
                skill_button_texturelist.Add(content.Load <Texture2D>("sprites/skill_zeus_2"));
                skill_button_texturelist.Add(content.Load <Texture2D>("sprites/skill_zeus_3"));

                _skillDes[0, 0] = "lv.1  +2 damage";
                _skillDes[0, 1] = "lv.2  +3 damage";
                _skillDes[0, 2] = "lv.3  +4 damage";

                _skillDes[1, 0] = "lv.1  +2 damage";
                _skillDes[1, 1] = "lv.2  +4 damage";
                _skillDes[1, 2] = "lv.3  +6 damage";

                _skillDes[2, 0] = "lv.1  30% chance";
                _skillDes[2, 1] = "lv.2  40% chance";
                _skillDes[2, 2] = "lv.3  50% chance";
                break;

            case "thor":
                _bg           = content.Load <Texture2D>("sprites/t1");
                _selectedChar = content.Load <Texture2D>("sprites/sheet_thor");
                selectedChar  = new GameObject(null,
                                               null,
                                               new CharacterGraphicComponent(content, new Dictionary <string, Animation>()
                {
                    { "Idle", new Animation(_selectedChar, new Rectangle(0, 0, 400, 240), 2) }
                }),
                                               null)
                {
                    Position = new Vector2(Singleton.SCREENWIDTH / 2 - 400, Singleton.SCREENHEIGHT / 2),
                    HP       = 1,
                    IsActive = false
                };
                _gameObjects.Add(selectedChar);

                skill_button_texturelist.Add(content.Load <Texture2D>("sprites/skill_thor_1"));
                skill_button_texturelist.Add(content.Load <Texture2D>("sprites/skill_thor_2"));
                skill_button_texturelist.Add(content.Load <Texture2D>("sprites/skill_thor_3"));

                _skillDes[0, 0] = "lv.1  +1 armor";
                _skillDes[0, 1] = "lv.2  +2 armor";
                _skillDes[0, 2] = "lv.3  +3 armor";

                _skillDes[1, 0] = "lv.1  +25% size";
                _skillDes[1, 1] = "lv.2  +50% size";
                _skillDes[1, 2] = "lv.3  +100% size";

                _skillDes[2, 0] = "lv.1  10% chance";
                _skillDes[2, 1] = "lv.2  20% chance";
                _skillDes[2, 2] = "lv.3  30% chance";
                break;
            }

            skill_button_scalelist.Add(Vector2.One);
            skill_button_scalelist.Add(Vector2.One);
            skill_button_scalelist.Add(Vector2.One);

            skill_button_poslist.Add(new Vector2(Singleton.SCREENWIDTH / 2 - 50, Singleton.SCREENHEIGHT / 2));
            skill_button_poslist.Add(new Vector2(Singleton.SCREENWIDTH / 2 + 200, Singleton.SCREENHEIGHT / 2));
            skill_button_poslist.Add(new Vector2(Singleton.SCREENWIDTH / 2 + 450, Singleton.SCREENHEIGHT / 2));

            _addskill_button_scalelist.Add(Vector2.One);
            _addskill_button_scalelist.Add(Vector2.One);
            _addskill_button_scalelist.Add(Vector2.One);

            nav_button_poslist.Add(new Vector2(100, Singleton.SCREENHEIGHT - 100));
            nav_button_poslist.Add(new Vector2(300, Singleton.SCREENHEIGHT - 100));
            nav_button_poslist.Add(new Vector2(Singleton.SCREENWIDTH / 2 + 200, Singleton.SCREENHEIGHT - 100));

            nav_button_scalelist.Add(new Vector2(1.5f, 1.5f));
            nav_button_scalelist.Add(new Vector2(1.5f, 1.5f));
            nav_button_scalelist.Add(new Vector2(1.5f, 1.5f));

            nav_button_colorlist.Add(Color.White);
            nav_button_colorlist.Add(Color.White);
            nav_button_colorlist.Add(Color.White);

            nav_button_name_list.Add("Back");
            nav_button_name_list.Add("START");
            nav_button_name_list.Add("Reset skill");

            KeyboardCursorPos = skill_button_poslist[0];

            skillPoint = 2;

            keycursorstate = Keycursorstate.Skill;

            _selected.Volume        = Singleton.Instance.MasterSFXVolume;
            _selected1.Volume       = Singleton.Instance.MasterSFXVolume;
            _cursorselection.Volume = Singleton.Instance.MasterSFXVolume;

            //Console.WriteLine("Upgrade Screen stage " + Singleton.Instance.CurrentStage);
            //Console.WriteLine("Hero value: " + Singleton.Instance.CurrentHero);
            //Console.WriteLine("Stage value: " + Singleton.Instance.CurrentStage);
            //Console.WriteLine("skill 1 value: " + Singleton.Instance.level_sk1);
            //Console.WriteLine("skill 2 value: " + Singleton.Instance.level_sk2);
            //Console.WriteLine("skill 3 value: " + Singleton.Instance.level_sk3);
            //Console.WriteLine("Previous skill 1 value: " + Singleton.Instance.previous_level_sk1);
            //Console.WriteLine("Previous skill 2 value: " + Singleton.Instance.previous_level_sk2);
            //Console.WriteLine("Previous skill 3 value: " + Singleton.Instance.previous_level_sk3);
            //Console.WriteLine("Keyboard status: " + Singleton.Instance.isKeyboardCursorActive);
            //Console.WriteLine("Mouse status: " + Singleton.Instance.isMouseActive);
            //Console.WriteLine("BGM Value: " + Singleton.Instance.MasterBGMVolume);
            //Console.WriteLine("SFX Value: " + Singleton.Instance.MasterSFXVolume);
            //Console.WriteLine("----------------------------------------------------------------------------------------------------");

            previous_level_sk1 = Singleton.Instance.level_sk1;
            previous_level_sk2 = Singleton.Instance.level_sk2;
            previous_level_sk3 = Singleton.Instance.level_sk3;
        }