Beispiel #1
0
    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));
    }
Beispiel #2
0
    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);
            }
        }
    }