Пример #1
0
    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)));
            }
        }
    }
Пример #2
0
    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);
    }
Пример #3
0
 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);
 }
Пример #4
0
    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()));
        }
    }
Пример #5
0
    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();
        }
    }