Esempio n. 1
0
 public SinglePlayerGame(Settings settings)
 {
     playerOneField = new Playfield(GameType.Time, new Vector2(500f, 325f), settings.PlayfieldSize);
     backgroundImage = new Image();
     pauseImage = new Image();
     startText = new Text();
     timer = new Text();
 }
Esempio n. 2
0
 public static void Start(Settings settings)
 {
     HglRuntime.Start(() => new Node
                             {
                                 new ExtensionLoader(),
                                 new Studio(settings)
                             });
 }
Esempio n. 3
0
 public SplitScreenGame(Settings settings)
 {
     playerOneField = new Playfield(settings.GameType, new Vector2(780f, 325f), settings.PlayfieldSize);
     playerTwoField = new Playfield(settings.GameType, new Vector2(300f, 325f), settings.PlayfieldSize);
     backgroundImage = new Image();
     pauseImage = new Image();
     timer = new Text();
 }
Esempio n. 4
0
        public CheckBox(Settings.type settingType, Texture2D graphicChecked, Texture2D graphicUnchecked, int posX, int posY)
        {
            GraphicChecked = graphicChecked;
            GraphicUnchecked = graphicUnchecked;
            SettingType = settingType;

            X = posX;
            Y = posY;

            Size = new Point(196, 149);
            SizeChecked = new Point(221, 149);
            SizeUnchecked = new Point(196, 149);
        }
Esempio n. 5
0
 public NetworkGame(Settings settings, NetPeer peer)
 {
     this.settings = settings;
     this.peer = peer;
     localPlayerField = new Playfield(settings.GameType, new Vector2(780f, 325f), settings.PlayfieldSize);
     remotePlayerField = new RemotePlayfield(settings.GameType, new Vector2(300f, 325f), settings.PlayfieldSize);
     xDiff = localPlayerField.Position.X - remotePlayerField.Position.X;
     backgroundImage = new Image();
     pauseImage = new Image();
     timeText = new Text();
     countdownText = new OutlineText();
     if (peer.ConnectionsCount == 0)
         NewScreen(new NetworkGameSetup(), "No Connection");
     else
         connection = peer.Connections.ToArray()[0];
 }
Esempio n. 6
0
        public override void Initialize(SpriteBatch spriteBatch, Settings settings)
        {
            base.Initialize(spriteBatch, settings);

            isStarted = false;
            playerOneField.Initialize(spriteBatch, settings.Difficulty);
            playerOneField.IsShowing = true;
            playerOneField.SetDebugInfoVisibility(settings.ShowDebugInfo);
            System.Threading.Thread.Sleep(10);
            playerTwoField.Initialize(spriteBatch, settings.Difficulty);
            playerTwoField.IsShowing = true;
            playerTwoField.SetDebugInfoVisibility(settings.ShowDebugInfo);

            playerOneField.BaseDropSpeed = settings.BlockDropSpeed;
            playerTwoField.BaseDropSpeed = settings.BlockDropSpeed;

            pauseImage.Initialize();
            pauseImage.Layer = 0.9f;
            pauseImage.Size = new Vector2(487, 120);
            pauseImage.Position = new Vector2(500, 360);
            pauseImage.IsShowing = false;
            pauseImage.TextureName = TextureNames.game_paused;

            backgroundImage.Initialize();
            backgroundImage.Layer = 0.3f;
            backgroundImage.Size = new Vector2(1000f, 720f);
            backgroundImage.Position = new Vector2(500f, 360f);
            backgroundImage.TextureName = TextureNames.game_background;

            playerOneField.GameOver += new GameOverEventHandler(OnGameOver);
            playerTwoField.GameOver += new GameOverEventHandler(OnGameOver);
            playerOneField.ShouldDropBlackBlocks += ShouldDropBlackBlocks;
            playerTwoField.ShouldDropBlackBlocks += ShouldDropBlackBlocks;

            timeLimit = new TimeSpan(0, settings.PlayTime, 0);
            timer.Initialize();
            timer.Font = FontNames.Segoe_UI_Mono;
            timer.Layer = 0.8f;
            timer.Position = new Vector2(10);
            timer.TextColor = Color.Navy;
            timer.TextValue = "Time left: " + timeLimit.Minutes.ToString() + ":" + timeLimit.Seconds.ToString();
            if (settings.GameType != GameType.Time)
                timer.IsShowing = false;
        }
