69 lines
2.0 KiB
C#
69 lines
2.0 KiB
C#
using System;
|
|
using GeometryTD.Definition;
|
|
using GeometryTD.CustomUtility;
|
|
using UnityGameFramework.Runtime;
|
|
|
|
namespace GeometryTD.DataTable
|
|
{
|
|
/// <summary>
|
|
/// Tag 表
|
|
/// </summary>
|
|
public class DRTag : DataRowBase
|
|
{
|
|
private int m_Id = 0;
|
|
|
|
/// <summary>
|
|
/// 获取 Tag 编号
|
|
/// </summary>
|
|
public override int Id => m_Id;
|
|
|
|
/// <summary>
|
|
/// 获取 Tag 名
|
|
/// </summary>
|
|
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<RarityType>.Get(columnStrings[index++]);
|
|
Weight = int.Parse(columnStrings[index++]);
|
|
IsImplemented = bool.Parse(columnStrings[index++]);
|
|
}
|
|
else
|
|
{
|
|
TagGroupText = string.Empty;
|
|
MinRarity = EnumUtility<RarityType>.Get(columnStrings[index++]);
|
|
Weight = int.Parse(columnStrings[index++]);
|
|
IsImplemented = true;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
}
|
|
}
|