1
0
mirror of https://github.com/ppy/osu.git synced 2026-05-13 19:54:15 +08:00

Compare commits

...

4 Commits

4 changed files with 47 additions and 6 deletions
@@ -60,11 +60,17 @@ namespace osu.Game.Rulesets.Taiko.Skinning.Legacy
{
const double animation_time = 120;
(sprite as IFramedAnimation)?.GotoFrame(0);
var animation = sprite as IFramedAnimation;
animation?.GotoFrame(0);
(strongSprite as IFramedAnimation)?.GotoFrame(0);
this.FadeInFromZero(animation_time).Then().FadeOut(animation_time * 1.5);
// legacy judgements don't play any transforms if they are an animation.
if (animation?.FrameCount > 1)
return;
this.ScaleTo(0.6f)
.Then().ScaleTo(1.1f, animation_time * 0.8)
.Then().ScaleTo(0.9f, animation_time * 0.4)
@@ -60,6 +60,9 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer
return false;
}
if (!base.OnStart())
return false;
selectionOperation = operationTracker.BeginOperation();
client.ChangeUserStyle(Beatmap.Value.BeatmapInfo.OnlineID, Ruleset.Value.OnlineID)
@@ -7,6 +7,7 @@ using Humanizer;
using osu.Framework.Allocation;
using osu.Framework.Graphics;
using osu.Framework.Graphics.Containers;
using osu.Framework.Logging;
using osu.Game.Beatmaps;
using osu.Game.Database;
using osu.Game.Online.Rooms;
@@ -43,6 +44,40 @@ namespace osu.Game.Screens.OnlinePlay
LeftArea.Padding = new MarginPadding { Top = Header.HEIGHT };
}
protected override bool OnStart()
{
FilterCriteria criteria = FilterControl.CreateCriteria();
// Beatmaps with too different of a duration are filtered away; this is just a final safety.
if (!criteria.Length.IsInRange(Beatmap.Value.BeatmapInfo.Length))
{
Logger.Log("The selected beatmap's duration differs too much from the host's selection.", level: LogLevel.Error);
return false;
}
// Beatmaps without a valid online ID are filtered away; this is just a final safety.
if (Beatmap.Value.BeatmapInfo.OnlineID < 0)
{
Logger.Log("The selected beatmap is not available online.", level: LogLevel.Error);
return false;
}
// Beatmaps from different sets are filtered away; this is just a final safety.
if (Beatmap.Value.BeatmapSetInfo.OnlineID != criteria.BeatmapSetId)
{
Logger.Log("The selected beatmap is from a different beatmap set.", level: LogLevel.Error);
return false;
}
if (Ruleset.Value.OnlineID < 0)
{
Logger.Log("The selected ruleset is not available online.", level: LogLevel.Error);
return false;
}
return true;
}
protected override FilterControl CreateFilterControl() => new DifficultySelectFilterControl(item);
protected override IEnumerable<(FooterButton button, OverlayContainer? overlay)> CreateSongSelectFooterButtons()
@@ -21,15 +21,12 @@ namespace osu.Game.Screens.OnlinePlay.Playlists
protected override bool OnStart()
{
// Beatmaps without a valid online ID are filtered away; this is just a final safety.
if (base.Beatmap.Value.BeatmapInfo.OnlineID < 0)
return false;
if (base.Ruleset.Value.OnlineID < 0)
if (!base.OnStart())
return false;
Beatmap.Value = base.Beatmap.Value.BeatmapInfo;
Ruleset.Value = base.Ruleset.Value;
this.Exit();
return true;
}