Example #1
0
    public static ListPanelUI Create(IEnumerable <ListUIOption> options, string title, string description, string button, int gold, PauseGameUI parent, bool closeOnComplete = false, bool closeUIOnComplete = false)
    {
        var instance = Instantiate(UIManager.ListPanelUI);

        instance.title.text       = title;
        instance.description.text = description;
        //this.button.text = button;

        instance.gold.text = $"Gold: {gold}";

        foreach (var option in options)
        {
            var clone = Instantiate(instance.prefab, instance.content);
            if (closeOnComplete || closeUIOnComplete)
            {
                var action = new Action(option.Action);

                if (closeUIOnComplete)
                {
                    action += () => parent.CloseUI();
                }

                if (closeOnComplete)
                {
                    action += () => instance.CloseUI();
                }

                clone.Initialize(option.Description, action.Invoke, option.IsEnabled);
            }
            else
            {
                clone.Initialize(option.Description, option.Action, option.IsEnabled);
            }

            instance.currentOptions.Add(option.Description, clone);
        }

        return(instance);
    }