diff --git a/osu.Game.Tests/Visual/RankedPlay/TestScenePlayerCardHand.cs b/osu.Game.Tests/Visual/RankedPlay/TestScenePlayerCardHand.cs index 1bdd79c10c..f421792fe2 100644 --- a/osu.Game.Tests/Visual/RankedPlay/TestScenePlayerCardHand.cs +++ b/osu.Game.Tests/Visual/RankedPlay/TestScenePlayerCardHand.cs @@ -211,5 +211,13 @@ namespace osu.Game.Tests.Visual.RankedPlay }); AddStep("release mouse", () => InputManager.ReleaseButton(MouseButton.Left)); } + + [Test] + public void TestKeyboardSelectionWithoutCards() + { + AddAssert("no cards", () => !handOfCards.Cards.Any()); + AddStep("right arrow", () => InputManager.Key(Key.Right)); + AddStep("left arrow", () => InputManager.Key(Key.Left)); + } } } diff --git a/osu.Game/Screens/OnlinePlay/Matchmaking/RankedPlay/Hand/PlayerHandOfCards.cs b/osu.Game/Screens/OnlinePlay/Matchmaking/RankedPlay/Hand/PlayerHandOfCards.cs index 1e2474ab87..06f1514251 100644 --- a/osu.Game/Screens/OnlinePlay/Matchmaking/RankedPlay/Hand/PlayerHandOfCards.cs +++ b/osu.Game/Screens/OnlinePlay/Matchmaking/RankedPlay/Hand/PlayerHandOfCards.cs @@ -200,6 +200,9 @@ namespace osu.Game.Screens.OnlinePlay.Matchmaking.RankedPlay.Hand { var cards = GetCardsInDisplayOrder(); + if (cards.Count == 0) + return; + int currentIndex = cards.FindIndex(c => c.HasFocus); // default behaviour is to start from either end of the cards if no card is focused currently