public IQuest AddObjective(int state, IQuestObjective objective) { if (!QuestStates.ContainsKey(state - 1)) { QuestStates[state - 1] = new QuestState(); } var questState = QuestStates[state - 1]; questState.AddObjective(objective); return(this); }