func endClickDiscovery(t touch.Event, u *uistate.UIState) { pressed := unpressButtons(u) for _, button := range pressed { if button == u.Buttons["newGame"] { gameStartData, logName := sync.CreateLogSyncgroup(u) settingsName := sync.CreateSettingsSyncgroup(u) if logName != "" && settingsName != "" { sync.LogSettingsName(settingsName, u) u.ScanChan <- true u.ScanChan = nil u.SGChan = make(chan bool) go sync.Advertise(logName, settingsName, gameStartData, u.SGChan, u.Ctx) view.LoadArrangeView(u) } } else { for _, b := range u.Buttons { if button == b { s := strings.Split(b.GetInfo(), "|") logAddr := s[0] creator, _ := strconv.ParseBool(s[1]) fmt.Println("TRYING TO JOIN:", logAddr) success := sync.JoinLogSyncgroup(logAddr, creator, u) if success { sgName := sync.CreateSettingsSyncgroup(u) if sgName != "" { sync.LogSettingsName(sgName, u) } u.ScanChan <- true u.ScanChan = nil view.LoadArrangeView(u) } else { fmt.Println("Failed to join") } } } } } }
func onPlayerNum(key, value string, u *uistate.UIState) { userID, _ := strconv.Atoi(strings.Split(key, "/")[2]) playerNum, _ := strconv.Atoi(value) if playerNum >= 0 && playerNum < 4 { u.PlayerData[playerNum] = userID u.CurTable.GetPlayers()[playerNum].SetDoneScoring(true) } if playerNum == u.CurPlayerIndex && userID != util.UserID { u.CurPlayerIndex = -1 } if u.CurView == uistate.Arrange { view.LoadArrangeView(u) if u.CurTable.AllReadyForNewRound() && u.IsOwner { b := u.Buttons["start"] u.Eng.SetSubTex(b.GetNode(), b.GetImage()) b.SetHidden(false) b.SetDisplayingImage(true) if u.SGChan != nil { u.SGChan <- true u.SGChan = nil } } } }