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