Ejemplo n.º 1
0
        void Update()
        {
            if (NarrativeManager.Get().IsPaused())
            {
                return;
            }

            timer += Time.deltaTime;

            if (execList.Count > 0)
            {
                if (timer >= 0f)
                {
                    NarrativeEffect effect = execList[0];
                    execList.RemoveAt(0);

                    if (effect.enabled)
                    {
                        effect.Trigger(last_triggerer);
                        timer = -effect.GetWaitTime();
                    }

                    CheckIfEnd();
                }
            }
            else if (childExecList.Count > 0)
            {
                //Still running
                if (timer >= 0f)
                {
                    NarrativeChild child = childExecList[0];
                    childExecList.RemoveAt(0);

                    float wait = child.RunIfMet(last_triggerer);
                    timer = -wait;

                    CheckIfEnd();
                }
            }
            else
            {
                if (trigger_type == NarrativeEventType.AutoTrigger && AreConditionsMet())
                {
                    Run();
                }
            }
        }
Ejemplo n.º 2
0
        void Awake()
        {
            evt_list.Add(this);
            conditions.AddRange(GetComponents <NarrativeCondition>());
            effects.AddRange(GetComponents <NarrativeEffect>());

            for (int i = 0; i < transform.childCount; i++)
            {
                GameObject child_obj = transform.GetChild(i).gameObject;
                if (child_obj.GetComponent <NarrativeEffect>())
                {
                    NarrativeChild child = new NarrativeChild();
                    child.game_obj = child_obj;
                    child.conditions.AddRange(child_obj.GetComponents <NarrativeCondition>());
                    child.effects.AddRange(child_obj.GetComponents <NarrativeEffect>());
                    childs.Add(child);
                }
            }
        }