Esempio n. 1
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="startPos">Start Position</param>
        /// <param name="time">Time (Millisecond)</param>
        /// <param name="hitSound">HitObjectSound</param>
        /// <param name="prevPoint">Previous Point</param>
        /// <param name="mpb">Milliseconds per beat</param>
        public Triple(Vector2 startPos, int time, HitObjectSoundType hitSound, Vector2 prevPoint, float mpb, Difficulty difficulty) // Simplest pattern, let's implement this first.
        {
            totalLength  = difficulty.baseCircleTimestamp * 2.0f;                                                                   // NoteDuration.Quarter;
            subsetLength = difficulty.baseCircleTimestamp / 2.0f;                                                                   // NoteDuration.Sixteenth;

            this.mpb = mpb;

            numObjects = 3;

            this.HitType  = (int)HitObjectType.Normal;
            this.HitSound = (int)hitSound;

            // Start at position determined by the first HitCircle. Then determine the rest of the points based off of that position.
            for (int i = 0; i < numObjects; i++)
            {
                if (i == 0)
                {
                    var hc = new HitCircle(startPos, (int)(time + (subsetLength * i * mpb)), (HitObjectType)HitType, (HitObjectSoundType)HitSound, prevPoint, 10f, false);
                    startPos = hc.Position;
                    hitCircles.Add(hc);
                    continue;
                }

                else
                {
                    Vector2 newPos = new Vector2(startPos.X + xOffset, startPos.Y + yOffset);
                    startPos = newPos;
                    hitCircles.Add(new HitCircle(startPos, (int)(time + (subsetLength * i * mpb)), (HitObjectType)HitType, (HitObjectSoundType)HitSound, prevPoint, 10f, true));
                }
            }
        }
Esempio n. 2
0
        public SpinnerTaiko(HitObjectManager hom, int startTime, int endTime, HitObjectSoundType soundType)
            : base(hom, startTime, endTime, soundType)
        {
            rotationRequirement      = (int)Math.Max(1, (rotationRequirement * 1.65f));
            totalRotationRequirement = rotationRequirement;

            if (ModManager.CheckActive(hitObjectManager.ActiveMods, Mods.DoubleTime))
            {
                rotationRequirement = Math.Max(1, (int)(rotationRequirement * 0.75f));
            }
            if (ModManager.CheckActive(hitObjectManager.ActiveMods, Mods.HalfTime))
            {
                rotationRequirement = Math.Max(1, (int)(rotationRequirement * 1.5f));
            }

            if (hitObjectManager.spriteManager != null)
            {
                SpriteBonusCounter.Transformations = new List <Transformation>(SpriteCircleTop.Transformations);
                SpriteBonusCounter.Text            = (rotationRequirement + 1).ToString();

                WarningIcon =
                    new pSprite(TextureManager.Load("spinner-warning"), Fields.GamefieldWide, Origins.Centre,
                                Clocks.Audio, Position, SpriteManager.drawOrderBwd(StartTime + 1), false, Color.White);
                SpriteCollection.Add(WarningIcon);
                WarningIcon.TagNumeric = -5;
                DimCollection.Add(WarningIcon);

                WarningIcon.Transformations.Add(
                    new Transformation(TransformationType.Fade, 0, 1, startTime - hitObjectManager.PreEmpt,
                                       startTime - (int)(hitObjectManager.PreEmpt * 0.6)));
            }


            Kiai = false;
        }
Esempio n. 3
0
        internal SpinnerFruits(HitObjectManager hom, int startTime, int endTime, HitObjectSoundType soundType)
            : base(hom, startTime, endTime, soundType)
        {
            HitFactoryFruits hitFactoryFruits = hitObjectManager.hitFactory as HitFactoryFruits;

            bool  first = true;
            float var   = (endTime - startTime);

            while (var > 100)
            {
                var /= 2;
            }

            if (var <= 0)
            {
                return;
            }

            int count = 0;

            for (float j = startTime; j <= endTime; j += var)
            {
                HitCircleFruitsSpin f = new HitCircleFruitsSpin(hitObjectManager, new Vector2(hitFactoryFruits.random.Next(0, 512), 0),
                                                                (int)j, first && this.NewCombo, SoundType,
                                                                hitFactoryFruits.GetRandomFruit(), count);
                Fruits.Add(f);

                first = false;
                count++;
            }
        }
Esempio n. 4
0
 // Token: 0x06002BCB RID: 11211
 // RVA: 0x0011C124 File Offset: 0x0011A324
 public Class310(Class297 class297_1, Vector2 vector2_1, int int_8, bool bool_14, HitObjectSoundType hitObjectSoundType_0, bool bool_15)
     : base(class297_1, vector2_1, int_8, bool_14, hitObjectSoundType_0, 0)
 {
     this.method_8(false);
     this.method_10((this.SoundType & ~HitObjectSoundType.Finish & ~HitObjectSoundType.Normal) == HitObjectSoundType.None);
     float num = this.vmethod_26();
     foreach (Class531 current in this.list_1)
     {
         current.float_2 *= num;
     }
     if (this.method_9())
     {
         base.vmethod_0(new Color(235, 69, 44));
     }
     else
     {
         base.vmethod_0(new Color(67, 142, 172));
     }
     if (this.class538_0 != null)
     {
         this.class538_0.bool_16 = false;
     }
     this.list_1.ForEach(delegate(Class531 class531_4)
     {
         class531_4.enum115_0 = Enum115.const_1;
     });
     this.bool_2 = bool_15;
 }
 public override void OnDeserialize(BinaryReader stream, StringCacheTable _)
 {
     HitSound           = (HitObjectSoundType)stream.ReadByte();
     SampleSet          = (SampleSetType)stream.ReadByte();
     SampleSetAdditions = (SampleSetType)stream.ReadByte();
     CustomSampleSet    = (CustomSampleSetType)stream.ReadInt32();
 }
Esempio n. 6
0
        private static string MakeSoundAdditions(string rep)
        {
            HitObjectSoundType sounds = (HitObjectSoundType)Convert.ToInt32(rep);

            sounds |= HitObjectSoundType.Normal;
            return(((int)sounds).ToString(nfi));
        }
