public void OnBeginInteraction() { npc.npcEventHandler.NPCSelection += DialogueSelectionHandler; InfoSignAnim.Play(InfoSignAnimHash.EMPTY); DialogueBoxAnim.Play(DialogueBoxAnimHash.IDLE); initBox(); if (npcConversation == null) { npcConversation = npcConversationOld; } if (npcConversation != null) { npcConversation.ResetIndex(); getNextSentence(); resetTotalTime(); _currentConverseStatus = ConversationStatus.CONVERSE; } else { OnEndInteraction(); } }
public virtual void OnEndInteraction() { cleanUpBox(); selectionBox.gameObject.SetActive(false); DialogueBoxAnim.Play(DialogueBoxAnimHash.EMPTY); InfoSignAnim?.Play(InfoSignAnimHash.INTRO); OP.DestroyGameObject(); _currentConverseStatus = ConversationStatus.EMPTY; // Change conversation default to next conversation if presented if (npcConversation != null && currentConversationIndex + 1 < npcConversations.Count()) { currentConversationIndex++; SetConversation(npcConversations[currentConversationIndex]); if (MiscData.conversationIndex.ContainsKey(GetComponent <GulchGUID>().ID)) { MiscData.conversationIndex[GetComponent <GulchGUID>().ID] = currentConversationIndex; } else { MiscData.conversationIndex.Add(GetComponent <GulchGUID>().ID, currentConversationIndex); } } npc.npcEventHandler.NPCSelection -= DialogueSelectionHandler; }
// -------------------------------------------------- public void OnInteraction() { switch (_currentConverseStatus) { case ConversationStatus.EMPTY: // seek next converse or question if (npcConversation != null && npcConversation.HasNext()) { getNextSentence(); cleanUpBox(); _currentConverseStatus = ConversationStatus.CONVERSE; } else { npc.npcEventHandler.OnNPCEndInteraction(); } break; case ConversationStatus.CONVERSE: // skip converse totalTime = 100f; break; case ConversationStatus.SELECTION: confirmSelection(); break; default: break; } }
// Use this for initialization void Start() { this.player = GameObject.FindWithTag("PlayerObject"); this.playerConversationStatus = player.GetComponent<ConversationStatus>(); this.playerMovementScripts = player.GetComponents<MonoBehaviour>(); this.currentDialog = dialogOption.GetComponent<MonoBehaviour>(); }
/// <summary> /// Triggers the ActiveStatus and changes it to the NextStatus /// </summary> /// <param name="dialogueManager">Dialogue Manager where the Dialogue will be displayed</param> private void TriggerStatus(DialogueManager dialogueManager) { ConversationStatus status = this.model.ActiveStatus; this.model.GameConversations.ConversationsToAdd.AddRange(status.NewConversations); dialogueManager.DialogueToShow = status.Dialogue; this.model.ActiveStatus = status.NextStatus; this.model.ActiveStatusIndex = status.NextStatusIndex; }
// Use this for initialization void Start() { this.player = GameObject.FindWithTag("PlayerObject"); this.playerConversationStatus = player.GetComponent<ConversationStatus>(); this.moodObject = GameObject.FindWithTag("PlayerHealth"); if (moodObject) { this.mood = moodObject.GetComponent<PlayerStatBar>(); } }
public async Task ChangeStatus(long conversationId, ConversationStatus status) { var payload = new { op = "replace", path = "/status", value = status.ToString().ToLowerInvariant() }; await PerformPatch(conversationId, payload).ConfigureAwait(false); }
private void startLogic(string username) { JObject obj = new APICaller("startConversation.php").AddParam("username", username).AddParam("privateKey", PrivateKey).Call(); if (obj["status"].ToString() == "success") { Dictionary <string, User> users = new Dictionary <string, User>(); Conversation conversation = new Conversation { Id = obj["conversation"]["id"].ToObject <int>(), Title = obj["conversation"]["title"].ToString(), Messages = obj["conversation"]["messages"].ToObject <int>(), LastActivity = obj["conversation"]["lastActivity"].ToObject <long>(), LastMessage = "", }; try { obj["conversation"]["users"].ToList().ForEach((user) => { conversation.Users.Add(user.First.ToString()); }); } catch (InvalidOperationException e) { obj["conversation"]["users"].ToList().ForEach((user) => { conversation.Users.Add(user.ToString()); }); } obj["users"].ToList().ForEach((user) => { users[user.First["username"].ToString()] = new User { Username = user.First["username"].ToString(), FirstName = user.First["firstName"].ToString(), LastName = user.First["lastName"].ToString(), KarmaPoints = user.First["karmaPoints"].ToObject <int>(), IsLecturer = Convert.ToBoolean(user.First["lecturer"].ToObject <int>()), ProfilePictureLocation = user.First["profilePicture"].ToString(), }; }); ConversationStartResult(ConversationStatus.Success, conversation, users); } else { ConversationStatus status = ConversationStatus.UnknownError; if (!Enum.TryParse <ConversationStatus>(obj["message"].ToString(), out status)) { status = ConversationStatus.UnknownError; } ConversationStartResult(status, null, null); } }
public void UpdateConversationStatus(int ConversationId, int UserId, ConversationStatus Status) { SqlCommand command = DBUtils.StoredProcedure("Chat_UpdateConversationStatus", cte.lib); DBUtils.AddProcedureParameter(command, "@ConversationId", SqlDbType.Int, ConversationId, ParameterDirection.Input); DBUtils.AddProcedureParameter(command, "@UserId", SqlDbType.Int, UserId, ParameterDirection.Input); DBUtils.AddProcedureParameter(command, "@Status", SqlDbType.Int, (int)Status, ParameterDirection.Input); command.Connection.Open(); command.ExecuteNonQuery(); command.Connection.Close(); }
public static ConversationHistoryModel FindByDeviceId(string _deviceId, ConversationStatus _status) { var list = FindAllByDeviceId(_deviceId, _status); if (list.Count > 0) { return(list.First <ConversationHistoryModel>()); } else { return(null); } }
/// <summary> /// When the GUI is displayed /// </summary> public override void OnInspectorGUI() { EditorGUI.BeginChangeCheck(); serializedObject.Update(); ConversationComponent conversationComponent = ( ConversationComponent )target; Conversation model = conversationComponent.Model; model.Name = EditorGUILayout.TextField("Name", model.Name); if (model.Status == null) { model.Status = new List <ConversationStatus>(); } if (model.Status.Count > 0) { string[] statusListNames = model.Status.Select(s => s.Name).ToArray(); model.ActiveStatusIndex = EditorGUILayout.Popup( "Active Status", model.ActiveStatusIndex, statusListNames, EditorStyles.popup); model.ActiveStatus = model.Status[model.ActiveStatusIndex]; EditorGUILayout.Space(); EditorGUILayout.LabelField("Status List", EditorStyles.boldLabel); ConversationStatusEditor.Display(model.Status, statusListNames); } if (GUILayout.Button(EditorButtons.AddStatusButton, EditorStyles.miniButton, EditorButtons.NormalButtonWidth)) { ConversationStatus newStatus = new ConversationStatus(); newStatus.Name = "Status " + (model.Status.Count + 1); model.Status.Add(newStatus); } EditorGUILayout.Space(); EditorGUILayout.Space(); if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); EditorUtility.SetDirty(this.target); if (!Application.isPlaying) { EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene()); } } }
public async Task <bool> UpdateConversationStatusAsync(ConversationStatus obj) { var tableClient = StorageAccount.CreateCloudTableClient(); var tableRef = tableClient.GetTableReference(TABLENAME_AGENT_CONVERSATION_STATUS); await tableRef.CreateIfNotExistsAsync(); var blobClient = StorageAccount.CreateCloudBlobClient(); var blobContainer = blobClient.GetContainerReference(CONTAINERNAME_AGNET_LEASE_LOCK); blobContainer.CreateIfNotExists(); var lockBlob = blobContainer.GetBlockBlobReference($"conversation{obj.ConversationId}.lock"); if (!lockBlob.Exists()) { lockBlob.UploadText(""); } try { var leaseId = lockBlob.AcquireLease( TimeSpan.FromSeconds(15), null); try { var tableOperation = TableOperation.InsertOrMerge(obj); var result = tableRef.Execute(tableOperation); return(true); } catch (Exception exp) { throw; } finally { lockBlob.ReleaseLease(AccessCondition.GenerateLeaseCondition(leaseId)); } } catch (Exception exp) { throw; } finally { } }
public virtual void OnBeginInteraction() { if (player && MiscData.conversationIndex.ContainsKey(GetComponent <GulchGUID>().ID)) { currentConversationIndex = MiscData.conversationIndex[GetComponent <GulchGUID>().ID]; } else if (player) { currentConversationIndex = 0; MiscData.conversationIndex.Add(GetComponent <GulchGUID>().ID, 0); } if (npcConversations.Count() > 0) { npcConversation = npcConversations[currentConversationIndex]; } npc.npcEventHandler.NPCSelection += DialogueSelectionHandler; InfoSignAnim?.Play(InfoSignAnimHash.EMPTY); DialogueBoxAnim.Play(DialogueBoxAnimHash.IDLE); initBox(); selectionBox.gameObject.SetActive(false); ResetTotalTime(); if (npcConversation != null) { if (npcConversation.isRandomConversation) { nextSentence = new Queue <char>(npcConversation.GetRandomSentence()); } else { npcConversation.ResetIndex(); getNextSentence(); } } else { nextSentence = new Queue <char>("..."); } _currentConverseStatus = ConversationStatus.CONVERSE; }
private void confirmSelection() { if (_currentConverseStatus != ConversationStatus.SELECTION) { return; } NPCSelection selection = npcSelections[currentSelection]; npcConversation = selection.conversation; if (npcConversation != null) { npcConversation.ResetIndex(); } selectionBox.gameObject.SetActive(false); _currentConverseStatus = ConversationStatus.EMPTY; OnInteraction(); }
private void onConverse() { if (nextSentence.Count == 0) { if (!npcConversation.HasNext() && initSelectionBox()) { _currentConverseStatus = ConversationStatus.SELECTION; } else { _currentConverseStatus = ConversationStatus.EMPTY; ResetTotalTime(); } return; } int count = (int)(totalTime) - recycleObject.Count; //Debug.Log(count); for (int i = 0; i < count; i++) { if (!digestNextLetter()) { if (!npcConversation.HasNext() && initSelectionBox()) { _currentConverseStatus = ConversationStatus.SELECTION; } else { _currentConverseStatus = ConversationStatus.EMPTY; ResetTotalTime(); } break; } } totalTime += Time.deltaTime * textSpeed; }
public static string ObtainStatus(this ConversationStatus value) { string[] values = { "None", "Learning", "Learned", "Notified", "DenyTeach", "Miss", "Closed" }; return(values[(int)value]); }
public static ApiResult AddMessageText(string _deviceId, string _fromUserId, string _fromMessage, string _toMessage, string _intent, double _score, long _synAppsAccountId, string _synAppsAccountName, long _assetId, ConversationStatus _status) { var apiResult = new ApiResult() { StatusCode = StatusCode.Success }; var now = DateTime.UtcNow; var dc = new ConversationHistoriesDataContext(SqlConnectionString); var conversationHistory = new ConversationHistory { DeviceId = _deviceId, FromUserId = _fromUserId, FromMessage = _fromMessage, ToMessage = _toMessage, Intent = _intent, Score = _score, SynAppsAccountId = _synAppsAccountId, SynAppsAccountName = _synAppsAccountName, SynAppAssetId = _assetId, Status = _status.ObtainStatus(), UpdatedAt = now, CreatedAt = now }; try { dc.ConversationHistories.InsertOnSubmit(conversationHistory); dc.SubmitChanges(); } catch (Exception e) { apiResult.StatusCode = StatusCode.Error; apiResult.Message = e.Message; } return(apiResult); }
public static List <ConversationHistoryModel> FindAllByDeviceId(string _deviceId, ConversationStatus _status, string _fromMessage) { var dc = new ConversationHistoriesDataContext(SqlConnectionString); var histories = from n in dc.ConversationHistories where n.DeviceId == _deviceId where n.Status == _status.ObtainStatus() where n.FromMessage == _fromMessage select n; return(Build(histories)); }
// Use this for initialization void Start() { this.player = GameObject.FindWithTag("PlayerObject"); this.playerConversationStatus = player.GetComponent<ConversationStatus>(); this.playerMovementScripts = player.GetComponents<MonoBehaviour>(); if (this.barToImpact == null) { this.barToImpact = GameObject.FindWithTag("PlayerHealth"); } if (barToImpact) { this.impactedStatBar = barToImpact.GetComponent<PlayerStatBar>(); } if (GameObject.FindWithTag("DefaultDialogue")) { defaultDialogue = GameObject.FindWithTag("DefaultDialogue").GetComponent<DefaultDialogue>(); } if (GameObject.FindGameObjectWithTag("InnerMonologue")) { innerMonologue = GameObject.FindGameObjectWithTag("InnerMonologue"); } }
private async Task <Microsoft.Bot.Connector.DirectLine.Activity> PostToAgentBotAsync(Microsoft.Bot.Connector.DirectLine.Activity activityFromUser) { var directLineSecret = Configuration.ConfigurationHelper.GetString("AgentBot_DirectLine_Secret"); var agentStatusDB = Configuration.ConfigurationHelper.GetString("BotStatusDBConnectionString"); var dc = new DirectLineClient(directLineSecret); var agentStorage = new AgentStatusStorage(agentStatusDB); var agent = await agentStorage.QueryAgentStatusAsync(activityFromUser.Recipient.Id); ConversationStatus convStatus = null; //var agentConversations = await agentStorage.QueryConversationStatusAsync(agent.Id); try { var uri = new Uri("https://directline.botframework.com"); DirectLineClientCredentials creds = new DirectLineClientCredentials(directLineSecret); //lot into the bot framework DirectLineClient client = new DirectLineClient(uri, creds); //connect the client Microsoft.Bot.Connector.DirectLine.Conversations convs = new Microsoft.Bot.Connector.DirectLine.Conversations(client); //get the list of conversations belonging to the bot? Or does this start a new collection of conversations? Microsoft.Bot.Connector.DirectLine.Conversation conversation = null; if (string.IsNullOrEmpty(_agentConversationId)) { conversation = dc.Conversations.StartConversation(); _agentConversationId = conversation.ConversationId; } else { conversation = new Microsoft.Bot.Connector.DirectLine.Conversation() { ConversationId = _agentConversationId, }; } Logger.Info($"activityFromUser - From.Name:{activityFromUser.From.Name} - From.Id:{activityFromUser.From.Id}"); Logger.Info($"activityFromUser - Recipient.Name:{activityFromUser.Recipient.Name} - Recipient.Id:{activityFromUser.Recipient.Name}"); var toAgent = new Microsoft.Bot.Connector.DirectLine.Activity { Type = Microsoft.Bot.Connector.DirectLine.ActivityTypes.Message, Text = activityFromUser.Text, From = new Microsoft.Bot.Connector.DirectLine.ChannelAccount { Id = activityFromUser.From.Id,/*activityFromUser.From.Id,*/ Name = $"{activityFromUser.From.Name}@ocsuser" }, Recipient = activityFromUser.Recipient, ChannelId = agent.ChannelId, ChannelData = new DirectLineChannelData { RoundTrip = 0, ConversationId = _agentConversationId, UserID = activityFromUser.From.Id, UserName = activityFromUser.From.Name } }; var resp = await dc.Conversations.PostActivityAsync( conversation.ConversationId, toAgent); Logger.Info($"OCSBot::Dialog:PostToAgent() - {JsonConvert.SerializeObject(toAgent)}"); //convStatus = (await agentStorage.QueryConversationStatusAsync(agent.Id)).OrderByDescending(o => o.Timestamp).FirstOrDefault(); //convStatus.OCSDirectlineConversationId = conversation.ConversationId; //convStatus.OCSEndUserId = activityFromUser.From.Id; //convStatus.OCSEndUserName = activityFromUser.From.Name; //convStatus.OCSBotName = activityFromUser.Recipient.Name; //convStatus.OCSBotId = activityFromUser.Recipient.Id; //await agentStorage.UpdateConversationStatusAsync(convStatus); return(null); } catch (Exception exp) { Logger.Info($"OCSBot::PostToAgent() - Exception while posting to Agent:{exp.Message}"); throw; } }