Пример #1
0
    public void AddTask(ApplianceKey key, string text)
    {
        if (m_TaskLayoutGroup == null)
        {
            m_TaskLayoutGroup = GameObject.FindWithTag("task_layout_group");
        }
        Debug.Assert(m_TaskLayoutGroup != null);
        GameObject task = Instantiate(m_TaskUIPrefab, m_TaskLayoutGroup.transform);

        TaskUI ui = task.GetComponent <TaskUI>();

        Debug.Assert(ui != null);
        ui.m_ApplianceName = text;
        m_TaskUIList.Add(key, ui);

        m_TaskStates.Add(key, TaskState.Incomplete);
    }
Пример #2
0
    public void SetTaskState(ApplianceKey key, TaskState state)
    {
        Debug.Assert(m_TaskStates.ContainsKey(key));
        Debug.Assert(m_TaskUIList.ContainsKey(key));

        if (state != TaskState.Incomplete)
        {
            if (key == ApplianceKey.FaxMachine)
            {
                PlaySound(state == TaskState.Completed ? m_FaxMachineSuccess : m_FaxMachineFailure);
            }
            if (key == ApplianceKey.Microwave)
            {
                PlaySound(state == TaskState.Completed ? m_MicrowaveSuccess : m_MicrowaveFailure);
            }
            if (key == ApplianceKey.TV)
            {
                PlaySound(state == TaskState.Completed ? m_TvSuccess : m_TvFailure);
            }
        }

        if (m_TaskStates[key] == TaskState.Incomplete)
        {
            m_TaskStates[key] = state;
            m_TaskUIList[key].SetState(state);

            if (AreAllTasksComplete())
            {
                Debug.Log("All tasks completed");
                if (!m_TaskStates.ContainsKey(ApplianceKey.Door))
                {
                    AddTask(ApplianceKey.Door, "Leave");
                }
            }
        }
    }
Пример #3
0
 public TaskState GetTaskState(ApplianceKey key)
 {
     Debug.Assert(m_TaskStates.ContainsKey(key));
     return(m_TaskStates[key]);
 }
Пример #4
0
 public bool HasTask(ApplianceKey key)
 {
     return(m_TaskStates.ContainsKey(key));
 }