Esempio n. 7
0
        public override void Initialize(SpriteBatch spriteBatch, Settings settings)
        {
            base.Initialize(spriteBatch, settings);

            isStarted = false;
            playerOneField.Initialize(spriteBatch, settings.Difficulty);
            playerOneField.IsShowing = true;
            playerOneField.BaseDropSpeed = settings.BlockDropSpeed;
            playerOneField.SetDebugInfoVisibility(settings.ShowDebugInfo);

            pauseImage.Initialize();
            pauseImage.Layer = 0.9f;
            pauseImage.Size = new Vector2(487, 120);
            pauseImage.Position = new Vector2(500, 300);
            pauseImage.IsShowing = false;
            pauseImage.TextureName = TextureNames.game_paused;

            backgroundImage.Initialize();
            backgroundImage.Layer = 0.1f;
            backgroundImage.Size = new Vector2(1000f, 720f);
            backgroundImage.Position = new Vector2(500f, 360f);
            backgroundImage.TextureName = TextureNames.game_background;

            startText.Initialize();
            startText.Font = FontNames.Segoe_UI_Mono;
            startText.Position = new Vector2(500, 300);
            startText.TextColor = Color.Navy;
            startText.Layer = 0.9f;
            startText.IsCentered = true;
            startText.Spacing = 6;
            startText.TextValue = "Press Enter to\nstart the game";

            timer.Initialize();
            timer.Font = FontNames.Segoe_UI_Mono;
            timer.IsShowing = true;
            timer.Layer = 0.8f;
            timer.Position = new Vector2(10);
            timer.TextColor = Color.Navy;
            timer.TextValue = "Time played: " + time.Minutes.ToString() + ":" + time.Seconds.ToString();

            playerOneField.GameOver += new GameOverEventHandler(OnGameOver);
        }
Esempio n. 8
0
        public override void LoadContent()
        {
            Manager.Jobs.CreateJob(
                () =>
                {
                    content = new ContentManager(Manager.Game.Services, "Content");
                    sb = new SpriteBatch(Manager.GraphicsDevice);
                    gui = content.Load<Window>("GUI\\Settings");
                    gui.Initialise(null);
                    gui.LoadGraphics(Manager.GraphicsDevice, content);
                    touch = new WP7Touch(gui);
                    touch.EnableTap();
                    settings = new Settings();
                    BindInput();
                    LoadSettings();

                    IsReady = true;
                });
            base.LoadContent();
        }
Esempio n. 9
0
        static Settings PrepSettings()
        {
            if (settings == null)
            {
                    settings = new Settings();
					AutoConfig();		
            }
            else if (!running)
            {
                Init();
                return settings;
            }
            if (!running)
                Init();
            return settings;
        }
Esempio n. 10
0
        public override void Initialize(SpriteBatch spriteBatch, Settings settings)
        {
            base.Initialize(spriteBatch, settings);

            backGroundImage.Initialize();
            backGroundImage.TextureName = TextureNames.game_background;
            backGroundImage.Size = new Vector2(1000f, 720f);
            backGroundImage.Position = backGroundImage.Size / 2;

            gameoverText.Initialize();
            gameoverText.IsCentered = true;
            gameoverText.Font = FontNames.Segoe_UI_Mono;
            gameoverText.Layer = 0.7f;
            gameoverText.Position = new Vector2(500, 150);
            gameoverText.TextColor = Color.MintCream;
            gameoverText.TextValue = "GAME OVER";

            infoText.Initialize();
            infoText.IsCentered = true;
            infoText.Font = FontNames.Segoe_UI_Mono;
            infoText.Layer = 0.7f;
            infoText.Position = new Vector2(500, 300);
            infoText.TextColor = Color.MintCream;
            infoText.TextValue = "Press F10 to return to the menu";

            time.Initialize();
            time.Font = FontNames.Segoe_UI_Mono;
            time.Layer = 0.7f;
            time.IsCentered = true;
            time.Position = new Vector2(500, 425);
            time.TextColor = Color.Red;
            time.TextValue = "Time played: " + results.Time.Minutes.ToString() + ":" + results.Time.Seconds.ToString();

            p1Score.Initialize();
            p1Score.Font = FontNames.Segoe_UI_Mono;
            p1Score.Layer = 0.7f;
            p1Score.IsCentered = true;
            p1Score.Position = new Vector2(500, 500);
            p1Score.TextColor = Color.Red;
            p1Score.TextValue = "Score: " + results.Player1Score.ToString("F0");

            cursor.Initialize();

            if (!results.IsSingleplayer)
            {
                if (results.Player1Won)
                {
                    if (!isNetwork)
                        gameoverText.TextValue = "Player 1 Won!";
                    else
                        gameoverText.TextValue = "You Won!";
                }
                else
                {
                    if (!isNetwork)
                        gameoverText.TextValue = "Player 2 Won!";
                    else
                        gameoverText.TextValue = "You Lost!";
                }

                if (!isNetwork)
                    p1Score.TextValue = "Player 1 Score: " + results.Player1Score.ToString("F0");
                else
                    p1Score.TextValue = "Your score: " + results.Player1Score.ToString("F0");
                p2Score.Initialize();
                p2Score.Font = FontNames.Segoe_UI_Mono;
                p2Score.Layer = 0.7f;
                p2Score.IsCentered = true;
                p2Score.Position = new Vector2(500, 575);
                p2Score.TextColor = Color.Red;
                if (!isNetwork)
                    p2Score.TextValue = "Player 2 Score: " + results.Player2Score.ToString("F0");
                else
                    p2Score.TextValue = "Opponent Score: " + results.Player2Score.ToString("F0");
                p2Score.IsShowing = true;
            }

            if (results.IsSingleplayer)
                foreach (int i in settings.score)
                    if (i < results.Player1Score || i < results.Player2Score)
                        newHighscore = true;

            if (newHighscore)
            {
                List<int> newList = new List<int>();
                newList.AddRange(settings.score);
                newList.Add((int)results.Player1Score);
                newList.Sort();
                newList.Reverse();
                newList.RemoveAt(5);
                int[] newHighscoreList = newList.ToArray();
                settings.score = newHighscoreList;
            }
        }
