95 lines
2.7 KiB
C#
95 lines
2.7 KiB
C#
using System;
|
|
using GeometryTD.CustomUtility;
|
|
using GeometryTD.Definition;
|
|
using UnityGameFramework.Runtime;
|
|
|
|
namespace GeometryTD.DataTable
|
|
{
|
|
/// <summary>
|
|
/// 关卡阶段出怪条目表
|
|
/// </summary>
|
|
public class DRLevelSpawnEntry : DataRowBase
|
|
{
|
|
private int m_Id = 0;
|
|
|
|
/// <summary>
|
|
/// 获取阶段条目编号
|
|
/// </summary>
|
|
public override int Id => m_Id;
|
|
|
|
/// <summary>
|
|
/// 获取敌人出生口编号
|
|
/// </summary>
|
|
public int SpawnPointId { get; private set; }
|
|
|
|
/// <summary>
|
|
/// 获取相对开始时间(秒)
|
|
/// </summary>
|
|
public int StartTime { get; private set; }
|
|
|
|
/// <summary>
|
|
/// 获取出怪条目类型
|
|
/// </summary>
|
|
public EntryType EntryType { get; private set; }
|
|
|
|
/// <summary>
|
|
/// 获取敌人编号
|
|
/// </summary>
|
|
public int EnemyId { get; private set; }
|
|
|
|
/// <summary>
|
|
/// 获取单次出怪数量
|
|
/// </summary>
|
|
public int Count { get; private set; }
|
|
|
|
/// <summary>
|
|
/// 获取出怪间隔(秒)
|
|
/// </summary>
|
|
public float Interval { get; private set; }
|
|
|
|
/// <summary>
|
|
/// 获取持续时间(秒)
|
|
/// </summary>
|
|
public int Duration { get; private set; }
|
|
|
|
/// <summary>
|
|
/// 获取单怪出生间隔(秒)
|
|
/// </summary>
|
|
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<EntryType>.Get(raw);
|
|
}
|
|
}
|
|
}
|