public void AcceptQuest(Quest quest) { foreach (var element in quest.Root.Elements) { var state = new QuestSerializableState() { ConditionId = element.Condition.Id, QuestId = quest.Id }; if (quest.Root.Mandatory && element.Case.MandatoryCount == 0) { state.Active = true; } else if (!quest.Root.Mandatory) { state.Active = true; } Conditions.TryAdd(element.Condition.Id, state); World.DatabaseManager.AddQuestCondition(Player, state); } Packet.Builder.QuestInitializationCommand(Player.GetGameSession()); if (SelectedQuestId == 0) { SelectedQuestId = quest.Id; } }
private Quest FindQuestByState(QuestSerializableState state) { return(World.StorageManager.Quests[state.QuestId]); }