Пример #1
0
    public void CompleteQuest(Quest quest)
    {
        levelController.AddExp(quest.reward.exp);
        playerProps.coins += quest.reward.coins;

        if (quest.reward.item != null)
        {
            PlayerManager.Instance.inventory.AddItem(quest.reward.item);
        }

        activeQuests.Remove(quest);
        completedQuests.Add(quest);

        var nextQuest = quest.GetNextQuest();

        if (nextQuest != null)
        {
            if (nextQuest.done)
            {
                CompleteQuest(nextQuest);
                return;
            }
            LoadToGiver(nextQuest);
        }
        else
        {
            ClearGiver(quest);
        }

        questUI.ClearPanel();

        onQuestChangeCallback.Invoke();
    }