mirror of
https://github.com/ppy/osu.git
synced 2024-12-14 18:42:56 +08:00
Merge pull request #14739 from smoogipoo/fix-spectator-random-mod
Fix random/target mods not working in spectator
This commit is contained in:
commit
cab294ffa6
@ -54,7 +54,11 @@ namespace osu.Game.Tests.Visual.Gameplay
|
|||||||
{
|
{
|
||||||
recordingManager = new TestRulesetInputManager(new TestSceneModSettings.TestRulesetInfo(), 0, SimultaneousBindingMode.Unique)
|
recordingManager = new TestRulesetInputManager(new TestSceneModSettings.TestRulesetInfo(), 0, SimultaneousBindingMode.Unique)
|
||||||
{
|
{
|
||||||
Recorder = recorder = new TestReplayRecorder(new Score { Replay = replay })
|
Recorder = recorder = new TestReplayRecorder(new Score
|
||||||
|
{
|
||||||
|
Replay = replay,
|
||||||
|
ScoreInfo = { Beatmap = gameplayBeatmap.BeatmapInfo }
|
||||||
|
})
|
||||||
{
|
{
|
||||||
ScreenSpaceToGamefield = pos => recordingManager.ToLocalSpace(pos),
|
ScreenSpaceToGamefield = pos => recordingManager.ToLocalSpace(pos),
|
||||||
},
|
},
|
||||||
|
@ -45,7 +45,11 @@ namespace osu.Game.Tests.Visual.Gameplay
|
|||||||
{
|
{
|
||||||
recordingManager = new TestRulesetInputManager(new TestSceneModSettings.TestRulesetInfo(), 0, SimultaneousBindingMode.Unique)
|
recordingManager = new TestRulesetInputManager(new TestSceneModSettings.TestRulesetInfo(), 0, SimultaneousBindingMode.Unique)
|
||||||
{
|
{
|
||||||
Recorder = new TestReplayRecorder(new Score { Replay = replay })
|
Recorder = new TestReplayRecorder(new Score
|
||||||
|
{
|
||||||
|
Replay = replay,
|
||||||
|
ScoreInfo = { Beatmap = gameplayBeatmap.BeatmapInfo }
|
||||||
|
})
|
||||||
{
|
{
|
||||||
ScreenSpaceToGamefield = pos => recordingManager.ToLocalSpace(pos)
|
ScreenSpaceToGamefield = pos => recordingManager.ToLocalSpace(pos)
|
||||||
},
|
},
|
||||||
|
@ -354,7 +354,7 @@ namespace osu.Game.Tests.Visual.Gameplay
|
|||||||
internal class TestReplayRecorder : ReplayRecorder<TestAction>
|
internal class TestReplayRecorder : ReplayRecorder<TestAction>
|
||||||
{
|
{
|
||||||
public TestReplayRecorder()
|
public TestReplayRecorder()
|
||||||
: base(new Score())
|
: base(new Score { ScoreInfo = { Beatmap = new BeatmapInfo() } })
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -15,8 +15,6 @@ using osu.Framework.Graphics;
|
|||||||
using osu.Game.Beatmaps;
|
using osu.Game.Beatmaps;
|
||||||
using osu.Game.Online.API;
|
using osu.Game.Online.API;
|
||||||
using osu.Game.Replays.Legacy;
|
using osu.Game.Replays.Legacy;
|
||||||
using osu.Game.Rulesets;
|
|
||||||
using osu.Game.Rulesets.Mods;
|
|
||||||
using osu.Game.Rulesets.Replays;
|
using osu.Game.Rulesets.Replays;
|
||||||
using osu.Game.Rulesets.Replays.Types;
|
using osu.Game.Rulesets.Replays.Types;
|
||||||
using osu.Game.Scoring;
|
using osu.Game.Scoring;
|
||||||
@ -46,15 +44,8 @@ namespace osu.Game.Online.Spectator
|
|||||||
private readonly BindableDictionary<int, SpectatorState> playingUserStates = new BindableDictionary<int, SpectatorState>();
|
private readonly BindableDictionary<int, SpectatorState> playingUserStates = new BindableDictionary<int, SpectatorState>();
|
||||||
|
|
||||||
private IBeatmap? currentBeatmap;
|
private IBeatmap? currentBeatmap;
|
||||||
|
|
||||||
private Score? currentScore;
|
private Score? currentScore;
|
||||||
|
|
||||||
[Resolved]
|
|
||||||
private IBindable<RulesetInfo> currentRuleset { get; set; } = null!;
|
|
||||||
|
|
||||||
[Resolved]
|
|
||||||
private IBindable<IReadOnlyList<Mod>> currentMods { get; set; } = null!;
|
|
||||||
|
|
||||||
private readonly SpectatorState currentState = new SpectatorState();
|
private readonly SpectatorState currentState = new SpectatorState();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -153,9 +144,9 @@ namespace osu.Game.Online.Spectator
|
|||||||
IsPlaying = true;
|
IsPlaying = true;
|
||||||
|
|
||||||
// transfer state at point of beginning play
|
// transfer state at point of beginning play
|
||||||
currentState.BeatmapID = beatmap.BeatmapInfo.OnlineBeatmapID;
|
currentState.BeatmapID = score.ScoreInfo.Beatmap.OnlineBeatmapID;
|
||||||
currentState.RulesetID = currentRuleset.Value.ID;
|
currentState.RulesetID = score.ScoreInfo.RulesetID;
|
||||||
currentState.Mods = currentMods.Value.Select(m => new APIMod(m));
|
currentState.Mods = score.ScoreInfo.Mods.Select(m => new APIMod(m)).ToArray();
|
||||||
|
|
||||||
currentBeatmap = beatmap.PlayableBeatmap;
|
currentBeatmap = beatmap.PlayableBeatmap;
|
||||||
currentScore = score;
|
currentScore = score;
|
||||||
|
Loading…
Reference in New Issue
Block a user