public void OnGenerate() { if (ElementManager.s_element_manager.GeneratedObjects.Any()) { ElementManager.s_element_manager.WipeGeneratedObjects(); } List <PlayerData> picks = new List <PlayerData>(); foreach (GameObject obj in m_content) { NationPicker np = obj.GetComponent <NationPicker>(); string str = np.NationName; NationData data = AllNationData.AllNations.FirstOrDefault(x => x.Name == str); PlayerData pd = new PlayerData(data, np.TeamNum); if (data == null || (picks.Any(x => x.NationData.Name == data.Name) && !m_generic_starts)) { GetComponent <AudioSource>().PlayOneShot(DenyAudio); return; } picks.Add(pd); } m_nations = picks; GetComponent <AudioSource>().PlayOneShot(AcceptAudio); NodeLayout layout = m_layouts.Layouts.FirstOrDefault(x => x.Name == LayoutDropdown.options[LayoutDropdown.value].text && x.NumPlayers == m_player_count); MoveCameraForGeneration(layout); Resources.UnloadUnusedAssets(); StartCoroutine(perform_async(() => do_generate(layout), true)); }
void update_nations() { List <Dropdown.OptionData> list = new List <Dropdown.OptionData>(); foreach (NodeLayout layout in m_layouts.Layouts.Where(x => x.NumPlayers == m_player_count)) { Dropdown.OptionData od = new Dropdown.OptionData(layout.Name); list.Add(od); } LayoutDropdown.ClearOptions(); LayoutDropdown.AddOptions(list); LayoutDropdown.value = 0; while (m_content.Count > m_player_count) { GameObject obj = m_content[m_content.Count - 1]; m_content.RemoveAt(m_content.Count - 1); GameObject.Destroy(obj); } RectTransform tf = ScrollPanel.GetComponent <RectTransform>(); tf.sizeDelta = new Vector2(247f, 2f + m_player_count * 34f); for (int i = 0; i < m_player_count; i++) { if (m_content.Count > i) { GameObject obj = m_content[i]; RectTransform rt = obj.GetComponent <RectTransform>(); NationPicker np = obj.GetComponent <NationPicker>(); np.Initialize(); np.SetTeamplay(m_teamplay); populate_nations(np.NationDropdown, i); rt.localPosition = new Vector3(0, -17 - (i * 34), 0); rt.sizeDelta = new Vector2(0, 34); rt.anchoredPosition = new Vector2(0, -17 - (i * 34)); } else { GameObject cnt = GameObject.Instantiate(NationPicker); RectTransform rt = cnt.GetComponent <RectTransform>(); NationPicker np = cnt.GetComponent <NationPicker>(); np.Initialize(); np.SetTeamplay(m_teamplay); populate_nations(np.NationDropdown, i); rt.SetParent(tf); rt.localPosition = new Vector3(0, -17 - (i * 34), 0); rt.sizeDelta = new Vector2(0, 34); rt.anchoredPosition = new Vector2(0, -17 - (i * 34)); m_content.Add(cnt); } } }