Ejemplo n.º 1
0
    void drawConvo()
    {
        // Play Speech clip for Conversation's option, and wait for the track to stop playing.
        // After that, draw buttons corresponding to the associated options,
        // set the current option to the selected option, and restart.

        if (SPState == SpeechPlaybackState.Showing) {	// Playing back speech.
            SPState = audio.isPlaying ? SpeechPlaybackState.Showing : SpeechPlaybackState.Normal;
            if (currentSpeech == convo.currentOption.speechs.Length) SPState = SpeechPlaybackState.Waiting;
        }
        if (SPState == SpeechPlaybackState.Normal) {	// Nothing happening.
            audio.Stop ();
            audio.loop = false;
            audio.clip = convo.currentOption.speechs[currentSpeech].audio;
            audio.Play();
            STController.setLine(convo.currentOption.speechs[currentSpeech].line);
            currentSpeech++;
            SPState = SpeechPlaybackState.Showing;
        }
        if (SPState == SpeechPlaybackState.Waiting) {	// Waiting for input

            if (lastSPState != SPState) convo.currentOption.TEvent.Trigger(STController);

            for (int i = 0; i < convo.currentOption.options.Length; i++) {
                if (GUI.Button(new Rect(Screen.width/2-200, (Screen.height/2)-(100+25*i), 100, 25),
                        convo.currentOption.options[i].name)) {

                    currentSpeech = 0;

                    switch (convo.currentOption.options[i].type) {
                    case OptionAction.Exit :
                        convo.reset();
                        talking = false;
                        interactee = null;
                        break;
                    case OptionAction.JustTrigger: break;
                    case OptionAction.Normal :
                        convo.currentOption = convo.currentOption.options[i];
                        SPState = SpeechPlaybackState.Normal;
                        break;
                    case OptionAction.OpenStore :
                        talking = false;
                        GetComponent<Store>().Open (SO);
                        convo.reset();
                        interactee = null;
                        break;
                    case OptionAction.ReturnToTop :
                        convo.reset();
                        break;
                    }

                }
            }
        }
    }
Ejemplo n.º 2
0
 void OnGUI()
 {
     if (talking)
     {
         drawConvo();
         if (SPState == SpeechPlaybackState.Waiting)
         {
             if (pauseTime)
             {
                 Time.timeScale = 0f;
             }
             PauseController.pane = "/Convo";
         }
         lastSPState = SPState;
     }
 }
Ejemplo n.º 3
0
 void OnGUI()
 {
     if (talking) {
         drawConvo ();
         if (SPState == SpeechPlaybackState.Waiting) {
             if (pauseTime) Time.timeScale = 0f;
             PauseController.pane = "/Convo";
         }
         lastSPState = SPState;
     }
 }
Ejemplo n.º 4
0
    void drawConvo()
    {
        // Play Speech clip for Conversation's option, and wait for the track to stop playing.
        // After that, draw buttons corresponding to the associated options,
        // set the current option to the selected option, and restart.

        if (SPState == SpeechPlaybackState.Showing)             // Playing back speech.
        {
            SPState = audio.isPlaying ? SpeechPlaybackState.Showing : SpeechPlaybackState.Normal;
            if (currentSpeech == convo.currentOption.speechs.Length)
            {
                SPState = SpeechPlaybackState.Waiting;
            }
        }
        if (SPState == SpeechPlaybackState.Normal)              // Nothing happening.
        {
            audio.Stop();
            audio.loop = false;
            audio.clip = convo.currentOption.speechs[currentSpeech].audio;
            audio.Play();
            STController.setLine(convo.currentOption.speechs[currentSpeech].line);
            currentSpeech++;
            SPState = SpeechPlaybackState.Showing;
        }
        if (SPState == SpeechPlaybackState.Waiting)             // Waiting for input

        {
            if (lastSPState != SPState)
            {
                convo.currentOption.TEvent.Trigger(STController);
            }

            for (int i = 0; i < convo.currentOption.options.Length; i++)
            {
                if (GUI.Button(new Rect(Screen.width / 2 - 200, (Screen.height / 2) - (100 + 25 * i), 100, 25),
                               convo.currentOption.options[i].name))
                {
                    currentSpeech = 0;

                    switch (convo.currentOption.options[i].type)
                    {
                    case OptionAction.Exit:
                        convo.reset();
                        talking    = false;
                        interactee = null;
                        break;

                    case OptionAction.JustTrigger: break;

                    case OptionAction.Normal:
                        convo.currentOption = convo.currentOption.options[i];
                        SPState             = SpeechPlaybackState.Normal;
                        break;

                    case OptionAction.OpenStore:
                        talking = false;
                        GetComponent <Store>().Open(SO);
                        convo.reset();
                        interactee = null;
                        break;

                    case OptionAction.ReturnToTop:
                        convo.reset();
                        break;
                    }
                }
            }
        }
    }