Beispiel #1
0
        private void initializeSprites()
        {
            SkinManager.CreateUserSkin();

            GameBase.TransitionManager.ClearBackground(false);

            BeatmapTreeItem.LoadSkinElements();

            treeManager = new BeatmapTreeManager(GameBase.Instance);
            treeManager.SpriteManagerPanels.SetVisibleArea(new RectangleF(0, 0, 1280, 720) / GameBase.WindowManager.Ratio);

            treeManager.OnEndRandom += endRandom;


            pTexture backgroundTex = TextureManager.Load(Path.Combine(Tournament.Tournament.SkinDirectory, @"drawings-background.jpg"), SkinSource.Skin);

            backgroundTex = backgroundTex ?? TextureManager.Load(@"drawings-background", SkinSource.Skin);
            backgroundTex = backgroundTex ?? TextureManager.Load(@"menu-background", SkinSource.Osu);

            pSprite p;

            baseSpriteManager.Add(p = new pSprite(backgroundTex, Fields.TopLeft, Origins.TopLeft, Clocks.Game, Vector2.Zero, 0f, true, Color.White));
            p.Scale = Math.Max(1280f / GameBase.WindowManager.Ratio / p.Width, 720f / GameBase.WindowManager.Ratio / p.Height) * 1.6f;

            int x = GameBase.WindowManager.WidthScaled - 200;
            int y = 380;

            baseSpriteManager.Add((randButton = new pButton(@"Begin random", new Vector2(x, y), new Vector2(80, 15), 1f, Color.YellowGreen, delegate
            {
                if (treeManager.IsRandomActive)
                {
                    RandomMultiple = 1.3f;
                    randButton.Text.Text = @"Begin random";
                }
                else
                {
                    if (!canAddTeam)
                    {
                        return;
                    }

                    if (treeManager.beatmapSetVisibleCount == 0)
                    {
                        return;
                    }

                    startRandom();

                    if (treeManager.beatmapVisibleCount == 1)
                    {
                        endRandom();
                        return;
                    }

                    RandomMultiple = 1f;
                    treeManager.StartRandom();
                    randButton.Text.Text = @"End random";
                }
            })).SpriteCollection);

            y += 16;

            baseSpriteManager.Add(new pButton(@"Quick-add current", new Vector2(x, y), new Vector2(80, 15), 1f, Color.YellowGreen, delegate
            {
                if (treeManager.beatmapSetVisibleCount == 0)
                {
                    return;
                }

                if (treeManager.IsRandomActive)
                {
                    return;
                }
                if (!firstRandom)
                {
                    startRandom();
                }
                else
                {
                    endRandom();
                    firstRandom = false;
                    startRandom();
                }
                firstRandom = true;
            }, true, false, 10).SpriteCollection);

            y += 16;

            baseSpriteManager.Add(new pButton(@"Reload teams", new Vector2(x, y), new Vector2(80, 15), 1f, Color.YellowGreen, delegate
            {
                reload();
            }).SpriteCollection);

            y += 16;

            baseSpriteManager.Add(new pButton(@"Reset", new Vector2(x, y), new Vector2(80, 15), 1f, Color.Red, delegate
            {
                if (TopMostMessageBox.Show("Are you sure you want to reset the teams?", "Reset teams", MessageBoxButtons.OKCancel) == DialogResult.OK)
                {
                    reset();
                }
            }).SpriteCollection);

            y += 16;

            baseSpriteManager.Add(new pButton(@"Exit", new Vector2(x, y), new Vector2(80, 15), 1f, Color.Red, delegate
            {
                GameBase.BeginExit();
            }).SpriteCollection);

            for (int i = 0; i < groupCount; i++)
            {
                groups.Add(new Group(spriteManagerAbove, i));
            }
        }
