Exemplo n.º 1
0
 public void NewConversationEvent(ConversationEvent conEvent)
 {
     messageDisplayed         = true;
     currentConversationEvent = conEvent;
     currentMessageIndex      = 0;
     ActivateConversationElement(conEvent.orderedConversation[0]);
 }
Exemplo n.º 2
0
    public void ActivateEvent(string eventID)
    {
        ConversationEvent eventToSend = allConvoEvents.Find(x => x.conversationUniqueID == eventID);

        if (eventToSend != null)
        {
            convoUI.NewConversationEvent(eventToSend);
        }
    }
    /// <summary>
    /// Trigger conversation event function.
    /// </summary>
    /// <param name="clip"></param>
    public static void TriggerConversationEvent(string sentence)
    {
        ConversationEvent thisEvent = null;

        if (instance.conversationEventDictionary.TryGetValue(CONVERSATIONEVENT, out thisEvent))
        {
            thisEvent.Invoke(sentence);
        }
    }
Exemplo n.º 4
0
        private void TestStep(ConversationEvent step)
        {
            var response = apiAi.TextRequest(step.Text);

            Assert.IsTrue(response.Result.Metadata.IntentName.StartsWith(step.IntentStartsWith), $"Expected {step.IntentStartsWith} but intent was {response.Result.Metadata.IntentName}");

            var contexts = string.Join(", ", response.Result.Contexts.Select(s => s.Name));

            Assert.AreEqual(step.Context, contexts);
        }
Exemplo n.º 5
0
            public static ConversationEvent Prepare(
                Conversation conversation,
                bool started
                )
            {
                var e = new ConversationEvent();

                e.Conversation = conversation;
                e.Started      = started;
                return(e);
            }
Exemplo n.º 6
0
    public void StartConversation(ConversationEvent e)
    {
        if (e.Started)
        {
            if (ConversationInProgress)
            {
                Debug.LogError("Tried to start conversation while one was in progress.");
            }

            StartCoroutine(DisplayConversation(e.Conversation));
        }
    }
    /// <summary>
    /// Remove conversation listener function.
    /// </summary>
    /// <param name="listener"></param>
    public static void RemoveConversationListener(UnityAction <string> listener)
    {
        if (eventManager == null)
        {
            return;
        }
        ConversationEvent thisEvent = null;

        if (instance.conversationEventDictionary.TryGetValue(CONVERSATIONEVENT, out thisEvent))
        {
            thisEvent.RemoveListener(listener);
        }
    }
        private void Conversation_Event(ConversationEvent e)
        {
            if (!e.Started && e.Conversation == conversation)
            {
                // enable if our conversation is over
                Enable();
            }

            if (e.Started && e.Conversation == conversation)
            {
                // disable to prevent multiple interactions
                Disable();
            }
        }
    public void OnStart(ConversationEvent eventdata)
    {
        ConversationModeOn = true;
        //Space.DispatchEvent(Events.OpenUI, new UIEvent(this));
        Converse = eventdata.conversation;
        //interuptFlags = new List<ConvInteruprt>();
        //InteruptFailNode = 0;
        // PhoneInterupt = false;
        //ExaminedItem = false;
        //ExamineInterupt = false;
        //ItemExamined = null;

        NextNode(0);
        //print("on");
    }
    /// <summary>
    /// Add conversation listener function.
    /// </summary>
    /// <param name="eventName"></param>
    /// <param name="listener"></param>
    public static void AddConversationListener(UnityAction <string> listener)
    {
        ConversationEvent thisEvent = null;

        if (instance.conversationEventDictionary.TryGetValue(CONVERSATIONEVENT, out thisEvent))
        {
            thisEvent.AddListener(listener);
        }
        else
        {
            thisEvent = new ConversationEvent();
            thisEvent.AddListener(listener);
            instance.conversationEventDictionary.Add(CONVERSATIONEVENT, thisEvent);
        }
    }
