mirror of
https://github.com/ppy/osu.git
synced 2026-06-13 12:34:41 +08:00
4671d1fe74
- Part of https://github.com/ppy/osu-server-spectator/issues/405 <img width="1624" height="900" alt="Screenshot 2026-05-13 at 12 40 07" src="https://github.com/user-attachments/assets/a7f36d54-4cc6-49c9-8e89-ee0d049bb637" /> <img width="1624" height="900" alt="Screenshot 2026-05-13 at 12 31 40" src="https://github.com/user-attachments/assets/0c054dfd-addd-4d00-bbca-119b4c3ec3cb" /> Will not work until relevant server-side support is in. --- I was in two minds whether to PR this all at once or to PR only https://github.com/ppy/osu/commit/693e4ef4b095042f7a171672224e10f9c4f47c1c to begin with to unblock server-side implementation. In the end I opted for one PR because usage informs the model, so I find everything else relevant as part of review of the model design. If there are concerns about this making it into a release without server-side support and therefore things looking broken I will split the commit out on request. I put in some effort to add relevant logic in test multiplayer client to simulate the server side but I may well have missed something. --------- Co-authored-by: Dean Herbert <pe@ppy.sh>
26 lines
939 B
C#
26 lines
939 B
C#
// 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 MessagePack;
|
|
using osu.Game.Online.Multiplayer.MatchTypes.Matchmaking;
|
|
using osu.Game.Online.Multiplayer.MatchTypes.RankedPlay;
|
|
using osu.Game.Online.Multiplayer.MatchTypes.TeamVersus;
|
|
|
|
namespace osu.Game.Online.Multiplayer
|
|
{
|
|
/// <summary>
|
|
/// Room-wide state for the current match type.
|
|
/// Can be used to contain any state which should be used before or during match gameplay.
|
|
/// </summary>
|
|
[Serializable]
|
|
[MessagePackObject]
|
|
[Union(0, typeof(TeamVersusRoomState))] // IMPORTANT: Add rules to SignalRUnionWorkaroundResolver for new derived types.
|
|
[Union(1, typeof(MatchmakingRoomState))]
|
|
[Union(2, typeof(RankedPlayRoomState))]
|
|
[Union(3, typeof(StandardMatchRoomState))]
|
|
public abstract class MatchRoomState
|
|
{
|
|
}
|
|
}
|