Exemple #1
0
        private void initialSubmission_complete(object sender, RunWorkerCompletedEventArgs e)
        {
            BeatmapManager.GetOnlineBeatmapInfo(beatmaps);

            if (error != null)
            {
                if (!formClosing)
                {
                    MessageBox.Show(this, error);
                }
                Close();
                return;
            }
            if (beatmapSetId == 0)
            {
                MessageBox.Show(this, "An error occurred.");
                Close();
                return;
            }

            panelMain.Enabled = true;

            if (isNewSubmission)
            {
                checkBump.Enabled = false;
            }
            else
            {
                radioButton1.Checked = approved == -1;
                radioButton2.Checked = approved == 0;
            }

            bgWeb.DoWork             -= initialSubmission_do;
            bgWeb.RunWorkerCompleted -= initialSubmission_complete;

            newMessage = "[size=85]This beatmap was submitted using in-game submission on " +
                         DateTime.Now.ToLongDateString() + " at " + DateTime.Now.ToLongTimeString() + "[/size]\n";
            newMessage += "\n[b]Artist:[/b] " + beatmaps[0].Artist;
            newMessage += "\n[b]Title:[/b] " + beatmaps[0].Title;
            if (beatmaps[0].Source.Length > 0)
            {
                newMessage += "\n[b]Source:[/b] " + beatmaps[0].Source;
            }
            if (beatmaps[0].Tags.Length > 0)
            {
                newMessage += "\n[b]Tags:[/b] " + beatmaps[0].Tags;
            }
            newMessage += "\n[b]BPM:[/b] " + Math.Round(1000 / beatmaps[0].TimingPoints[0].beatLength * 60, 2);
            newMessage += "\n[b]Filesize:[/b] " + filesize.ToString(GameBase.nfi) + "kb";
            newMessage +=
                String.Format("\n[b]Play Time:[/b] {0:00}:{1:00}", beatmaps[0].TotalLength / 60000,
                              (beatmaps[0].TotalLength % 60000) / 1000);
            newMessage += "\n[b]Difficulties Available:[/b]\n[list]";
            foreach (Beatmap b in beatmaps)
            {
                newMessage += "[*][url=" + Urls.PATH_MAPS +
                              Path.GetFileName(b.Filename).Replace("[", "%5B").Replace("]", "%5D") + "]" +
                              (b.Version.Length > 0 ? b.Version : "Normal") + "[/url] (" +
                              Math.Round(b.DifficultyEyupStars, 2) + " stars, " + b.ObjectCount + " notes)\n";
            }
            newMessage += "[/list]\n";
            newMessage += "\n[size=150][b]Download: [url=http://peppy.chigau.com/bss/" + oszFilename + "]" +
                          beatmaps[0].SortTitle + "[/url][/b][/size]";
            if (hasVideo)
            {
                newMessage += "\n[size=120][b]Download: [url=http://peppy.chigau.com/bss/" +
                              oszFilename.Replace(".osz", "-novid.osz") + "]" +
                              beatmaps[0].SortTitle + " (no video)[/url][/b][/size]";
            }
            newMessage += "\n[b]Information:[/b] [url=http://osu.ppy.sh/s/" + beatmapSetId +
                          "]Scores/Beatmap Listing[/url]";
            newMessage += "\n---------------\n";

            if (beatmaps[0].Artist.Length == 0)
            {
                textSubject.Text = beatmaps[0].Title;
            }
            else
            {
                textSubject.Text = beatmaps[0].SortTitle;
            }
            textMessage.Text =
                "Enter your message here.  Links and general information will automatically be added above this.";

            if (!isNewSubmission)
            {
                textSubject.Text = oldSubject;
                if (oldMessage.IndexOf("---------------\r\n") > 0)
                {
                    textMessage.Text = oldMessage.Remove(0, oldMessage.IndexOf("---------------") + 17).Trim('\n', '\r');
                }
                else
                {
                    textMessage.Text = oldMessage;
                }
            }

            textMessage.Focus();
            textMessage.SelectAll();

            bgWeb.DoWork             += uploadFiles_do;
            bgWeb.RunWorkerCompleted += uploadFiles_complete;
            bgWeb.RunWorkerAsync();
        }
Exemple #2
0
        private void doSendScore(object sender, DoWorkEventArgs e)
        {
            GameBase.User.spriteInfo.Text = "Submitting score...";
            try
            {
                byte[] zipped = new byte[0];

                if (pass)
                {
                    rawReplayCompressed = SevenZipHelper.Compress(new ASCIIEncoding().GetBytes(replayFormatted));

                    zipped = rawReplayCompressed;

                    /*MemoryStream s = new MemoryStream();
                     * DeflaterOutputStream ds = new DeflaterOutputStream(s, new Deflater(9));
                     *
                     * ds.Write(bytes, 0, bytes.Length);
                     * ds.Finish();
                     * ds.Flush();
                     * zipped = s.ToArray();*/
                }

                FileUploadNetRequest fileUpload =
                    new FileUploadNetRequest(
                        string.Format("http://osu.ppy.sh/web/osu-submit.php?score={0}&pass={1}", onlineFormatted,
                                      ConfigManager.sPassword), zipped, "replay", "score");
                int retryCount = 1;

                while (retryCount > 0)
                {
                    try
                    {
                        string[] response = fileUpload.BlockingPerform().Split('\n');

                        if (response.Length > 0)
                        {
                            Int32.TryParse(response[0], out onlineRank);
                            Int32.TryParse(response[1], out GameBase.User.NextRank);
                        }

                        if (response.Length > 2)
                        {
                            GameBase.User.AchievementImages = response[2].Split(' ');
                        }
                        else
                        {
                            GameBase.User.AchievementImages = null;
                        }

                        break;
                    }
                    catch {  }
                    retryCount--;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }


            if (SubmissionComplete != null)
            {
                SubmissionComplete(this);
            }

            if (!pass)
            {
                GameBase.User.Refresh();
            }
            else
            {
                BeatmapManager.GetOnlineBeatmapInfo(BeatmapManager.Current);
            }
        }
Exemple #3
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);
        }