Exemplo n.º 11
0
    private void IncrementWordCountInDictionary(ConversationEvent messageEvent, Dictionary <string, int> dict)
    {
        //For non chat messages like call notifications
        if (messageEvent.chat_message == null)
        {
            return;
        }

        if (messageEvent.chat_message.message_content == null ||
            messageEvent.chat_message.message_content.segment == null)
        {
            return;
        }

        foreach (MessageSegment messageText in messageEvent.chat_message.message_content.segment)
        {
            if (messageText == null || messageText.text == null)
            {
                continue;
            }

            string[] messageSplit = messageText.text.Split(' ');
            foreach (string word in messageSplit)
            {
                string lcWord = word.ToLower();
                lcWord = lcWord.Replace("\"", "");
                lcWord = lcWord.Replace("?", "");
                lcWord = lcWord.Replace(".", "");
                lcWord = lcWord.Replace("!", "");
                lcWord = lcWord.Replace("-", "");
                lcWord = lcWord.Replace("`", "");
                lcWord = lcWord.Replace("(", "");
                lcWord = lcWord.Replace(")", "");
                lcWord = lcWord.Replace(",", "");
                lcWord = lcWord.Replace(":", "");
                lcWord = lcWord.Replace("\n", "");
                lcWord = lcWord.Trim();

                if (!dict.ContainsKey(lcWord))
                {
                    dict.Add(lcWord, 0);
                }
                dict[lcWord]++;
            }
        }
    }
Exemplo n.º 12
0
        private void TestStep(ConversationEvent step)
        {
            var message = new MessageReceived(new NameValueCollection()
            {
                { "CallSid", sessionId },
                { "SpeechResult", step.Text }
            });

            var response = MsgIn.ProcessMessage(botState, message);

            Assert.IsTrue(response.Intent.StartsWith(step.IntentStartsWith), $"Expected {step.IntentStartsWith} but intent was {response.Intent}");

            var contexts = string.Join(", ", response.Contexts);

            Assert.AreEqual(step.Context, contexts);

            botState = response.BotState;
        }
Exemplo n.º 13
0
        private void _worker_DoWork(object sender, DoWorkEventArgs e)
        {
            var since = ReadLastPull();

            SaveLastPull(since);
            while (true)
            {
                Thread.Sleep(4000);
                var request = new RestRequest($"/sms/pushes/{since.ToString("s", CultureInfo.InvariantCulture)}",
                                              Method.GET, DataFormat.Json);
                var response = RestClient.Execute <IEnumerable <Push> >(request);
                if (response.StatusCode != HttpStatusCode.OK)
                {
                    since = DateTime.UtcNow;
                    SaveLastPull(since);
                    continue;
                }

                if (!response.Data.Any())
                {
                    since = DateTime.UtcNow;
                    SaveLastPull(since);
                    continue;
                }

                since = response.Data.Max(d => d.DateCreated).ToUniversalTime() + TimeSpan.FromSeconds(1);
                SaveLastPull(since);

                foreach (var push in response.Data)
                {
                    switch (push.Name)
                    {
                    case "message-created":
                    {
                        var messageItem = JsonConvert.DeserializeObject <MessageItem>(push.Body);

                        var messageEventPayload = new MessageEventPayload
                        {
                            EventType   = MessageEventPayload.MessageEventType.Created,
                            MessageItem = messageItem
                        };

                        MessageEvent?.Invoke(this, messageEventPayload);
                        break;
                    }

                    case "message-deleted":
                    {
                        var messageItem = JsonConvert.DeserializeObject <MessageItem>(push.Body);

                        var messageEventPayload = new MessageEventPayload
                        {
                            EventType   = MessageEventPayload.MessageEventType.Deleted,
                            MessageItem = messageItem
                        };

                        MessageEvent?.Invoke(this, messageEventPayload);
                        break;
                    }

                    case "conversation-created":
                    {
                        var conversation = JsonConvert.DeserializeObject <Conversation>(push.Body);

                        var conversationEventPayload = new ConversationEventPayload
                        {
                            EventType        = ConversationEventPayload.ConversationEventType.Created,
                            ConversationItem = conversation
                        };

                        ConversationEvent?.Invoke(this, conversationEventPayload);
                        break;
                    }

                    case "conversation-updated":
                    {
                        var conversation = JsonConvert.DeserializeObject <Conversation>(push.Body);

                        var conversationEventPayload = new ConversationEventPayload
                        {
                            EventType        = ConversationEventPayload.ConversationEventType.Updated,
                            ConversationItem = conversation
                        };

                        ConversationEvent?.Invoke(this, conversationEventPayload);
                        break;
                    }

                    case "contact-created":
                    {
                        var contact = JsonConvert.DeserializeObject <Contact>(push.Body);
                        var payload = new ContactUpdatedPayload
                        {
                            Contact    = contact,
                            UpdateType = ContactUpdatedPayload.UpdateTypes.Created
                        };
                        ContactUpdatedEvent?.Invoke(this, payload);
                        break;
                    }

                    case "contact-updated":
                    {
                        var contact = JsonConvert.DeserializeObject <Contact>(push.Body);
                        var payload = new ContactUpdatedPayload
                        {
                            Contact    = contact,
                            UpdateType = ContactUpdatedPayload.UpdateTypes.Updated
                        };
                        ContactUpdatedEvent?.Invoke(this, payload);
                        break;
                    }
                    }
                }
            }
        }