Beispiel #2
0
        private void initializeSprites()
        {
            SkinManager.CreateUserSkin();

            GameBase.TransitionManager.ClearBackground(false);

            ControlPanelLocation = new Vector2(GameBase.WindowManager.WidthScaled - 200, 380);
            float scale = TournamentLayout.ClientScale * GameBase.WindowManager.Ratio;

            backgroundManager = new BackgroundManager(this, spriteManager, 0.1f);

            ChatManager = new ChatManager(this, spriteManager, 1.005f);

            spriteManager.Add(new pSprite(GameBase.WhitePixel, Vector2.Zero, 1.005f, true, new Color(0, 0, 0, 127))
            {
                Field       = Fields.Native,
                VectorScale = new Vector2(TournamentLayout.WorkingSpace.X, TournamentLayout.ClientPositions[0].Y)
            });

            spriteManager.Add(currentSong = new pText(string.Empty, 10, new Vector2(0, 143f) / scale, 1.01f, true, Color.White)
            {
                Field      = Fields.TopCentre,
                Origin     = Origins.Centre,
                FontFace   = FontFace.ExoMedium,
                TextShadow = false
            });

            spriteManager.Add(playingIcon = new pTextAwesome(FontAwesome.play_circle, 10, new Vector2(0, 143f) / scale)
            {
                Depth      = 1.01f,
                Field      = Fields.TopCentre,
                Origin     = Origins.CentreRight,
                Alpha      = 0,
                TextShadow = false
            });

            Team1 = new Team(spriteManager, new Vector2(912 / scale, 86 / scale), FlowDirection.Left);
            Team2 = new Team(spriteManager, new Vector2(1008 / scale, 86 / scale), FlowDirection.Right);

            updateTeamNameWidths();

            spriteManager.Add(annotationBg = new pSprite(TextureManager.Load(@"warmup-bg", SkinSource.Osu), Origins.Centre, new Vector2(0, 78 / scale), 1.02f, true, Color.White)
            {
                Field = Fields.TopCentre,
                Alpha = 0f
            });

            spriteManager.Add(annotationText = new pText(@"warm up", 20, new Vector2(0, 78 / scale), 1.021f, true, Color.White)
            {
                Field      = Fields.TopCentre,
                Origin     = Origins.Centre,
                FontFace   = FontFace.ExoRegular,
                Alpha      = 0f,
                TextItalic = true,
                TextShadow = false
            });

            annotationTextRatio = annotationText.MeasureText().X;

            Vector2 pos = ControlPanelLocation;

            spriteManager.Add((new pButton(@"Sync music", new Vector2(pos.X, pos.Y), new Vector2(80, 15), 1.01f, Color.YellowGreen, (o, e) =>
            {
                AudioEngine.Play();
            })
            {
                SoundsEnabled = false
            }).SpriteCollection);

            spriteManager.Add(new pText(LocalisationManager.GetString(OsuString.Tournament_AnnotationText), 7.5f, new Vector2(pos.X + 95, pos.Y), 1.01f, true, Color.White));
            spriteManager.Add((headerTb = new pTextBox(@"warm up", 7.5f, new Vector2(pos.X + 95, pos.Y + 7.5f), 52f, 1.01f)).SpriteCollection);
            headerTb.OnChange += (o, e) =>
            {
                annotationText.Text        = headerTb.Box.Text;
                annotationBg.VectorScale.X = annotationText.MeasureText().X / annotationTextRatio;
                updateTeamNameWidths();
            };

            pos.Y += 16;

            spriteManager.Add((new pButton(@"Toggle annotation", new Vector2(pos.X, pos.Y), new Vector2(80, 15), 1.01f, Color.YellowGreen, (o, e) =>
            {
                annotationVisible = !annotationVisible;
                updateTeamNameWidths();
            }, false, false, 10)
            {
                SoundsEnabled = false
            }).SpriteCollection);

            pos.Y += 16;

            spriteManager.Add((new pButton(@"Panic", new Vector2(pos.X, pos.Y), new Vector2(80, 15), 1.01f, Color.Red, (o, e) =>
            {
                clients.Reset();
            })
            {
                SoundsEnabled = false
            }).SpriteCollection);

            spriteManager.Add(new pText(LocalisationManager.GetString(OsuString.Tournament_BestOf), 7.5f, new Vector2(pos.X + 95, pos.Y), 1.01f, true, Color.White));
            spriteManager.Add((bestofTb = new pTextBox(@"1", 7.5f, new Vector2(pos.X + 95, pos.Y + 7.5f), 52f, 1.01f)).SpriteCollection);
            bestofTb.OnChange += (o, e) =>
            {
                int tmp;
                if (int.TryParse(bestofTb.Box.Text, out tmp))
                {
                    Team1.BestOf = Team2.BestOf = tmp;
                }
            };
            bestofTb.Focus(true);

            pos.Y += 16;

            spriteManager.Add((new pButton(@"Exit", new Vector2(pos.X, pos.Y), new Vector2(80, 15), 1.01f, Color.Red, (o, e) =>
            {
                GameBase.BeginExit();
            })
            {
                SoundsEnabled = false
            }).SpriteCollection);

            currentSong.OnRefreshTexture += (o, e) => playingIcon.Position.X = currentSong.Position.X - currentSong.MeasureText().X / 2;
        }
        internal OptionsManiaBindingWizard()
            : base(LocalisationManager.GetString(OsuString.Options_TabSkin_CustonKey), false)
        {
            SkinManager.CreateUserSkin();

            spriteManager.HandleOverlayInput = true;
            BackButton back = new BackButton(delegate { Close(); }, false, true);

            spriteManager.Add(back.SpriteCollection);

            int horizontal  = 225 + (int)GameBase.WindowManager.OffsetXScaled;
            int vertCurrent = 80;
            int vertSpacing = 35;

            dKeyConfig = new pDropdown(spriteManager, String.Empty, new Vector2(horizontal + 10, vertCurrent), 75, 1);

            for (int i = 1; i <= StageMania.MAX_COLUMNS; incrementKeyConfig(ref i))
            {
                dKeyConfig.AddOption(getKeyOptionText(i, i >= 10), i);
            }

            dKeyConfig.OnSelect += (obj, ev) =>
            {
                currentKeyConfig = (int)obj;

                cBindAlternateKeys.SetStatusQuietly(false);

                LoadKeys(true);
            };

            cSplitLayout = new pCheckbox(LocalisationManager.GetString(OsuString.Options_TabSkin_SplitLayout), new Vector2(horizontal + 105, vertCurrent), 0.8F, false);
            cSplitLayout.OnCheckChanged += (obj, bl) =>
            {
                LoadKeys();
            };
            spriteManager.Add(cSplitLayout.SpriteCollection);

            vertCurrent = 300;

            dSpecialStyle = new pDropdown(spriteManager, string.Empty, new Vector2(horizontal - 65, vertCurrent), 150, 0.8f, false);
            dSpecialStyle.AddOption(LocalisationManager.GetString(OsuString.Options_ManiaSpecial_Normal), 0);
            dSpecialStyle.AddOption(LocalisationManager.GetString(OsuString.Options_ManiaSpecial_Left), 1);
            dSpecialStyle.AddOption(LocalisationManager.GetString(OsuString.Options_ManiaSpecial_Right), 2);
            dSpecialStyle.OnSelect += (obj, ev) =>
            {
                switch ((int)obj)
                {
                case 1:
                    stage.Skin.SpecialStyle = ManiaSpecialStyle.Left;
                    break;

                case 2:
                    stage.Skin.SpecialStyle = ManiaSpecialStyle.Right;
                    break;

                default:
                    stage.Skin.SpecialStyle = ManiaSpecialStyle.None;
                    break;
                }
                SkinManager.SaveSkin();

                LoadKeys();
            };

            cBindAlternateKeys = new pCheckbox(LocalisationManager.GetString(OsuString.Options_TabSkin_BindAlternateSpecialKeys), new Vector2(horizontal + 105, vertCurrent), 0.8F, false);
            cBindAlternateKeys.OnCheckChanged += (obj, bl) =>
            {
                LoadKeys();
            };
            spriteManager.Add(cBindAlternateKeys.SpriteCollection);

            vertCurrent += vertSpacing;

            cUpsideDown = new pCheckbox(LocalisationManager.GetString(OsuString.Options_TabSkin_UpsiedDown), new Vector2(horizontal, vertCurrent), 0.8F, false);
            cUpsideDown.OnCheckChanged += (obj, bl) =>
            {
                stage.Skin.UpsideDown = bl;
                SkinManager.SaveSkin();
            };
            spriteManager.Add(cUpsideDown.SpriteCollection);

            vertCurrent += vertSpacing;

            cJudgementLine = new pCheckbox(LocalisationManager.GetString(OsuString.Options_TabSkin_ShowJudgement), new Vector2(horizontal, vertCurrent), 0.8F, false);
            cJudgementLine.OnCheckChanged += (obj, bl) =>
            {
                stage.Skin.JudgementLine = bl;
                SkinManager.SaveSkin();
            };

            spriteManager.Add(cJudgementLine.SpriteCollection);

            dKeyConfig.SetSelected(currentKeyConfig, false);
        }