private void Start()
 {
     rpgtalk            = GetComponent <RPGTalk>();
     timeline           = GetComponent <RPGTalkTimeline>();
     rpgtalk.OnNewTalk += OnTalkStart;
     rpgtalk.OnEndTalk += OnTalkFinish;
 }
Example #2
0
    public override void OnBehaviourPlay(Playable playable, FrameData info)
    {
        if (!m_TrackBinding)
        {
            return;
        }

        if (!m_FirstFrameHappened)
        {
            //on the firs frame, set the defaults to recover after
            m_txtToParse      = m_TrackBinding.txtToParse;
            m_lineToBreak     = m_TrackBinding.lineToBreak;
            m_lineToStart     = m_TrackBinding.lineToStart;
            m_textSpeed       = m_TrackBinding.textSpeed;
            m_enableQuickSkip = m_TrackBinding.enableQuickSkip;
            m_enablePass      = m_TrackBinding.enablePass;

            //change the rpgTalk parameters
            if (txtToParse != null)
            {
                m_TrackBinding.txtToParse = txtToParse;
            }

            //If we won't wait for player action to finish, only one line (line to start) will be allowed.
            if (!pauseUntilTalkEnd)
            {
                m_TrackBinding.lineToBreak = lineToStart;
                m_TrackBinding.enablePass  = false;
            }
            else
            {
                m_TrackBinding.enablePass  = true;
                m_TrackBinding.lineToBreak = lineToBreak;
            }
            m_TrackBinding.lineToStart     = lineToStart;
            m_TrackBinding.textSpeed       = textSpeed;
            m_TrackBinding.enableQuickSkip = false;

            m_FirstFrameHappened = true;
            m_TrackBinding.NewTalk();

            //Put an event for the end of the talk
            m_TrackBinding.OnEndTalk += OnEndTalk;

            if (m_TrackBinding.GetComponent <RPGTalkTimeline> ())
            {
                rpgTime = m_TrackBinding.GetComponent <RPGTalkTimeline> ();
            }
        }
    }
    void ReturnDefaults()
    {
        m_TrackBinding.txtToParse      = m_txtToParse;
        m_TrackBinding.lineToBreak     = m_lineToBreak;
        m_TrackBinding.lineToStart     = m_lineToStart;
        m_TrackBinding.textSpeed       = m_textSpeed;
        m_TrackBinding.enableQuickSkip = m_enableQuickSkip;
        m_TrackBinding.enablePass      = m_enablePass;

        m_FirstFrameHappened = false;
        m_TrackBinding.EndTalk();
        m_TrackBinding.OnEndTalk -= OnEndTalk;

        rpgTime = null;
    }
    public override void OnBehaviourPlay(Playable playable, FrameData info)
    {
        if (!m_TrackBinding)
        {
            return;
        }

        if (!m_FirstFrameHappened)
        {
            //on the first frame, set the defaults to recover after
            m_txtToParse      = m_TrackBinding.txtToParse;
            m_lineToBreak     = m_TrackBinding.lineToBreak;
            m_lineToStart     = m_TrackBinding.lineToStart;
            m_textSpeed       = m_TrackBinding.textSpeed;
            m_enableQuickSkip = m_TrackBinding.enableQuickSkip;
            m_enablePass      = m_TrackBinding.enablePass;

            //change the rpgTalk parameters
            if (txtToParse != null)
            {
                m_TrackBinding.txtToParse = txtToParse;
            }

            //If we won't wait for player action to finish, only one line (line to start) will be allowed.
            if (!pauseUntilTalkEnd)
            {
                //If we didn't set neither pauseUntilTalkEnd or autoPass, then we can't have lineToBreak.
                if (!autoPass)
                {
                    m_TrackBinding.lineToBreak = lineToStart;
                }
                else
                {
                    m_TrackBinding.lineToBreak = lineToBreak;
                }
                m_TrackBinding.enablePass = false;
            }
            else
            {
                m_TrackBinding.enablePass  = true;
                m_TrackBinding.lineToBreak = lineToBreak;
            }
            m_TrackBinding.lineToStart     = lineToStart;
            m_TrackBinding.textSpeed       = textSpeed;
            m_TrackBinding.enableQuickSkip = false;

            m_FirstFrameHappened = true;
            m_TrackBinding.NewTalk();

            startTime = new double[m_TrackBinding.rpgtalkElements.Count];
            for (int i = 0; i < m_TrackBinding.rpgtalkElements.Count; i++)
            {
                if (i == 0)
                {
                    startTime[i] = 0;
                }
                else
                {
                    startTime[i] = (m_TrackBinding.rpgtalkElements[i - 1].dialogText.Length
                                    / m_TrackBinding.actualTextSpeed) + secondsAutoPass;
                }
            }


            //Put an event for the end of the talk
            m_TrackBinding.OnEndTalk += OnEndTalk;

            if (m_TrackBinding.GetComponent <RPGTalkTimeline> ())
            {
                rpgTime = m_TrackBinding.GetComponent <RPGTalkTimeline> ();
            }

            // playableObj = playable;
        }
    }