public override Node AddNode(Type type) { Node.graphHotfix = this; Node node = ScriptableObject.CreateInstance(type) as Node; node.graph = this; nodes.Add(node); if (type == typeof(DialogNode)) { DialogNode dNode = node as DialogNode; dNode.dialogID = AddDialog(); dNode.dialog = dNode.GetObject(); dNode.Output0 = 0; dNode.Output1 = 1; dNode.Output2 = 2; dNode.Output3 = 3; dNode.Output4 = 4; } else if (type == typeof(DialogEventNode)) { DialogObject.DialogEvent dEvent = new DialogObject.DialogEvent(); dEvent.id = dialogObject.events.Count + UnityEngine.Random.Range(0, 100000); dialogObject.events.Add(dEvent); DialogEventNode dEventNode = node as DialogEventNode; dEventNode.dialogObjectRef = dialogObject; dEventNode.dialogEventID = dEvent.id; } return(node); }
public bool DoesChainEnd(int i) { if (dialogTrigger.dialogObject.dialog[placeInDialog].responses[i].eventID > 0) { DialogObject.DialogEvent dEvent = dialogTrigger.dialogObject.GetEvent(dialogTrigger.dialogObject.dialog[placeInDialog].responses[i].eventID); if (dEvent.nextDialogID > 0) { return(false); } if (dEvent.nextEventID > 0 && dEvent.type != DialogObject.DialogEventType.CloseDialog) { DialogObject.DialogEvent dEvent2 = dialogTrigger.dialogObject.GetEvent(dEvent.nextEventID); if (dEvent2.nextDialogID > 0) { return(false); } if (dEvent2.nextEventID > 0 && dEvent2.type != DialogObject.DialogEventType.CloseDialog) { DialogObject.DialogEvent dEvent3 = dialogTrigger.dialogObject.GetEvent(dEvent.nextEventID); if (dEvent3.nextDialogID > 0) { return(false); } if (dEvent3.nextEventID > 0 || dEvent3.nextDialogID > 0 && dEvent3.type != DialogObject.DialogEventType.CloseDialog) { DialogObject.DialogEvent dEvent4 = dialogTrigger.dialogObject.GetEvent(dEvent.nextEventID); if (dEvent4.nextDialogID > 0) { return(false); } if (dEvent4.nextEventID > 0 || dEvent4.nextDialogID > 0 && dEvent4.type != DialogObject.DialogEventType.CloseDialog) { return(false); } else { return(true); } } else { return(true); } } else { return(true); } } else { return(true); } } return(false); }
public void PerformDialogEvent(DialogObject.DialogEvent dEvent) { if (dEvent.type == DialogObject.DialogEventType.SetVar) { DialogVars.Instance.SetVar(dEvent.stringField, dEvent.boolField); } else if (dEvent.type == DialogObject.DialogEventType.CloseDialog) { CloseDialog(); return; } if (dEvent.nextEventID > 0) { PerformDialogEvent(dialogTrigger.dialogObject.GetEvent(dEvent.nextEventID)); } else if (dEvent.nextDialogID > 0) { SetDialogSection(dEvent.nextDialogID); } }