コード例 #1
0
    public void GiveTask(Task t)
    {
        Citizen c = worldController.SelectedCitizen;

        Options.GetOptions.CloseOptions();

        if (c)
        {
            switch (t.task)
            {
            case (TaskItems.Loot):
                c.item = t.obj.GetComponent <Item>();
                break;

            case (TaskItems.Vehicle):
                t.obj.GetComponent <Vehicle>().inUse = true;
                c.SetVehicle(t.obj.GetComponent <Vehicle>());
                break;
            }

            if (worldController.taskList.Contains(t))
            {
                worldController.taskList.Remove(t);
            }

            if (keyBindings.GetKey(BindingsNames.addTask).AnyInput)
            {
                c.taskList.Add(t);
            }
            else
            {
                if (c.currTask.personal)
                {
                    if (c.currTask.task != TaskItems.None && c.currTask.task != TaskItems.Move)
                    {
                        c.taskList.Insert(0, c.currTask);
                    }
                }
                else
                {
                    worldController.AddTask(c.currTask);
                }
                worldController.NoLongerNeedsTask(c);
                c.GiveTask(t);
            }
        }
        else
        {
            if (!t.personal)
            {
                worldController.AddTask(t);
            }
        }
    }