Esempio n. 11
0
using System;
Esempio n. 12
0
 public Studio(Settings settings, Gui gui)
     : this(settings)
 {
     Init(gui);
 }
Esempio n. 13
0
 public Studio(Settings settings)
 {
     _settings = settings;
 }
Esempio n. 14
0
        protected override void Update(GameTime gameTime)
        {
            if (metaState == MetaState.InitialLoad)
            {
                splashScreen = new SplashScreen();
                metaState = MetaState.SplashScreen;
            }

            // Controls
            //if (GamePad.GetState(Game.playerIndex).Buttons.Back == ButtonState.Pressed)
              //  this.Exit();
            if (HighScoreTracker.device!=null && Keyboard.GetState().IsKeyDown(Keys.Escape))
            {
                HighScoreData data = HighScoreTracker.LoadHighScores();
                data.soundEffectsEnabled = gameSettings.soundEffectsEnabled;
                data.musicEnabled = gameSettings.musicEnabled;
                data.displayHelp = gameSettings.displayControls;
                data.wideScreen = gameSettings.wideScreen;
                data.keyboardControls = gameSettings.keyboardControls;
                HighScoreTracker.SaveHighScores(data);
                Logger.CloseLogger();
                this.Exit();
            }
            if (metaState == MetaState.SplashScreen)
            {
                if (MenuResult.GoToMainMenu == splashScreen.Update(gameTime))
                {
                    base.Initialize();
                    try
                    {
                        if (Guide.IsVisible == true)
                            splashScreen.stillActive = true;
                        else
                            StorageDevice.BeginShowSelector(this.GetDevice, "Select Storage Device");
                    }
                    catch
                    {
                        splashScreen.stillActive = true;
                    }
                }

            }
            if (HighScoreTracker.device != null && HighScoreTracker.device.IsConnected == true)
            {
                showRetry = false;
            }
            if (backToRetry == true || (HighScoreTracker.device != null && showRetry == false && HighScoreTracker.device.IsConnected == false))
            {
                if (Guide.IsVisible == false)
                {
                    try
                    {
                        StorageDevice.BeginShowSelector(this.RetryDevice, "Select Storage Device");
                        backToRetry = false;
                        showRetry = true;
                    }
                    catch
                    {
                    }
                }
            }
            if (metaState == MetaState.SplashScreen && deviceSelected==true)
            {
                HighScoreData data = HighScoreTracker.LoadHighScores();
                gameSettings = new GameSettings();
                gameSettings.displayControls = data.displayHelp;
                gameSettings.musicEnabled = data.musicEnabled;
                gameSettings.soundEffectsEnabled = data.soundEffectsEnabled;
                gameSettings.fullScreen = data.fullScreen;
                gameSettings.wideScreen = data.wideScreen;
                gameSettings.keyboardControls = data.keyboardControls;
                currentSettings = new Settings();
                p1engine = new Engine(-1);
                mainMenu = new MainMenu();
                pauseMenu = new PauseMenu();
                summaryMenu = new SummaryMenu(false);
                gameOverMenu = new GameOverMenu();
                selectMenu = new LevelSelectMenu();
                tutorialLauncher = new TutorialLauncher();
                settingsMenu = new Menu(MenuClass.SettingsMenu);

                currentSettings = new Settings();
                p1engine = new Engine(-1);
                mainMenu = new MainMenu();
                pauseMenu = new PauseMenu();
                summaryMenu = new SummaryMenu(false);
                gameOverMenu = new GameOverMenu();
                selectMenu = new LevelSelectMenu();
                tutorialLauncher = new TutorialLauncher();
                settingsMenu = new Menu(MenuClass.SettingsMenu);

                if(Guide.IsTrialMode)
                    mainMenu.AddMenuItem(MenuResult.GoToTutorial, "Tutorial", "Learn to play Jellyfish, MD");
                mainMenu.AddMenuItem(MenuResult.GoToTimeAttack, "Emergency Room", "Score as many points as you can within the \ntime limit.");
                mainMenu.AddMenuItem(MenuResult.GoToMoveChallenge, "Operation", "Score as many points as you can with a \nlimited number of moves.");
                mainMenu.AddMenuItem(MenuResult.GoToPuzzle, "Challenge", "Solve a series of unique challenges.");
                if(Guide.IsTrialMode==false)
                    mainMenu.AddMenuItem(MenuResult.GoToTutorial, "Tutorial", "Learn to play Jellyfish, MD");
                mainMenu.AddMenuItem(MenuResult.BuyFullGame, "Unlock Full Game", "Purchase the full version of Jellyfish, MD");
                mainMenu.AddMenuItem(MenuResult.GoToJellyfishCity, "Jellyfish Parade", "Check in on your former patients!");
                mainMenu.AddMenuItem(MenuResult.GoToSettings, "Settings", "Change settings for Jellyfish, MD");
                mainMenu.AddMenuItem(MenuResult.Quit, "Quit", "Quit Jellyfish, MD??");
                gameOverMenu.AddMenuItem(MenuResult.StartTimeAttack, "Replay");
                gameOverMenu.AddMenuItem(MenuResult.GoToMainMenu, "Main Menu");
                gameOverMenu.AddMenuItem(MenuResult.GoToLevelSelect, "Level Select");
                settingsMenu.AddMenuItem(MenuResult.GoToMainMenu, "Return to Menu");
                settingsMenu.AddMenuItem(MenuType.SoundToggle, "Sound Effects");
                settingsMenu.AddMenuItem(MenuType.MusicToggle, "Music");
                settingsMenu.AddMenuItem(MenuType.HelpToggle, "Help Overlay");

                #if WINDOWS
                    settingsMenu.AddMenuItem(MenuType.FullScreenToggle, "Full Screen");
                    settingsMenu.AddMenuItem(MenuType.WideScreenToggle, "Wide Screen");
                #endif
                UpdateResolution();

                metaState = MetaState.MainMenu;
            }
            if (metaState == MetaState.GamePlay && IsActive==true)
            {
                GameStopCause cause = p1engine.Update(gameTime);
                if (cause == GameStopCause.PAUSE)
                {
                    pauseMenu = new PauseMenu();
                    metaState = MetaState.Paused;
                }
                if (cause == GameStopCause.END)
                {
                    gameOverMenu.score = p1engine.currentScore;
                    gameOverMenu.level = currentSettings.level;
                    gameOverMenu.state = GameOverMenuState.SCORECHECK;
                    summaryMenu = new SummaryMenu(true);
                    if(currentSettings.mode==GameMode.MoveChallenge)
                        summaryMenu.text = "Looks like you're out of moves, Doctor! \nLet's see how you did...";
                    if(currentSettings.mode == GameMode.TimeAttack)
                        summaryMenu.text = "Time's up, Doctor! Let's see \nhow you did...";
                    MusicControl.PlayMenuMusic();
                    metaState = MetaState.Summary;
                }
                if (cause == GameStopCause.WIN)
                {
                    gameOverMenu.score = Engine.clock.timeElapsed;
                    gameOverMenu.level = currentSettings.level;
                    gameOverMenu.state = GameOverMenuState.SCORECHECK;
                    summaryMenu = new SummaryMenu(true);
                    summaryMenu.text = "Way to go, Doctor! You did it!";
                    metaState = MetaState.Summary;
                    MusicControl.PlayMenuMusic();
                }
                if (cause == GameStopCause.TUTORIAL_TEXT)
                {
                    TutorialStage.phase = TutorialPhase.Intro;
                    summaryMenu = new SummaryMenu(true);
                    summaryMenu.text = TutorialStage.IntroText();
                    if (summaryMenu.text == null)
                        metaState = MetaState.GamePlay;
                    summaryMenu.state = SummaryMenuState.READY;

                    metaState = MetaState.Summary;
                }
                if (cause == GameStopCause.TUTORIAL_PASS)
                {
                    TutorialStage.phase = TutorialPhase.Pass;
                    String text = TutorialStage.SuccessText();
                    summaryMenu = new SummaryMenu(true);
                    summaryMenu.text = text;
                    metaState = MetaState.Summary;
                }
                if (cause == GameStopCause.TUTORIAL_FAIL)
                {
                    TutorialStage.phase = TutorialPhase.Fail;
                    String text = TutorialStage.FailureText();
                    summaryMenu = new SummaryMenu(false);
                    summaryMenu.text = text;
                    metaState = MetaState.Summary;
                }
                if (cause == GameStopCause.LOSE_STUCK)
                {
                    summaryMenu = new SummaryMenu(false);
                    summaryMenu.text = "Oh no! Looks like you're stuck! Try to be more \ncareful next time!";
                    gameOverMenu.state = GameOverMenuState.READY;
                    metaState = MetaState.Summary;
                }
                if (cause == GameStopCause.LOSE_ERROR)
                {
                    summaryMenu = new SummaryMenu(false);
                    summaryMenu.text = "Oh no! You burst a " + currentSettings.dangerColorDisplay + " bubble! Try to be more \ncareful next time!";
                    gameOverMenu.state = GameOverMenuState.READY;
                    metaState = MetaState.Summary;
                }
            }
            else if (metaState == MetaState.Paused)
            {
                MenuResult result = pauseMenu.Update(gameTime);
                if (result == MenuResult.GoToMainMenu)
                {
                    TutorialStage.phase = TutorialPhase.None;
                    metaState = MetaState.MainMenu;
                }
                if (result == MenuResult.ResumeGame)
                {
                    summaryMenu.state = SummaryMenuState.NURSEIN;
                    metaState = MetaState.GamePlay;
                }
                if (result == MenuResult.GoToLevelSelect)
                {
                    MusicControl.PlayMenuMusic();
                    if (currentSettings.mode == GameMode.TimeAttack)
                        metaState = MetaState.Settings_TimeAttack;
                    if (currentSettings.mode == GameMode.Puzzle)
                        metaState = MetaState.Settings_Puzzle;
                    if (currentSettings.mode == GameMode.MoveChallenge)
                        metaState = MetaState.Settings_Move;
                }
                if (result == MenuResult.Replay)
                {
                    p1engine = new Engine(-1);
                    metaState = MetaState.GamePlay;
                }
            }
            else if (metaState == MetaState.Summary)
            {
                if (Game.currentSettings.mode==GameMode.Puzzle && gameOverMenu.state != GameOverMenuState.SCORECHECK)
                {
                    Engine.clock.Update(gameTime);
                }
                MenuResult result = summaryMenu.Update(gameTime);
                if (TutorialStage.phase != TutorialPhase.None && TutorialStage.introIndex-1 == TutorialStage.controlLessonIndex)
                    p1engine.Update(gameTime);
                if (result == MenuResult.GoToMainMenu)
                {
                    TutorialStage.phase = TutorialPhase.None;
                    metaState = MetaState.MainMenu;
                }
                if (result == MenuResult.Replay)
                {
                    if (TutorialStage.phase == TutorialPhase.Fail)
                    {
                        p1engine.LoadTutorial(TutorialStage.lessonIndex);
                        TutorialStage.phase = TutorialPhase.Intro;
                        TutorialStage.failureIndex = 0;
                        TutorialStage.introIndex = 0;
                        TutorialStage.successIndex = 0;
                        p1engine.firstResume = true;
                        metaState = MetaState.GamePlay;
                    }
                    else if (TutorialStage.phase == TutorialPhase.Pass)
                    {
                        p1engine.LoadTutorial(TutorialStage.lessonIndex);
                        TutorialStage.phase = TutorialPhase.Intro;
                        TutorialStage.failureIndex = 0;
                        TutorialStage.introIndex = 0;
                        TutorialStage.successIndex = 0;
                        p1engine.firstResume = false;
                        metaState = MetaState.GamePlay;
                    }
                    else
                    {
                        p1engine = new Engine(-1);
                        MusicControl.PlayGameMusic();
                        metaState = MetaState.GamePlay;
                    }
                }
                if (result == MenuResult.Undo)
                {
                    p1engine.Back();
                    metaState = MetaState.GamePlay;
                }
                if (result == MenuResult.GoToResults)
                {
                    if (currentSettings.mode == GameMode.Tutorial)
                    {
                        if (TutorialStage.phase == TutorialPhase.Intro)
                        {
                            metaState = MetaState.GamePlay;
                        }
                        else if (TutorialStage.phase == TutorialPhase.Pass)
                        {
                            TutorialStage.lessonIndex++;
                            if (TutorialStage.lessonIndex == TutorialStage.maxLesson)
                            {
                                TutorialStage.phase = TutorialPhase.None;
                                summaryMenu = new SummaryMenu(false);
                                metaState = MetaState.MainMenu;
                            }
                            else
                            {
                                //p1engine = new Engine(TutorialStage.lessonIndex);
                                p1engine.LoadTutorial(TutorialStage.lessonIndex);
                                p1engine.firstResume = true;
                                //p1engine.gameState = State.VANISH;
                                TutorialStage.phase = TutorialPhase.Intro;
                                metaState = MetaState.GamePlay;
                            }
                        }
                        else
                        {
                        }
                    }
                    else
                    {
                        metaState = MetaState.GameOver_TimeAttack;
                    }
                }
                if (result == MenuResult.GoToLevelSelect)
                {
                    MusicControl.PlayMenuMusic();
                    if (currentSettings.mode == GameMode.TimeAttack)
                        metaState = MetaState.Settings_TimeAttack;
                    if (currentSettings.mode == GameMode.Puzzle)
                        metaState = MetaState.Settings_Puzzle;
                    if (currentSettings.mode == GameMode.MoveChallenge)
                        metaState = MetaState.Settings_Move;
                }
            }
            else if (metaState == MetaState.Settings_TimeAttack || metaState == MetaState.Settings_Puzzle || metaState == MetaState.Settings_Move)
            {
                MenuResult result = selectMenu.Update(gameTime);
                if (result == MenuResult.GoToMainMenu)
                {
                    System.Threading.Thread.Sleep(100);
                    metaState = MetaState.MainMenu;
                }
                if (result == MenuResult.StartTimeAttack)
                {
                    currentSettings = selectMenu.GetCurrentSettings();
                    currentSettings.level = selectMenu.currentLevel;
                    p1engine = new Engine(-1);
                    MusicControl.PlayGameMusic();
                    metaState = MetaState.GamePlay;
                }
            }
            else if (metaState == MetaState.GameOver_TimeAttack)
            {
                if (Engine.mode == ControlMode.AUTOMATED)
                {
                    p1engine = new Engine(-1);
                    metaState = MetaState.GamePlay;
                }
                else
                {
                    MenuResult result = gameOverMenu.Update(gameTime);
                    if (result == MenuResult.GoToMainMenu)
                    {
                        metaState = MetaState.MainMenu;
                        System.Threading.Thread.Sleep(100);
                    }
                    if (result == MenuResult.GoToLevelSelect)
                    {
                        selectMenu = new LevelSelectMenu();
                        selectMenu.state = LevelSelectMenu.SelectMenuState.LOAD;

                        if (currentSettings.mode == GameMode.MoveChallenge)
                        {
                            metaState = MetaState.Settings_Move;
                            selectMenu.cooldown = 250;
                            selectMenu.currentLevel = gameSettings.moveChallengeViewLevel;
                            selectMenu.levelList = SettingsLoader.LoadMoveCountLevels();
                            currentSettings.mode = GameMode.MoveChallenge;
                        }
                        if (currentSettings.mode == GameMode.TimeAttack)
                        {
                            metaState = MetaState.Settings_TimeAttack;
                            selectMenu.cooldown = 250;
                            selectMenu.currentLevel = gameSettings.timeAttackViewLevel;
                            selectMenu.levelList = SettingsLoader.LoadTimeAttackLevels();
                            currentSettings.mode = GameMode.TimeAttack;
                        }
                        if (currentSettings.mode == GameMode.Puzzle)
                        {
                            metaState = MetaState.Settings_Puzzle;
                            selectMenu.cooldown = 250;
                            selectMenu.levelList = SettingsLoader.LoadPuzzleLevels();
                            selectMenu.currentLevel = gameSettings.puzzleViewLevel;
                            currentSettings.mode = GameMode.Puzzle;
                        }
                    }
                    if (result == MenuResult.StartTimeAttack)
                    {
                        p1engine = new Engine(-1);
                        MusicControl.PlayGameMusic();
                        metaState = MetaState.GamePlay;
                    }
                }
            }
            else if (metaState == MetaState.Settings)
            {
                MenuResult result = settingsMenu.Update(gameTime);
                if (result == MenuResult.GoToMainMenu)
                {
                    metaState = MetaState.MainMenu;
                }
            }
            else if (metaState == MetaState.JellyfishCity)
            {
                MenuResult result = jellyCity.Update(gameTime);
                if (result == MenuResult.GoToMainMenu)
                {
                    metaState = MetaState.MainMenu;
                }
            }
            else if (metaState == MetaState.Tutorial)
            {
                MenuResult result = tutorialLauncher.Update(gameTime);
                if (result == MenuResult.StartTutorial)
                {
                    summaryMenu.state = SummaryMenuState.READY;
                    currentSettings = SettingsLoader.Tutorial();
                    p1engine = new Engine(0);
                    p1engine.firstResume = true;
                    metaState = MetaState.GamePlay;

                }
            }
            else if (metaState == MetaState.MainMenu)
            {
                MenuResult result = mainMenu.Update(gameTime);
                if (result == MenuResult.ReturnToSplashScreen)
                {
                    HighScoreData data = HighScoreTracker.LoadHighScores();
                    data.soundEffectsEnabled = gameSettings.soundEffectsEnabled;
                    data.musicEnabled = gameSettings.musicEnabled;
                    data.displayHelp = gameSettings.displayControls;
                    data.fullScreen = gameSettings.fullScreen;
                    data.wideScreen = gameSettings.wideScreen;
                    data.keyboardControls = gameSettings.keyboardControls;
                    HighScoreTracker.SaveHighScores(data);

                    deviceSelected = false;
                    HighScoreTracker.device = null;
                    if (HighScoreTracker.container != null)
                        HighScoreTracker.container.Dispose();
                    HighScoreTracker.container = null;
                    HighScoreTracker.cachedData = null;
                    splashScreen = new SplashScreen();
                    metaState = MetaState.SplashScreen;
                }
                if (result == MenuResult.BuyFullGame)
                {
                    try { Guide.ShowMarketplace(Game.playerIndex); }
                    catch (GamerPrivilegeException)
                    {
                        Guide.BeginShowMessageBox("Oops!",
                            "The current controller is either not signed in or is unable to purchase games on XBox Live.",
                            new string[] { "OK" },
                            0, MessageBoxIcon.None, null, null);
                    }
                    catch
                    {
                    }

                }
                if (result == MenuResult.GoToSettings)
                {
                    metaState = MetaState.Settings;
                }
                if (result == MenuResult.GoToTimeAttack)
                {
                    metaState = MetaState.Settings_TimeAttack;
                    selectMenu = new LevelSelectMenu();
                    selectMenu.levelList = SettingsLoader.LoadTimeAttackLevels();
                    selectMenu.currentLevel = gameSettings.timeAttackViewLevel;
                    selectMenu.state = LevelSelectMenu.SelectMenuState.LOAD;
                    currentSettings.mode = GameMode.TimeAttack;
                    System.Threading.Thread.Sleep(100);
                }
                if (result == MenuResult.GoToPuzzle)
                {
                    metaState = MetaState.Settings_Puzzle;
                    selectMenu = new LevelSelectMenu();
                    selectMenu.levelList = SettingsLoader.LoadPuzzleLevels();
                    selectMenu.state = LevelSelectMenu.SelectMenuState.LOAD;
                    selectMenu.currentLevel = gameSettings.puzzleViewLevel;
                    currentSettings.mode = GameMode.Puzzle;
                    System.Threading.Thread.Sleep(100);
                }
                if (result == MenuResult.GoToJellyfishCity)
                {
                    metaState = MetaState.JellyfishCity;
                    jellyCity = new JellyfishCity();
                }
                if (result == MenuResult.GoToTutorial)
                {
                    metaState = MetaState.Tutorial;
                    TutorialStage.phase = TutorialPhase.Intro;
                    TutorialStage.lessonIndex = 0;
                    TutorialStage.loaded = false;
                    tutorialLauncher = new TutorialLauncher();
                }
                if (result == MenuResult.GoToMoveChallenge)
                {
                    metaState = MetaState.Settings_Move;
                    selectMenu = new LevelSelectMenu();
                    selectMenu.levelList = SettingsLoader.LoadMoveCountLevels();
                    selectMenu.state = LevelSelectMenu.SelectMenuState.LOAD;
                    selectMenu.currentLevel = gameSettings.moveChallengeViewLevel;
                    currentSettings.mode = GameMode.TimeAttack;
                }
                if (result == MenuResult.StartCollect)
                {
                    p1engine = new Engine(-1);
                    metaState = MetaState.GamePlay;
                }
                if (result == MenuResult.StartPuzzle)
                {
                    p1engine = new Engine(-1);

                    metaState = MetaState.GamePlay;
                }
                if (result == MenuResult.GoToSurvival)
                {
                    metaState = MetaState.GamePlay;
                }
                if (result == MenuResult.Quit)
                {
                    HighScoreData data = HighScoreTracker.LoadHighScores();
                    data.soundEffectsEnabled = gameSettings.soundEffectsEnabled;
                    data.musicEnabled = gameSettings.musicEnabled;
                    data.displayHelp = gameSettings.displayControls;
                    data.fullScreen = gameSettings.fullScreen;
                    data.wideScreen = gameSettings.wideScreen;
                    data.keyboardControls = gameSettings.keyboardControls;
                    HighScoreTracker.SaveHighScores(data);
                    Logger.CloseLogger();
                    this.Exit();
                }

            }

            base.Update(gameTime);
        }