Exemplo n.º 14
0
 public void OnStart(ConversationEvent eventdata)
 {
     TimeCheck = eventdata.conversation;
     NextNode(0);
 }
Exemplo n.º 15
0
 public void StartConversation()
 {
     EventDispatcher.Dispatch(ConversationEvent.Prepare(Conversation, true));
 }
Exemplo n.º 16
0
    IEnumerator DisplayConversation(Conversation convo)
    {
        // Initialize the conversation
        convo.Init();

        // get the current dialogue
        DialogueNode current = convo.current;

        // Safety in case this conversation is empty
        if (!current)
        {
            Debug.LogError("Tried to start empty conversation!");
        }

        ConversationInProgress = true;

        DialogueManager.Instance.SetState(DialogueManager.GameState.Dialogue);

        // Clear text box
        DialogueText.text = "";
        NameText.text     = "";

        // And show it
        Fader.FadeIn();

        // Wait to make sure it's shown
        yield return(new WaitForSeconds(Fader.FadeInTime));

        // while there's still dialogue to be had
        while (current != null)
        {
            // Show the dialogue
            yield return(StartCoroutine(DisplayDialogue(current)));

            // attempt to move to the next node
            if (convo.Next())
            {
                // if we can, set it to current
                current = convo.current;
            }
            else
            {
                // otherwise, the conversation is over
                current = null;

                // hide the text box
                Fader.FadeOut();

                // wait to make sure it's gone
                yield return(new WaitForSeconds(Fader.FadeOutTime));
            }
        }

        ConversationInProgress = false;

        // Dispatch an event saying this conversation is over
        EventDispatcher.Dispatch(ConversationEvent.Prepare(convo, false));

        // Return the game state to gameplay
        DialogueManager.Instance.SetState(DialogueManager.GameState.Gameplay);
    }
