public override int Traverse() { IDialogueOverrideHandler handler = null; if (state != NodeEditorGUI.NodeEditorState.Dialogue) { handler = TaskManager.Instance; } else { handler = DialogueSystem.Instance; } if (handler.GetInteractionOverrides().ContainsKey(EntityID)) { handler.GetInteractionOverrides()[EntityID].Clear(); } return(0); }
public void OnCancel() { DialogueSystem.OnDialogueCancel -= OnCancel; DialogueSystem.OnDialogueEnd -= OnClick; if (customDialogueSpeed) { DialogueSystem.Instance.timeBetweenCharacters = oldSpeed; } if (cancel.connected()) { IDialogueOverrideHandler handler = null; if (state != NodeEditorGUI.NodeEditorState.Dialogue) { handler = TaskManager.Instance; } else { handler = DialogueSystem.Instance; } var node = state != NodeEditorGUI.NodeEditorState.Dialogue ? StartDialogueNode.missionCanvasNode : StartDialogueNode.dialogueCanvasNode; Debug.Log(node?.EntityID + " " + StartDialogueNode.missionCanvasNode?.EntityID); if (node && !string.IsNullOrEmpty(node.EntityID)) { handler.GetInteractionOverrides()[node.EntityID].Pop(); // DialogueSystem.Instance.DialogueViewTransitionOut(); if (node == StartDialogueNode.missionCanvasNode) { StartDialogueNode.missionCanvasNode = null; } else { StartDialogueNode.dialogueCanvasNode = null; } } TaskManager.Instance.setNode(cancel.connection(0)); } }
public override int Traverse() { IDialogueOverrideHandler handler = null; if (state != NodeEditorGUI.NodeEditorState.Dialogue) { handler = TaskManager.Instance; } else { handler = DialogueSystem.Instance; } if (SpeakToEntity) { handler.GetSpeakerIDList().Add(EntityID); if (handler as TaskManager) { TryAddObjective(); } if (handler.GetInteractionOverrides().ContainsKey(EntityID)) { handler.GetInteractionOverrides()[EntityID].Push(() => { if (handler as TaskManager) { missionCanvasNode = this; } else { dialogueCanvasNode = this; } handler.SetSpeakerID(EntityID); handler.SetNode(output); }); } else { var stack = new Stack <UnityEngine.Events.UnityAction>(); stack.Push(() => { if (handler as TaskManager) { missionCanvasNode = this; } else { dialogueCanvasNode = this; } handler.SetSpeakerID(EntityID); handler.SetNode(output); }); handler.GetInteractionOverrides().Add(EntityID, stack); } if (!allowAfterSpeaking) { if (forceStart) { if (handler as TaskManager) { missionCanvasNode = this; } else { dialogueCanvasNode = this; } handler.SetSpeakerID(EntityID); return(0); } else { return(-1); } } else { if (flowOutput == null) { flowOutput = outputKnobs[1]; } handler.SetNode(flowOutput); return(-1); } } else { return(0); } }
public override int Traverse() { IDialogueOverrideHandler handler = null; if (state != NodeEditorGUI.NodeEditorState.Dialogue) { handler = TaskManager.Instance; } else { handler = DialogueSystem.Instance; } // Debug.Log(handler as DialogueSystem + "sdjhgndfgikuhtdukhntdouhntdh " + StartDialogueNode.dialogueStartNode.EntityID); if (handler as TaskManager) { foreach (var objectiveLocation in TaskManager.objectiveLocations[(Canvas as QuestCanvas).missionName]) { if (objectiveLocation.followEntity && objectiveLocation.followEntity.ID == StartDialogueNode.missionCanvasNode?.EntityID) { TaskManager.objectiveLocations[(Canvas as QuestCanvas).missionName].Remove(objectiveLocation); TaskManager.DrawObjectiveLocations(); break; } } } var node = state != NodeEditorGUI.NodeEditorState.Dialogue ? StartDialogueNode.missionCanvasNode : StartDialogueNode.dialogueCanvasNode; if (jumpToStart) { handler.SetNode(node); handler.GetInteractionOverrides()[node.EntityID].Pop(); if (handler is DialogueSystem || (!output || !output.connected())) { DialogueSystem.Instance.DialogueViewTransitionOut(); } if (openBuilder) { DialogueSystem.Instance.OpenBuilder(SectorManager.instance.GetEntity(node.EntityID).transform.position); } if (openTrader) { DialogueSystem.Instance.OpenTrader(SectorManager.instance.GetEntity(node.EntityID).transform.position, JsonUtility.FromJson <ShipBuilder.TraderInventory>(traderJSON).parts); } return(-1); } else { if (node && node.EntityID != null && node.EntityID != "") { handler.GetInteractionOverrides()[node.EntityID].Pop(); DialogueSystem.Instance.DialogueViewTransitionOut(); if (node == StartDialogueNode.missionCanvasNode) { StartDialogueNode.missionCanvasNode = null; } else { StartDialogueNode.dialogueCanvasNode = null; } } if (openBuilder) { DialogueSystem.Instance.OpenBuilder(SectorManager.instance.GetEntity(node.EntityID).transform.position); } if (openTrader) { DialogueSystem.Instance.OpenTrader(SectorManager.instance.GetEntity(node.EntityID).transform.position, JsonUtility.FromJson <ShipBuilder.TraderInventory>(traderJSON).parts); } return(outputKnobs.Count > 0 ? 0 : -1); } }