Пример #1
0
 private void tryShowHint()
 {
     if (!checkTrayIsClosed())
     {
         DQuestMessage dQuestMessage = new DQuestMessage();
         dQuestMessage.MascotName  = currentHint.MascotName;
         dQuestMessage.DismissTime = 4f;
         dQuestMessage.Text        = currentHint.HintText;
         Service.Get <EventDispatcher>().DispatchEvent(new HudEvents.ShowQuestMessage(dQuestMessage));
         Service.Get <QuestService>().SendEvent("QuestHintShown");
         if (currentHint.Repeat)
         {
             startHintTimer(currentHint);
         }
         else
         {
             hintTimer = 0f;
             hintState = QuestHintState.Idle;
         }
     }
     else
     {
         hintState = QuestHintState.Delayed;
         hintTimer = 2.5f;
     }
     loadedHintTime = false;
 }
Пример #2
0
 public QuestMessageComplete(DQuestMessage speechData)
 {
     SpeechData = speechData;
 }
        public override void OnEnter()
        {
            dispatcher = Service.Get <EventDispatcher>();
            DQuestMessage dQuestMessage = new DQuestMessage();

            DialogList.Entry entry = default(DialogList.Entry);
            if (!UseDialogList)
            {
                dQuestMessage.Text = Service.Get <Localizer>().GetTokenTranslation(i18nContents);
            }
            else if (DialogList != null)
            {
                entry = ((!RandomDialog) ? DialogList.Entries[DialogListItemIndex] : DialogList.Entries[Random.Range(0, DialogList.Entries.Length)]);
                dQuestMessage.Text = Service.Get <Localizer>().GetTokenTranslation(entry.ContentToken);
            }
            dQuestMessage.MascotName      = MascotName;
            dQuestMessage.DismissTime     = ((AutoCloseTime > 0f) ? AutoCloseTime : ((float)DismissTime));
            dQuestMessage.Buttons         = null;
            dQuestMessage.ContentImageKey = ImageContentKey;
            dQuestMessage.RichText        = RichText;
            dQuestMessage.ClickToClose    = ClickToClose;
            dispatcher.AddListener <HudEvents.QuestMessageComplete>(OnSpeechComplete);
            dispatcher.DispatchEvent(new HudEvents.ShowQuestMessage(dQuestMessage));
            string text = "";
            string overrideAnimationName     = "";
            string overrideStopAnimationName = "";
            bool   flag = false;

            if (UseDialogList && DialogList != null)
            {
                text = entry.AudioEventName;
                overrideAnimationName     = entry.DialogAnimationTrigger;
                overrideStopAnimationName = entry.DialogAnimationEndTrigger;
                flag = entry.AdvanceSequence;
            }
            else if (!AudioEventName.IsNone)
            {
                text = AudioEventName.Value;
                overrideAnimationName     = DialogAnimationOverride.Value;
                overrideStopAnimationName = EndDialogAnimationOverride.Value;
                flag = AdvanceSequence;
            }
            if (!string.IsNullOrEmpty(text))
            {
                EventAction eventAction = EventAction.PlaySound;
                if (flag)
                {
                    eventAction = EventAction.AdvanceSequence;
                }
                GameObject mascotObject = Service.Get <MascotService>().GetMascotObject(MascotName);
                if (mascotObject != null && PlayDialogAnimation)
                {
                    MascotController component = mascotObject.GetComponent <MascotController>();
                    EventManager.Instance.PostEventNotify(text, eventAction, base.Owner, component.dialogAudioCallback);
                    component.StartDialogAnimation(text, overrideAnimationName, AutoStopDialogAnimation, overrideStopAnimationName);
                }
                else
                {
                    EventManager.Instance.PostEventNotify(text, eventAction, base.Owner, onMascotAudioComplete);
                }
            }
            if (!WaitForFinish)
            {
                Finish();
            }
        }
Пример #4
0
 public ShowQuestMessage(DQuestMessage speechData)
 {
     SpeechData = speechData;
 }