private SICore.GameInfo ToSICoreGame(SI.GameServer.Contract.GameInfo gameInfo) => new SICore.GameInfo { GameID = gameInfo.GameID, GameName = gameInfo.GameName, Mode = gameInfo.Mode, Owner = gameInfo.Owner, PackageName = gameInfo.PackageName, PasswordRequired = gameInfo.PasswordRequired, Persons = gameInfo.Persons, RealStartTime = gameInfo.RealStartTime == DateTime.MinValue ? DateTime.MinValue : gameInfo.RealStartTime.ToLocalTime(), Rules = BuildRules(gameInfo), Stage = BuildStage(gameInfo), Started = gameInfo.Started, StartTime = gameInfo.StartTime.ToLocalTime() };
private static string BuildRules(SI.GameServer.Contract.GameInfo gameInfo) { var rules = gameInfo.Rules; var sb = new StringBuilder(); if (gameInfo.Mode == SIEngine.GameModes.Sport) { if (sb.Length > 0) { sb.Append(", "); } sb.Append(Resources.GameRule_Sport); } if ((rules & GameRules.FalseStart) == 0) { if (sb.Length > 0) { sb.Append(", "); } sb.Append(Resources.GameRule_NoFalseStart); } if ((rules & GameRules.Oral) > 0) { if (sb.Length > 0) { sb.Append(", "); } sb.Append(Resources.GameRule_Oral); } if ((rules & GameRules.IgnoreWrong) > 0) { if (sb.Length > 0) { sb.Append(", "); } sb.Append(Resources.GameRule_IgnoreWrong); } return(sb.ToString()); }
private static string BuildStage(SI.GameServer.Contract.GameInfo gameInfo) { switch (gameInfo.Stage) { case GameStages.Created: return(Resources.GameStage_Created); case GameStages.Started: return(Resources.GameStage_Started); case GameStages.Round: return(Resources.GameStage_Round + ": " + gameInfo.StageName); case GameStages.Final: return(Resources.GameStage_Final); case GameStages.Finished: default: return(Resources.GameStage_Finished); } }