コード例 #1
0
        internal Score(string input, Beatmap beatmap)
        {
            User     = new User();
            IsOnline = true;

            if (beatmap != null)
            {
                Beatmap      = beatmap;
                FileChecksum = beatmap.BeatmapChecksum;
            }

            Perfect = false;
            Replay  = new List <bReplayFrame>();

            string[] line = input.Split('|');

            int i = 0;

            Pass        = true;
            OnlineId    = Convert.ToInt64(line[i++]);
            PlayerName  = line[i++];
            User.Name   = PlayerName;
            TotalScore  = Convert.ToInt32(line[i++]);
            MaxCombo    = Convert.ToUInt16(line[i++]);
            Count50     = Convert.ToUInt16(line[i++]);
            Count100    = Convert.ToUInt16(line[i++]);
            Count300    = Convert.ToUInt16(line[i++]);
            CountMiss   = Convert.ToUInt16(line[i++]);
            CountKatu   = Convert.ToUInt16(line[i++]);
            CountGeki   = Convert.ToUInt16(line[i++]);
            Perfect     = line[i++] == @"1";
            EnabledMods = (Mods)Convert.ToInt32(line[i++]);
            User.Id     = Convert.ToInt32(line[i++]);
            if (line[i].Length > 0)
            {
                OnlineRank = Convert.ToInt32(line[i]);
            }
            i++;
            try
            {
                Date = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc).AddSeconds(int.Parse(line[i++]));
                if (Date < new DateTime(1990, 5, 31) /*|| date > DateTime.Now*/)
                {
                    Date = DateTime.Now; // when trying to export a corrupted replay file
                }
            }
            catch
            {
                Date = DateTime.Now;
            }
            HasOnlineReplay = line[i++] == @"1";
        }
コード例 #2
0
 internal Score(bScoreFrame sf, string name)
 {
     Pass         = sf.pass;
     PlayerName   = name;
     Count300     = sf.count300;
     Count100     = sf.count100;
     Count50      = sf.count50;
     CountGeki    = sf.countGeki;
     CountKatu    = sf.countKatu;
     CountMiss    = sf.countMiss;
     TotalScore   = sf.totalScore;
     MaxCombo     = sf.maxCombo;
     Perfect      = sf.perfect;
     CurrentHp    = sf.currentHp;
     CurrentCombo = sf.currentCombo;
     EnabledMods  = ModManager.ModStatus; //todo: wtf check this?
     Date         = DateTime.Now;
 }
コード例 #3
0
        public void ReadHeaderFromStream(SerializationReader sr)
        {
            Pass         = true;
            Version      = sr.ReadInt32();
            FileChecksum = sr.ReadString();
            PlayerName   = sr.ReadString();
            var localScoreChecksum = sr.ReadString();

            Count300      = sr.ReadUInt16();
            Count100      = sr.ReadUInt16();
            Count50       = sr.ReadUInt16();
            CountGeki     = sr.ReadUInt16();
            CountKatu     = sr.ReadUInt16();
            CountMiss     = sr.ReadUInt16();
            TotalScore    = sr.ReadInt32();
            MaxCombo      = sr.ReadUInt16();
            Perfect       = sr.ReadBoolean();
            EnabledMods   = (Mods)sr.ReadInt32();
            HpGraphString = sr.ReadString();
            Date          = sr.ReadDateTime();
        }
