Beispiel #1
0
        public static MonologueNode ParseNode(JToken jt)
        {
            string line  = string.Empty;
            string audio = null;

            if (jt["line"] != null)
            {
                line = jt["line"].Value <string>();
            }

            if (jt["audio"] != null)
            {
                audio = jt["audio"].Value <string>();
            }

            List <Conditional> cList = new List <Conditional>();

            if (jt["conditions"] != null)
            {
                JArray conditionJArray = (JArray)jt["conditions"];
                foreach (JToken conditionJT in conditionJArray)
                {
                    try
                    {
                        cList.Add(DialogueParser.ParseSingleCondition(conditionJT));
                    }
                    catch (Exception e)
                    {
                        Debug.LogException(e);
                    }
                }
            }

            List <MicroscriptNode> mList = new List <MicroscriptNode>();

            if (jt["microscripts"] != null)
            {
                JArray microscriptJArray = (JArray)jt["microscripts"];
                foreach (JToken microscriptJT in microscriptJArray)
                {
                    try
                    {
                        mList.Add(DialogueParser.ParseMicroscript(microscriptJT));
                    }
                    catch (Exception e)
                    {
                        Debug.LogException(e);
                    }
                }
            }

            return(new MonologueNode(line, audio, cList.ToArray(), mList.ToArray()));
        }