Esempio n. 7
0
 // Token: 0x0600224B RID: 8779
 // RVA: 0x000CA684 File Offset: 0x000C8884
 public Class313(Class297 class297_1, int int_12, int int_13, int int_14, HitObjectSoundType hitObjectSoundType_2)
     : base(class297_1, int_12, int_13, hitObjectSoundType_2)
 {
     int_12 = this.class409_0;
     this.SoundType = hitObjectSoundType_2;
     this.hitObjectSoundType_1 = hitObjectSoundType_2;
     this.hitObjectSoundType_0 = hitObjectSoundType_2;
     this.enum47_0 = Enum47.const_1;
     this.EndTime = int_14;
     this.bool_10 = true;
     if (!class297_1.class421_0.method_10())
     {
         this.class538_0.method_55(base.method_8(string.Format("NoteImage{0}H", int_12), this.class409_0.method_19() + "H"));
         this.class538_0.method_43(class297_1.class421_0.class546_0.method_11(int_12, "H", this.class538_0.method_42()));
         base.method_9(this.class538_0);
         this.class538_2 = new Class538(base.method_8(string.Format("NoteImage{0}T", int_12), this.class409_0.method_19() + "T") ?? this.class538_0.method_54(), Enum115.const_5, this.class538_0.origins_0, Enum114.const_1, this.Position, 0.7975f, false, Color.get_White());
         this.class538_2.float_3 = this.class538_0.float_3;
         this.class538_2.method_43(!class297_1.class421_0.class546_0.method_11(int_12, "T", true));
         base.method_9(this.class538_2);
         this.list_1.Add(this.class538_2);
         this.class538_1 = new Class538(base.method_8(string.Format("NoteImage{0}L", int_12), this.class409_0.method_19() + "L"), Enum115.const_5, this.class538_0.origins_0, Enum114.const_1, this.Position, 0.795f, false, Color.get_White());
         this.class538_1.float_3 = this.class538_0.float_3;
         this.class538_1.method_53(30.0);
         this.class538_1.bool_16 = false;
         this.class538_1.method_43(class297_1.class421_0.class546_0.method_11(int_12, "L", true));
         base.method_9(this.class538_1);
         this.list_1.Add(this.class538_1);
     }
 }
Esempio n. 8
0
 public HitSoundInfo(HitObjectSoundType SoundType, SampleSet SampleSet, CustomSampleSet CustomSampleSet, int Volume, SampleSet SampleSetAdditions = SampleSet.None)
 {
     this.SoundType          = SoundType;
     this.SampleSet          = SampleSet;
     this.SampleSetAdditions = SampleSetAdditions;
     this.CustomSampleSet    = CustomSampleSet;
     this.Volume             = Volume;
 }
Esempio n. 9
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="x">X-position</param>
 /// <param name="y">Y-position</param>
 /// <param name="time">Time (Millisecond)</param>
 /// <param name="hitType">HitObjectType</param>
 /// <param name="hitsound">HitObjectSoundType</param>
 /// <param name="endTime">End Time of the Spinner</param>
 public HitSpinner(int x, int y, int time, HitObjectType hitType, HitObjectSoundType hitsound, int endTime)
 {
     Position      = new Vector2(x, y);
     this.Time     = time;
     this.HitType  = (int)hitType;
     this.HitSound = (int)hitsound;
     this.EndTime  = endTime;
 }
 public HitSoundInfo(double Time, HitObjectSoundType SoundType, SampleSetType SampleSet, CustomSampleSetType CustomSampleSet, SampleSetType SampleSetAdditions = SampleSetType.None)
 {
     this.SoundType          = SoundType;
     this.SampleSet          = SampleSet;
     this.SampleSetAdditions = SampleSetAdditions;
     this.CustomSampleSet    = CustomSampleSet;
     this.Time = Time;
 }
Esempio n. 11
0
 // Token: 0x06003414 RID: 13332
 // RVA: 0x000264D7 File Offset: 0x000246D7
 public Struct69(HitObjectSoundType hitObjectSoundType_1, SampleSet sampleSet_2, Enum38 enum38_1, int int_1, SampleSet sampleSet_3)
 {
     this.hitObjectSoundType_0 = hitObjectSoundType_1;
     this.sampleSet_0 = sampleSet_2;
     this.sampleSet_1 = sampleSet_3;
     this.enum38_0 = enum38_1;
     this.int_0 = int_1;
 }
Esempio n. 12
0
 // Token: 0x06003415 RID: 13333
 // RVA: 0x000264FE File Offset: 0x000246FE
 public static Struct69 smethod_0(HitObjectSoundType hitObjectSoundType_1, SampleSet sampleSet_2, Enum38 enum38_1, int int_1, SampleSet sampleSet_3)
 {
     if (hitObjectSoundType_1 == HitObjectSoundType.None || (Class885.class547_0.bool_6 && Class466.Current.method_5() != PlayModes.OsuMania))
     {
         hitObjectSoundType_1 |= HitObjectSoundType.Normal;
     }
     return new Struct69(hitObjectSoundType_1, sampleSet_2, enum38_1, int_1, sampleSet_3);
 }
Esempio n. 13
0
        internal override HitCircle CreateHitCircle(Vector2 startPosition, int startTime, bool newCombo,
                                                    HitObjectSoundType soundType, int comboOffset, SampleSet sampleSet, SampleSet addSet, CustomSampleSet customSampleSet, int volume, string sampleFile)
        {
            ControlPoint cp   = hitObjectManager.Beatmap.ControlPointAt(startTime + 5);
            bool         kiai = cp != null ? cp.KiaiMode : false;

            return(new HitCircleTaiko(hitObjectManager, startPosition, startTime, newCombo, soundType, kiai));
        }
