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