override public void Reconnect(DialogueTree _dt) { DivergeNode dn = (DivergeNode)_dt.GetNodeByName(name); for (int i = 0; i < myDiverges.Count; i++) { if (myDiverges [i].nextKey != "END") { dn.diverges [i].SetConnect(_dt.GetNodeByName(GetNameWithoutChar(myDiverges [i].nextKey))); } } }
override public Node Cast2Node(DialogueTree _dt) { DivergeNode n = new DivergeNode(_dt, myPos); n.nodeName = name; n.DeleteDiverge(0); foreach (SubNodeInfo info in diverInfos) { n.diverges.Add(info.Cast2SubNode(_dt, n)); } return(n); }
public void RemoveQuestion(Node qn) { foreach (Node n in lst_node) { if (n.GetType() == typeof(DivergeNode)) { DivergeNode dn = (DivergeNode)n; foreach (SubNode diver in dn.diverges) { foreach (ConditionUnit c in diver.myDiverge) { if (c.myQuestion == qn) { c.myQuestion = null; } } } } } lst_node.Remove(qn); }
public DivergeNodeInfo(Node n) : base(n) { DivergeNode dn = (DivergeNode)n; foreach (SubNode diver in dn.diverges) { diverInfos.Add(new SubNodeInfo(diver)); List <string> conditions = new List <string> (); foreach (ConditionUnit con in diver.myDiverge) { if (con.myQuestion != null) { string conStr = con.myQuestion.myCharacter.name + ":" + con.condition; conditions.Add(conStr); } else { conditions.Add(con.condition); } } myDiverges.Add(new DivergeUnit(conditions, diver.GetNextNodeName())); } }
void CreateNode(Vector2 mousePos, int type) { Node n = null; if (lst_node.Count == 0) { n = new StartNode(this, new Vector2(120, 150)); } else { switch (type) { case 0: n = new StartNode(this, mousePos - coordinate); plotNodeCount++; break; case 1: n = new DialogueNode(this, mousePos - coordinate); break; case 2: n = new QuestionNode(this, mousePos - coordinate); break; case 3: n = new DivergeNode(this, mousePos - coordinate); break; } } if (n != null) { lst_node.Add(n); rightPanel.SetQNodeList(); } }