public DartStatus AddPointsToCurrentPlayer(Multiplikator multiplikator, int field, out Player nextPlayer) { var currentPoints = CurrentPlayer.GetCurrentPoints(); Dart dart = new Dart(multiplikator, field); var thrownPoints = dart.Points; var dartStatus = CheckThrownPoints(currentPoints, dart); switch (dartStatus) { case DartStatus.Ok: var roundStatus = AddPointsToCurrentPlayer(dart); if (roundStatus == RoundStatus.Completed) { SetNextPlayer(); } break; case DartStatus.OverThrown: case DartStatus.NoValidCheckOut: case DartStatus.NoCheckOutPossible: CurrentPlayer.InvalidateCurrentRound(); SetNextPlayer(); break; case DartStatus.CheckedOut: AddPointsToCurrentPlayer(dart); break; } nextPlayer = CurrentPlayer; return(dartStatus); }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { Multiplikator multiplikatorParameter = (Multiplikator)parameter; if (value is Multiplikator buttonValue) { if (buttonValue == multiplikatorParameter) { return(Color.Green); } } return(Color.Default); }
public static int GetPoints(Multiplikator multiplikator, int field) { if (field >= 0) { switch (multiplikator) { case Multiplikator.Single: return(field); case Multiplikator.Double: return(2 * field); case Multiplikator.Triple: return(3 * field); } } return(0); }
public Dart(Multiplikator multiplikator, int field) { Multiplikator = multiplikator; Field = field; }