Esempio n. 1
0
        public override void Initialize()
        {
            content = new ResourceContentManager(GameBase.Instance.Services, ResourcesStore.ResourceManager);

            KeyboardHandler.OnKeyPressed += KeyboardHandler_OnKeyPressed;


            if (SongSelection.ForceRefresh)
            {
                BeatmapManager.CheckNewFiles();
                BeatmapManager.ProcessBeatmaps();
                BeatmapManager.GetOnlineBeatmapInfo();
                SongSelection.ForceRefresh = false;
            }

            if (Lobby.Status == LobbyStatus.Play)
            {
                Lobby.Status = LobbyStatus.Setup;
            }

            spriteManager = new SpriteManager();

            pText headerText =
                new pText("Match Setup", 30, new Vector2(0, 0), 0.955F, true, new Color(255, 255, 255, 255));

            headerText.TextShadow = true;
            spriteManager.Add(headerText);

            headerText2 = new pText("You are " + (IsHost ? "the host" : "a player"), 16, new Vector2(4, 26),
                                    0.955F, true, new Color(255, 255, 255, 255));
            spriteManager.Add(headerText2);

            pSprite bg =
                new pSprite(content.Load <Texture2D>("matchsetup-background"), FieldTypes.Window, OriginTypes.TopLeft,
                            ClockTypes.Game, Vector2.Zero, 0, true, Color.White);

            spriteManager.Add(bg);

            buttonStart = new pButton("Ready!", new Vector2(270, 285), new Vector2(350, 30),
                                      0.92f, new Color(99, 139, 228), OnReady);
            spriteManager.Add(buttonStart.SpriteCollection);

            pButton pbut = new pButton("Leave Match", new Vector2(10, 285), new Vector2(250, 30), 0.92f,
                                       new Color(235, 160, 62), OnLeaveGame);

            spriteManager.Add(pbut.SpriteCollection);

            buttonBeatmap = new pButton("Change...", new Vector2(384, 112), new Vector2(80, 18), 0.90f,
                                        Color.YellowGreen, OnSelectBeatmap);
            spriteManager.Add(buttonBeatmap.SpriteCollection);
            buttonMods = new pButton("Change...", new Vector2(352, 210), new Vector2(80, 18), 0.90f,
                                     Color.YellowGreen, OnSelectMods);
            spriteManager.Add(buttonMods.SpriteCollection);

/*            spriteManager.Add(new pText("Current Players:", 18, new Vector2(10, 60), 1, true, Color.White));
 *          spriteManager.Add(new pText("Game Name:", 18, new Vector2(300, 60), 1, true, Color.White));
 *          spriteManager.Add(new pText("Now Playing:", 18, new Vector2(300, 110), 1, true, Color.White));
 *          spriteManager.Add(new pText("Active Mods:", 18, new Vector2(300, 210), 1, true, Color.White));*/

            for (int i = 0; i < 8; i++)
            {
                /*spriteManager.Add(new pText((i + 1).ToString(), 18, new Vector2(10, 85 + i*25), 1, true, Color.White));*/

                slotText[i] = new pText("", 18, new Vector2(57, 85 + i * 25), 1, true, Color.White);
                spriteManager.Add(slotText[i]);

                slotTextInfo[i] = new pText("", 10, new Vector2(210, 85 + i * 25), new Vector2(77, 0), 1, true,
                                            Color.White, false);
                slotTextInfo[i].TextAlignment = Alignment.Right;
                spriteManager.Add(slotTextInfo[i]);

                pSprite status = new pSprite(GameBase.WhitePixel, FieldTypes.Window,
                                             OriginTypes.TopLeft, ClockTypes.Game, new Vector2(50, 85 + i * 25), 0.974F,
                                             true,
                                             new Color(255, 255, 255, 255));
                status.UseVectorScale = true;
                status.IsClickable    = true;
                status.VectorScale    = new Vector2(5, 20);
                status.CurrentScale   = 1.6f;
                spriteManager.Add(status);

                slotStatus[i] = status;

                pSprite slot = new pSprite(GameBase.WhitePixel, FieldTypes.Window,
                                           OriginTypes.TopLeft, ClockTypes.Game, new Vector2(57, 85 + i * 25), 0.974F,
                                           true,
                                           new Color(255, 255, 255, 50));
                slot.UseVectorScale = true;
                slot.IsClickable    = true;
                slot.VectorScale    = new Vector2(230, 20);
                slot.CurrentScale   = 1.6f;
                slot.ToolTip        = "Move to this slot.";
                slot.HoverEffect    = new Transformation(TransformationType.Fade, 0.2f, 0.4f, 0, 60);
                slot.OnClick       += clickSlot;
                slot.TagNumeric     = i;
                slotBackground[i]   = slot;
                spriteManager.Add(slot);

                pSprite lockToggle = new pSprite(content.Load <Texture2D>("lobby-unlock"),
                                                 new Vector2(36, 95 + i * 25), 1, true, Color.LightGray);
                slotLock[i]            = lockToggle;
                lockToggle.OnClick    += lockToggle_OnClick;
                lockToggle.OriginType  = OriginTypes.Centre;
                lockToggle.HoverEffect = new Transformation(TransformationType.Rotation, 0, 0.1f, 0, 100);
                lockToggle.ClickEffect = new Transformation(TransformationType.Scale, 2, 1, 0, 200);
                lockToggle.ToolTip     = "Lock this slot";
                lockToggle.TagNumeric  = i;
                spriteManager.Add(lockToggle);
            }

            if (IsHost)
            {
                changeBeatmap();
            }

            detailsGameName             = new pTextBox(Match.gameName, 16, new Vector2(310, 85), new Vector2(320, 18), 1);
            detailsGameName.OnCommit   += detailsGameName_OnCommit;
            detailsGameName.ReadOnly    = true;
            detailsGameName.LengthLimit = 50;
            spriteManager.Add(detailsGameName.SpriteCollection);

            UpdatePending     = true;
            SongChangePending = true;
            ModChangePending  = true;
            HostChangePending = true;

            if (IsHost && HostChangePending)
            {
                HostChangePending = false;
                SetHost();
            }

            ModManager.ModStatus = Match.activeMods;

            base.Initialize();


            GameBase.LoadComplete();

            if (!ChatEngine.IsVisible)
            {
                ChatEngine.Toggle();
            }

            Transformation t = new Transformation(TransformationType.Scale, 1, 1.2F, 0, 100);

            t.Easing = EasingTypes.In;
            Transformation t2 = new Transformation(TransformationType.Scale, 1.1F, 1.2F, 0, 100);

            t2.Easing = EasingTypes.In;
            pSprite p =
                new pSprite(content.Load <Texture2D>("editor-button-pause"), FieldTypes.Window, OriginTypes.Centre,
                            ClockTypes.Game, new Vector2(460, 15), 0.96F, true, Color.White, "b");

            p.IsClickable    = true;
            p.ClickEffect    = t2;
            p.HoverEffect    = t;
            p.CatchUniversal = true;
            p.OnClick       += pause;
            spriteManager.Add(p);
        }