コード例 #4
0
        internal override void UpdateInput()
        {
            if (!IsInitialized || Player.Paused)
            {
                return;
            }

            int frameCheck = 0;

            if (!InputManager.ReplayMode)
            {
                InputManager.leftButton1  |= KeyboardHandler.IsKeyDown(BindingManager.For(Bindings.FruitsDash));
                InputManager.leftButton1  |= JoystickHandler.IsKeyDown(BindingManager.For(Bindings.FruitsDash));
                InputManager.leftButton1i |= InputManager.leftButton1;
                if (InputManager.leftButton1i)
                {
                    InputManager.leftButton = ButtonState.Pressed;
                }
            }

            Dashing = InputManager.leftButton == ButtonState.Pressed;

            if (Dashing)
            {
                frameCheck += 4;
            }

            float currentMovementSpeed = baseMovementSpeed * specialMovementModifier;

            if (!Dashing)
            {
                currentMovementSpeed /= 2;
            }

            if (InputManager.ReplayMode || Player.Relaxing)
            {
                float newPos = InputManager.ReplayGamefieldCursor.X;

                if (InputManager.NewReplayFrame)
                {
                    LeftPressed  = catcher1.Position.X > newPos;
                    RightPressed = catcher1.Position.X < newPos;
                }

                if (catcher1.Position.X != newPos)
                {
#if DEBUG
                    if (!ModManager.CheckActive(Mods.Autoplay) && (Math.Abs(catcher1.Position.X - newPos) > currentMovementSpeed * GameBase.SIXTY_FRAME_TIME))
                    {
                        NotificationManager.ShowMessageMassive("Impossible movement (" + Math.Abs(catcher1.Position.X - newPos) + " vs " + (currentMovementSpeed * GameBase.SIXTY_FRAME_TIME) + ")", 1000);
                    }
#endif

                    catcher1.FlipHorizontal = catcher1.Position.X > newPos;

                    catcher1.Position.X = newPos;
                }
            }
            else
            {
                if (GameBase.ElapsedMilliseconds > 33)
                {
                    return;
                }

                if (Math.Abs(catcher1.Position.X - checkPosition) > 0.01f)
                {
                    catcher1.Position.X = checkPosition;
                    CurrentScore.InvalidateSubmission();
                }


                if ((RightPressed = KeyboardHandler.IsKeyDown(BindingManager.For(Bindings.FruitsRight)) || JoystickHandler.IsKeyDown(BindingManager.For(Bindings.FruitsRight))))
                {
                    frameCheck             += 1;
                    catcher1.Position.X     = (float)(catcher1.Position.X + currentMovementSpeed * GameBase.ElapsedMilliseconds);
                    catcher1.FlipHorizontal = false;
                }

                if ((LeftPressed = KeyboardHandler.IsKeyDown(BindingManager.For(Bindings.FruitsLeft)) || JoystickHandler.IsKeyDown(BindingManager.For(Bindings.FruitsLeft))))
                {
                    frameCheck             += 2;
                    catcher1.Position.X     = (float)(catcher1.Position.X - currentMovementSpeed * GameBase.ElapsedMilliseconds);
                    catcher1.FlipHorizontal = true;
                }
            }

            checkSpecialWaitingState();

            importantFrame      = frameCheck != importantFrameCheck;
            importantFrameCheck = frameCheck;

            catcher1.Position.X = OsuMathHelper.Clamp(catcher1.Position.X, 0, 512);
            checkPosition       = catcher1.Position.X;
        }
コード例 #5
0
ファイル: ModManager.cs プロジェクト: notperry1234567890/osu
        internal static void CheckForCurrentPlayMode(Mods ensureSet = Mods.None)
        {
            switch (Player.Mode)
            {
            case PlayModes.Osu:
                //  ModStatus &= ~(Mods.FadeIn);
                break;

            case PlayModes.Taiko:
                ModStatus &= ~(Mods.Relax2 | Mods.SpunOut | Mods.Target);
                break;

            case PlayModes.CatchTheBeat:
                ModStatus &= ~(Mods.Relax2 | Mods.SpunOut | Mods.Target);
                break;

            case PlayModes.OsuMania:
                ModStatus &= ~(Mods.Relax2 | Mods.SpunOut | Mods.Relax | Mods.Target);
                break;
            }

            bool isMania = Player.Mode == PlayModes.OsuMania;

            if (!isMania)
            {
                ModStatus &= ~(Mods.KeyMod | Mods.Random | Mods.FadeIn);
            }

            //Loop through each bitwise mod for this check.
            for (Mods i = ensureSet != Mods.None ? ensureSet : (Mods)1;
                 i < (ensureSet != Mods.None ? (Mods)((int)ensureSet << 1) : Mods.LastMod);
                 i = (Mods)((int)i * 2))
            {
                Mods thisCheck = ModStatus & i;
                if (thisCheck == 0)
                {
                    continue;
                }

                switch (thisCheck)
                {
                case Mods.Cinema:
                    ModStatus |= Mods.Autoplay;
                    break;

                case Mods.NoFail:
                    ModStatus &= ~Mods.SuddenDeath;
                    ModStatus &= ~Mods.Perfect;
                    ModStatus &= ~Mods.Relax2;
                    ModStatus &= ~Mods.Relax;
                    break;

                case Mods.Easy:
                    ModStatus &= ~Mods.HardRock;
                    break;

                case Mods.Hidden:
                    if (isMania)
                    {
                        ModStatus &= ~Mods.Flashlight;
                        ModStatus &= ~Mods.FadeIn;
                    }
                    break;

                case Mods.FadeIn:
                    ModStatus &= ~Mods.Hidden;
                    ModStatus &= ~Mods.Flashlight;
                    break;

                case Mods.Flashlight:
                    if (isMania)
                    {
                        ModStatus &= ~Mods.Hidden;
                        ModStatus &= ~Mods.FadeIn;
                    }
                    break;

                case Mods.HardRock:
                    ModStatus &= ~Mods.Easy;
                    break;

                case Mods.SuddenDeath:
                    ModStatus &= ~Mods.NoFail;
                    ModStatus &= ~Mods.Relax2;
                    ModStatus &= ~Mods.Relax;
                    break;

                case Mods.Perfect:
                    ModStatus |= Mods.SuddenDeath;
                    break;

                case Mods.DoubleTime:
                    ModStatus &= ~Mods.HalfTime;
                    break;

                case Mods.Nightcore:
                    ModStatus |= Mods.DoubleTime;
                    break;

                case Mods.HalfTime:
                    ModStatus &= ~Mods.DoubleTime;
                    ModStatus &= ~Mods.Nightcore;
                    break;

                case Mods.Relax:
                    ModStatus &= ~Mods.Relax2;
                    ModStatus &= ~Mods.NoFail;
                    ModStatus &= ~Mods.SuddenDeath;
                    ModStatus &= ~Mods.Perfect;
                    break;

                case Mods.Relax2:
                    ModStatus &= ~Mods.SpunOut;
                    ModStatus &= ~Mods.Relax;
                    ModStatus &= ~Mods.NoFail;
                    ModStatus &= ~Mods.SuddenDeath;
                    ModStatus &= ~Mods.Perfect;
                    break;

                case Mods.SpunOut:
                    ModStatus &= ~Mods.Relax2;
                    break;
                }
            }

            if ((ModStatus & Mods.Autoplay) > 0)
            {
                ModStatus &= ~Mods.SpunOut;
                ModStatus &= ~Mods.Relax;
                ModStatus &= ~Mods.Relax2;
                ModStatus &= ~Mods.SuddenDeath;
                ModStatus &= ~Mods.Perfect;
            }
        }
