mirror of
https://github.com/ppy/osu.git
synced 2025-02-15 04:12:57 +08:00
Merge branch 'master' into fix-judgement-animation-conditional
This commit is contained in:
commit
d9b671667b
@ -1,9 +1,11 @@
|
|||||||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
// 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.
|
// See the LICENCE file in the repository root for full licence text.
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using osu.Framework.Graphics;
|
using osu.Framework.Graphics;
|
||||||
|
using osu.Game.Audio;
|
||||||
using osu.Game.Beatmaps;
|
using osu.Game.Beatmaps;
|
||||||
using osu.Game.Beatmaps.ControlPoints;
|
using osu.Game.Beatmaps.ControlPoints;
|
||||||
using osu.Game.Rulesets.Mods;
|
using osu.Game.Rulesets.Mods;
|
||||||
@ -34,7 +36,7 @@ namespace osu.Game.Rulesets.Osu.Tests
|
|||||||
[TestCase(true)]
|
[TestCase(true)]
|
||||||
public void TestLongSpinner(bool autoplay)
|
public void TestLongSpinner(bool autoplay)
|
||||||
{
|
{
|
||||||
AddStep("Very short spinner", () => SetContents(() => testSingle(5, autoplay, 2000)));
|
AddStep("Very long spinner", () => SetContents(() => testSingle(5, autoplay, 4000)));
|
||||||
AddUntilStep("Wait for completion", () => drawableSpinner.Result.HasResult);
|
AddUntilStep("Wait for completion", () => drawableSpinner.Result.HasResult);
|
||||||
AddUntilStep("Check correct progress", () => drawableSpinner.Progress == (autoplay ? 1 : 0));
|
AddUntilStep("Check correct progress", () => drawableSpinner.Progress == (autoplay ? 1 : 0));
|
||||||
}
|
}
|
||||||
@ -55,7 +57,11 @@ namespace osu.Game.Rulesets.Osu.Tests
|
|||||||
var spinner = new Spinner
|
var spinner = new Spinner
|
||||||
{
|
{
|
||||||
StartTime = Time.Current + delay,
|
StartTime = Time.Current + delay,
|
||||||
EndTime = Time.Current + delay + length
|
EndTime = Time.Current + delay + length,
|
||||||
|
Samples = new List<HitSampleInfo>
|
||||||
|
{
|
||||||
|
new HitSampleInfo("hitnormal")
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
spinner.ApplyDefaults(new ControlPointInfo(), new BeatmapDifficulty { CircleSize = circleSize });
|
spinner.ApplyDefaults(new ControlPointInfo(), new BeatmapDifficulty { CircleSize = circleSize });
|
||||||
|
@ -52,6 +52,7 @@ namespace osu.Game.Online.Multiplayer
|
|||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Whether the <see cref="StatefulMultiplayerClient"/> is currently connected.
|
/// Whether the <see cref="StatefulMultiplayerClient"/> is currently connected.
|
||||||
|
/// This is NOT thread safe and usage should be scheduled.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public abstract IBindable<bool> IsConnected { get; }
|
public abstract IBindable<bool> IsConnected { get; }
|
||||||
|
|
||||||
|
@ -138,6 +138,15 @@ namespace osu.Game.Screens.Edit.Compose.Components.Timeline
|
|||||||
scrollToTrackTime();
|
scrollToTrackTime();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected override bool OnScroll(ScrollEvent e)
|
||||||
|
{
|
||||||
|
// if this is not a precision scroll event, let the editor handle the seek itself (for snapping support)
|
||||||
|
if (!e.AltPressed && !e.IsPrecise)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return base.OnScroll(e);
|
||||||
|
}
|
||||||
|
|
||||||
protected override void UpdateAfterChildren()
|
protected override void UpdateAfterChildren()
|
||||||
{
|
{
|
||||||
base.UpdateAfterChildren();
|
base.UpdateAfterChildren();
|
||||||
|
@ -34,8 +34,8 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer
|
|||||||
{
|
{
|
||||||
base.LoadComplete();
|
base.LoadComplete();
|
||||||
|
|
||||||
isConnected.BindValueChanged(_ => updateState());
|
isConnected.BindValueChanged(_ => Scheduler.AddOnce(updateState));
|
||||||
operationInProgress.BindValueChanged(_ => updateState(), true);
|
operationInProgress.BindValueChanged(_ => Scheduler.AddOnce(updateState), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateState() => Enabled.Value = isConnected.Value && !operationInProgress.Value;
|
private void updateState() => Enabled.Value = isConnected.Value && !operationInProgress.Value;
|
||||||
|
@ -77,14 +77,14 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer
|
|||||||
});
|
});
|
||||||
|
|
||||||
isConnected = client.IsConnected.GetBoundCopy();
|
isConnected = client.IsConnected.GetBoundCopy();
|
||||||
isConnected.BindValueChanged(connected =>
|
isConnected.BindValueChanged(connected => Schedule(() =>
|
||||||
{
|
{
|
||||||
if (!connected.NewValue)
|
if (!connected.NewValue)
|
||||||
{
|
{
|
||||||
// messaging to the user about this disconnect will be provided by the MultiplayerMatchSubScreen.
|
// messaging to the user about this disconnect will be provided by the MultiplayerMatchSubScreen.
|
||||||
failAndBail();
|
failAndBail();
|
||||||
}
|
}
|
||||||
}, true);
|
}), true);
|
||||||
|
|
||||||
Debug.Assert(client.Room != null);
|
Debug.Assert(client.Room != null);
|
||||||
}
|
}
|
||||||
|
@ -34,10 +34,8 @@ namespace osu.Game.Screens.OnlinePlay.Multiplayer
|
|||||||
base.LoadComplete();
|
base.LoadComplete();
|
||||||
|
|
||||||
isConnected.BindTo(multiplayerClient.IsConnected);
|
isConnected.BindTo(multiplayerClient.IsConnected);
|
||||||
isConnected.BindValueChanged(_ => Schedule(updatePolling));
|
isConnected.BindValueChanged(_ => Scheduler.AddOnce(updatePolling));
|
||||||
JoinedRoom.BindValueChanged(_ => updatePolling());
|
JoinedRoom.BindValueChanged(_ => Scheduler.AddOnce(updatePolling), true);
|
||||||
|
|
||||||
updatePolling();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void CreateRoom(Room room, Action<Room> onSuccess = null, Action<string> onError = null)
|
public override void CreateRoom(Room room, Action<Room> onSuccess = null, Action<string> onError = null)
|
||||||
|
@ -500,7 +500,7 @@ namespace osu.Game.Screens.Select
|
|||||||
|
|
||||||
if (beatmap != null)
|
if (beatmap != null)
|
||||||
{
|
{
|
||||||
if (beatmap.BeatmapSetInfoID == beatmapNoDebounce?.BeatmapSetInfoID)
|
if (beatmap.BeatmapSetInfoID == previous?.BeatmapInfo.BeatmapSetInfoID)
|
||||||
sampleChangeDifficulty.Play();
|
sampleChangeDifficulty.Play();
|
||||||
else
|
else
|
||||||
sampleChangeBeatmap.Play();
|
sampleChangeBeatmap.Play();
|
||||||
|
Loading…
Reference in New Issue
Block a user