Пример #1
0
    /**
     * 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
            }
        }
    }