/// <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 : "")); }