private void DiscoReaderHandleNewDialogueEntry(LuaWatchItem luaWatchItem, Lua.Result newResult) { try { if (DialogueManager.IsConversationActive && DialogueManager.Instance.ConversationModel.HasValidEntry) { Subtitle dialogueSubtitle = DialogueManager.Instance.currentConversationState.subtitle; if (dialogueSubtitle?.dialogueEntry == null) { return; } FinalEntry finalEntry = ConversationLogger.AssembleFinalEntry(dialogueSubtitle.dialogueEntry); int conversationId = DialogueManager.Instance.ConversationModel.GetConversationID(DialogueManager.Instance.currentConversationState); if (Conversation == null || Conversation.ConversationId != conversationId) { Conversation = new Conversation(conversationId, DialogueManager.Instance.ConversationModel.ActorInfo.Name, DialogueManager.Instance.ConversationModel.ConversantInfo.Name); } Conversation.DialogueEntries.Add(new ReaderDialogueEntry(dialogueSubtitle.speakerInfo.Name, dialogueSubtitle.speakerInfo.IsPlayer, finalEntry.spokenLine, dialogueSubtitle.sequence, UniqueDialogEntry)); } else { Conversation = new Utils.Conversation(); } // Now to handle outputting to the file... XmlSerializer serializerObj = new XmlSerializer(typeof(Conversation)); Stream stream = null; try { stream = new FileStream(@"WriteText.txt", FileMode.Create, FileAccess.Write); serializerObj.Serialize(stream, Conversation); } finally { stream?.Close(); } } catch (Exception e) { ShowDebugMessage("Exception while writing file... " + e.Message, 30); // We never want to throw an exception } }
void OnVarChanged(LuaWatchItem item, Lua.Result value) { Interact(); }