Пример #1
0
    void Init()
    {
        rect.position = new Vector3(Middle.x, Middle.y);

        selected_turrets = new List <Turret>();
        List <Turret> all_turrets = new List <Turret>();

        foreach (Turret [] turrs in player_script.turrets.Values)
        {
            all_turrets.AddRange(turrs);
        }
        for (int i = 0; i < all_turrets.Count; i++)
        {
            Turret     turret        = all_turrets[i];
            Vector3    pos           = new Vector3(Middle.x + 70f, Middle.y + 150f - (50 * i));
            GameObject button_object = Instantiate(source_button);
            button_object.transform.position = pos;
            button_object.transform.SetParent(mask_transform, true);

            TurretButton tb = button_object.GetComponent <TurretButton>();
            tb.Initiate(this, (uint)i, turret);

            if (Edit)
            {
                if (group.Contains(turret))
                {
                    tb.On = true;
                }
            }
            else
            {
                if (preselected_turrets.Contains(turret))
                {
                    tb.On = true;
                }
            }

            TurretButton butt = button_object.GetComponent <TurretButton>();
            turret_graphs.Add(butt, turret);
            init_positions.Add(button_object.transform.position);
        }
        slider_ratio = Mathf.Min(1, 300f / (50f * (float)all_turrets.Count));
        slider.transform.SetAsFirstSibling();

        if (Edit)
        {
            if (group.follow_target)
            {
                tgt_choice.value = (int)TargetChoice.target;
            }
            else
            {
                tgt_choice.value = (int)TargetChoice.cursor;
            }
            name_input.text = group.name;
        }
    }
Пример #2
0
    public void ResetPlayer(Ship p_player)
    {
        PlayerShip = p_player;

        // Initialize player related stuff
        GameObject player = PlayerShip.Object;

        player_script    = player.GetComponent <ShipControl>();
        player_transform = player.transform;

        // Reset Collections
        weapon_states.Clear();
        turret_states.Clear();

        foreach (Weapon w in PlayerShip.Parts.GetAll <Weapon>())
        {
            GameObject obj = Instantiate(GameObject.Find("tgt_point")) as GameObject;
            obj.transform.SetParent(ship_canvas);
            Image img = obj.GetComponent <Image>();
            weapon_states.Add(w, img);
        }

        foreach (Turret t in PlayerShip.Parts.GetAll <Turret>())
        {
            GameObject obj = Instantiate(GameObject.Find("tgt_point")) as GameObject;
            obj.transform.SetParent(ship_canvas);
            Image img = obj.GetComponent <Image>();
            turret_states.Add(t, img);
        }


        // Fill turret_graphs and initialize the buttons' scripts
        // -------------------------------------------------------

        TurretGraphs      = new Dictionary <TurretButton, Turret>();
        TurretGroupGraphs = new Dictionary <TurretButton, TurretGroup>();

        GameObject turr_img_instance = GameObject.Find("turr_slide");
        uint       i = 0;

        foreach (Turret [] turrs in player_script.turrets.Values)
        {
            foreach (Turret turr in turrs)
            {
                GameObject obj = Instantiate(turr_img_instance);
                obj.transform.SetParent(SceneGlobals.permanent_canvas.transform);
                obj.transform.position = new Vector3(Screen.width - 50, Screen.height - 75 - (i * 50));
                obj.transform.SetAsFirstSibling();

                TurretButton button = obj.GetComponent <TurretButton>();
                button.Initiate(this, i, turr);

                TurretGraphs.Add(button, turr);

                i++;
            }
        }

        handle_size_ratio[0] = Mathf.Min(1, ((float)Screen.height - 250f) / (50f * i));

        // Fill group_graphs and initialize the buttons' scripts
        //------------------------------------------------------

        for (int j = 0; j < player_script.turretgroup_list.Count; j++)
        {
            TurretGroup tg  = player_script.turretgroup_list[j];
            GameObject  obj = Instantiate(turr_img_instance);
            obj.transform.SetParent(SceneGlobals.permanent_canvas.transform);
            obj.transform.position = new Vector3(Screen.width + 50, Screen.height - 75 - (j * 50));
            obj.transform.SetAsFirstSibling();

            TurretButton button = obj.GetComponent <TurretButton>();
            button.Initiate(this, (uint)j, tg);

            TurretGroupGraphs.Add(button, tg);
        }

        handle_size_ratio [1] = Mathf.Min(1, ((float)Screen.height - 250f) / (50f * player_script.turretgroup_list.Count));

        ButtonLabelUpdate();
    }