public void Add(Scenario.TaskInfo taskInfo)
    {
        if (elementIndex >= items.Count)
        {
            items.Add(Instantiate(prefab, listRoot, false));
        }

        items[elementIndex].Tick(taskInfo);
        items[elementIndex].gameObject.SetActive(true);
        ++elementIndex;
    }
Example #2
0
    public void Tick(Scenario.TaskInfo info)
    {
        var taskStatus = info.task.GetStatus();

        name.text      = taskStatus.name;
        progress.value = taskStatus.workPercentage;
        for (int i = 0; i < programmers.Length; ++i)
        {
            bool show = i < info.devs.Count;
            programmers[i].enabled = show;
            if (show)
            {
                programmers[i].text = info.devs[i].GetStatus().name;
            }
        }

        addButton.onClick.RemoveAllListeners();
        addButton.interactable = !taskStatus.isDone;
        addButton.onClick.AddListener(() => { info.onAddToTask?.Invoke(info.task); });
    }