Exemplo n.º 17
0
        static Event ParseEvent(IDataReader dataReader)
        {
            Event @event;
            var   type = (EventType)dataReader.ReadByte();

            switch (type)
            {
            case EventType.Teleport:
            {
                // 1. byte is the x coordinate
                // 2. byte is the y coordinate
                // 3. byte is the character direction
                // Then 1 unknown byte
                // Then 1 byte for the transtion type (0-5)
                // Then a word for the map index
                // Then 2 unknown bytes (seem to be 00 FF)
                uint x          = dataReader.ReadByte();
                uint y          = dataReader.ReadByte();
                var  direction  = (CharacterDirection)dataReader.ReadByte();
                var  unknown1   = dataReader.ReadByte();
                var  transition = (TeleportEvent.TransitionType)dataReader.ReadByte();
                uint mapIndex   = dataReader.ReadWord();
                var  unknown2   = dataReader.ReadBytes(2);
                @event = new TeleportEvent
                {
                    MapIndex   = mapIndex,
                    X          = x,
                    Y          = y,
                    Direction  = direction,
                    Transition = transition,
                    Unknown1   = unknown1,
                    Unknown2   = unknown2,
                };
                break;
            }

            case EventType.Door:
            {
                // 1. byte is a lockpicking chance reduction (0: already open, 100: can't open via lockpicking)
                // 2. byte is the door index (used for unlock bits in savegame)
                // 3. byte is an optional text index that is shown initially (0xff = no text)
                // 4. byte is an optional text index if the door was unlocked (0xff = no text)
                // 5. byte is unknown (always 0)
                // word at position 6 is the key index if a key must unlock it
                // last word is the event index (0-based) of the event that is called when unlocking fails
                var  lockpickingChanceReduction = dataReader.ReadByte();
                var  doorIndex            = dataReader.ReadByte();
                var  textIndex            = dataReader.ReadByte();
                var  unlockTextIndex      = dataReader.ReadByte();
                var  unused               = dataReader.ReadByte();
                uint keyIndex             = dataReader.ReadWord();
                var  unlockFailEventIndex = dataReader.ReadWord();
                @event = new DoorEvent
                {
                    LockpickingChanceReduction = lockpickingChanceReduction,
                    DoorIndex              = doorIndex,
                    TextIndex              = textIndex,
                    UnlockTextIndex        = unlockTextIndex,
                    Unused                 = unused,
                    KeyIndex               = keyIndex,
                    UnlockFailedEventIndex = unlockFailEventIndex
                };
                break;
            }

            case EventType.Chest:
            {
                // 1. byte is a lockpicking chance reduction (0: already open, 100: can't open via lockpicking)
                // 2. byte are the chest flags
                // 3. byte is an optional text index (0xff = no text)
                // 4. byte is the chest index (0-based)
                // 5. byte (0 = chest, 1 = pile/removable loot or item) or "remove if empty"
                // word at position 6 is the key index if a key must unlock it
                // last word is the event index (0-based) of the event that is called when unlocking fails
                var  lockpickingChanceReduction = dataReader.ReadByte();
                var  flags                = (ChestEvent.ChestFlags)dataReader.ReadByte();
                var  textIndex            = dataReader.ReadByte();
                uint chestIndex           = dataReader.ReadByte();
                bool removeWhenEmpty      = dataReader.ReadByte() != 0;
                uint keyIndex             = dataReader.ReadWord();
                var  unlockFailEventIndex = dataReader.ReadWord();
                @event = new ChestEvent
                {
                    LockpickingChanceReduction = lockpickingChanceReduction,
                    Flags                  = flags,
                    TextIndex              = textIndex,
                    ChestIndex             = chestIndex,
                    RemoveWhenEmpty        = removeWhenEmpty,
                    KeyIndex               = keyIndex,
                    UnlockFailedEventIndex = unlockFailEventIndex
                };
                break;
            }

            case EventType.PopupText:
            {
                // event image index (0xff = no image)
                // trigger (1 = move, 2 = eye cursor, 3 = both)
                // unknown boolean
                // map text index as word
                // 4 unknown bytes
                var eventImageIndex = dataReader.ReadByte();
                var popupTrigger    = (EventTrigger)dataReader.ReadByte();
                var unknownBool     = dataReader.ReadByte() != 0;
                var textIndex       = dataReader.ReadWord();
                var unknown         = dataReader.ReadBytes(4);
                @event = new PopupTextEvent
                {
                    EventImageIndex = eventImageIndex,
                    PopupTrigger    = popupTrigger,
                    TextIndex       = textIndex,
                    UnknownBool     = unknownBool,
                    Unknown         = unknown
                };
                break;
            }

            case EventType.Spinner:
            {
                var direction = (CharacterDirection)dataReader.ReadByte();
                var unused    = dataReader.ReadBytes(8);
                @event = new SpinnerEvent
                {
                    Direction = direction,
                    Unused    = unused
                };
                break;
            }

            case EventType.Trap:
            {
                var ailment         = (TrapEvent.TrapAilment)dataReader.ReadByte();
                var target          = (TrapEvent.TrapTarget)dataReader.ReadByte();
                var affectedGenders = (GenderFlag)dataReader.ReadByte();
                var baseDamage      = dataReader.ReadByte();
                var unused          = dataReader.ReadBytes(5); // unused
                @event = new TrapEvent
                {
                    Ailment         = ailment,
                    Target          = target,
                    AffectedGenders = affectedGenders,
                    BaseDamage      = baseDamage,
                    Unused          = unused
                };
                break;
            }

            case EventType.RemoveBuffs:
            {
                byte affectedBuffs = dataReader.ReadByte();
                var  unused        = dataReader.ReadBytes(8);
                @event = new RemoveBuffsEvent
                {
                    AffectedBuff = affectedBuffs == 0 ? (ActiveSpellType?)null: (ActiveSpellType)(affectedBuffs - 1),
                    Unused       = unused
                };
                break;
            }

            case EventType.Riddlemouth:
            {
                var introTextIndex          = dataReader.ReadByte();
                var solutionTextIndex       = dataReader.ReadByte();
                var unused                  = dataReader.ReadBytes(3);
                var correctAnswerTextIndex1 = dataReader.ReadWord();
                var correctAnswerTextIndex2 = dataReader.ReadWord();
                @event = new RiddlemouthEvent
                {
                    RiddleTextIndex               = introTextIndex,
                    SolutionTextIndex             = solutionTextIndex,
                    CorrectAnswerDictionaryIndex1 = correctAnswerTextIndex1,
                    CorrectAnswerDictionaryIndex2 = correctAnswerTextIndex2,
                    Unused = unused
                };
                break;
            }

            case EventType.Award:
            {
                var awardType      = (AwardEvent.AwardType)dataReader.ReadByte();
                var awardOperation = (AwardEvent.AwardOperation)dataReader.ReadByte();
                var random         = dataReader.ReadByte() != 0;
                var awardTarget    = (AwardEvent.AwardTarget)dataReader.ReadByte();
                var unknown        = dataReader.ReadByte();
                var awardTypeValue = dataReader.ReadWord();
                var value          = dataReader.ReadWord();
                @event = new AwardEvent
                {
                    TypeOfAward    = awardType,
                    Operation      = awardOperation,
                    Random         = random,
                    Target         = awardTarget,
                    AwardTypeValue = awardTypeValue,
                    Value          = value,
                    Unknown        = unknown
                };
                break;
            }

            case EventType.ChangeTile:
            {
                var x              = dataReader.ReadByte();
                var y              = dataReader.ReadByte();
                var unknown        = dataReader.ReadBytes(3);
                var frontTileIndex = dataReader.ReadWord();     // also wall/object index in lower byte
                var mapIndex       = dataReader.ReadWord();
                @event = new ChangeTileEvent
                {
                    X = x,
                    Y = y,
                    FrontTileIndex = frontTileIndex,
                    MapIndex       = mapIndex,
                    Unknown        = unknown
                };
                break;
            }

            case EventType.StartBattle:
            {
                var unknown1          = dataReader.ReadBytes(6);
                var monsterGroupIndex = dataReader.ReadByte();
                var unknown2          = dataReader.ReadBytes(2);
                @event = new StartBattleEvent
                {
                    MonsterGroupIndex = monsterGroupIndex,
                    Unknown1          = unknown1,
                    Unknown2          = unknown2
                };
                break;
            }

            case EventType.EnterPlace:
            {
                // map text index when closed (0xff is default message)
                // place type (see PlaceType)
                // opening hour
                // closing hour
                // text index for using the place (sleep, train, buy, etc)
                // place index (1-based, word)
                // 2 unknown bytes
                var textIndexWhenClosed = dataReader.ReadByte();
                var placeType           = (PlaceType)dataReader.ReadByte();
                var openingHour         = dataReader.ReadByte();
                var closingHour         = dataReader.ReadByte();
                var usePlaceTextIndex   = dataReader.ReadByte();
                var placeIndex          = dataReader.ReadWord();
                var merchantIndex       = dataReader.ReadWord();
                @event = new EnterPlaceEvent
                {
                    ClosedTextIndex   = textIndexWhenClosed,
                    PlaceType         = placeType,
                    OpeningHour       = openingHour,
                    ClosingHour       = closingHour,
                    PlaceIndex        = placeIndex,
                    UsePlaceTextIndex = usePlaceTextIndex,
                    MerchantDataIndex = merchantIndex
                };
                break;
            }

            case EventType.Condition:
            {
                var conditionType        = (ConditionEvent.ConditionType)dataReader.ReadByte();
                var value                = dataReader.ReadByte();
                var count                = dataReader.ReadByte();
                var unknown1             = dataReader.ReadBytes(2);
                var objectIndex          = dataReader.ReadWord();
                var jumpToIfNotFulfilled = dataReader.ReadWord();
                @event = new ConditionEvent
                {
                    TypeOfCondition = conditionType,
                    ObjectIndex     = objectIndex,
                    Value           = value,
                    Count           = count,
                    Unknown1        = unknown1,
                    ContinueIfFalseWithMapEventIndex = jumpToIfNotFulfilled
                };
                break;
            }

            case EventType.Action:
            {
                var actionType  = (ActionEvent.ActionType)dataReader.ReadByte();
                var value       = dataReader.ReadByte();
                var count       = dataReader.ReadByte();
                var unknown1    = dataReader.ReadBytes(2);
                var objectIndex = dataReader.ReadWord();
                var unknown2    = dataReader.ReadBytes(2);
                @event = new ActionEvent
                {
                    TypeOfAction = actionType,
                    ObjectIndex  = objectIndex,
                    Value        = value,
                    Unknown1     = unknown1,
                    Unknown2     = unknown2
                };
                break;
            }

            case EventType.Dice100Roll:
            {
                var chance = dataReader.ReadByte();
                var unused = dataReader.ReadBytes(6);
                var jumpToIfNotFulfilled = dataReader.ReadWord();
                @event = new Dice100RollEvent
                {
                    Chance = chance,
                    Unused = unused,
                    ContinueIfFalseWithMapEventIndex = jumpToIfNotFulfilled
                };
                break;
            }

            case EventType.Conversation:
            {
                var interaction = (ConversationEvent.InteractionType)dataReader.ReadByte();
                var unused1     = dataReader.ReadBytes(4); // unused
                var value       = dataReader.ReadWord();
                var unused2     = dataReader.ReadBytes(2); // unused
                @event = new ConversationEvent
                {
                    Interaction = interaction,
                    Value       = value,
                    Unused1     = unused1,
                    Unused2     = unused2
                };
                break;
            }

            case EventType.PrintText:
            {
                var npcTextIndex = dataReader.ReadByte();
                var unused       = dataReader.ReadBytes(8); // unused
                @event = new PrintTextEvent
                {
                    NPCTextIndex = npcTextIndex,
                    Unused       = unused
                };
                break;
            }

            case EventType.Create:
            {
                var createType = (CreateEvent.CreateType)dataReader.ReadByte();
                var unused     = dataReader.ReadBytes(4);
                var amount     = dataReader.ReadWord();
                var itemIndex  = dataReader.ReadWord();
                @event = new CreateEvent
                {
                    TypeOfCreation = createType,
                    Unused         = unused,
                    Amount         = amount,
                    ItemIndex      = itemIndex
                };
                break;
            }

            case EventType.Decision:
            {
                var textIndex    = dataReader.ReadByte();
                var unknown1     = dataReader.ReadBytes(6);
                var noEventIndex = dataReader.ReadWord();
                @event = new DecisionEvent
                {
                    TextIndex    = textIndex,
                    NoEventIndex = noEventIndex,
                    Unknown1     = unknown1
                };
                break;
            }

            case EventType.ChangeMusic:
            {
                var musicIndex = dataReader.ReadWord();
                var volume     = dataReader.ReadByte();
                var unknown1   = dataReader.ReadBytes(6);
                @event = new ChangeMusicEvent
                {
                    MusicIndex = musicIndex,
                    Volume     = volume,
                    Unknown1   = unknown1
                };
                break;
            }

            case EventType.Exit:
            {
                @event = new ExitEvent
                {
                    Unused = dataReader.ReadBytes(9)
                };
                break;
            }

            case EventType.Spawn:
            {
                // byte0: x
                // byte1: y
                // byte2: travel type (see TravelType)
                // byte3-4: unused?
                // byte5-6: map index
                // byte7-8: unused?
                var x          = dataReader.ReadByte();
                var y          = dataReader.ReadByte();
                var travelType = (TravelType)dataReader.ReadByte();
                var unknown1   = dataReader.ReadBytes(2);   // unknown
                var mapIndex   = dataReader.ReadWord();
                var unknown2   = dataReader.ReadBytes(2);   // unknown
                @event = new SpawnEvent
                {
                    X          = x,
                    Y          = y,
                    TravelType = travelType,
                    Unknown1   = unknown1,
                    MapIndex   = mapIndex,
                    Unknown2   = unknown2
                };
                break;
            }

            case EventType.Interact:
            {
                @event = new InteractEvent
                {
                    Unused = dataReader.ReadBytes(9)
                };
                break;
            }

            default:
            {
                @event = new DebugEvent
                {
                    Data = dataReader.ReadBytes(9)
                };
                break;
            }
            }

            @event.Type = type;

            return(@event);
        }
Exemplo n.º 18
0
        public override void OnInteraction()
        {
            EventDispatcher.Dispatch(ConversationEvent.Prepare(conversation, true));

            base.OnInteraction();
        }
Exemplo n.º 19
0
 private ConversationWithActions GetConversation(ConversationEvent ce)
 {
     return(conversations.FirstOrDefault(t => t.conversationEvent == ce));
 }
Exemplo n.º 20
0
 public void StartPassiveDialogue(ConversationEvent ce)
 {
     StartDialogue(GetConversation(ce), true);
 }
Exemplo n.º 21
0
 public void StartActiveDialogue(ConversationEvent ce)
 {
     StartDialogue(GetConversation(ce), false);
 }