using System; using GeometryTD.Definition; using GeometryTD.CustomUtility; using UnityGameFramework.Runtime; namespace GeometryTD.DataTable { /// /// Tag 表 /// public class DRTag : DataRowBase { private int m_Id = 0; /// /// 获取 Tag 编号 /// public override int Id => m_Id; /// /// 获取 Tag 名 /// public string Name { get; private set; } public TagType TagType => (TagType)m_Id; public string TagGroupText { get; private set; } public RarityType MinRarity { get; private set; } public int Weight { get; private set; } public bool IsImplemented { get; private set; } public override bool ParseDataRow(string dataRowString, object userData) { string[] columnStrings = dataRowString.Split(DataTableExtension.DataSplitSeparators); for (int i = 0; i < columnStrings.Length; i++) { columnStrings[i] = columnStrings[i].Trim(DataTableExtension.DataTrimSeparators); } int index = 0; index++; m_Id = int.Parse(columnStrings[index++]); index++; Name = columnStrings[index++]; bool hasExtendedColumns = columnStrings.Length - index >= 4; if (hasExtendedColumns) { TagGroupText = columnStrings[index++]; MinRarity = EnumUtility.Get(columnStrings[index++]); Weight = int.Parse(columnStrings[index++]); IsImplemented = bool.Parse(columnStrings[index++]); } else { TagGroupText = string.Empty; MinRarity = EnumUtility.Get(columnStrings[index++]); Weight = int.Parse(columnStrings[index++]); IsImplemented = true; } return true; } } }