public override void render(SpriteBatch sb)
        {
            sb.Begin(SpriteSortMode.Immediate, BlendState.NonPremultiplied, SamplerState.PointClamp, null, null, null, Matrix.Identity);

            sb.Draw(Game1.whitePixel, new Vector2(-400), null, Color.Black, 0.0f, Vector2.Zero, new Vector2(9999), SpriteEffects.None, 0.5f);

            Vector2 linesOffset = new Vector2(CampaignLobbyState.lineOffset);

            for (int i = -6; i < GlobalGameConstants.GameResolutionWidth / 16 + 8; i++)
            {
                drawLine(sb, new Vector2(i * 16, -16) + linesOffset, GlobalGameConstants.GameResolutionHeight + 32, (float)Math.PI / 2, new Color(1, 0, 1, 0.1f), 1.0f);
            }
            for (int i = -6; i < GlobalGameConstants.GameResolutionHeight / 16 + 8; i++)
            {
                drawLine(sb, new Vector2(-16, i * 16) + linesOffset, GlobalGameConstants.GameResolutionWidth + 32, 0, new Color(1, 0, 1, 0.1f), 1.0f);
            }

            sb.Draw(Game1.whitePixel, XboxTools.GetTitleSafeArea(AnimationLib.GraphicsDevice, 0.8f), new Color(0.0f, 0.75f, 1.0f, 0.1f));

            sb.DrawString(Game1.tenbyFive24, "Level Complete", new Vector2(GlobalGameConstants.GameResolutionWidth / 2, 100) - (Game1.tenbyFive24.MeasureString("Level Complete") / 2), Color.White);

            // time
            sb.DrawString(Game1.tenbyFive14, message_timePassed, new Vector2(GlobalGameConstants.GameResolutionWidth / 3, 200) - (Game1.tenbyFive14.MeasureString(message_timePassed) / 2), Color.White);
            sb.DrawString(Game1.tenbyFive14, message_totalTimePassed, new Vector2((GlobalGameConstants.GameResolutionWidth / 3) * 2, 200) - (Game1.tenbyFive14.MeasureString(message_totalTimePassed) / 2), Color.White);
            sb.DrawString(Game1.tenbyFive24, view_timePassed, new Vector2(GlobalGameConstants.GameResolutionWidth / 3, 200) - (Game1.tenbyFive14.MeasureString(view_timePassed) / 2) + new Vector2(0, 24), Color.White);
            sb.DrawString(Game1.tenbyFive24, view_timeElapsed, new Vector2((GlobalGameConstants.GameResolutionWidth / 3) * 2, 200) - (Game1.tenbyFive14.MeasureString(view_timeElapsed) / 2) + new Vector2(0, 24), Color.White);

            // coins
            sb.DrawString(Game1.tenbyFive14, message_levelCoins, new Vector2(GlobalGameConstants.GameResolutionWidth / 3, 265) - (Game1.tenbyFive14.MeasureString(message_levelCoins) / 2), Color.White);
            sb.DrawString(Game1.tenbyFive14, message_totalCoins, new Vector2((GlobalGameConstants.GameResolutionWidth / 3) * 2, 265) - (Game1.tenbyFive14.MeasureString(message_totalCoins) / 2), Color.White);
            sb.DrawString(Game1.tenbyFive24, view_levelCoins, new Vector2(GlobalGameConstants.GameResolutionWidth / 3, 265) - (Game1.tenbyFive14.MeasureString(view_levelCoins) / 2) + new Vector2(0, 24), Color.White);
            sb.DrawString(Game1.tenbyFive24, view_totalCoins, new Vector2((GlobalGameConstants.GameResolutionWidth / 3) * 2, 265) - (Game1.tenbyFive14.MeasureString(view_totalCoins) / 2) + new Vector2(0, 24), Color.White);

            drawBox(sb, new Rectangle((GlobalGameConstants.GameResolutionWidth / 8), 350, 550, 200), Color.White, 2);
            sb.DrawString(Game1.tenbyFive24, "Contract", new Vector2((GlobalGameConstants.GameResolutionWidth / 8) + 350 / 2 + 30, 350), Color.White);
            sb.DrawString(Game1.tenbyFive14, GameCampaign.levelMap[GameCampaign.PlayerLevelProgress, GameCampaign.PlayerFloorHeight].contract.contractMessage, new Vector2((GlobalGameConstants.GameResolutionWidth / 8) + 15, 385), Color.White);
            if (GameCampaign.currentContract.type == GameCampaign.GameContract.ContractType.KillQuest)
            {
                sb.DrawString(Game1.tenbyFive24, GameCampaign.currentContract.killCount + " kills made", new Vector2((GlobalGameConstants.GameResolutionWidth / 8) + 350 / 2 + 20, 500), Color.White);
            }

            for (int i = 0; i < GameCampaign.levelMap.GetLength(0); i++)
            {
                for (int j = 0; j < GameCampaign.levelMap.GetLength(1); j++)
                {
                    if (!GameCampaign.levelMap[i, j].visible)
                    {
                        continue;
                    }

                    if (j == GameCampaign.floorProgress[i])
                    {
                        sb.Draw(Game1.whitePixel, new Vector2(755, 390) + new Vector2(64 * i, 64 * j), null, Color.White, 0.0f, Vector2.Zero, new Vector2(32), SpriteEffects.None, 0.5f);
                    }
                    else
                    {
                        sb.Draw(Game1.whitePixel, new Vector2(755, 390) + new Vector2(64 * i, 64 * j), null, new Color(1, 1, 1, 0.5f), 0.0f, Vector2.Zero, new Vector2(32), SpriteEffects.None, 0.5f);
                    }
                }
            }

            for (int i = 0; i < GameCampaign.PlayerLevelProgress; i++)
            {
                float length = GameCampaign.floorProgress[i + 1] == GameCampaign.floorProgress[i] ? 64 : 90.5f;

                drawLine(sb, new Vector2(755, 390) + new Vector2(64 * i, 64 * GameCampaign.floorProgress[i]) + new Vector2(16), length, (float)(Math.Atan2(GameCampaign.floorProgress[i + 1] - GameCampaign.floorProgress[i], 1)), Color.Red, 2.0f);
            }

            if (screenTimePassed > numberTickingDuration)
            {
                sb.DrawString(Game1.tenbyFive24, "Press A to continue", new Vector2(GlobalGameConstants.GameResolutionWidth / 2, 596) - (Game1.tenbyFive24.MeasureString("Press A to continue") / 2), Color.Lerp(Color.White, Color.Transparent, (float)(Math.Sin(screenTimePassed / 500) * 0.5f) + 0.5f));
            }

            sb.End();
        }
        private void renderGUI(Microsoft.Xna.Framework.Graphics.SpriteBatch sb, float scale)
        {
            Texture2D tex  = TextureLib.getLoadedTexture("wireFramePieces.png");
            Texture2D tex2 = TextureLib.getLoadedTexture("roguefakewireframe.png");

            sb.Begin(SpriteSortMode.Immediate, BlendState.NonPremultiplied);
            sb.Draw(Game1.whitePixel, new Vector2(-99999, -99999) / 2, null, Color.Black, 0.0f, Vector2.Zero, new Vector2(99999, 99999), SpriteEffects.None, 0.0f);
            Vector2 linesOffset = new Vector2(CampaignLobbyState.lineOffset);

            for (int i = -6; i < GlobalGameConstants.GameResolutionWidth / 16 + 8; i++)
            {
                drawLine(sb, new Vector2(i * 16, -16) + linesOffset, GlobalGameConstants.GameResolutionHeight + 32, (float)Math.PI / 2, new Color(1, 0, 1, 0.1f), 1.0f);
            }
            for (int i = -6; i < GlobalGameConstants.GameResolutionHeight / 16 + 8; i++)
            {
                drawLine(sb, new Vector2(-16, i * 16) + linesOffset, GlobalGameConstants.GameResolutionWidth + 32, 0, new Color(1, 0, 1, 0.1f), 1.0f);
            }
            sb.End();

            sb.Begin(SpriteSortMode.Immediate, BlendState.NonPremultiplied, SamplerState.PointClamp, null, null, null, Matrix.CreateTranslation(-575, -100, 0) * Matrix.CreateScale(1.0f, cursorAnimationTime > 500f ? 1.0f : (cursorAnimationTime / 500f), 1.0f) * Matrix.CreateScale(scale));

            sb.Draw(wireframe, new Vector2(-150, 0), null, Color.Lerp(Color.DarkCyan, Color.Black, 0.375f + (0.025f * (float)Math.Sin(cursorAnimationTime / 10))), 0.0f, Vector2.Zero, new Vector2(1), SpriteEffects.FlipHorizontally, 0.0f);
            sb.Draw(tex2, new Vector2(575, 100) + new Vector2(130, 220), null, Color.White, 0.0f, Vector2.Zero, new Vector2(0.046f, 0.0666f), SpriteEffects.None, 0.0f);

            for (int i = 0; i < GameCampaign.levelMap.GetLength(0); i++)
            {
                for (int j = 0; j < GameCampaign.levelMap.GetLength(1); j++)
                {
                    if (!GameCampaign.levelMap[i, j].visible)
                    {
                        continue;
                    }

                    if (i == 0 && j == 1)
                    {
                        sb.DrawString(Game1.tenbyFive10, "HANGAR", new Vector2(i * 128, j * 96) + drawMapTestOffset - new Vector2(0, 18), Color.Cyan);
                    }
                    else if (i == 5 && j == 1)
                    {
                        sb.DrawString(Game1.tenbyFive10, "BRIDGE", new Vector2(i * 128, j * 96) + drawMapTestOffset - new Vector2(0, 18), Color.Cyan);
                    }
                    else
                    {
                        sb.DrawString(Game1.tenbyFive10, "ZONE " + i + (j == 0 ? 'A' : ((j == 1) ? 'B' : 'C')), new Vector2(i * 128, j * 96) + drawMapTestOffset - new Vector2(0, 18), Color.Cyan);
                    }

                    if (i == GameCampaign.PlayerLevelProgress && j == GameCampaign.PlayerFloorHeight)
                    {
                        sb.Draw(tex, new Vector2(i * 128, j * 96) + drawMapTestOffset, new Rectangle(48, 0, 48, 48), Color.Blue);
                    }
                    else if (i == selectedLevelX && j == selectedLevelY)
                    {
                        sb.Draw(tex, new Vector2(i * 128, j * 96) + drawMapTestOffset, new Rectangle(0, 48, 48, 48), Color.Green);
                    }
                    else
                    {
                        sb.Draw(tex, new Vector2(i * 128, j * 96) + drawMapTestOffset, new Rectangle(0, 48, 48, 48), Color.Cyan);
                    }
                }
            }

            if (state == LevelSelectStateState.Idle)
            {
                drawLine(sb, drawMapTestOffset + new Vector2(24) + new Vector2(GameCampaign.PlayerLevelProgress * 128, GameCampaign.PlayerFloorHeight * 96), GameCampaign.PlayerFloorHeight == selectedLevelY ? 128f : 155f, 0.85f * (float)((-Math.PI / 2) + Math.Atan2(selectedLevelX - GameCampaign.PlayerLevelProgress, GameCampaign.PlayerFloorHeight - selectedLevelY)), Color.Gray, 3.5f);
            }

            sb.Draw(tex, cursorPosition + new Vector2(24), new Rectangle(0, 0, 48, 48), Color.Red, 0.0f, new Vector2(24), 1 + (0.2f * (float)Math.Sin(cursorAnimationTime / 250f)), SpriteEffects.None, 0.5f);

            Rectangle rx = XboxTools.GetTitleSafeArea(AnimationLib.GraphicsDevice, 0.8f);

            rx.X += 575;
            rx.Y += 100;

            sb.Draw(Game1.whitePixel, rx, new Color(0.0f, 0.75f, 1.0f, 0.1f));

            if (GameCampaign.PlayerLevelProgress >= GlobalGameConstants.LevelAliensAppearAt - 1)
            {
                drawBox(sb, new Rectangle(755, 500, 305, 200), Color.Cyan, 2);
                sb.DrawString(Game1.testComputerFont, "\n\nPrisoner Rates: " + Math.Round(100 * (GameCampaign.levelMap[selectedLevelX, selectedLevelY].prisonerRates / (GameCampaign.levelMap[selectedLevelX, selectedLevelY].prisonerRates + GameCampaign.levelMap[selectedLevelX, selectedLevelY].alienRates + GameCampaign.levelMap[selectedLevelX, selectedLevelY].guardRates))) + "%", testDetailStuff, Color.Orange);
                sb.DrawString(Game1.testComputerFont, "\n\n\n\nAlien Rates: " + Math.Round(100 * (GameCampaign.levelMap[selectedLevelX, selectedLevelY].alienRates / (GameCampaign.levelMap[selectedLevelX, selectedLevelY].prisonerRates + GameCampaign.levelMap[selectedLevelX, selectedLevelY].alienRates + GameCampaign.levelMap[selectedLevelX, selectedLevelY].guardRates))) + "%", testDetailStuff, Color.Red);
                sb.DrawString(Game1.testComputerFont, "\n\n\nGuard Rates: " + Math.Round(100 * (GameCampaign.levelMap[selectedLevelX, selectedLevelY].guardRates / (GameCampaign.levelMap[selectedLevelX, selectedLevelY].prisonerRates + GameCampaign.levelMap[selectedLevelX, selectedLevelY].alienRates + GameCampaign.levelMap[selectedLevelX, selectedLevelY].guardRates))) + "%", testDetailStuff, Color.LightBlue);
            }
            else
            {
                drawBox(sb, new Rectangle(755, 500, 305, 200), Color.Cyan, 2);
                sb.DrawString(Game1.testComputerFont, "\n\nPrisoner Rates: " + Math.Round(100 * (GameCampaign.levelMap[selectedLevelX, selectedLevelY].prisonerRates / (GameCampaign.levelMap[selectedLevelX, selectedLevelY].prisonerRates + GameCampaign.levelMap[selectedLevelX, selectedLevelY].alienRates + GameCampaign.levelMap[selectedLevelX, selectedLevelY].guardRates))) + "%", testDetailStuff + (Game1.testComputerFont.MeasureString("Alien Rates") * new Vector2(0, 0.5f)), Color.Orange);
                sb.DrawString(Game1.testComputerFont, "\n\n\nGuard Rates: " + Math.Round(100 * (GameCampaign.levelMap[selectedLevelX, selectedLevelY].guardRates / (GameCampaign.levelMap[selectedLevelX, selectedLevelY].prisonerRates + GameCampaign.levelMap[selectedLevelX, selectedLevelY].alienRates + GameCampaign.levelMap[selectedLevelX, selectedLevelY].guardRates))) + "%", testDetailStuff + (Game1.testComputerFont.MeasureString("Alien Rates") * new Vector2(0, 0.5f)), Color.LightBlue);
            }

            sb.Draw(Game1.whitePixel, new Vector2(75, 0) + testDetailStuff - new Vector2(1, 1), null, Color.Black, 0.0f, Vector2.Zero, new Vector2(127, 34), SpriteEffects.None, 0.5f);
            sb.Draw(Game1.whitePixel, new Vector2(75, 0) + testDetailStuff, null, Color.Orange, 0.0f, Vector2.Zero, new Vector2((float)(GameCampaign.levelMap[selectedLevelX, selectedLevelY].prisonerRates / (GameCampaign.levelMap[selectedLevelX, selectedLevelY].prisonerRates + GameCampaign.levelMap[selectedLevelX, selectedLevelY].guardRates + GameCampaign.levelMap[selectedLevelX, selectedLevelY].alienRates)) * 125, 32), SpriteEffects.None, 0.5f);
            sb.Draw(Game1.whitePixel, new Vector2(75, 0) + testDetailStuff + new Vector2((float)(GameCampaign.levelMap[selectedLevelX, selectedLevelY].prisonerRates / (GameCampaign.levelMap[selectedLevelX, selectedLevelY].prisonerRates + GameCampaign.levelMap[selectedLevelX, selectedLevelY].guardRates + GameCampaign.levelMap[selectedLevelX, selectedLevelY].alienRates)) * 125, 0), null, Color.Red, 0.0f, Vector2.Zero, new Vector2((float)(GameCampaign.levelMap[selectedLevelX, selectedLevelY].alienRates / (GameCampaign.levelMap[selectedLevelX, selectedLevelY].prisonerRates + GameCampaign.levelMap[selectedLevelX, selectedLevelY].guardRates + GameCampaign.levelMap[selectedLevelX, selectedLevelY].alienRates)) * 125, 32), SpriteEffects.None, 0.5f);
            sb.Draw(Game1.whitePixel, new Vector2(75, 0) + testDetailStuff + new Vector2((float)(GameCampaign.levelMap[selectedLevelX, selectedLevelY].prisonerRates / (GameCampaign.levelMap[selectedLevelX, selectedLevelY].prisonerRates + GameCampaign.levelMap[selectedLevelX, selectedLevelY].guardRates + GameCampaign.levelMap[selectedLevelX, selectedLevelY].alienRates)) * 125, 0) + new Vector2((float)(GameCampaign.levelMap[selectedLevelX, selectedLevelY].alienRates / (GameCampaign.levelMap[selectedLevelX, selectedLevelY].prisonerRates + GameCampaign.levelMap[selectedLevelX, selectedLevelY].guardRates + GameCampaign.levelMap[selectedLevelX, selectedLevelY].alienRates)) * 125, 0), null, Color.LightBlue, 0.0f, Vector2.Zero, new Vector2((float)(GameCampaign.levelMap[selectedLevelX, selectedLevelY].guardRates / (GameCampaign.levelMap[selectedLevelX, selectedLevelY].prisonerRates + GameCampaign.levelMap[selectedLevelX, selectedLevelY].guardRates + GameCampaign.levelMap[selectedLevelX, selectedLevelY].alienRates)) * 125, 32), SpriteEffects.None, 0.5f);

            Rectangle contractBox = new Rectangle(1125, 525, 550, 200);

            drawBox(sb, contractBox, Color.Cyan, 2);
            sb.DrawString(Game1.tenbyFive24, "Contract", new Vector2(1325, 525), Color.Cyan);
            sb.DrawString(Game1.tenbyFive14, GameCampaign.levelMap[selectedLevelX, selectedLevelY].contract.contractMessage, new Vector2(1140, 565), Color.Cyan);

            sb.End();
        }
