Merge branch 'master' into beatmap-as-a-skin

This commit is contained in:
Dan Balasescu 2018-03-22 11:33:27 +09:00 committed by GitHub
commit 77ebd94804
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 42 additions and 37 deletions

View File

@ -65,54 +65,59 @@ namespace osu.Game.Rulesets.Catch.Objects
X = X X = X
}); });
for (var span = 0; span < this.SpanCount(); span++) double lastDropletTime = StartTime;
for (int span = 0; span < this.SpanCount(); span++)
{ {
var spanStartTime = StartTime + span * spanDuration; var spanStartTime = StartTime + span * spanDuration;
var reversed = span % 2 == 1; var reversed = span % 2 == 1;
for (var d = tickDistance; d <= length; d += tickDistance) for (double d = 0; d <= length; d += tickDistance)
{ {
if (d > length - minDistanceFromEnd)
break;
var timeProgress = d / length; var timeProgress = d / length;
var distanceProgress = reversed ? 1 - timeProgress : timeProgress; var distanceProgress = reversed ? 1 - timeProgress : timeProgress;
var lastTickTime = spanStartTime + timeProgress * spanDuration; double time = spanStartTime + timeProgress * spanDuration;
AddNested(new Droplet
double tinyTickInterval = time - lastDropletTime;
while (tinyTickInterval > 100)
tinyTickInterval /= 2;
for (double t = lastDropletTime + tinyTickInterval; t < time; t += tinyTickInterval)
{ {
StartTime = lastTickTime, double progress = reversed ? 1 - (t - spanStartTime) / spanDuration : (t - spanStartTime) / spanDuration;
ComboColour = ComboColour,
X = X + Curve.PositionAt(distanceProgress).X / CatchPlayfield.BASE_WIDTH, AddNested(new TinyDroplet
Samples = new List<SampleInfo>(Samples.Select(s => new SampleInfo
{ {
Bank = s.Bank, StartTime = t,
Name = @"slidertick", ComboColour = ComboColour,
Volume = s.Volume X = X + Curve.PositionAt(progress).X / CatchPlayfield.BASE_WIDTH,
})) Samples = new List<SampleInfo>(Samples.Select(s => new SampleInfo
}); {
} Bank = s.Bank,
Name = @"slidertick",
Volume = s.Volume
}))
});
}
double tinyTickInterval = tickDistance / length * spanDuration; if (d > minDistanceFromEnd && Math.Abs(d - length) > minDistanceFromEnd)
while (tinyTickInterval > 100)
tinyTickInterval /= 2;
for (double t = 0; t < spanDuration; t += tinyTickInterval)
{
double progress = reversed ? 1 - t / spanDuration : t / spanDuration;
AddNested(new TinyDroplet
{ {
StartTime = spanStartTime + t, AddNested(new Droplet
ComboColour = ComboColour,
X = X + Curve.PositionAt(progress).X / CatchPlayfield.BASE_WIDTH,
Samples = new List<SampleInfo>(Samples.Select(s => new SampleInfo
{ {
Bank = s.Bank, StartTime = time,
Name = @"slidertick", ComboColour = ComboColour,
Volume = s.Volume X = X + Curve.PositionAt(distanceProgress).X / CatchPlayfield.BASE_WIDTH,
})) Samples = new List<SampleInfo>(Samples.Select(s => new SampleInfo
}); {
Bank = s.Bank,
Name = @"slidertick",
Volume = s.Volume
}))
});
}
lastDropletTime = time;
} }
AddNested(new Fruit AddNested(new Fruit

View File

@ -18,7 +18,7 @@ namespace osu.Game.Rulesets.Catch.Tests
{ {
protected override string ResourceAssembly => "osu.Game.Rulesets.Catch"; protected override string ResourceAssembly => "osu.Game.Rulesets.Catch";
[TestCase("basic"), Ignore("See: https://github.com/ppy/osu/issues/2149")] [TestCase("basic"), Ignore("See: https://github.com/ppy/osu/issues/2232")]
public new void Test(string name) public new void Test(string name)
{ {
base.Test(name); base.Test(name);

View File

@ -29,7 +29,7 @@ namespace osu.Game.Skinning
break; break;
} }
return; break;
} }
base.ParseLine(output, section, line); base.ParseLine(output, section, line);