private void TimeIsExpired(Kv kv) { GameResultE result = (GameResultE)kv.GetInt32("GameResult"); base.Game.TimeExpired(result, false); ClockUc.TimeExpired(result); }
public void TimeExpired(GameResultE result, bool isSendResult) { int gameID = 0; int opponentUserID = 0; if (DbGame != null) { gameID = DbGame.GameID; // DbGame is null once AfterFinish is called in Finish() opponentUserID = DbGame.OpponentUserID; } Flags.IsTimeExpired = true; if (result == GameResultE.InProgress) { if (Flags.AmIBlack) // black clock expired { Finish(GameResultE.WhiteWin); } else { Finish(GameResultE.WhiteLose); } } else { Finish(result); } if (Flags.IsOnline && isSendResult) { SocketClient.TimeExpired(gameID, GameResult, opponentUserID, Flags.Flags); } }
public Game(Game g) { this.Flags = new GameFlags(this); this.Flags.Flags = g.Flags.Flags; this.Moves = new Moves(this); this.Moves.DataTable = g.Moves.DataTable.Copy(); this.GameResult = g.GameResult; }
public void TimeExpired(GameResultE result) { RefreshClock(); bool isWhiteTurn = (result == GameResultE.WhiteLose); // it will be white's turn if white is lost due to time expire! SetClockExpired(isWhiteTurn); }
public void Finish(GameResultE gameResult) { if (Flags.IsGameFinished) { return; // we can not finish a game more than once } if (BeforeFinish != null) { BeforeFinish(this, EventArgs.Empty); } GameResult = gameResult; switch (gameResult) { case GameResultE.None: break; case GameResultE.InProgress: break; case GameResultE.WhiteWin: GameData.Result = "1-0"; break; case GameResultE.WhiteLose: GameData.Result = "0-1"; break; case GameResultE.Draw: GameData.Result = "1/2-1/2"; break; case GameResultE.Absent: GameData.Result = "Line"; break; case GameResultE.NoResult: GameData.Result = "Line"; break; default: break; } Notations.GameFinished(); GameData.Save(); AutoSaveGame(); if (AfterFinish != null) { AfterFinish(this, EventArgs.Empty); } }
public void Resign(GameResultE result) { int gameID = 0; int opponentUserID = 0; if (DbGame != null) { gameID = DbGame.GameID; // DbGame is null once AfterFinish is called in Finish() opponentUserID = DbGame.OpponentUserID; } bool whiteWin = false; switch (result) { case GameResultE.InProgress: if (Flags.IsOffline) { whiteWin = ResignOffline(); // Flags.AmIBlack; } else { if (DbGame.IsCurrentUserBlack) { whiteWin = true; } } break; case GameResultE.WhiteWin: whiteWin = true; break; case GameResultE.WhiteLose: whiteWin = false; break; } Flags.IsResigned = true; if (whiteWin) { this.Finish(GameResultE.WhiteWin); } else { this.Finish(GameResultE.WhiteLose); } if (Flags.IsOnline && result == GameResultE.InProgress) { SocketClient.Resign(gameID, GameResult, opponentUserID, Flags.Flags); } }
public static void KingStaleMated(int gameId, string gameXml, GameResultE gameResult, int opponentUserID, string flags) { Kv kv = new Kv(); kv.Set("MethodName", (int)MethodNameE.KingStaleMated); kv.Set("OpponentUserID", opponentUserID); kv.Set("GameID", gameId); kv.Set("GameXml", gameXml); kv.Set("GameResult", (int)gameResult); kv.Set("GameFlags", flags); SocketClient.Instance.InvokeAsync(kv.DataTable); }
public static void Draw(int methodID, int gameID, GameResultE gameResult, int opponentUserID, string flags) { Kv kv = new Kv(); kv.Set("MethodName", (int)MethodNameE.Draw); kv.Set("OpponentUserID", opponentUserID); kv.Set("Draw", methodID); if (methodID == (int)DrawE.Accepted) { kv.Set("GameID", gameID); kv.Set("GameXml", ""); kv.Set("GameResult", (int)gameResult); kv.Set("GameFlags", flags); } SocketClient.Instance.InvokeAsync(kv.DataTable); }
public void Resign(GameResultE result) { bool whiteWin = false; switch (result) { case GameResultE.InProgress: if (Flags.IsOffline) { whiteWin = Flags.AmIBlack; } else { if (DbGame.IsCurrentUserBlack) { whiteWin = true; } } break; case GameResultE.WhiteWin: whiteWin = true; break; case GameResultE.WhiteLose: whiteWin = false; break; } Flags.IsResigned = true; if (whiteWin) { this.Finish(GameResultE.WhiteWin); } else { this.Finish(GameResultE.WhiteLose); } if (Flags.IsOnline && result == GameResultE.InProgress) { MessageFactory.Resign(DbGame.GameID, GameResult); } }
public void SetFen(string fen) { if (string.IsNullOrEmpty(fen) || !GameValidator.IsValidFen(fen)) { return; } if (BeforeSetFen != null) { BeforeSetFen(this, EventArgs.Empty); } GameValidator = new GameW(fen); if (Flags.IsOffline) { if (Flags.IsClickedByUser) { if (IsSwapPlayersRequired) { SwapPlayers(); } } else { Clock.Reset(); Clock.Stop(); GameResult = GameResultE.InProgress; } Flags.EnPassant = SquareE.NoSquare; ResetCounters(); } if (AfterSetFen != null) { AfterSetFen(this, EventArgs.Empty); } }
public static void UpdateGameStatusWithTournamentMatchID(Cxt cxt, SqlTransaction trans, string gameIDs, GameResultE gameResultID) { BaseCollection.Execute(trans, "UpdateGameStatusWithTournamentMatchID", gameIDs, gameResultID.ToString("d"), cxt.CurrentUserID, DateTime.Now); }
public static void UpdateGameDataByGameID(int gameID, string lastMoveGameXml, GameResultE gameResult, string gameFlags, int opponentUserID) { Kv kv = new Kv(); kv.Set("MethodName", (int)MethodNameE.UpdateGameDataByGameID); kv.Set("GameID", gameID); kv.Set("GameXml", lastMoveGameXml); kv.Set("GameResult", (int)gameResult); kv.Set("GameFlags", gameFlags); kv.Set("OpponentUserID", opponentUserID); SocketClient.Instance.InvokeAsync(kv.DataTable); }
private void ForcedGameWin(Kv kv) { GameResultE result = (GameResultE)kv.GetInt32("GameResultID"); base.Game.GameForcefullyFinished(result); }
private void UserResign(Kv kv) { GameResultE result = (GameResultE)kv.GetInt32("GameResult"); base.Game.Resign(result); }
public void Finish(GameResultE gameResult) { if (Flags.IsGameFinished) { return; // we can not finish a game more than once } if (BeforeFinish != null) { BeforeFinish(this, EventArgs.Empty); } GameResult = gameResult; switch (gameResult) { case GameResultE.None: break; case GameResultE.InProgress: break; case GameResultE.WhiteWin: GameData.Result = "1-0"; break; case GameResultE.WhiteLose: GameData.Result = "0-1"; break; case GameResultE.Draw: GameData.Result = "1/2-1/2"; break; case GameResultE.Absent: GameData.Result = "Line"; break; case GameResultE.NoResult: GameData.Result = "Line"; break; case GameResultE.ForcedWhiteLose: GameData.Result = "0-1 (Forced black win)"; break; case GameResultE.ForcedWhiteWin: GameData.Result = "1-0 (Forced white win)"; break; case GameResultE.ForcedDraw: GameData.Result = "1/2-1/2 (Forced draw)"; break; default: break; } Notations.GameFinished(); if (!Flags.IsDatabaseGame) { GameData.Save(); AutoSaveGame(); } //if (Flags.IsOnline && Flags.IsTimeExpired && (Flags.IsMyTurn || Flags.IsTournamentMatchTimeExpired)) //{ // SocketClient.TimeExpired(DbGame.GameID, GameResult, DbGame.OpponentUserID, Flags.Flags); //} if (AfterFinish != null) { AfterFinish(this, EventArgs.Empty); } }
public void GameForcefullyFinished(GameResultE gameResult) { Finish(gameResult); }
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { if (e.ColumnIndex == 5 || e.ColumnIndex == 8 || e.ColumnIndex == 9 || e.ColumnIndex == 10 || e.ColumnIndex == 13) { if (dataGridView1["WhiteUserID", e.RowIndex].Value.ToString() != userID.ToString()) { switch (e.ColumnIndex) { case 5: e.Value = dataGridView1["WhiteUserName", e.RowIndex].Value; break; case 8: e.Value = dataGridView1["EloWhite", e.RowIndex].Value; break; case 9: if (dataGridView1["GameResultID", e.RowIndex].Value != null) { string result = string.Empty; GameResultE gameResult = (GameResultE)UData.ToInt32(dataGridView1["GameResultID", e.RowIndex].Value.ToString()); switch (gameResult) { case GameResultE.None: break; case GameResultE.InProgress: break; case GameResultE.WhiteWin: result = "0"; break; case GameResultE.WhiteLose: result = "1"; break; case GameResultE.Draw: result = "1/2"; break; case GameResultE.Absent: break; case GameResultE.NoResult: break; case GameResultE.WhiteBye: result = "1"; break; case GameResultE.BlackBye: result = "0"; break; case GameResultE.ForcedWhiteWin: result = "0"; break; case GameResultE.ForcedWhiteLose: result = "1"; break; case GameResultE.ForcedDraw: result = "1/2"; break; default: break; } e.Value = result; } break; case 10: e.Value = "White"; break; case 13: if (dataGridView1["WhiteUserCountry", e.RowIndex].Value != null && dataGridView1["WhiteUserCountry", e.RowIndex].Value.ToString() != "" && dataGridView1["WhiteUserCountry", e.RowIndex].Value.ToString() != "0") { Image item = Image.FromFile(App.Model.Ap.FolderImages + @"Flags\" + dataGridView1["WhiteUserCountry", e.RowIndex].Value + ".PNG"); e.Value = item; } else { Image item = Image.FromFile(App.Model.Ap.FolderImages + @"Flags\244.PNG"); e.Value = item; } break; } } else { switch (e.ColumnIndex) { case 5: e.Value = dataGridView1["BlackUserName", e.RowIndex].Value; break; case 8: e.Value = dataGridView1["EloBlack", e.RowIndex].Value; break; case 9: if (dataGridView1["GameResultID", e.RowIndex].Value != null) { string result = string.Empty; GameResultE gameResult = (GameResultE)UData.ToInt32(dataGridView1["GameResultID", e.RowIndex].Value.ToString()); switch (gameResult) { case GameResultE.None: break; case GameResultE.InProgress: break; case GameResultE.WhiteWin: result = "1"; break; case GameResultE.WhiteLose: result = "0"; break; case GameResultE.Draw: result = "1/2"; break; case GameResultE.Absent: break; case GameResultE.NoResult: break; case GameResultE.WhiteBye: result = "0"; break; case GameResultE.BlackBye: result = "1"; break; case GameResultE.ForcedWhiteWin: result = "1"; break; case GameResultE.ForcedWhiteLose: result = "0"; break; case GameResultE.ForcedDraw: result = "1/2"; break; default: break; } e.Value = result; } break; case 10: e.Value = "Black"; break; case 13: if (dataGridView1["BlackUserCountry", e.RowIndex].Value != null && dataGridView1["BlackUserCountry", e.RowIndex].Value.ToString() != "" && dataGridView1["BlackUserCountry", e.RowIndex].Value.ToString() != "0") { Image item = Image.FromFile(App.Model.Ap.FolderImages + @"Flags\" + dataGridView1["BlackUserCountry", e.RowIndex].Value + ".PNG"); e.Value = item; } else { Image item = Image.FromFile(App.Model.Ap.FolderImages + @"Flags\244.PNG"); e.Value = item; } break; } } } }
public static void UpdateStatus(SqlTransaction trans, Cxt cxt, TournamentMatchStatusE tournamentMatchStatusID, string tournamentMatchIDs, GameResultE gameResultID) { StringBuilder sb = new StringBuilder(); BaseCollection.Execute(trans, "UpdateTournamentMatchStatus", tournamentMatchIDs, tournamentMatchStatusID.ToString("d"), gameResultID.ToString("d"), cxt.CurrentUserID ); if (tournamentMatchStatusID != TournamentMatchStatusE.Scheduled && tournamentMatchStatusID != TournamentMatchStatusE.Absent) { BaseCollection.Execute(trans, "UpdateTournamentChallengeStatus", tournamentMatchIDs, StatusE.Deleted.ToString("d"), cxt.CurrentUserID); } }
public static void UpdateStatus(Cxt cxt, TournamentMatchStatusE tournamentMatchStatusID, string tournamentMatchIDs, GameResultE gameResultID) { SqlTransaction trans = null; try { trans = SqlHelper.BeginTransaction(Config.ConnectionString); UpdateStatus(trans, cxt, tournamentMatchStatusID, tournamentMatchIDs, gameResultID); SqlHelper.CommitTransaction(trans); } catch (Exception ex) { SqlHelper.RollbackTransaction(trans); Log.Write(cxt, ex); } }