public override void Initialize() { MatchSetup.Match = null; StreamingManager.StopSpectating(false); text_noMatchFound = LocalisationManager.GetString(OsuString.Lobby_NoMatch); text_loading = LocalisationManager.GetString(OsuString.General_Loading); spriteManager = new SpriteManager(true); spriteManagerFilters = new SpriteManager(true); //spriteManagerFilters.Alpha = 0; spriteManagerFilters.SetVisibleArea(new RectangleF(0, content_y - filters_height, 640, filters_height)); BanchoClient.OnConnect += BanchoClient_OnConnect; KeyboardHandler.OnKeyRepeat += KeyboardHandler_OnKeyRepeat; pText headerText = new pText(LocalisationManager.GetString(OsuString.Lobby_Header), 24, new Vector2(0, 0), 0.955F, true, new Color(255, 255, 255, 255)); spriteManager.Add(headerText); headerText2 = new pText(text_loading, 12, new Vector2(170, 8), 0.955F, true, new Color(255, 255, 255, 255)); spriteManager.Add(headerText2); //pSprite bgf = // new pSprite(TextureManager.Load(@"lobby-background"), Fields.TopLeft, Origins.TopLeft, // Clocks.Instance, Vector2.Zero, 0, true, Color.White); //spriteManager.Add(bgf); pSprite p = new pSprite(GameBase.WhitePixel, Fields.TopLeft, Origins.TopLeft, Clocks.Game, new Vector2(0, content_y - filters_height), 0.1f, true, new Color(0, 0, 0, 180)); p.Scale = 1.6f; p.VectorScale = new Vector2(GameBase.WindowManager.WidthScaled, content_height + filters_height + 30); spriteManager.Add(p); int button_height = content_y + content_height + 2; pButton pbut = new pButton(LocalisationManager.GetString(OsuString.Lobby_NewGame), new Vector2(GameBase.WindowManager.WidthScaled / 2 - 100, button_height), new Vector2(200, 25), 0.92f, new Color(99, 139, 228), OnCreateGame); spriteManager.Add(pbut.SpriteCollection); pbut = new pButton(LocalisationManager.GetString(OsuString.Lobby_QuickJoin), new Vector2(GameBase.WindowManager.WidthScaled / 2 + 110, button_height), new Vector2(200, 25), 0.92f, Color.YellowGreen, OnQuickJoin); spriteManager.Add(pbut.SpriteCollection); pbut = new pButton(LocalisationManager.GetString(OsuString.Lobby_BackToMenu), new Vector2(GameBase.WindowManager.WidthScaled / 2 - 310, button_height), new Vector2(200, 25), 0.92f, new Color(235, 160, 62), back_OnClick); spriteManager.Add(pbut.SpriteCollection); noMatches = new pText(text_loading, 18, new Vector2(GameBase.WindowManager.WidthScaled / 2, 180), new Vector2(400, 0), 1, true, Color.White, false); noMatches.TextBold = true; noMatches.Alpha = 0; noMatches.TextAlignment = TextAlignment.Centre; noMatches.Origin = Origins.Centre; spriteManager.Add(noMatches); sortingTabs = new pTabCollection(spriteManager, 6, new Vector2(50, 40), 0.98f, false, Color.Crimson); sortingTabs.Add(LocalisationManager.GetString(OsuString.Lobby_All), -1); sortingTabs.Add(OsuCommon.PlayModeString(PlayModes.Osu), (int)PlayModes.Osu); sortingTabs.Add(OsuCommon.PlayModeString(PlayModes.Taiko), (int)PlayModes.Taiko); sortingTabs.Add(OsuCommon.PlayModeString(PlayModes.CatchTheBeat), (int)PlayModes.CatchTheBeat); sortingTabs.Add(OsuCommon.PlayModeString(PlayModes.OsuMania), (int)PlayModes.OsuMania); sortingTabs.SetSelected(ConfigManager.sLobbyPlayMode.Value, true); sortingTabs.OnTabChanged += delegate { ConfigManager.sLobbyPlayMode.Value = (int)sortingTabs.SelectedTab.Tag; LobbyUpdatePending = true; }; checkExistingMaps = new pCheckbox(LocalisationManager.GetString(OsuString.Lobby_ExistMapOnly), 0.8f, new Vector2(5, 2), 1, ConfigManager.sLobbyShowExistingOnly); spriteManagerFilters.Add(checkExistingMaps.SpriteCollection); checkExistingMaps.OnCheckChanged += delegate(object sender, bool status) { ConfigManager.sLobbyShowExistingOnly.Value = status; LobbyUpdatePending = true; }; checkFriendsOnly = new pCheckbox(LocalisationManager.GetString(OsuString.Lobby_FriendOnly), 0.8f, new Vector2(5, 19), 1, ConfigManager.sLobbyShowFriendsOnly); spriteManagerFilters.Add(checkFriendsOnly.SpriteCollection); checkFriendsOnly.OnCheckChanged += delegate(object sender, bool status) { ConfigManager.sLobbyShowFriendsOnly.Value = status; LobbyUpdatePending = true; }; checkInProgress = new pCheckbox(LocalisationManager.GetString(OsuString.Lobby_InProgress), 0.8f, new Vector2(360, 19), 1, ConfigManager.sLobbyShowInProgress); spriteManagerFilters.Add(checkInProgress.SpriteCollection); checkInProgress.OnCheckChanged += delegate(object sender, bool status) { ConfigManager.sLobbyShowInProgress.Value = status; LobbyUpdatePending = true; }; checkShowFullGames = new pCheckbox(LocalisationManager.GetString(OsuString.Lobby_ShowFull), 0.8f, new Vector2(180, 2), 1, ConfigManager.sLobbyShowFull); spriteManagerFilters.Add(checkShowFullGames.SpriteCollection); checkShowFullGames.OnCheckChanged += delegate(object sender, bool status) { ConfigManager.sLobbyShowFull.Value = status; LobbyUpdatePending = true; }; checkShowPasswordedGames = new pCheckbox(LocalisationManager.GetString(OsuString.Lobby_ShowLocked), 0.8f, new Vector2(180, 19), 1, ConfigManager.sLobbyShowPassworded); spriteManagerFilters.Add(checkShowPasswordedGames.SpriteCollection); checkShowPasswordedGames.OnCheckChanged += delegate(object sender, bool status) { ConfigManager.sLobbyShowPassworded.Value = status; LobbyUpdatePending = true; }; pText pt = new pText(LocalisationManager.GetString(OsuString.Lobby_Search), 14, new Vector2(360, 2), 1, true, Color.White); spriteManagerFilters.Add(pt); filterTextBox = new pTextBox(string.Empty, 14, new Vector2(360 + pt.MeasureText().X, 2), 134, 1); filterTextBox.LengthLimit = 20; filterTextBox.OnChange += delegate { LobbyUpdatePending = true; if (filterTextBox.Text.Length > 0) { checkFriendsOnly.Hide(); checkShowFullGames.Hide(); checkShowPasswordedGames.Hide(); checkExistingMaps.Hide(); sortingTabs.SetSelected(-1, true); } else { checkFriendsOnly.Show(); checkShowFullGames.Show(); checkShowPasswordedGames.Show(); checkExistingMaps.Show(); sortingTabs.SetSelected(ConfigManager.sLobbyPlayMode.Value, true); } }; spriteManagerFilters.Add(filterTextBox.SpriteCollection); //buttonFilters = new pButton(LocalisationManager.GetString(OsuString.Lobby_Filters), new Vector2(390, 32), new Vector2(100, 20), 1, Color.YellowGreen, toggleFilters); //spriteManager.Add(buttonFilters.SpriteCollection); base.Initialize(); if (BeatmapManager.Current == null || string.IsNullOrEmpty(BeatmapManager.Current.ContainingFolder) || !BeatmapManager.Current.BeatmapPresent) { MusicControl.ChooseRandomSong(true); } JoinLobby(); LobbyUpdatePending = true; }
protected override void InitializeSpecifics() { Player.ScoreBoard.topLeft = new Vector2(GameBase.WindowManager.WidthScaled - 125, 120); foreach (ScoreboardEntry sbe in Player.ScoreBoard.Entries) { sbe.SpriteBackground.Texture = TextureManager.Load(@"menu-button-background"); sbe.SpriteBackground.OriginPosition = new Vector2(26, 20); sbe.SpriteBackground.OnClick += spriteBackground_OnClick; sbe.SpriteBackground.HandleInput = true; sbe.SpriteBackground.Tag = sbe; sbe.SpriteBackground.HoverEffect = new Transformation(sbe.SpriteBackground.InitialColour, Color.YellowGreen, 0, 100); if (sbe.name == GameBase.User.Name) { ChatEngine.AddUserLog(string.Format(LocalisationManager.GetString(OsuString.Userlog_Multiplayer), sbe.rank, Player.ScoreBoard.Entries.Count, BeatmapManager.Current.DisplayTitleFull, OsuCommon.PlayModeString(Player.Mode))); } } Player.ScoreBoard.spriteManager.Alpha = 1; pText noMatches = new pText("Click a player tab to view their score! Hit F2 to export your replay.", 14 , new Vector2(GameBase.WindowManager.WidthScaled, 60), Vector2.Zero, 1, true, Color.White, false) { TextAlignment = Graphics.Renderers.TextAlignment.Right, Origin = Origins.TopRight, ViewOffsetImmune = true }; noMatches.TextBold = true; spriteManagerWideScrolling.Add(noMatches); startTime = GameBase.Time + 300; if (Player.ScoreBoard.trackingEntry != null) { Player.ScoreBoard.trackingEntry.SpriteBackground.Click(); } pText pt = new pText(BeatmapManager.Current.DisplayTitle, 22, new Vector2(0, 0), Vector2.Zero, 0.991F, true, Color.White, false); pt.ViewOffsetImmune = true; spriteManagerWideScrolling.Add(pt); pt = new pText("Beatmap by " + BeatmapManager.Current.Creator, 16, new Vector2(1, 20), Vector2.Zero, 0.991F, true, Color.White, false); pt.ViewOffsetImmune = true; spriteManagerWideScrolling.Add(pt); pt = new pText("Match played at " + score.Date.ToString("yy/MM/dd hh:mm:ss", GameBase.nfi), 16, new Vector2(1, 34), Vector2.Zero, 0.991F, true, Color.White, false); pt.ViewOffsetImmune = true; spriteManagerWideScrolling.Add(pt); if (!MatchSetup.Match.TeamMode && Player.ScoreBoard.Entries.Count > 1 && Player.ScoreBoard.Entries[0].score != Player.ScoreBoard.Entries[1].score) //don't display in a tied situation. { pTexture winner = ((ScoreboardEntryExtended)Player.ScoreBoard.Entries[0]).SpriteAvatar.Texture; pSprite winnerBg = new pSprite(TextureManager.Load(@"ranking-winner"), new Vector2(395, 10), 0.4f, true, Color.White); spriteManagerWideScrolling.Add(winnerBg); if (winner != null) { pSprite largeAvatar = new pSprite(winner, Origins.Centre, new Vector2(457.5f, 89f), 0.41f, true, Color.White); largeAvatar.Scale = 185F / Math.Max(largeAvatar.Width, largeAvatar.Height); spriteManagerWideScrolling.Add(largeAvatar); largeAvatar.MoveToRelative(new Vector2(0, 200), 2000, EasingTypes.Out); largeAvatar.FadeInFromZero(1500); } winnerBg.MoveToRelative(new Vector2(0, 200), 2000, EasingTypes.Out); winnerBg.FadeInFromZero(1500); } }