public QuestData GetQuest(int id) { if (!_questMap.TryGetValue(id, out var item)) { _questMap.Add(id, null); _questMap[id] = item = QuestData.Deserialize(_jsonDatabase.GetQuest(id), this); } if (item == null) { throw new DatabaseException(CircularDependencyText + "Quest_" + id); } return(item); }