Пример #1
0
    public void AddTutorialTrigger(TutorialTrigger t, bool checkTriggered = false)
    {
        if (checkTriggered && triggered.Contains(t.GetHash()))
        {
            return;
        }

        if (t.condition != null)
        {
            if (conditionTriggers.Find((TutorialTrigger other) => other.GetHash() == t.GetHash()) != null)
            {
                return;
            }

            conditionTriggers.Add(t);
            conditionTriggers.Sort();
        }
        else
        {
            List <TutorialTrigger> prior = priorTriggers.ToList();
            if (prior.Find((TutorialTrigger other) => other.GetHash() == t.GetHash()) != null)
            {
                return;
            }
            priorTriggers.Add(t);
        }
    }
Пример #2
0
    private void ShowTutorialInfo(TutorialTrigger t)
    {
        if (t == null)
        {
            return;
        }

        if (lastTutorialTrigger != null)
        {
            if (lastTutorialTrigger.destroyOnShowed)
            {
                Destroy(lastTutorialTrigger);
            }
            lastTutorialTrigger = null;
        }

        PopUpData info = t.info;

        if (t.highlightObject)
        {
            popUpManager.Show(info, t.GetRect());
        }
        else
        {
            popUpManager.Show(info);
        }
        if (TemaryManager.Instance != null)
        {
            TemaryManager.Instance.AddTemary(t.info);
        }

        if (t.OnShowed != null)
        {
            t.OnShowed.Invoke();
        }

        if (!triggered.Contains(t.GetHash()))
        {
            triggered.Add(t.GetHash());
        }

        if (!saved.Contains(t.GetHash()))
        {
            savePending.Add(t);
        }

        if (t.isSaveCheckpoint)
        {
            SavePendingTriggers();
        }

        lastTutorialTrigger = t;

        /*if (t.destroyOnShowed)
         *  Destroy(t);*/
    }