private async void startGameButton_Click(object sender, EventArgs e) { RadioButton host = hostSelectionRadio; RadioButton join = joinSelectionRadio; RoomsService.RoomResponse rs = new RoomsService.RoomResponse(); if (host.Checked) { if (roomSize.SelectedItem != null) { var roomSizeVal = Convert.ToInt32(roomSize.SelectedItem.ToString()); rs = await Service.HostRoom(ar.Token, roomSizeVal); } else { return; } } else if (join.Checked) { var roomIdVal = roomId.Text; rs = await Service.JoinRoom(ar.Token, roomIdVal); } GameSubject gameSubject = new GameSubject(); gameSubject.StartObserving(ar.Token, rs.Id); gameSubject.StartObservingGame(ar.Token, rs.Id); Game g = new Game(rs, ar.Token, gameSubject); this.Hide(); g.Show(); }
/// <summary> /// Start observing a GameSubject. /// </summary> /// <param name="subject">The GameSubject to be observed.</param> public void register(GameSubject subject) { if (!subjects.Contains(subject)) { subjects.Add(subject); subject.registerObserver(this); } }
public Game(RoomsService.RoomResponse rr, string token, GameSubject gs) { InitializeComponent(); RestartGame(); RoomResponse = rr; gameSubject = gs; gameSubject.Attach(this); }
/// <summary> /// Stop observing a GameSubject. /// </summary> /// <param name="subject">The GameSubject to stop observing.</param> public void unregister(GameSubject subject) { subject.unregisterObserver(this); subjects.Remove(subject); }