using System; using GeometryTD.CustomUtility; using GeometryTD.Definition; using UnityGameFramework.Runtime; namespace GeometryTD.DataTable { /// /// 关卡阶段出怪条目表 /// public class DRLevelSpawnEntry : DataRowBase { private int m_Id = 0; /// /// 获取阶段条目编号 /// public override int Id => m_Id; /// /// 获取敌人出生口编号 /// public int SpawnPointId { get; private set; } /// /// 获取相对开始时间(秒) /// public int StartTime { get; private set; } /// /// 获取出怪条目类型 /// public EntryType EntryType { get; private set; } /// /// 获取敌人编号 /// public int EnemyId { get; private set; } /// /// 获取单次出怪数量 /// public int Count { get; private set; } /// /// 获取出怪间隔(秒) /// public float Interval { get; private set; } /// /// 获取持续时间(秒) /// public int Duration { get; private set; } /// /// 获取单怪出生间隔(秒) /// public float Gap { 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++; SpawnPointId = int.Parse(columnStrings[index++]); StartTime = int.Parse(columnStrings[index++]); EntryType = ParseEntryType(columnStrings[index++]); EnemyId = int.Parse(columnStrings[index++]); Count = int.Parse(columnStrings[index++]); Interval = float.Parse(columnStrings[index++]); Duration = int.Parse(columnStrings[index++]); Gap = float.Parse(columnStrings[index++]); return true; } private EntryType ParseEntryType(string raw) { if (string.IsNullOrWhiteSpace(raw)) { return EntryType.None; } return EnumUtility.Get(raw); } } }