private void UpdateTimeControlFromRules(RulesDescription rules) { var time = _vm.TimeControl; switch (rules.TimeSystem) { case RulesDescription.TimeSystemNone: time.Style = Core.Time.TimeControlStyle.None; break; case RulesDescription.TimeSystemJapanese: time.Style = Core.Time.TimeControlStyle.Japanese; time.MainTime = (rules.MainTime / 60).ToString(); time.NumberOfJapanesePeriods = rules.ByoYomiPeriods.ToString(); time.OvertimeSeconds = rules.ByoYomiTime.ToString(); break; case RulesDescription.TimeSystemCanadian: time.Style = Core.Time.TimeControlStyle.Canadian; time.MainTime = (rules.MainTime / 60).ToString(); time.StonesPerPeriod = rules.ByoYomiStones.ToString(); time.OvertimeMinutes = (rules.ByoYomiTime / 60).ToString(); break; case RulesDescription.TimeSystemAbsolute: time.Style = Core.Time.TimeControlStyle.Absolute; time.MainTime = (rules.MainTime / 60).ToString(); break; } }
public async Task CreateChallenge(KgsRoom room, bool ranked, bool global, RulesDescription rules, StoneColor yourColor) { await kgsConnection.MakeUnattendedRequestAsync("CHALLENGE_CREATE", new { ChannelId = room.ChannelId, CallbackKey = 0, Global = global, Text = "Game", Proposal = new { GameType = ranked ? GameType.Ranked : GameType.Free, Rules = rules, Nigiri = yourColor == StoneColor.None, Players = new KgsPlayer [] { new KgsPlayer() { Name = kgsConnection.Username, Role = yourColor == StoneColor.Black ? "black" : "white" }, new KgsPlayer() { Role = yourColor == StoneColor.Black ? "white" : "black" } } } }); }
public Game GetGame() { var players = ShuffleSvc.Shuffle(Attendees, Rule); players = players.Select(p => { p.GameDescription = this.GameDescription; p.RoleDescription = RulesDescription.FirstOrDefault(rd => rd.Contains(p.Role.ToString())); return(p); }).ToList(); players = ShuffleService.Shuffle <Player>(players).ToList(); Player.ParentList = players; players.ForEach(p => p.NameNumMapList = string.Join("<br>", players.Select(q => { if (p.Role == Role.Judge) { return($"{players.IndexOf(q)}--{q.Attendee.Name}--{q.Role}"); } else { return($"{players.IndexOf(q)}--{q.Attendee.Name} {AddRoleIndecator(players.IndexOf(q))}"); } } ))); players.ForEach(q => { q.Company = players.Where(p => p.Role == q.Role && q.Role == Role.Wolf && p.Attendee.Name != q.Attendee.Name).ToList(); }); return(new Game(Round++, players)); }
public override async Task CreateChallenge(GameCreationViewModel vm) { string rulesString = "chinese"; switch (vm.SelectedRuleset) { case Core.Rules.RulesetType.AGA: rulesString = RulesDescription.RulesAga; break; case Core.Rules.RulesetType.Chinese: rulesString = RulesDescription.RulesChinese; break; case Core.Rules.RulesetType.Japanese: rulesString = RulesDescription.RulesJapanese; break; } var rules = new RulesDescription() { Handicap = vm.Handicap, Komi = float.Parse(vm.CompensationString, CultureInfo.InvariantCulture), Rules = rulesString, Size = vm.SelectedGameBoardSize.Width }; switch (vm.TimeControl.Style) { case Core.Time.TimeControlStyle.Absolute: rules.TimeSystem = RulesDescription.TimeSystemAbsolute; rules.MainTime = vm.TimeControl.MainTime.AsInteger() * 60; break; case Core.Time.TimeControlStyle.Canadian: rules.TimeSystem = RulesDescription.TimeSystemCanadian; rules.MainTime = vm.TimeControl.MainTime.AsInteger() * 60; rules.ByoYomiStones = vm.TimeControl.StonesPerPeriod.AsInteger(); rules.ByoYomiTime = vm.TimeControl.OvertimeMinutes.AsInteger() * 60; break; case Core.Time.TimeControlStyle.Japanese: rules.TimeSystem = RulesDescription.TimeSystemJapanese; rules.MainTime = vm.TimeControl.MainTime.AsInteger() * 60; rules.ByoYomiTime = vm.TimeControl.OvertimeSeconds.AsInteger(); rules.ByoYomiPeriods = vm.TimeControl.NumberOfJapanesePeriods.AsInteger(); break; case Core.Time.TimeControlStyle.None: rules.TimeSystem = RulesDescription.TimeSystemNone; break; } await Connections.Kgs.Commands.CreateChallenge(_room, vm.IsRankedGame, vm.IsPubliclyListedGame, rules, vm.SelectedColor); Mvx.Resolve <IAppNotificationService>() .TriggerNotification(new Notifications.BubbleNotification(LocalizedStrings.ChallengeIsBeingCreated, null, NotificationType.Info)); vm.CloseSelf(); }