Ejemplo n.º 1
0
        /// <summary></summary>
        /// <param name="monster"></param>
        /// <param name="tag"></param>
        /// <param name="indentLevel"></param>
        public virtual void AnalyseMonsterRecordTree(IMonster monster, string tag, long indentLevel)
        {
            Debug.Assert(monster != null && tag != null && indentLevel > 0);

            var indentString = new string('\t', (int)indentLevel);

            RecordTreeStringList.Add(string.Format("{0}{1}[{2}{3}: {4}", Environment.NewLine, indentString, tag, monster.Uid, monster.GetArticleName(true, buf: Buf)));

            var wornList = monster.GetWornList();

            foreach (var wornArtifact in wornList)
            {
                AnalyseArtifactRecordTree(wornArtifact, "WA", indentLevel + 1);
            }

            var carriedList = monster.GetCarriedList();

            foreach (var carriedArtifact in carriedList)
            {
                AnalyseArtifactRecordTree(carriedArtifact, "CA", indentLevel + 1);
            }

            RecordTreeStringList.Add(string.Format("{0}]", wornList.Count > 0 || carriedList.Count > 0 ? Environment.NewLine + indentString : ""));
        }