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; }
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); }); }