public override void Draw(GameTime gameTime) { float dt = (float)gameTime.ElapsedGameTime.TotalSeconds; if (!pauseRender) { camera.Update(state.CGrid, RTSConstants.GAME_DELTA_TIME); renderer.Update(state); renderer.Draw(state, RTSConstants.GAME_DELTA_TIME); } else { G.Clear(Color.Black); } vInput.Draw(renderer, SB); DrawFPS(gameTime); game.DrawDevConsole(); game.DrawMouse(); if (tPopup != null) { SB.Begin(SpriteSortMode.Deferred, BlendState.NonPremultiplied); SB.Draw(tPopup, rPopup, Color.White); SB.End(); } if (end) { tl -= dt; if (tl < 0) { State = ScreenState.ChangePrevious; } Vector2 center = new Vector2(G.Viewport.Width, G.Viewport.Height) * 0.5f; SB.Begin(SpriteSortMode.Immediate, BlendState.NonPremultiplied, SamplerState.LinearClamp, DepthStencilState.None, RasterizerState.CullNone); SB.Draw( gResult < 0 ? tDefeat : tVictory, center, null, Color.Lerp(Color.Transparent, Color.White, MathHelper.Clamp(3f - tl, 0, 1)), 0f, gResult < 0 ? ctD : ctV, MathHelper.Lerp(0.3f, 1f, MathHelper.Clamp(3f - tl, 0, 1)), SpriteEffects.None, 0f ); SB.End(); } else if (state.gtC.VictoriousTeam.HasValue) { end = true; tl = 3f; gResult = state.gtC.VictoriousTeam.Value; } }