Esempio n. 15
0
 private static Settings PrepSettings()
 {
   if (SdlGamePad.settings == null)
   {
     SdlGamePad.settings = new Settings();
     SdlGamePad.AutoConfig();
   }
   else if (!SdlGamePad.running)
   {
     SdlGamePad.Init();
     return SdlGamePad.settings;
   }
   if (!SdlGamePad.running)
     SdlGamePad.Init();
   return SdlGamePad.settings;
 }
Esempio n. 16
0
        public override void Initialize(SpriteBatch spriteBatch, Settings localSettings)
        {
            this.spriteBatch = spriteBatch;
            mouseVisible = false;
            drawables = new List<NotTetris.Graphics.IDrawable>();

            updateTime = 0;
            updateInterval = 50;
            isStarted = false;
            remotePlayerDown = false;

            #region Initialize playfields
            localPlayerField.Initialize(spriteBatch, settings.Difficulty);
            localPlayerField.IsShowing = true;
            localPlayerField.SetDebugInfoVisibility(localSettings.ShowDebugInfo);
            System.Threading.Thread.Sleep(10);
            remotePlayerField.Initialize(spriteBatch, settings.Difficulty);
            remotePlayerField.IsShowing = true;
            remotePlayerField.SetDebugInfoVisibility(localSettings.ShowDebugInfo);

            localPlayerField.GameOver += OnGameOver;
            localPlayerField.NewNextCluster += localPlayerField_NewNextCluster;
            localPlayerField.ClusterDrop += localPlayerField_ClusterDrop;
            localPlayerField.ClusterSeparate += localPlayerField_ClusterSeparate;
            if (settings.GameType == GameType.Normal)
            {
                localPlayerField.BlackBlocksCreated += localPlayerField_BlackBlocksCreated;
                localPlayerField.ShouldDropBlackBlocks += localPlayerField_RemoteShouldDropBlackBlocks;
                localPlayerField.BlackBlockCollision += localPlayerField_BlackBlockCollision;
            }

            NetOutgoingMessage msg = peer.CreateMessage();
            msg.Write("init");
            msg.Write((int)localPlayerField.CurrentCluster.FirstBlock.BlockType);
            msg.Write((int)localPlayerField.CurrentCluster.SecondBlock.BlockType);
            msg.Write((int)localPlayerField.NextCluster.FirstBlock.BlockType);
            msg.Write((int)localPlayerField.NextCluster.SecondBlock.BlockType);
            peer.SendMessage(msg, connection, NetDeliveryMethod.ReliableOrdered);
            ListenForInit();

            localPlayerField.BaseDropSpeed = settings.BlockDropSpeed;
            remotePlayerField.BaseDropSpeed = settings.BlockDropSpeed;
            #endregion

            #region Initialize images & text
            pauseImage.Initialize();
            pauseImage.Layer = 0.9f;
            pauseImage.Size = new Vector2(487, 120);
            pauseImage.Position = WINDOWSIZE * 0.5f;
            pauseImage.IsShowing = false;
            pauseImage.TextureName = TextureNames.game_paused;

            backgroundImage.Initialize();
            backgroundImage.Layer = 0.3f;
            backgroundImage.Size = WINDOWSIZE;
            backgroundImage.Position = WINDOWSIZE * 0.5f;
            backgroundImage.TextureName = TextureNames.game_background;

            timeLimit = new TimeSpan(0, settings.PlayTime, 0);
            timeText.Initialize();
            timeText.Font = FontNames.Segoe_UI_Mono;
            timeText.Layer = 0.8f;
            timeText.Position = new Vector2(10);
            timeText.TextColor = Color.Navy;
            timeText.TextValue = "Time left: " + timeLimit.Minutes.ToString() + ":" + timeLimit.Seconds.ToString();

            if (settings.GameType != GameType.Time)
                timeText.IsShowing = false;

            countdownValue = 5.0f;
            countdownText.Initialize();
            countdownText.Font = FontNames.Segoe_UI_Mono_Huge;
            countdownText.Layer = 0.9f;
            countdownText.Position = WINDOWSIZE * 0.5f - new Vector2(0f, 50f);
            countdownText.IsCentered = true;
            countdownText.TextColor = Color.Navy;
            countdownText.OutlineColor = Color.White;
            countdownText.OutlineSize = 3f;
            countdownText.TextValue = Convert.ToString(countdownValue);
            #endregion
        }