private void sendWordChoice(AdvancedNetworkLib.Client player, RoomInfo roomInfo) { var availableWords = this.wordList.Where(w => !roomInfo.ChoosenWordIndices.Contains(this.wordList.IndexOf(w))).ToList(); var wordChoice = new WordChoice(); for (int i = 0; i < 3; i++) { var randomWord = availableWords.ElementAt(Server.rand.Next(availableWords.Count)); wordChoice.Words.Add(randomWord.Word); availableWords.Remove(randomWord); } player.send(wordChoice); }
public void SpawnWords(List <WordMapNode> nodes, UnityAction <WordMapNode> onChoose) { // Clear previous choices for (var i = _choiceObjects.Count - 1; i >= 0; i--) { WordChoice choiceObject = _choiceObjects[i]; Destroy(choiceObject.gameObject); _choiceObjects.Remove(choiceObject); } // For each node, spawn a choice object and fill in its info foreach (WordMapNode wordMapNode in nodes) { var obj = Instantiate(_wordChoicePrefab).GetComponent <WordChoice>(); _choiceObjects.Add(obj); obj.transform.SetParent(_wordChoiceParent); WordMapNode node = wordMapNode; obj.GetComponent <Button>().onClick.AddListener(() => onChoose(node)); obj.SetNode(wordMapNode); } }
public static void Open(Control parent, WordChoice wordChoice, EventHandler <WordChoosenEventArgs> wordChoosen) { // disable the page control foreach (Control control in parent.Controls) { if (control is Page) { control.Enabled = false; } } var msg = new MessageWordChoice(); msg.btnFirstWord.Text = wordChoice.Words[0]; msg.btnSecondWord.Text = wordChoice.Words[1]; msg.btnThirdWord.Text = wordChoice.Words[2]; msg.WordChoosen += wordChoosen; parent.SizeChanged += msg.OnSizeChanged; parent.Controls.Add(msg); msg.Disposed += (s, e) => Msg_Disposed(parent, EventArgs.Empty); msg.OnSizeChanged(parent, EventArgs.Empty); msg.Show(); msg.BringToFront(); }