Esempio n. 14
0
        internal override Slider CreateSlider(Vector2 startPosition, int startTime, bool newCombo,
                                              HitObjectSoundType soundType, CurveTypes curveType, int repeatCount, double sliderLength, List <Vector2> sliderPoints, List <HitObjectSoundType> soundTypes, int comboOffset,
                                              SampleSet sampleSet, SampleSet addSet, List <SampleSet> sampleSets, List <SampleSet> sampleSetAdditions, CustomSampleSet customSampleSet, int volume, string sampleFile)
        {
            SliderMania s;

            if (hitObjectManager.Beatmap.PlayMode == PlayModes.OsuMania)
            {
                s                    = new SliderMania(hitObjectManager, startPosition, startTime, soundType, repeatCount, sliderLength, sliderPoints, soundTypes, ManiaConvertType.NotChange, prevRow);
                s.SampleSet          = sampleSet;
                s.SampleSetAdditions = addSet;
                s.CustomSampleSet    = customSampleSet;
                s.SampleVolume       = volume;
                s.GenerateHitObjects();

                s.HitObjects.ForEach(n => n.ProcessSampleFile(sampleFile));
                record(startPosition, s.EndTime);
            }
            else
            {
                ControlPoint     cp    = hitObjectManager.Beatmap.ControlPointAt(startTime);
                ManiaConvertType ctype = ManiaConvertType.None;
                if (cp != null && !cp.KiaiMode)
                {
                    ctype = ManiaConvertType.LowProbability;
                }
                s                       = new SliderMania(hitObjectManager, startPosition, startTime, soundType, repeatCount, sliderLength, sliderPoints, soundTypes, ctype, prevRow);
                s.SampleSet             = sampleSet;
                s.SampleSetAdditions    = addSet;
                s.SampleSetList         = sampleSets;
                s.SampleSetAdditionList = sampleSetAdditions;
                s.CustomSampleSet       = customSampleSet;
                s.SampleVolume          = volume;
                s.GenerateHitObjects();

                prevRow = new bool[hitObjectManager.ManiaStage.Columns.Count];
                if (s.HitObjects.Count > 1)
                {
                    foreach (HitCircleMania hb in s.HitObjects.FindAll(h => h.EndTime == s.EndTime))
                    {
                        prevRow[hb.LogicalColumn] = true;
                    }
                }
                else
                {
                    prevRow[s.HitObjects[0].LogicalColumn] = true;
                }
                s.HitObjects.ForEach(n => n.ProcessSampleFile(sampleFile));
                int intv = (s.EndTime - startTime) / repeatCount;
                while (repeatCount-- >= 0)
                {
                    record(startPosition, startTime);
                    densityUpdate(startTime);
                    startTime += intv;
                }
            }
            return(s);
        }
Esempio n. 15
0
        public static HitSoundInfo GetLayered(HitObjectSoundType SoundType, SampleSet SampleSet, CustomSampleSet CustomSampleSet, int Volume, SampleSet SampleSetAdditions = SampleSet.None)
        {
            if (SoundType == HitObjectSoundType.None || (SkinManager.Current != null && SkinManager.Current.LayeredHitSounds && BeatmapManager.Current != null && BeatmapManager.Current.PlayMode != PlayModes.OsuMania))
            {
                SoundType |= HitObjectSoundType.Normal;
            }

            return(new HitSoundInfo(SoundType, SampleSet, CustomSampleSet, Volume, SampleSetAdditions));
        }
        internal override void ChangeState(State undoState)
        {
            SliderOsu s = (SliderOsu)changedObjects[0];

            ListHelper.Swap(s.sliderCurvePoints, sliderBackup.sliderCurvePoints);

            s.ClearPositionOffset();
            sliderBackup.ClearPositionOffset();

            Vector2 position = s.BasePosition;

            s.sliderStartCircle.ModifyPosition(sliderBackup.Position);
            s.Position = s.BasePosition = sliderBackup.Position;

            sliderBackup.Position = sliderBackup.BasePosition = position;

            double spatialLength = s.SpatialLength;

            s.SpatialLength            = sliderBackup.SpatialLength;
            sliderBackup.SpatialLength = spatialLength;

            int startTime = s.StartTime;
            int endTime   = s.EndTime;

            s.ModifySliderTime(sliderBackup.StartTime, false);

            sliderBackup.StartTime = startTime;
            sliderBackup.EndTime   = endTime;

            bool newCombo = s.NewCombo;

            s.NewCombo            = sliderBackup.NewCombo;
            sliderBackup.NewCombo = newCombo;

            HitObjectSoundType soundType = s.SoundType;

            s.SoundType            = sliderBackup.SoundType;
            sliderBackup.SoundType = soundType;

            SampleSet ss  = s.SampleSet;
            SampleSet ssa = s.SampleSetAdditions;

            s.SampleSet          = sliderBackup.SampleSet;
            s.SampleSetAdditions = sliderBackup.SampleSetAdditions;

            sliderBackup.SampleSet          = ss;
            sliderBackup.SampleSetAdditions = ssa;

            ListHelper.Swap(s.SoundTypeList, sliderBackup.SoundTypeList);
            ListHelper.Swap(s.SampleSetList, sliderBackup.SampleSetList);
            ListHelper.Swap(s.SampleSetAdditionList, sliderBackup.SampleSetAdditionList);

            s.UpdateCalculations();

            ActiveManager.Editor.Compose.UpdateSamples();
            ActiveManager.Editor.Compose.UpdateSoundAdditions();
        }
Esempio n. 17
0
        public string GetSliderData(Vector2 startPosition, int time, HitObjectType hitType,
                                    HitObjectSoundType hitsound, SliderCurveType sliderType, int repeat, float sliderVelocity, int numCurves, float timeSpan)
        {
            // Length will determine how long a slider will go on for
            int len = (int)(sliderVelocity * 100 * timeSpan);
            var hs  = new HitSlider(startPosition, time, hitType, hitsound, sliderType, repeat, sliderVelocity, numCurves, len);

            return(hs.SerializeForOsu());
        }
Esempio n. 18
0
 public Slider(Position position, int startTime, bool isNewCombo = false, HitObjectType type = HitObjectType.Slider,
               HitObjectSoundType soundType = HitObjectSoundType.Normal)
     : base(startTime, position, isNewCombo, type, soundType)
 {
     SliderType     = SliderType.Linear;
     SegmentCount   = 1;
     ControlPoints  = new[] { StartPosition };
     PointHitsounds = new List <PointHitsound>();
 }
