Add timeshift game type

This commit is contained in:
smoogipoo
2018-12-04 18:58:45 +09:00
parent c469d12d63
commit ec83790734
5 changed files with 65 additions and 2 deletions

View File

@ -13,6 +13,9 @@ namespace osu.Game.Online.Multiplayer
public abstract class GameType
{
public abstract string Name { get; }
public abstract bool IsAvailable { get; }
public abstract Drawable GetIcon(OsuColour colours, float size);
public override int GetHashCode() => GetType().GetHashCode();
@ -22,6 +25,9 @@ namespace osu.Game.Online.Multiplayer
public class GameTypeTag : GameType
{
public override string Name => "Tag";
public override bool IsAvailable => false;
public override Drawable GetIcon(OsuColour colours, float size)
{
return new SpriteIcon
@ -39,6 +45,9 @@ namespace osu.Game.Online.Multiplayer
public class GameTypeVersus : GameType
{
public override string Name => "Versus";
public override bool IsAvailable => false;
public override Drawable GetIcon(OsuColour colours, float size)
{
return new VersusRow(colours.Blue, colours.Blue, size * 0.6f)
@ -52,6 +61,9 @@ namespace osu.Game.Online.Multiplayer
public class GameTypeTagTeam : GameType
{
public override string Name => "Tag Team";
public override bool IsAvailable => false;
public override Drawable GetIcon(OsuColour colours, float size)
{
return new FillFlowContainer
@ -85,6 +97,9 @@ namespace osu.Game.Online.Multiplayer
public class GameTypeTeamVersus : GameType
{
public override string Name => "Team Versus";
public override bool IsAvailable => false;
public override Drawable GetIcon(OsuColour colours, float size)
{
return new FillFlowContainer
@ -146,4 +161,22 @@ namespace osu.Game.Online.Multiplayer
};
}
}
public class GameTypeTimeshift : GameType
{
public override string Name => "Timeshift";
public override bool IsAvailable => true;
public override Drawable GetIcon(OsuColour colours, float size) => new SpriteIcon
{
Anchor = Anchor.Centre,
Origin = Anchor.Centre,
Icon = FontAwesome.fa_osu_charts,
X = -2, // The icon is off-centre
Size = new Vector2(size),
Colour = colours.Blue,
Shadow = false
};
}
}

View File

@ -15,7 +15,7 @@ namespace osu.Game.Online.Multiplayer
public Bindable<User> Host = new Bindable<User>();
public Bindable<RoomStatus> Status = new Bindable<RoomStatus>(new RoomStatusOpen());
public Bindable<RoomAvailability> Availability = new Bindable<RoomAvailability>();
public Bindable<GameType> Type = new Bindable<GameType>(new GameTypeVersus());
public Bindable<GameType> Type = new Bindable<GameType>(new GameTypeTimeshift());
public Bindable<BeatmapInfo> Beatmap = new Bindable<BeatmapInfo>();
public Bindable<int?> MaxParticipants = new Bindable<int?>();
public Bindable<IEnumerable<User>> Participants = new Bindable<IEnumerable<User>>(Enumerable.Empty<User>());