第一批重构,主要是物理迁移脚本和部分命名空间的调整
- 结构上迁移文件,将脚本分成 Base/Runtime/Presentation/Procedure/Editor 五大文件夹 - 调整 DataTable 和 Definition 下脚本的命名空间 - 依据 UI-5层架构设计规范 拆分原先的 UI 到 Runtime 和 Presentation 下
This commit is contained in:
@@ -0,0 +1,138 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using SepCore.Definition;
|
||||
using GameFramework;
|
||||
using StarForce;
|
||||
using UnityGameFramework.Runtime;
|
||||
|
||||
namespace SepCore.DataTable
|
||||
{
|
||||
public class DRRole : DataRowBase
|
||||
{
|
||||
private int m_Id = 0;
|
||||
|
||||
/// <summary>
|
||||
/// 获取角色编号。
|
||||
/// </summary>
|
||||
public override int Id => m_Id;
|
||||
|
||||
/// <summary>
|
||||
/// 获取资源名称。
|
||||
/// </summary>
|
||||
public string RoleName { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取图标名称。
|
||||
/// </summary>
|
||||
public string IconName { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取初始最大生命。
|
||||
/// </summary>
|
||||
public int MaxHealth { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取初始速度。
|
||||
/// </summary>
|
||||
public float Speed { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取初始金币。
|
||||
/// </summary>
|
||||
public int Coin { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取最大持有武器数。
|
||||
/// </summary>
|
||||
public int WeaponCapacity { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取初始属性。
|
||||
/// </summary>
|
||||
public StatModifier[] InitialProperties { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// 获取初始物品。
|
||||
/// </summary>
|
||||
public KeyValuePair<int, int>[] InitialItemIds { get; private set; }
|
||||
|
||||
public int[] ExpRequires { get; private set; }
|
||||
|
||||
public override bool ParseDataRow(string dataRowString, object userData)
|
||||
{
|
||||
string[] columnStrings = dataRowString.Split(DataTableExtension.DataSplitSeparators);
|
||||
|
||||
int index = 0;
|
||||
index++;
|
||||
m_Id = int.Parse(columnStrings[index++]);
|
||||
index++;
|
||||
RoleName = columnStrings[index++];
|
||||
IconName = columnStrings[index++];
|
||||
MaxHealth = int.Parse(columnStrings[index++]);
|
||||
Speed = float.Parse(columnStrings[index++]);
|
||||
Coin = int.Parse(columnStrings[index++]);
|
||||
WeaponCapacity = int.Parse(columnStrings[index++]);
|
||||
InitialProperties = Utility.Json.ToObject<StatModifier[]>(columnStrings[index++]);
|
||||
GenerateItems(columnStrings[index++]);
|
||||
GenerateExpRequires(ref columnStrings, index);
|
||||
|
||||
GeneratePropertyArray();
|
||||
return true;
|
||||
}
|
||||
|
||||
private void GeneratePropertyArray()
|
||||
{
|
||||
}
|
||||
|
||||
private void GenerateItems(string raw)
|
||||
{
|
||||
if (!raw.StartsWith('[') || !raw.EndsWith(']'))
|
||||
{
|
||||
throw new ArgumentException("Input must be enclosed in square brackets.");
|
||||
}
|
||||
|
||||
if (raw.Length <= 2) return;
|
||||
|
||||
string[] items = raw.Substring(1, raw.Length - 2).Split(";");
|
||||
int length = items.Length;
|
||||
InitialItemIds = new KeyValuePair<int, int>[length];
|
||||
for (int i = 0; i < length; i++)
|
||||
{
|
||||
string input = items[i];
|
||||
if (string.IsNullOrEmpty(input))
|
||||
{
|
||||
Log.Warning("Invalid item: {0}", input);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!input.StartsWith('[') || !input.EndsWith(']'))
|
||||
{
|
||||
throw new ArgumentException("Input must be enclosed in square brackets.");
|
||||
}
|
||||
|
||||
string inner = input.Substring(1, input.Length - 2);
|
||||
|
||||
// 如果是空列表 "[]"
|
||||
if (inner.Length == 0) continue;
|
||||
|
||||
string[] index = inner.Split(",");
|
||||
var item = new KeyValuePair<int, int>(int.Parse(index[0]), int.Parse(index[1]));
|
||||
InitialItemIds[i] = item;
|
||||
}
|
||||
}
|
||||
|
||||
private void GenerateExpRequires(ref string[] columnStrings, int index)
|
||||
{
|
||||
List<int> expRequires = new List<int>();
|
||||
int baseExp = int.Parse(columnStrings[index]);
|
||||
for (int i = index; i < columnStrings.Length; i++)
|
||||
{
|
||||
expRequires.Add(int.Parse(columnStrings[i]) - baseExp);
|
||||
}
|
||||
|
||||
ExpRequires = expRequires.ToArray();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user