/** * Incrémente un QuestSubStep de value à condition que sa quête et sa QuestStep * soient actives. Cet appel fait donc progresser la quête (toujours sous les * conditions données précédemment), et peut potentiellement la terminer. **/ public void TryToIncrement(string questId, string step, string subStep, int value) { Quest quest = null; if (activeQuests.TryGetValue(questId, out quest)) { quest.IncrementSubStepIfActive(step, subStep, value); if (quest.Accomplished()) { quest.EndQuest(); activeQuests.Remove(questId); accomplishedQuestsId.Add(questId); //TODO event à déclencer pour indiquer la fin de la quête dans l'interface } } }