Esempio n. 19
0
        internal override Slider CreateSlider(Vector2 startPosition, int startTime, bool newCombo,
                                              HitObjectSoundType soundType, CurveTypes curveType, int repeatCount, double sliderLength, List <Vector2> sliderPoints,
                                              List <HitObjectSoundType> soundTypes, int comboOffset, SampleSet sampleSet, SampleSet addSet, List <SampleSet> sampleSets, List <SampleSet> sampleSetAdditions, CustomSampleSet customSampleSet, int volume, string sampleFile)
        {
            ControlPoint cp   = hitObjectManager.Beatmap.ControlPointAt(startTime + 5);
            bool         kiai = cp != null ? cp.KiaiMode : false;

            return(new SliderTaiko(hitObjectManager, startPosition, startTime, newCombo, soundType, curveType, repeatCount, sliderLength, sliderPoints, soundTypes, kiai));
        }
Esempio n. 20
0
        public HitCircleFruits(HitObjectManager hom, Vector2 startPosition, int startTime, bool newCombo, HitObjectSoundType soundType, string fruit)
            : base(hom)
        {
            Position     = new Vector2(OsuMathHelper.Clamp(startPosition.X, 0, GameField.DEFAULT_WIDTH), 340);
            BasePosition = Position;
            StartTime    = startTime;
            EndTime      = startTime;
            SoundType    = soundType;

            NewCombo = newCombo;

            if (hom.spriteManager != null)
            {
                SpriteHitCircle1 =
                    new pSprite(TextureManager.Load(@"fruit-" + fruit), Fields.Gamefield, Origins.Centre,
                                Clocks.Audio, Position, SpriteManager.drawOrderBwd(StartTime), false, Color.White);
                SpriteCollection.Add(SpriteHitCircle1);
                DimCollection.Add(SpriteHitCircle1);
                SpriteHitCircle1.TagNumeric = 1;

                SpriteHitCircle2 =
                    new pSprite(TextureManager.Load(@"fruit-" + fruit + "-overlay"), Fields.Gamefield,
                                Origins.Centre, Clocks.Audio, Position,
                                SpriteManager.drawOrderBwd(StartTime - 1), false, Color.White);
                SpriteCollection.Add(SpriteHitCircle2);
                DimCollection.Add(SpriteHitCircle2);

                SpriteHyperDash =
                    new pSprite(TextureManager.Load(@"fruit-" + fruit), Fields.Gamefield,
                                Origins.Centre, Clocks.Audio, Position,
                                SpriteManager.drawOrderBwd(StartTime + 1), false, Color.TransparentBlack);
                SpriteHyperDash.Additive = true;
                SpriteCollection.Add(SpriteHyperDash);
                DimCollection.Add(SpriteHyperDash);

                Transformation fall1 = new Transformation(new Vector2(Position.X, -100), new Vector2(Position.X, 340), StartTime - hitObjectManager.PreEmpt, StartTime);

                fall1.EndVector.Y += (fall1.EndVector.Y - fall1.StartVector.Y) * 0.2f;
                fall1.Time2       += (int)(fall1.Duration * 0.2f);

                float rotation = RNG.NextSingle(-0.2f, 0.2f);

                SpriteCollection.ForEach(s =>
                {
                    s.Transformations.Add(fall1);
                    s.Rotation = rotation;
                });

                if (ModManager.CheckActive(hitObjectManager.ActiveMods, Mods.Hidden))
                {
                    Transformation t = new Transformation(TransformationType.Fade, 1, 0, startTime - (int)(hitObjectManager.PreEmpt * 0.6),
                                                          startTime - (int)(hitObjectManager.PreEmpt * 0.44));
                    SpriteCollection.ForEach(s => s.Transformations.Add(t));
                }
            }
        }
Esempio n. 21
0
 protected HitObject(int startTime, Position position, bool isNewcombo, HitObjectType type, HitObjectSoundType soundType)
 {
     StartTime     = startTime;
     StartPosition = position;
     NewCombo      = isNewcombo || type.HasFlag(HitObjectType.NewCombo)
         ? 1 + ((int)(type & HitObjectType.CustomCombo) >> 4)
         : 0;
     Type      = type ^ (type & (HitObjectType.CustomCombo | HitObjectType.NewCombo)); //take out new combo bits (64, 32, 16 and 4)
     SoundType = soundType;
 }
Esempio n. 22
0
 public HitObject(HitObjectManager hitObjectManager, Vector2 position, int startTime, HitObjectSoundType soundType, bool newCombo, int comboOffset)
 {
     m_HitObjectManager = hitObjectManager;
     this.position      = position;
     StartTime          = startTime;
     EndTime            = StartTime;
     SoundType          = soundType;
     NewCombo           = newCombo;
     ComboOffset        = comboOffset;
 }
Esempio n. 23
0
 public HitCircleTaiko(int x, int y, int startTime, bool newCombo, HitObjectSoundType soundType)
     : base(x, y, startTime, newCombo, soundType)
 {
     if ((SoundType & HitObjectSoundType.Finish) == 0)
     {
         foreach (pSprite p in SpriteCollection)
         {
             p.CurrentScale *= 0.7f;
         }
     }
 }
Esempio n. 24
0
        internal override Spinner CreateSpinner(int startTime, int endTime, HitObjectSoundType soundType, SampleSet sampleSet, SampleSet addSet, CustomSampleSet customSampleSet, int volume, string sampleFile)
        {
            SpinnerOsu p = new SpinnerOsu(hitObjectManager, startTime, endTime, soundType);

            p.SampleSet          = sampleSet;
            p.SampleSetAdditions = addSet;
            p.CustomSampleSet    = customSampleSet;
            p.SampleVolume       = volume;
            p.ProcessSampleFile(sampleFile);
            return(p);
        }
Esempio n. 25
0
        internal override HitCircle CreateHitCircle(Vector2 startPosition, int startTime, bool newCombo,
                                                    HitObjectSoundType soundType, int comboOffset, SampleSet sampleSet, SampleSet addSet, CustomSampleSet customSampleSet, int volume, string sampleFile)
        {
            HitCircleOsu c = new HitCircleOsu(hitObjectManager, startPosition, startTime, newCombo, soundType, comboOffset);

            c.SampleSet          = sampleSet;
            c.SampleSetAdditions = addSet;
            c.CustomSampleSet    = customSampleSet;
            c.SampleVolume       = volume;
            c.ProcessSampleFile(sampleFile);
            return(c);
        }