コード例 #6
0
ファイル: ModManager.cs プロジェクト: notperry1234567890/osu
 internal static void Reset()
 {
     ModStatus = Mods.None;
 }
コード例 #7
0
 public static Comfort.Common.Operation method_0(Comfort.Common.StartCoroutineDelegate startCoroutineDelegate_0, BattlEye.BEClient.LogDelegate logDelegate_0)
 {
     Obfuscated @class = new Obfuscated();
     startCoroutineDelegate_0(@class.method_1(logDelegate_0));
     return @class;
 }
コード例 #8
0
        /// <summary>
        /// Gets the raw JSON string
        /// </summary>
        /// <returns>the raw JSON string used by the game</returns>
        public virtual string GetJsonString()
        {
            List <string> outString = new List <string>();

            if (!(Color is null) && !(RGBColor is null))
            {
                throw new InvalidOperationException("Cannot get json string since both " + nameof(Color) + " and" + nameof(RGBColor) + " is set.");
            }
            if (!(Color is null))
            {
                outString.Add("\"color\":\"" + Color + "\"");
            }
            if (!(RGBColor is null))
            {
                outString.Add("\"color\":\"" + RGBColor.GetHexColor() + "\"");
            }
            if (!(Obfuscated is null))
            {
                outString.Add("\"obfuscated\":" + Obfuscated.ToMinecraftBool());
            }
            if (!(Bold is null))
            {
                outString.Add("\"bold\":" + Bold.ToMinecraftBool());
            }
            if (!(Italic is null))
            {
                outString.Add("\"italic\":" + Italic.ToMinecraftBool());
            }
            if (!(Strikethrough is null))
            {
                outString.Add("\"strikethrough\":" + Strikethrough.ToMinecraftBool());
            }
            if (!(Underline is null))
            {
                outString.Add("\"underlined\":" + Underline.ToMinecraftBool());
            }
            if (!(Reset is null))
            {
                outString.Add("\"reset\":" + Reset.ToMinecraftBool());
            }
            if (!(ShiftClickInsertion is null))
            {
                outString.Add("\"insertion\":\"" + ShiftClickInsertion.Escape() + "\"");
            }
            if (!(Font is null))
            {
                outString.Add("\"font\":\"" + Font.Escape() + "\"");
            }
            if (!(ClickEvent is null))
            {
                outString.Add(ClickEvent.GetEventString());
            }
            if (!(HoverEvent is null))
            {
                outString.Add(HoverEvent.GetEventString());
            }
            if (!(Extra is null) && Extra.Length != 0)
            {
                outString.Add("\"extra\":[" + string.Join(",", Extra.Select(j => j.GetJsonString())) + "]");
            }
            outString.Add(GetSpecificJsonString());

            return("{" + string.Join(",", outString) + "}");
        }