public override void Draw(float t, float dt) { if (shouldLeave) // TODO: When we parallelise this probably won't work. { CScore score = (CScore)Game1.Inst.Scene.GetComponentFromEntity <CScore>(player); SfxUtil.PlaySound("Sounds/Effects/horny_end"); Game1.Inst.LeaveScene(); Game1.Inst.EnterScene(new EndGameScene(passedTime, score.Score, won)); } var camera = (CCamera)GetComponentFromEntity <CCamera>(player); if (camera.Position.Y < configs.WaterHeight) { GfxUtil.SetRT(mRT); base.Draw(t, dt); GfxUtil.SetRT(null); mUnderWaterFx.Parameters["SrcTex"].SetValue(mRT); mUnderWaterFx.Parameters["Phase"].SetValue(t); GfxUtil.DrawFsQuad(mUnderWaterFx); } else if (configs.IsRaining) { GfxUtil.SetRT(mRT); base.Draw(t, dt); GfxUtil.SetRT(null); mPostProcessor.ApplyPostProcess(t, dt, mRT); } else { GfxUtil.SetRT(null); base.Draw(t, dt); } mHud.Update(); mHud.Draw(player); }