mirror of
https://github.com/ppy/osu.git
synced 2024-11-07 16:07:25 +08:00
Merge branch 'master' into ongoing-tracker-disposal
This commit is contained in:
commit
2db0da6e94
@ -1,6 +1,7 @@
|
||||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||
// See the LICENCE file in the repository root for full licence text.
|
||||
|
||||
using osu.Game.Beatmaps;
|
||||
using osu.Game.Rulesets.Mods;
|
||||
|
||||
namespace osu.Game.Rulesets.Taiko.Mods
|
||||
@ -8,5 +9,16 @@ namespace osu.Game.Rulesets.Taiko.Mods
|
||||
public class TaikoModEasy : ModEasy
|
||||
{
|
||||
public override string Description => @"Beats move slower, and less accuracy required!";
|
||||
|
||||
/// <summary>
|
||||
/// Multiplier factor added to the scrolling speed.
|
||||
/// </summary>
|
||||
private const double slider_multiplier = 0.8;
|
||||
|
||||
public override void ApplyToDifficulty(BeatmapDifficulty difficulty)
|
||||
{
|
||||
base.ApplyToDifficulty(difficulty);
|
||||
difficulty.SliderMultiplier *= slider_multiplier;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||
// See the LICENCE file in the repository root for full licence text.
|
||||
|
||||
using osu.Game.Beatmaps;
|
||||
using osu.Game.Rulesets.Mods;
|
||||
|
||||
namespace osu.Game.Rulesets.Taiko.Mods
|
||||
@ -9,5 +10,21 @@ namespace osu.Game.Rulesets.Taiko.Mods
|
||||
{
|
||||
public override double ScoreMultiplier => 1.06;
|
||||
public override bool Ranked => true;
|
||||
|
||||
/// <summary>
|
||||
/// Multiplier factor added to the scrolling speed.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// This factor is made up of two parts: the base part (1.4) and the aspect ratio adjustment (4/3).
|
||||
/// Stable applies the latter by dividing the width of the user's display by the width of a display with the same height, but 4:3 aspect ratio.
|
||||
/// TODO: Revisit if taiko playfield ever changes away from a hard-coded 16:9 (see https://github.com/ppy/osu/issues/5685).
|
||||
/// </remarks>
|
||||
private const double slider_multiplier = 1.4 * 4 / 3;
|
||||
|
||||
public override void ApplyToDifficulty(BeatmapDifficulty difficulty)
|
||||
{
|
||||
base.ApplyToDifficulty(difficulty);
|
||||
difficulty.SliderMultiplier *= slider_multiplier;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,8 @@
|
||||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||
// See the LICENCE file in the repository root for full licence text.
|
||||
|
||||
using System;
|
||||
using NUnit.Framework;
|
||||
using osu.Framework.Allocation;
|
||||
using osu.Framework.Graphics;
|
||||
using osu.Game.Tournament.Components;
|
||||
@ -16,5 +18,23 @@ namespace osu.Game.Tournament.Tests.Screens
|
||||
Add(new TourneyVideo("main") { RelativeSizeAxes = Axes.Both });
|
||||
Add(new ScheduleScreen());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestCurrentMatchTime()
|
||||
{
|
||||
setMatchDate(TimeSpan.FromDays(-1));
|
||||
setMatchDate(TimeSpan.FromSeconds(5));
|
||||
setMatchDate(TimeSpan.FromMinutes(4));
|
||||
setMatchDate(TimeSpan.FromHours(3));
|
||||
}
|
||||
|
||||
private void setMatchDate(TimeSpan relativeTime)
|
||||
// Humanizer cannot handle negative timespans.
|
||||
=> AddStep($"start time is {relativeTime}", () =>
|
||||
{
|
||||
var match = CreateSampleMatch();
|
||||
match.Date.Value = DateTimeOffset.Now + relativeTime;
|
||||
Ladder.CurrentMatch.Value = match;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -192,12 +192,7 @@ namespace osu.Game.Tournament.Screens.Schedule
|
||||
Origin = Anchor.CentreLeft,
|
||||
Children = new Drawable[]
|
||||
{
|
||||
new TournamentSpriteText
|
||||
{
|
||||
Text = "Starting ",
|
||||
Font = OsuFont.Torus.With(size: 24, weight: FontWeight.Regular)
|
||||
},
|
||||
new DrawableDate(match.NewValue.Date.Value)
|
||||
new ScheduleMatchDate(match.NewValue.Date.Value)
|
||||
{
|
||||
Font = OsuFont.Torus.With(size: 24, weight: FontWeight.Regular)
|
||||
}
|
||||
@ -251,6 +246,18 @@ namespace osu.Game.Tournament.Screens.Schedule
|
||||
}
|
||||
}
|
||||
|
||||
public class ScheduleMatchDate : DrawableDate
|
||||
{
|
||||
public ScheduleMatchDate(DateTimeOffset date, float textSize = OsuFont.DEFAULT_FONT_SIZE, bool italic = true)
|
||||
: base(date, textSize, italic)
|
||||
{
|
||||
}
|
||||
|
||||
protected override string Format() => Date < DateTimeOffset.Now
|
||||
? $"Started {base.Format()}"
|
||||
: $"Starting {base.Format()}";
|
||||
}
|
||||
|
||||
public class ScheduleContainer : Container
|
||||
{
|
||||
protected override Container<Drawable> Content => content;
|
||||
|
@ -21,7 +21,7 @@ namespace osu.Game.Rulesets.Mods
|
||||
{
|
||||
}
|
||||
|
||||
public void ApplyToDifficulty(BeatmapDifficulty difficulty)
|
||||
public virtual void ApplyToDifficulty(BeatmapDifficulty difficulty)
|
||||
{
|
||||
const float ratio = 1.4f;
|
||||
difficulty.CircleSize = Math.Min(difficulty.CircleSize * 1.3f, 10.0f); // CS uses a custom 1.3 ratio.
|
||||
|
Loading…
Reference in New Issue
Block a user