public bool IsActive(int questId, string objective = null)
{
var quest = this.GetFirstIncomplete(questId);
if (quest == null) return false;
var current = quest.CurrentObjective;
if (current == null) return false;
if (objective != null && current.Ident != objective)
return false;
return (quest.State == QuestState.InProgress);
}