Пример #1
0
        public DrawableSliderTick(SliderTick sliderTick)
            : base(sliderTick)
        {
            Size   = new Vector2(OsuHitObject.OBJECT_RADIUS * 2);
            Origin = Anchor.Centre;

            InternalChild = scaleContainer = new SkinnableDrawable(new OsuSkinComponent(OsuSkinComponents.SliderScorePoint), _ => new CircularContainer
            {
                Masking         = true,
                Origin          = Anchor.Centre,
                Size            = new Vector2(default_tick_size),
                BorderThickness = default_tick_size / 4,
                BorderColour    = Color4.White,
                Child           = new Box
                {
                    RelativeSizeAxes = Axes.Both,
                    Colour           = AccentColour.Value,
                    Alpha            = 0.3f,
                }
            })
            {
                Anchor = Anchor.Centre,
                Origin = Anchor.Centre,
            };
        }
Пример #2
0
        public DrawableSliderTick(SliderTick sliderTick) : base(sliderTick)
        {
            Size   = new Vector2(16) * sliderTick.Scale;
            Origin = Anchor.Centre;

            InternalChildren = new Drawable[]
            {
                new SkinnableDrawable("Play/osu/sliderscorepoint", _ => new Container
                {
                    Masking          = true,
                    RelativeSizeAxes = Axes.Both,
                    Origin           = Anchor.Centre,
                    CornerRadius     = Size.X / 2,

                    BorderThickness = 2,
                    BorderColour    = Color4.White,

                    Child = new Box
                    {
                        RelativeSizeAxes = Axes.Both,
                        Colour           = AccentColour,
                        Alpha            = 0.3f,
                    }
                }, restrictSize: false)
            };
        }
Пример #3
0
        public DrawableSliderTick(SliderTick sliderTick) : base(sliderTick)
        {
            Size = new Vector2(16) * sliderTick.Scale;

            Masking      = true;
            CornerRadius = Size.X / 2;

            Origin = Anchor.Centre;

            BorderThickness = 2;
            BorderColour    = Color4.White;

            Children = new Drawable[]
            {
                new Box
                {
                    RelativeSizeAxes = Axes.Both,
                    Colour           = AccentColour,
                    Alpha            = 0.3f,
                }
            };
        }
Пример #4
0
        public void TestMutedControlPointVolumeSliderTail()
        {
            var sliderHead = new SliderHeadCircle
            {
                StartTime = 0,
                Samples   = new List <HitSampleInfo> {
                    new HitSampleInfo(HitSampleInfo.HIT_NORMAL)
                }
            };

            sliderHead.ApplyDefaults(cpi, new BeatmapDifficulty());

            var sliderTick = new SliderTick
            {
                StartTime = 250,
                Samples   = new List <HitSampleInfo> {
                    new HitSampleInfo("slidertick")
                }
            };

            sliderTick.ApplyDefaults(cpi, new BeatmapDifficulty());

            // Ends after the 5% control point.
            var slider = new MockNestableHitObject(new List <HitObject> {
                sliderHead, sliderTick,
            }, startTime: 0, endTime: 2500)
            {
                Samples = new List <HitSampleInfo> {
                    new HitSampleInfo(HitSampleInfo.HIT_NORMAL)
                }
            };

            slider.ApplyDefaults(cpi, new BeatmapDifficulty());

            assertMutedPassive(new List <HitObject> {
                slider
            });
        }
Пример #5
0
        public void TestMutedControlPointVolumeSliderHead()
        {
            var sliderHead = new SliderHeadCircle
            {
                StartTime = 2000,
                Samples   = new List <HitSampleInfo> {
                    new HitSampleInfo(HitSampleInfo.HIT_NORMAL)
                }
            };

            sliderHead.ApplyDefaults(cpi, new BeatmapDifficulty());

            var sliderTick = new SliderTick
            {
                StartTime = 2250,
                Samples   = new List <HitSampleInfo> {
                    new HitSampleInfo("slidertick")
                }
            };

            sliderTick.ApplyDefaults(cpi, new BeatmapDifficulty());

            var slider = new MockNestableHitObject(new List <HitObject> {
                sliderHead, sliderTick,
            }, startTime: 2000, endTime: 2500)
            {
                Samples = new List <HitSampleInfo> {
                    new HitSampleInfo(HitSampleInfo.HIT_NORMAL, volume: volume_regular)
                }
            };

            slider.ApplyDefaults(cpi, new BeatmapDifficulty());

            assertMuted(new List <HitObject> {
                slider
            });
        }
Пример #6
0
        public void TestMutedSampleVolumeSliderTail()
        {
            var sliderHead = new SliderHeadCircle
            {
                StartTime = 0,
                Samples   = new List <HitSampleInfo> {
                    new HitSampleInfo(HitSampleInfo.HIT_NORMAL)
                }
            };

            sliderHead.ApplyDefaults(cpi, new BeatmapDifficulty());

            var sliderTick = new SliderTick
            {
                StartTime = 250,
                Samples   = new List <HitSampleInfo> {
                    new HitSampleInfo("slidertick")
                }
            };

            sliderTick.ApplyDefaults(cpi, new BeatmapDifficulty());

            var slider = new MockNestableHitObject(new List <HitObject> {
                sliderHead, sliderTick,
            }, startTime: 0, endTime: 2500)
            {
                Samples = new List <HitSampleInfo> {
                    new HitSampleInfo(HitSampleInfo.HIT_NORMAL, volume: volume_muted)
                }                                                                                                       // Applies to the tail.
            };

            slider.ApplyDefaults(cpi, new BeatmapDifficulty());

            assertMutedPassive(new List <HitObject> {
                slider
            });
        }
Пример #7
0
        public void TestNormalSampleVolumeSlider()
        {
            var sliderHead = new SliderHeadCircle
            {
                StartTime = 0,
                Samples   = new List <HitSampleInfo> {
                    new HitSampleInfo(HitSampleInfo.HIT_NORMAL)
                }
            };

            sliderHead.ApplyDefaults(cpi, new BeatmapDifficulty());

            var sliderTick = new SliderTick
            {
                StartTime = 250,
                Samples   = new List <HitSampleInfo> {
                    new HitSampleInfo("slidertick", volume: volume_muted)
                }                                                                                           // Should be fine.
            };

            sliderTick.ApplyDefaults(cpi, new BeatmapDifficulty());

            var slider = new MockNestableHitObject(new List <HitObject> {
                sliderHead, sliderTick,
            }, startTime: 0, endTime: 500)
            {
                Samples = new List <HitSampleInfo> {
                    new HitSampleInfo(HitSampleInfo.HIT_NORMAL)
                }
            };

            slider.ApplyDefaults(cpi, new BeatmapDifficulty());

            assertOk(new List <HitObject> {
                slider
            });
        }
Пример #8
0
 public DrawableSliderTick(SliderTick sliderTick)
     : base(sliderTick)
 {
 }
Пример #9
0
 static bool assertTickSamples(SliderTick tick) => tick.Samples.Single().Name == "slidertick";