public override async Task StartNewTurnAsync() { if (PlayerList.DidChooseColors()) { PrepStartTurn(); //if you did not choose colors, no need to prepstart because something else will do it. //code to run but only if you actually chose color. Cup !.DiceList.ForEach(thisDice => thisDice.Visible = true); if (SingleInfo !.PlayerCategory == EnumPlayerCategory.OtherHuman) { Check !.IsEnabled = true; return; //because waiting for other player to roll dice. } await Roller !.RollDiceAsync(); //hopefully this simple. return; } await ContinueTurnAsync(); //most of the time, continue turn. can change to what is needed }