Esempio n. 26
0
        public Square(Vector2 startPos, int time, HitObjectSoundType hitSound, Vector2 prevPoint, float mpb, Difficulty difficulty)
        {
            numObjects = 4;

            totalLength  = difficulty.baseCircleTimestamp * numObjects + 1;
            subsetLength = difficulty.baseCircleTimestamp;

            hitCircles.Add(new HitCircle(startPos, (int)(time + (subsetLength * mpb)), (HitObjectType)HitType, (HitObjectSoundType)HitSound, prevPoint, 10f, false));
            hitCircles.Add(new HitCircle(new Vector2(startPos.X + noteDistance, startPos.Y), (int)(time + (subsetLength * 2 * mpb)), (HitObjectType)HitType, (HitObjectSoundType)HitSound, prevPoint, 10f, true));
            hitCircles.Add(new HitCircle(new Vector2(startPos.X + noteDistance, startPos.Y + noteDistance), (int)(time + (subsetLength * 3 * mpb)), (HitObjectType)HitType, (HitObjectSoundType)HitSound, prevPoint, 10f, true));
            hitCircles.Add(new HitCircle(new Vector2(startPos.X - noteDistance, startPos.Y + noteDistance), (int)(time + (subsetLength * 4 * mpb)), (HitObjectType)HitType, (HitObjectSoundType)HitSound, prevPoint, 10f, true));
        }
