Esempio n. 1
0
        public void TestSamplePlaybackWithRateMods(Type expectedMod, double expectedRate)
        {
            GameplayClockContainer       gameplayContainer = null;
            StoryboardSampleInfo         sampleInfo        = null;
            TestDrawableStoryboardSample sample            = null;

            Mod testedMod = Activator.CreateInstance(expectedMod) as Mod;

            switch (testedMod)
            {
            case ModRateAdjust m:
                m.SpeedChange.Value = expectedRate;
                break;

            case ModTimeRamp m:
                m.FinalRate.Value = m.InitialRate.Value = expectedRate;
                break;
            }

            AddStep("setup storyboard sample", () =>
            {
                Beatmap.Value      = new TestCustomSkinWorkingBeatmap(new OsuRuleset().RulesetInfo, this);
                SelectedMods.Value = new[] { testedMod };

                var beatmapSkinSourceContainer = new BeatmapSkinProvidingContainer(Beatmap.Value.Skin);

                Add(gameplayContainer = new MasterGameplayClockContainer(Beatmap.Value, 0)
                {
                    Child = beatmapSkinSourceContainer
                });

                beatmapSkinSourceContainer.Add(sample = new TestDrawableStoryboardSample(sampleInfo = new StoryboardSampleInfo("test-sample", 1, 1))
                {
                    Clock = gameplayContainer.GameplayClock
                });
            });

            AddStep("start", () => gameplayContainer.Start());

            AddAssert("sample playback rate matches mod rates", () =>
                      testedMod != null && Precision.AlmostEquals(
                          sample.ChildrenOfType <DrawableSample>().First().AggregateFrequency.Value,
                          ((IApplicableToRate)testedMod).ApplyToRate(sampleInfo.StartTime)));
        }
Esempio n. 2
0
 public TestDrawableStoryboardSample(StoryboardSampleInfo sampleInfo)
     : base(sampleInfo)
 {
 }
Esempio n. 3
0
 public DrawableStoryboardSample(StoryboardSampleInfo sampleInfo)
 {
     this.sampleInfo = sampleInfo;
     LifetimeStart   = sampleInfo.StartTime;
 }