Exemplo n.º 1
0
        /// <inheritdoc/>
        public Quest StartQuest(Quest quest)
        {
            Quest questInstance = quest.Instantiate();

            m_QuestInstanceRegistry.Register(questInstance);

            QuestNode startNode = questInstance.startNode;

            IReadOnlyList <QuestCondition> conditions = startNode.conditions;

            for (int i = 0; i < conditions.Count; i++)
            {
                m_DiContainer.Inject(conditions[i]);
            }

            IReadOnlyList <QuestTrigger> successTriggers = startNode.successTriggers;

            for (int i = 0; i < successTriggers.Count; i++)
            {
                m_DiContainer.Inject(successTriggers[i]);
            }

            IReadOnlyList <QuestTrigger> failedTriggers = startNode.failedTriggers;

            for (int i = 0; i < failedTriggers.Count; i++)
            {
                m_DiContainer.Inject(failedTriggers[i]);
            }

            foreach (QuestCounter counter in questInstance.counters)
            {
                m_DiContainer.Inject(counter);
            }

            questInstance.SetState(QuestState.Active);

            return(questInstance);
        }
 public virtual void Initialize(Quest quest, QuestNode questNode)
 {
     this.quest     = quest;
     this.questNode = questNode;
 }
Exemplo n.º 3
0
 public override void Initialize(Quest quest, QuestNode node)
 {
     base.Initialize(quest, node);
     m_Counter       = quest.GetCounterById(m_CounterId);
     m_RequiredCount = quest.GetCounterById(m_RequiredCountId);
 }