示例#3
0
        public override void render(SpriteBatch sb)
        {
            AnimationLib.GraphicsDevice.Clear(Color.Black);

            sb.Begin(SpriteSortMode.Immediate, BlendState.NonPremultiplied, SamplerState.PointClamp, null, null, null, Matrix.Identity);

            sb.DrawString(Game1.tenbyFive24, "Postcareer Statistics Report", new Vector2(GlobalGameConstants.GameResolutionWidth / 2, 100) - Game1.tenbyFive24.MeasureString("Postcareer Statistics Report") / 2, Color.White);

            Vector2 linesOffset = new Vector2(CampaignLobbyState.lineOffset);

            for (int i = -6; i < GlobalGameConstants.GameResolutionWidth / 16 + 8; i++)
            {
                drawLine(sb, new Vector2(i * 16, -16) + linesOffset, GlobalGameConstants.GameResolutionHeight + 32, (float)Math.PI / 2, new Color(1, 0, 1, 0.1f), 1.0f);
            }

            for (int i = -6; i < GlobalGameConstants.GameResolutionHeight / 16 + 8; i++)
            {
                drawLine(sb, new Vector2(-16, i * 16) + linesOffset, GlobalGameConstants.GameResolutionWidth + 32, 0, new Color(1, 0, 1, 0.1f), 1.0f);
            }

            sb.Draw(Game1.whitePixel, XboxTools.GetTitleSafeArea(AnimationLib.GraphicsDevice, 0.8f), new Color(0.0f, 0.75f, 1.0f, 0.1f));

            if (isSignedIn)
            {
                drawBox(sb, new Rectangle(400, 166, 480, (32 * (10 + 1))), new Color(1, 1, 1, 0.5f), 2);
                drawBox(sb, new Rectangle(400, 166, 480, (32 * (highScores.Count + 1))), Color.White, 2);

                drawLine(sb, new Vector2(400 + 150, 166), (32 * (highScores.Count + 1)), (float)Math.PI / 2, Color.White, 2);
                drawLine(sb, new Vector2(400 + 150 + 132, 166), (32 * (highScores.Count + 1)), (float)Math.PI / 2, Color.White, 2);
                drawLine(sb, new Vector2(400 + 150 + 132 + 75, 166), (32 * (highScores.Count + 1)), (float)Math.PI / 2, Color.White, 2);
                drawLine(sb, new Vector2(400 + 150 + 132 + 75 + 75, 166), (32 * (highScores.Count + 1)), (float)Math.PI / 2, Color.White, 2);
                sb.DrawString(Game1.tenbyFive14, "NAME", new Vector2(400, 166), Color.White);
                sb.DrawString(Game1.tenbyFive14, "FATE", new Vector2(400 + 150, 166), Color.White);
                sb.DrawString(Game1.tenbyFive14, "FUND", new Vector2(400 + 150 + 132, 166), Color.White);
                sb.DrawString(Game1.tenbyFive14, "TIME", new Vector2(400 + 150 + 132 + 75, 166), Color.White);
                sb.DrawString(Game1.tenbyFive14, "RANK", new Vector2(400 + 150 + 132 + 75 + 75, 166), Color.White);

                for (int i = 0; i < 10; i++)
                {
                    Color textColor = (i == newlyAddedScoreIndex ? Color.Lerp(Color.Cyan, Color.Orange, (float)((1 + Math.Sin(stateTimer / 300)) / 2)) : Color.White);

                    if (i < highScores.Count)
                    {
                        drawLine(sb, new Vector2(400, 166 + 32 + (i * 32)), 480, 0.0f, Color.White, 2);
                        sb.DrawString(Game1.tenbyFive14, highScores[i].playerName, new Vector2(400, 166 + ((i + 1) * 32)) + new Vector2(4), textColor);
                        if (highScores[i].levelDiedAt == 0 && highScores[i].floorDiedOn == 1)
                        {
                            sb.DrawString(Game1.tenbyFive14, "DIED IN HANGAR", new Vector2(400 + 150, 166 + ((i + 1) * 32)) + new Vector2(4), textColor);
                        }
                        else if (highScores[i].levelDiedAt == 5 && highScores[i].floorDiedOn == 1)
                        {
                            sb.DrawString(Game1.tenbyFive14, "DIED AT BRIDGE", new Vector2(400 + 150, 166 + ((i + 1) * 32)) + new Vector2(4), textColor);
                        }
                        else
                        {
                            sb.DrawString(Game1.tenbyFive14, (highScores[i].completedGame ? "ESCAPED" : ("DIED AT " + highScores[i].levelDiedAt + (highScores[i].floorDiedOn == 0 ? 'A' : ((highScores[i].floorDiedOn == 1) ? 'B' : 'C')))), new Vector2(400 + 150, 166 + ((i + 1) * 32)) + new Vector2(4), (highScores[i].completedGame && i != newlyAddedScoreIndex) ? Color.Red : textColor);
                        }
                        sb.DrawString(Game1.tenbyFive14, highScores[i].coinCollected.ToString(), new Vector2(400 + 150 + 132, 166 + ((i + 1) * 32)) + new Vector2(4) + new Vector2(65 - Game1.tenbyFive14.MeasureString(highScores[i].coinCollected.ToString()).X, 0), textColor);
                        sb.DrawString(Game1.tenbyFive14, highScores[i].secondsElapsed.ToString(), new Vector2(400 + 150 + 132 + 75, 166 + ((i + 1) * 32)) + new Vector2(4) + new Vector2(65 - Game1.tenbyFive14.MeasureString(highScores[i].secondsElapsed.ToString()).X, 0), textColor);
                        sb.DrawString(Game1.tenbyFive14, (i + 1).ToString(), new Vector2(400 + 150 + 132 + 75 + 75, 166 + ((i + 1) * 32)) + new Vector2(4), textColor);
                    }
                    else
                    {
                        drawLine(sb, new Vector2(400, 166 + 32 + (i * 32)), 480, 0.0f, new Color(1, 1, 1, 0.25f), 2);
                        sb.DrawString(Game1.tenbyFive14, "<NO DATA>", new Vector2(400 + (448 / 2), 166 + ((i + 1) * 32)) + new Vector2(4) - new Vector2(Game1.tenbyFive14.MeasureString("<NO DATA>").X, 0) / 2, new Color(1, 1, 1, 0.25f));
                    }
                }
            }
            else
            {
                sb.DrawString(Game1.tenbyFive14, "Please sign in to view your personal high scores.", (new Vector2(GlobalGameConstants.GameResolutionWidth, GlobalGameConstants.GameResolutionHeight) - Game1.tenbyFive14.MeasureString("Please sign in to view your personal high scores.")) / 2, Color.White);
            }

            if (stateTimer > 1500f)
            {
#if XBOX
                sb.DrawString(Game1.tenbyFive24, "Press (A) to Continue", new Vector2(GlobalGameConstants.GameResolutionWidth / 2, 600) - Game1.tenbyFive24.MeasureString("Press (A) to Continue") / 2, new Color(1, 1, 1, (float)(Math.Sin(stateTimer / 300f) / 2) + 0.5f));
#elif WINDOWS
                sb.DrawString(Game1.tenbyFive24, "Press " + InputDevice2.KeyConfig.Confirm.ToString() + " to Continue", new Vector2(GlobalGameConstants.GameResolutionWidth / 2, 600) - Game1.tenbyFive24.MeasureString("Press " + InputDevice2.KeyConfig.Confirm.ToString() + " to Continue") / 2, new Color(1, 1, 1, (float)(Math.Sin(stateTimer / 300f) / 2) + 0.5f));
#endif
            }
            else if (stateTimer > 1300f)
            {
#if XBOX
                sb.DrawString(Game1.tenbyFive24, "Press (A) to Continue", new Vector2(GlobalGameConstants.GameResolutionWidth / 2, 600) - Game1.tenbyFive24.MeasureString("Press (A) to Continue") / 2, Color.Lerp(Color.Transparent, Color.White, (stateTimer - 1300) / 200));
#elif WINDOWS
                sb.DrawString(Game1.tenbyFive24, "Press " + InputDevice2.KeyConfig.Confirm.ToString() + " to Continue", new Vector2(GlobalGameConstants.GameResolutionWidth / 2, 600) - Game1.tenbyFive24.MeasureString("Press " + InputDevice2.KeyConfig.Confirm.ToString() + " to Continue") / 2, Color.Lerp(Color.Transparent, Color.White, (stateTimer - 1300) / 200));
#endif
            }

            sb.End();
        }
        private void gameLogicUpdate(Microsoft.Xna.Framework.GameTime currentTime)
        {
            if (InputDevice2.IsPlayerButtonDown(InputDevice2.PPG_Player.Player_1, InputDevice2.PlayerButton.PauseButton) && !player1Dead)
            {
                state = LoadingState.LevelPaused;
                pauseDialogMinimumTime = 0;
                pauseMenuItem          = 0;
                AudioLib.playSoundEffect("monitorOpening");
            }

            if (GameCampaign.Player_Ammunition < 0)
            {
                GameCampaign.Player_Ammunition = 0;
            }
            if (GameCampaign.Player2_Ammunition < 0)
            {
                GameCampaign.Player2_Ammunition = 0;
            }

            if (GameCampaign.Player_Ammunition > 100)
            {
                GameCampaign.Player_Ammunition = 100;
            }
            if (GameCampaign.Player2_Ammunition > 100)
            {
                GameCampaign.Player2_Ammunition = 100;
            }

            if (messageQueueState == PushMessageQueueState.Wait)
            {
                if (pushMessageQueue.Count > 0)
                {
                    messageQueueState = PushMessageQueueState.FadeIn;
                    queueTimer        = 0;
                }
            }
            else if (messageQueueState == PushMessageQueueState.ShowMessage)
            {
                queueTimer += currentTime.ElapsedGameTime.Milliseconds;

                if (queueTimer > 1000f + (25 * pushMessageQueue.Peek().Length))
                {
                    messageQueueState = PushMessageQueueState.FadeOut;
                    queueTimer        = 0;
                }
            }
            else if (messageQueueState == PushMessageQueueState.FadeIn)
            {
                queueTimer += currentTime.ElapsedGameTime.Milliseconds;

                if (queueTimer > 200f)
                {
                    messageQueueState = PushMessageQueueState.ShowMessage;
                    queueTimer        = 0;
                }
            }
            else if (messageQueueState == PushMessageQueueState.FadeOut)
            {
                queueTimer += currentTime.ElapsedGameTime.Milliseconds;

                if (queueTimer > 200f)
                {
                    messageQueueState = PushMessageQueueState.Wait;
                    queueTimer        = 0;
                    pushMessageQueue.Dequeue();
                }
            }

            for (int i = 0; i < entityList.Count; i++)
            {
                if (Vector2.Distance(cameraFocus.CenterPoint, entityList[i].CenterPoint) < 800 || entityList[i] is Player)
                {
                    entityList[i].update(currentTime);
                }
            }

            elapsedLevelTime += currentTime.ElapsedGameTime.Milliseconds;

            particleSet.update(currentTime);

#if WINDOWS
            entityList.RemoveAll(en => en.Remove_From_List == true);
#elif XBOX
            XboxTools.RemoveAll(entityList, XboxTools.IsEntityToBeRemoved);
            XboxTools.RemoveAll(acidSpitters, XboxTools.IsEntityToBeRemoved);
#endif

            if (cameraFocus != null)
            {
                int pointX = (int)cameraFocus.CenterPoint.X;
                int pointY = (int)cameraFocus.CenterPoint.Y;

                camera = Matrix.CreateTranslation(new Vector3((pointX * -1) + (GlobalGameConstants.GameResolutionWidth / 2), (pointY * -1) + (GlobalGameConstants.GameResolutionHeight / 2), 0.0f));
                //camera = Matrix.CreateScale(0.1f);
            }

            gui.update(currentTime);

            if (player1Dead)
            {
                fadeOutTime += currentTime.ElapsedGameTime.Milliseconds;

                gui.BlackFadeOverlay = fadeOutTime / fadeOutDuration;

                if (fadeOutTime >= fadeOutDuration)
                {
                    BackGroundAudio.stopAllSongs();
                    isComplete = true;
                }
            }

            if (endFlagReached)
            {
                BackGroundAudio.stopAllSongs();
                isComplete = true;
            }

#if DEBUG
            if (InputDevice2.IsAnyControllerButtonDown(InputDevice2.PlayerButton.SwitchItem2) != InputDevice2.PlayerPad.NoPad)
            {
                showStats = true;
            }
            else
            {
                showStats = false;
            }
#endif
        }