using System; using GeometryTD.CustomUtility; using GeometryTD.Definition; using UnityGameFramework.Runtime; namespace GeometryTD.DataTable { /// /// 关卡阶段表 /// public class DRLevelPhase : DataRowBase { private int m_Id = 0; /// /// 获取关卡阶段编号 /// public override int Id => m_Id; /// /// 获取阶段持续时间(秒) /// public int DurationSeconds { get; private set; } /// /// 获取阶段结束条件类型 /// public PhaseEndType EndType { get; private set; } /// /// 获取阶段结束参数 /// public string EndParam { 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++; DurationSeconds = int.Parse(columnStrings[index++]); EndType = ParsePhaseEndType(columnStrings[index++]); EndParam = columnStrings[index++]; return true; } private PhaseEndType ParsePhaseEndType(string raw) { if (string.IsNullOrWhiteSpace(raw)) { return PhaseEndType.None; } return EnumUtility.Get(raw); } } }