Как создать задание в игре?
Внезапно - любой функционал делается написанием кода.
По вашему вопросу сказать прям больше нечего. Ну можно добавить что обычно делается дерево квестов (прям как структура данных) с ветвлением в зависимости от результатов. Т.е. делаете сущность "квест", она умеет проверять свой статус, и делаете контейнер, который знает о всех ветках и умеет переключать текущий квест.
Если вас реализует исключительно реализация, то я бы думал в следующую сторону.
У нас есть объект локации и событие "персонаж прибывает в локацию"(не знаю есть или нет, но в целом думаю вы этот момент можете выявить). 
В качестве обработчика этого события можно вызвать интерфейс квеста (на момент привязки квеста можно рассчитать состояние локации и понять какие предметы есть в ней). 
Ну и в момент возникновения события поднятия предмета - закрыть квест и выдать награду.
Но это все концепции и никак не связаны с вашей реализацией игры.