Beispiel #1
0
 public ServiceResult(ResultKinds kind, T result, string warning, ExceptionDescriptions exceptionDescriptions)
 {
     Result = result;
     ExceptionDescriptions = exceptionDescriptions;
     Kind = kind;
     WarningDescription = warning;
 }
Beispiel #2
0
 // set result, and remember current player if win or loss
 void SetMoveResult(ResultKinds result)
 {
     if (result == ResultKinds.Count)
     {
         // count means that player with highest count wins
         var ap = _gamedef.ActivePlayers.ToArray();
         if (ap.Length != 2)
         {
             throw Error.Assert("player count");
         }
         var counts = ap.Select(p => PiecesCount(p)).ToArray();
         _result       = (counts[0] == counts[1]) ? ResultKinds.Draw : ResultKinds.Win;
         _resultplayer = (_result == ResultKinds.Draw) ? PlayerValue.None : (counts[0] > counts[1]) ? ap[0] : ap[1];
     }
     else
     {
         _result       = result;
         _resultplayer = (result == ResultKinds.None || result == ResultKinds.Draw) ? PlayerValue.None : CurrentPlayer;
     }
     // credit non-active result to previous active player; or else to current
     if (_resultplayer == LastMovePlayer)
     {
         _resultplayer = LastTurnPlayer;
     }
     else if (_resultplayer == MovePlayer)
     {
         _resultplayer = TurnPlayer;
     }
 }
Beispiel #3
0
 void AddGoal(ResultKinds result, PlayerValue[] players, GoalCode condition)
 {
     foreach (var player in players)
     {
         _gamedef.AddGoal(result, player, condition);
     }
 }
Beispiel #4
0
 ResultKinds ResultReverse(ResultKinds result)
 {
     return(result == ResultKinds.Win ? ResultKinds.Loss
 : result == ResultKinds.Loss ? ResultKinds.Win
 : result);
 }
Beispiel #5
0
 internal void AddGoal(ResultKinds kind, PlayerValue player, GoalCode code)
 {
     Goals.Add(new GoalDef {
         Kind = kind, Player = player, Code = code
     });
 }