Esempio n. 27
0
 // Token: 0x06002B97 RID: 11159
 // RVA: 0x0011B7E8 File Offset: 0x001199E8
 public Class316(Class297 class297_1, Vector2 vector2_2, int int_6, bool bool_8, HitObjectSoundType hitObjectSoundType_0, string string_1)
     : base(class297_1)
 {
     this.Position = new Vector2(Class778.smethod_2(vector2_2.X, 0f, (float)Class115.int_18), 340f);
     this.vector2_0 = this.Position;
     this.StartTime = int_6;
     this.EndTime = int_6;
     this.SoundType = hitObjectSoundType_0;
     this.NewCombo = bool_8;
     if (class297_1.class911_0 != null)
     {
         Class316.Class714 class = new Class316.Class714();
Esempio n. 28
0
        internal override HitCircle CreateSpecial(Vector2 startPosition, int startTime, int endTime, bool newCombo,
                                                  HitObjectSoundType soundType, int comboOffset, SampleSet sampleSet, SampleSet addSet, CustomSampleSet customSampleSet, int volume, string sampleFile)
        {
            HitCircleHold h = new HitCircleHold(hitObjectManager, startPosition, startTime, newCombo, (soundType & HitObjectSoundType.Whistle) > 0, (soundType & HitObjectSoundType.Finish) > 0,
                                                (soundType & HitObjectSoundType.Clap) > 0, 0);

            h.SampleSet          = sampleSet;
            h.SampleSetAdditions = addSet;
            h.CustomSampleSet    = customSampleSet;
            h.EndTime            = endTime;
            h.SampleVolume       = volume;
            h.ProcessSampleFile(sampleFile);
            return(h);
        }
Esempio n. 29
0
        internal SpinnerOsu(HitObjectManager hom, int startTime, int endTime, HitObjectSoundType soundType) : base(hom, startTime, endTime, soundType)
        {
            if (hom.spriteManager != null)
            {
                InitializeSprites();
            }

            UpdateTransformations();

            if (hom.spriteManager != null)
            {
                InitializeSpritesNoFadeIn();
            }
        }
Esempio n. 30
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="position">Hit object position</param>
        /// <param name="time">Time (Millisecond)</param>
        /// <param name="hitType">Hit Object Type</param>
        /// <param name="hitSound">Hit Object Sound Type</param>
        /// <param name="prevPoint">Previous Point (Reference)</param>
        /// <param name="maxDistance">Max distance between HitObjects</param>
        /// <param name="patternSkip">(Default = false) Determine whether to skip Point Calculation if Cirlce is a part of a pattern.</param>
        public HitCircle(Vector2 position, int time, HitObjectType hitType, HitObjectSoundType hitSound, Vector2 prevPoint, float maxDistance, bool patternSkip = false)
        {
            Position      = position;
            this.Time     = time;
            this.HitType  = (int)hitType;
            this.HitSound = (int)hitSound;

            this.PrevPos     = prevPoint;
            this.MaxDistance = maxDistance;

            if (!patternSkip) // Skips caclulating the new point if circle is part of a pattern .
            {
                CalculateHitPoint();
            }
        }
Esempio n. 31
0
 public SpinnerTaiko(int startTime, int endTime, HitObjectSoundType soundType)
     : base(startTime, endTime, soundType, false)
 {
     rotationRequirement = (int)Math.Max(1, (rotationRequirement * 1.5f));
     if (ModManager.CheckActive(Player.currentScore.enabledMods, Mods.DoubleTime))
     {
         rotationRequirement = Math.Max(1, (int)(rotationRequirement * 0.75f));
     }
     if (ModManager.CheckActive(Player.currentScore.enabledMods, Mods.HalfTime))
     {
         rotationRequirement = Math.Max(1, (int)(rotationRequirement * 1.5f));
     }
     spriteBonus.Transformations = spriteCircle.Transformations;
     spriteBonus.Text            = rotationRequirement.ToString();
 }
Esempio n. 32
0
 // Token: 0x060022AB RID: 8875
 // RVA: 0x000D04E4 File Offset: 0x000CE6E4
 protected Class325(Class297 class297_1, int int_6, int int_7, HitObjectSoundType hitObjectSoundType_0)
     : base(class297_1)
 {
     this.Position = new Vector2((float)(Class115.int_18 / 2), (float)(Class115.int_17 / 2));
     this.vector2_0 = this.Position;
     this.StartTime = int_6;
     this.EndTime = int_7;
     this.Type = HitObjectType.Spinner;
     if (this.class297_0.class296_0.int_6 <= 8)
     {
         this.Type |= HitObjectType.NewCombo;
     }
     this.SoundType = hitObjectSoundType_0;
     this.Colour = Color.get_Gray();
 }
Esempio n. 33
0
        internal override HitCircle CreateSpecial(Vector2 startPosition, int startTime, int endTime, bool newCombo,
                                                  HitObjectSoundType soundType, int comboOffset, SampleSet sampleSet, SampleSet addSet, CustomSampleSet customSampleSet, int volume, string sampleFile)
        {
            //notice:this type of note is ONLY generated by bms converter or future editor version
            HitCircleManiaHold h = new HitCircleManiaHold(hitObjectManager, hitObjectManager.ManiaStage.ColumnAt(startPosition), startTime, endTime, soundType);

            h.SampleSet          = sampleSet;
            h.SampleSetAdditions = addSet;
            h.CustomSampleSet    = customSampleSet;
            //    h.LoadSample();
            h.SampleVolume = volume;
            h.ProcessSampleFile(sampleFile);
            record(startPosition, endTime);
            densityUpdate(endTime);
            return(h);
        }
Esempio n. 34
0
        internal override Spinner CreateSpinner(int startTime, int endTime, HitObjectSoundType soundType, SampleSet sampleSet, SampleSet addSet, CustomSampleSet customSampleSet, int volume, string sampleFile)
        {
            SpinnerMania s;

            s                    = new SpinnerMania(hitObjectManager, startTime, endTime, soundType, ManiaConvertType.ForceNotStack, prevRow);
            s.SampleSet          = sampleSet;
            s.SampleSetAdditions = addSet;
            s.CustomSampleSet    = customSampleSet;
            s.SampleVolume       = volume;
            s.GenerateHitObjects();

            s.HitObjects.ForEach(n => n.ProcessSampleFile(sampleFile));
            record(new Vector2(256, 192), endTime);
            densityUpdate(endTime);
            return(s);
        }
Esempio n. 35
0
        protected Spinner(HitObjectManager hom, int startTime, int endTime, HitObjectSoundType soundType)
            : base(hom)
        {
            Position     = new Vector2(GameField.DEFAULT_WIDTH / 2, GameField.DEFAULT_HEIGHT / 2);
            BasePosition = Position;
            StartTime    = startTime;
            EndTime      = endTime;

            Type = HitObjectType.Spinner;
            if (hitObjectManager.Beatmap.BeatmapVersion <= 8)
            {
                Type |= HitObjectType.NewCombo;
            }

            SoundType = soundType;
            Colour    = Color.Gray;
        }
Esempio n. 36
0
 // Token: 0x0600229E RID: 8862
 // RVA: 0x000CF2F8 File Offset: 0x000CD4F8
 internal Class322(Class297 class297_1, Vector2 vector2_4, int int_14, HitObjectSoundType hitObjectSoundType_0, int int_15, double double_3, List<Vector2> list_12, List<HitObjectSoundType> list_13, Enum48 enum48_1, bool[] bool_15)
     : base(class297_1, vector2_4, int_14, false, hitObjectSoundType_0, CurveTypes.Bezier, int_15, double_3, list_12, list_13, 0)
 {
     this.class495_0 = (this.class297_0.class494_0 as Class495);
     this.list_11 = new List<Class312>();
     this.EndTime = base.method_8();
     this.enum48_0 = enum48_1;
     this.int_12 = base.Length / int_15;
     this.class297_0.class421_0.method_43(vector2_4, false);
     this.bool_14 = bool_15;
     for (int i = 0; i < bool_15.Length; i++)
     {
         if (bool_15[i])
         {
             this.int_13++;
         }
     }
 }
Esempio n. 37
0
 // Token: 0x060022AD RID: 8877
 // RVA: 0x000D05AC File Offset: 0x000CE7AC
 internal Class326(Class297 class297_1, int int_7, int int_8, HitObjectSoundType hitObjectSoundType_0, Enum48 enum48_1, bool[] bool_7)
     : base(class297_1, int_7, int_8, hitObjectSoundType_0)
 {
     this.bool_6 = bool_7;
     for (int i = 0; i < bool_7.Length; i++)
     {
         if (bool_7[i])
         {
             this.int_6++;
         }
     }
     this.enum48_0 = enum48_1;
     if (this.int_6 == this.class297_0.class421_0.list_0.Count)
     {
         this.enum48_0 &= (Enum48)(-3);
     }
     this.list_2 = new List<Class312>();
 }
Esempio n. 38
0
 internal SpinnerMania(HitObjectManager hom, int startTime, int endTime, HitObjectSoundType soundType, ManiaConvertType convertType, bool[] lastRow)
     : base(hom, startTime, endTime, soundType)
 {
     this.lastRow = lastRow;
     for (int i = 0; i < lastRow.Length; i++)
     {
         if (lastRow[i])
         {
             lastCount++;
         }
     }
     this.convertType = convertType;
     if (lastCount == hitObjectManager.ManiaStage.Columns.Count)
     {
         this.convertType &= ~ManiaConvertType.ForceNotStack;
     }
     HitObjects = new List <HitCircleMania>();
 }
Esempio n. 39
0
 // Token: 0x060022E9 RID: 8937
 // RVA: 0x000D27E0 File Offset: 0x000D09E0
 public Class315(Class297 class297_1, Vector2 vector2_1, int int_8, HitObjectSoundType hitObjectSoundType_0, Enum48 enum48_1, bool[] bool_8)
     : base(class297_1)
 {
     this.list_2 = new List<Class312>();
     this.enum48_0 = enum48_1;
     this.bool_6 = bool_8;
     this.Position = vector2_1;
     this.vector2_0 = vector2_1;
     this.StartTime = int_8;
     this.SoundType = hitObjectSoundType_0;
     for (int i = 0; i < bool_8.Length; i++)
     {
         if (bool_8[i])
         {
             this.int_6++;
             this.int_7 = i;
         }
     }
 }
Esempio n. 40
0
 // Token: 0x0600212F RID: 8495
 // RVA: 0x000C0588 File Offset: 0x000BE788
 internal Class478(string string_0)
 {
     string text = string_0;
     SampleSet sampleSet;
     if (Class558.smethod_0<SampleSet>(text, ref sampleSet) && sampleSet != SampleSet.None)
     {
         this.sampleSet_0 = sampleSet;
         this.bool_0 = true;
         text = text.Substring(this.sampleSet_0.ToString().Length, text.Length - this.sampleSet_0.ToString().Length);
         if (Class558.smethod_0<SampleSet>(text, ref sampleSet) && sampleSet != SampleSet.None)
         {
             this.sampleSet_1 = sampleSet;
             this.bool_1 = true;
             text = text.Substring(this.sampleSet_1.ToString().Length, text.Length - this.sampleSet_1.ToString().Length);
         }
     }
     HitObjectSoundType hitObjectSoundType;
     if (Class558.smethod_0<HitObjectSoundType>(text, ref hitObjectSoundType) && hitObjectSoundType != HitObjectSoundType.None && hitObjectSoundType != HitObjectSoundType.Normal)
     {
         this.hitObjectSoundType_0 = hitObjectSoundType;
         text = text.Substring(this.hitObjectSoundType_0.ToString().Length, text.Length - this.hitObjectSoundType_0.ToString().Length);
     }
     int num;
     if (int.TryParse(text, out num))
     {
         this.enum38_0 = (Enum38)num;
         this.bool_2 = true;
     }
     if (this.hitObjectSoundType_0 != HitObjectSoundType.None && this.bool_0 && !this.bool_1)
     {
         this.sampleSet_1 = this.sampleSet_0;
         this.sampleSet_0 = SampleSet.All;
         this.bool_0 = false;
         this.bool_1 = true;
     }
     if (!this.ToString().Equals(this.vmethod_0().ToString() + string_0))
     {
         throw new Exception("Invalid hitsound trigger description after " + this.ToString());
     }
 }
Esempio n. 41
0
 // Token: 0x06002C14 RID: 11284
 // RVA: 0x0011D950 File Offset: 0x0011BB50
 internal Class323(Class297 class297_1, Vector2 vector2_4, int int_12, bool bool_14, HitObjectSoundType hitObjectSoundType_0, CurveTypes curveTypes_2, int int_13, double double_3, List<Vector2> list_12, List<HitObjectSoundType> list_13, string string_2)
     : base(class297_1, vector2_4, int_12, bool_14, hitObjectSoundType_0, curveTypes_2, int_13, double_3, list_12, list_13, 0)
 {
     this.string_1 = string_2;
     this.class911_0 = null;
 }
Esempio n. 42
0
 // Token: 0x06002C23 RID: 11299
 // RVA: 0x0011DD0C File Offset: 0x0011BF0C
 internal Class324(Class297 class297_1, Vector2 vector2_4, int int_13, bool bool_16, HitObjectSoundType hitObjectSoundType_0, CurveTypes curveTypes_2, int int_14, double double_5, List<Vector2> list_12, List<HitObjectSoundType> list_13, bool bool_17)
     : base(class297_1, vector2_4, int_13, bool_16, hitObjectSoundType_0, curveTypes_2, int_14, double_5, list_12, list_13, 0)
 {
     base.vmethod_0(new Color(252, 184, 6));
     this.bool_2 = bool_17;
 }
Esempio n. 43
0
 // Token: 0x06002BB1 RID: 11185
 // RVA: 0x0011BCC8 File Offset: 0x00119EC8
 public Class317(Class297 class297_1, Vector2 vector2_2, int int_7, bool bool_8, HitObjectSoundType hitObjectSoundType_0, string string_1, int int_8)
     : base(class297_1, vector2_2, int_7, bool_8, hitObjectSoundType_0, string_1)
 {
     Class317.Class717 class = new Class317.Class717();
Esempio n. 44
0
 // Token: 0x060021EF RID: 8687
 // RVA: 0x000C886C File Offset: 0x000C6A6C
 internal Class306(Class297 class297_1, Vector2 vector2_1, int int_7, bool bool_6, HitObjectSoundType hitObjectSoundType_0, int int_8)
     : this(class297_1, vector2_1, int_7, bool_6, hitObjectSoundType_0.IsType(HitObjectSoundType.Whistle), hitObjectSoundType_0.IsType(HitObjectSoundType.Finish), hitObjectSoundType_0.IsType(HitObjectSoundType.Clap), int_8)
 {
 }
Esempio n. 45
0
		// Token: 0x06002306 RID: 8966
		// RVA: 0x0001BD02 File Offset: 0x00019F02
		public Class314(Class297 class297_1, int int_12, int int_13, int int_14, HitObjectSoundType hitObjectSoundType_2) : base(class297_1, int_12, int_13, int_14, hitObjectSoundType_2)
		{
		}
Esempio n. 46
0
		// Token: 0x06002BC6 RID: 11206
		// RVA: 0x000216D5 File Offset: 0x0001F8D5
		internal Class309(Class297 class297_1, Vector2 vector2_1, int int_7, bool bool_6, HitObjectSoundType hitObjectSoundType_0, int int_8) : base(class297_1, vector2_1, int_7, bool_6, hitObjectSoundType_0, int_8)
		{
		}
Esempio n. 47
0
 public static bool IsType(this HitObjectSoundType Type, HitObjectSoundType type)
 {
     return (Type & type) > 0;
 }
Esempio n. 48
0
 // Token: 0x0600223A RID: 8762
 internal abstract Class305 vmethod_3(Vector2 vector2_0, int int_0, int int_1, bool bool_0, HitObjectSoundType hitObjectSoundType_0, int int_2, SampleSet sampleSet_0, SampleSet sampleSet_1, Enum38 enum38_0, int int_3, string string_0);
Esempio n. 49
0
 // Token: 0x06002259 RID: 8793
 // RVA: 0x000CAD04 File Offset: 0x000C8F04
 internal Class321(Class297 class297_1, Vector2 vector2_4, int int_12, bool bool_14, HitObjectSoundType hitObjectSoundType_0, CurveTypes curveTypes_2, int int_13, double double_3, List<Vector2> list_11, List<HitObjectSoundType> list_12, int int_14)
     : base(class297_1)
 {
     this.curveTypes_0 = curveTypes_2;
     this.curveTypes_1 = curveTypes_2;
     this.int_0 = int_14;
     this.class911_0 = this.class297_0.class911_0;
     this.StartTime = int_12;
     this.EndTime = int_12;
     this.Position = vector2_4;
     this.vector2_0 = vector2_4;
     this.EndPosition = vector2_4;
     this.SoundType = hitObjectSoundType_0;
     if (list_11 == null)
     {
         this.list_3 = new List<Vector2>();
         this.list_3.Add(this.Position);
     }
     else
     {
         this.list_3 = list_11;
         if (this.list_3.Count > 0)
         {
             if (this.list_3[0] != this.Position)
             {
                 this.list_3.Insert(0, this.Position);
             }
         }
         else
         {
             this.list_3.Add(this.Position);
         }
     }
     this.SegmentCount = Math.Max(1, int_13);
     this.bool_10 = (list_12 == null || list_12.Count == 0);
     if (!this.bool_10)
     {
         this.list_8 = list_12;
         this.list_9 = new List<SampleSet>(int_13 + 1);
         this.list_10 = new List<SampleSet>(int_13 + 1);
     }
     this.SpatialLength = double_3;
     this.bool_4 = true;
     this.list_2 = new List<Class311>();
     this.Type = HitObjectType.Slider;
     if (bool_14)
     {
         this.Type |= HitObjectType.NewCombo;
     }
     if (this.class911_0 != null)
     {
         this.vmethod_23();
         this.class538_1 = new Class538(Class885.smethod_27("sliderfollowcircle", Enum112.flag_6, true), Enum115.const_0, Origins.Centre, Enum114.const_1, this.Position, 0.99f, false, Color.get_TransparentWhite(), this);
         this.class538_1.method_61();
         Class731[] array = Class885.smethod_27("sliderb", Enum112.flag_6, false);
         bool flag = array[0].enum112_0 == Enum112.flag_1;
         this.class538_0 = new Class538(array, Enum115.const_0, Origins.Centre, Enum114.const_1, this.Position, 0.99f, false, flag ? Class885.smethod_23("SliderBall", true) : Color.get_White(), this);
         this.class538_0.bool_10 = true;
         if (flag)
         {
             this.class531_0 = new Class531(Class885.Load("sliderb-spec", Enum112.flag_6), Enum115.const_0, Origins.Centre, Enum114.const_1, this.Position, 1f, false, Color.get_White(), null)
             {
                 bool_7 = true
             };
             this.class531_1 = new Class531(Class885.Load("sliderb-nd", Enum112.flag_6), Enum115.const_0, Origins.Centre, Enum114.const_1, this.Position, 0.98f, false, new Color(5, 5, 5), null);
         }
         this.class531_2 = new Class531(null, Enum115.const_4, Origins.TopLeft, Enum114.const_1, this.Position, Class911.smethod_4((float)(this.EndTime + 10)), false, Color.get_White(), null);
         this.class531_2.bool_6 = true;
     }
 }
Esempio n. 50
0
 // Token: 0x06002BDD RID: 11229
 // RVA: 0x0011C5E8 File Offset: 0x0011A7E8
 internal override Class305 vmethod_0(Vector2 vector2_0, int int_2, bool bool_0, HitObjectSoundType hitObjectSoundType_0, int int_3, SampleSet sampleSet_0, SampleSet sampleSet_1, Enum38 enum38_0, int int_4, string string_2)
 {
     this.method_0(ref vector2_0, int_2);
     Class316 class = new Class316(this.class297_0, vector2_0, int_2, bool_0, hitObjectSoundType_0, this.method_1());
Esempio n. 51
0
 // Token: 0x06002BE6 RID: 11238
 // RVA: 0x0011C8CC File Offset: 0x0011AACC
 internal override Class305 vmethod_0(Vector2 vector2_0, int int_0, bool bool_0, HitObjectSoundType hitObjectSoundType_0, int int_1, SampleSet sampleSet_0, SampleSet sampleSet_1, Enum38 enum38_0, int int_2, string string_0)
 {
     Class306 class = new Class306(this.class297_0, vector2_0, int_0, bool_0, hitObjectSoundType_0, int_1);
Esempio n. 52
0
 // Token: 0x06002BBA RID: 11194
 // RVA: 0x0011BEB0 File Offset: 0x0011A0B0
 public Class318(Class297 class297_1, Vector2 vector2_2, int int_6, bool bool_8, HitObjectSoundType hitObjectSoundType_0, string string_1)
     : base(class297_1, vector2_2, int_6, bool_8, hitObjectSoundType_0, "drop")
 {
     Class318.Class718 class = new Class318.Class718();
Esempio n. 53
0
 // Token: 0x06002C3D RID: 11325
 // RVA: 0x0011EA14 File Offset: 0x0011CC14
 internal Class327(Class297 class297_1, int int_6, int int_7, HitObjectSoundType hitObjectSoundType_0)
     : base(class297_1, int_6, int_7, hitObjectSoundType_0)
 {
     Class496 class = this.class297_0.class494_0 as Class496;
Esempio n. 54
0
 // Token: 0x06002204 RID: 8708
 // RVA: 0x0001B543 File Offset: 0x00019743
 internal Class307(Class297 class297_1, Vector2 vector2_2, int int_7, bool bool_6, HitObjectSoundType hitObjectSoundType_0, int int_8)
     : base(class297_1, vector2_2, int_7, bool_6, hitObjectSoundType_0, int_8)
 {
     this.class531_2.method_8(true);
 }
Esempio n. 55
0
 // Token: 0x06002238 RID: 8760
 internal abstract Class320 vmethod_1(Vector2 vector2_0, int int_0, bool bool_0, HitObjectSoundType hitObjectSoundType_0, CurveTypes curveTypes_0, int int_1, double double_0, List<Vector2> list_0, List<HitObjectSoundType> list_1, int int_2, SampleSet sampleSet_0, SampleSet sampleSet_1, List<SampleSet> list_2, List<SampleSet> list_3, Enum38 enum38_0, int int_3, string string_0);
Esempio n. 56
0
 // Token: 0x06002C4C RID: 11340
 // RVA: 0x0011EAD8 File Offset: 0x0011CCD8
 internal Class328(Class297 class297_1, int int_14, int int_15, HitObjectSoundType hitObjectSoundType_0)
     : base(class297_1, int_14, int_15, hitObjectSoundType_0)
 {
     if (class297_1.class911_0 != null)
     {
         this.vmethod_24();
     }
     this.vmethod_26();
     if (class297_1.class911_0 != null)
     {
         this.vmethod_23();
     }
     this.bool_9 = true;
     this.list_2 = new List<float>(20);
 }
Esempio n. 57
0
 // Token: 0x06002239 RID: 8761
 internal abstract Class325 vmethod_2(int int_0, int int_1, HitObjectSoundType hitObjectSoundType_0, SampleSet sampleSet_0, SampleSet sampleSet_1, Enum38 enum38_0, int int_2, string string_0);