summaryrefslogtreecommitdiff
path: root/marching/Assets
diff options
context:
space:
mode:
Diffstat (limited to 'marching/Assets')
-rw-r--r--marching/Assets/Bundle/metadata/default_stats.csv25
-rw-r--r--marching/Assets/Scenes/Test.unity44
-rw-r--r--marching/Assets/Scripts/Buffs/Buff.cs4
-rw-r--r--marching/Assets/Scripts/Buffs/BuffDef.cs14
-rw-r--r--marching/Assets/Scripts/Buffs/BuffMetadata.cs22
-rw-r--r--marching/Assets/Scripts/Buffs/BuffMetadata.cs.meta (renamed from marching/Assets/Scripts/Buffs/BuffDef.cs.meta)0
-rw-r--r--marching/Assets/Scripts/Data.meta8
-rw-r--r--marching/Assets/Scripts/Data/DataManager.cs37
-rw-r--r--marching/Assets/Scripts/Data/DataManager.cs.meta11
-rw-r--r--marching/Assets/Scripts/Managers/ResourceManager.cs32
-rw-r--r--marching/Assets/Scripts/Managers/ResourceManager.cs.meta11
-rw-r--r--marching/Assets/Scripts/Physics/PhysicsManager.cs1
-rw-r--r--marching/Assets/Scripts/Physics/PhysicsManager_CollisionDetection.cs1
-rw-r--r--marching/Assets/Scripts/Stats/CharacterStatsBase.cs54
-rw-r--r--marching/Assets/Scripts/Stats/CharacterStatsDef.cs13
-rw-r--r--marching/Assets/Scripts/Stats/CharacterStatsMetadata.cs23
-rw-r--r--marching/Assets/Scripts/Stats/CharacterStatsMetadata.cs.meta (renamed from marching/Assets/Scripts/Stats/CharacterStatsDef.cs.meta)0
-rw-r--r--marching/Assets/Scripts/Tests.meta8
-rw-r--r--marching/Assets/Scripts/Tests/TestCSV.cs57
-rw-r--r--marching/Assets/Scripts/Tests/TestCSV.cs.meta11
-rw-r--r--marching/Assets/Scripts/Unit/Characters/CharacterInfo.cs93
-rw-r--r--marching/Assets/StreamingAssets/languages.meta8
-rw-r--r--marching/Assets/StreamingAssets/languages/de.csv0
-rw-r--r--marching/Assets/StreamingAssets/languages/de.csv.meta7
-rw-r--r--marching/Assets/StreamingAssets/languages/en.csv0
-rw-r--r--marching/Assets/StreamingAssets/languages/en.csv.meta7
-rw-r--r--marching/Assets/StreamingAssets/languages/fr.csv0
-rw-r--r--marching/Assets/StreamingAssets/languages/fr.csv.meta7
-rw-r--r--marching/Assets/StreamingAssets/languages/jp.csv0
-rw-r--r--marching/Assets/StreamingAssets/languages/jp.csv.meta7
-rw-r--r--marching/Assets/StreamingAssets/languages/kr.csv0
-rw-r--r--marching/Assets/StreamingAssets/languages/kr.csv.meta7
-rw-r--r--marching/Assets/StreamingAssets/languages/ru.csv0
-rw-r--r--marching/Assets/StreamingAssets/languages/ru.csv.meta7
-rw-r--r--marching/Assets/StreamingAssets/languages/zh_cn.csv2
-rw-r--r--marching/Assets/StreamingAssets/languages/zh_cn.csv.meta7
-rw-r--r--marching/Assets/StreamingAssets/setting.json0
-rw-r--r--marching/Assets/StreamingAssets/setting.json.meta7
-rw-r--r--marching/Assets/ThirdParty/CSV-Parser.meta8
-rw-r--r--marching/Assets/ThirdParty/CSV-Parser/.gitignore15
-rw-r--r--marching/Assets/ThirdParty/CSV-Parser/CSV Parser.meta8
-rw-r--r--marching/Assets/ThirdParty/CSV-Parser/CSV Parser.sln22
-rw-r--r--marching/Assets/ThirdParty/CSV-Parser/CSV Parser.sln.meta7
-rw-r--r--marching/Assets/ThirdParty/CSV-Parser/CSV Parser/CSV Parser.csproj13
-rw-r--r--marching/Assets/ThirdParty/CSV-Parser/CSV Parser/CSV Parser.csproj.meta7
-rw-r--r--marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src.meta8
-rw-r--r--marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src/CSVParser.cs181
-rw-r--r--marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src/CSVParser.cs.meta11
-rw-r--r--marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src/Delimiter.cs9
-rw-r--r--marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src/Delimiter.cs.meta11
-rw-r--r--marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src/DelimiterExtensions.cs24
-rw-r--r--marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src/DelimiterExtensions.cs.meta11
-rw-r--r--marching/Assets/ThirdParty/CSV-Parser/LICENSE35
-rw-r--r--marching/Assets/ThirdParty/CSV-Parser/LICENSE.meta7
-rw-r--r--marching/Assets/ThirdParty/CSV-Parser/README.md102
-rw-r--r--marching/Assets/ThirdParty/CSV-Parser/README.md.meta7
-rw-r--r--marching/Assets/ThirdParty/CSV-Parser/RELEASE.md14
-rw-r--r--marching/Assets/ThirdParty/CSV-Parser/RELEASE.md.meta7
-rw-r--r--marching/Assets/ThirdParty/CSV-Parser/Tests.meta8
-rw-r--r--marching/Assets/ThirdParty/CSV-Parser/Unity Examples.meta8
-rw-r--r--marching/Assets/ThirdParty/CSV-Parser/global.json7
-rw-r--r--marching/Assets/ThirdParty/CSV-Parser/global.json.meta7
62 files changed, 1006 insertions, 66 deletions
diff --git a/marching/Assets/Bundle/metadata/default_stats.csv b/marching/Assets/Bundle/metadata/default_stats.csv
index 66d44b8..a935859 100644
--- a/marching/Assets/Bundle/metadata/default_stats.csv
+++ b/marching/Assets/Bundle/metadata/default_stats.csv
@@ -1,12 +1,13 @@
-uid,name_key,icon,type
-#默认的角色属性,可以扩展,,,
-level,LEVEL,,int
-max_level,MAX_LEVEL,,int
-health,HEALTH,,int
-max_health,MAX_HEALTH,,int
-exp,EXP,,int
-max_exp,MAX_EXP,,int
-health_recover,HEALTH_RECOVER,,int
-move_speed,MOVE_SPEED,,int
-damage,DAMAGE,,int
-attack_speed,ATTACK_SPEED,,int
+uid,name_key,desc_key,icon,type
+#默认的角色属性,可以扩展,,,,
+level,LEVEL,LEVEL_DESC,,int
+max_level,MAX_LEVEL,,,int
+health,HEALTH,,,int
+max_health,MAX_HEALTH,,,int
+exp,EXP,,,int
+max_exp,MAX_EXP,,,int
+health_recover,HEALTH_RECOVER,,,int
+move_speed,MOVE_SPEED,,,int
+damage,DAMAGE,,,int
+attack_speed,ATTACK_SPEED,,,int
+revive_max_count,,,,
diff --git a/marching/Assets/Scenes/Test.unity b/marching/Assets/Scenes/Test.unity
index 6474326..5ecba8b 100644
--- a/marching/Assets/Scenes/Test.unity
+++ b/marching/Assets/Scenes/Test.unity
@@ -9992,6 +9992,50 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1525966912}
m_CullTransparentMesh: 1
+--- !u!1 &1552119908
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1552119910}
+ - component: {fileID: 1552119909}
+ m_Layer: 0
+ m_Name: GameObject
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!114 &1552119909
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1552119908}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 5e9d405b1bd5e604db9cc8638d465aaf, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!4 &1552119910
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1552119908}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -14.039074, y: 3.1774442, z: -0.025952239}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 68
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1566097397
GameObject:
m_ObjectHideFlags: 0
diff --git a/marching/Assets/Scripts/Buffs/Buff.cs b/marching/Assets/Scripts/Buffs/Buff.cs
index 2320176..430fa70 100644
--- a/marching/Assets/Scripts/Buffs/Buff.cs
+++ b/marching/Assets/Scripts/Buffs/Buff.cs
@@ -1,6 +1,8 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
+using WK;
+using WK.Data;
/// <summary>
/// Buff结构
@@ -8,7 +10,7 @@ using UnityEngine;
public abstract class Buff
{
// 元数据
- public BuffDef metadata;
+ public BuffMetadata metadata;
// buff效果器
public BuffEfectorBase effector;
diff --git a/marching/Assets/Scripts/Buffs/BuffDef.cs b/marching/Assets/Scripts/Buffs/BuffDef.cs
deleted file mode 100644
index 835589b..0000000
--- a/marching/Assets/Scripts/Buffs/BuffDef.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-
-public class BuffDef
-{
-
- public string uid;
-
- public string name_key;
-
- public string icon;
-
-}
diff --git a/marching/Assets/Scripts/Buffs/BuffMetadata.cs b/marching/Assets/Scripts/Buffs/BuffMetadata.cs
new file mode 100644
index 0000000..de7c391
--- /dev/null
+++ b/marching/Assets/Scripts/Buffs/BuffMetadata.cs
@@ -0,0 +1,22 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace WK.Data
+{
+
+ public class BuffMetadata
+ {
+
+ public string uid;
+
+ public string name_key;
+
+ public string icon;
+
+ // 暂留数据
+ public string extra_data;
+
+ }
+
+}
diff --git a/marching/Assets/Scripts/Buffs/BuffDef.cs.meta b/marching/Assets/Scripts/Buffs/BuffMetadata.cs.meta
index 2fbd7ff..2fbd7ff 100644
--- a/marching/Assets/Scripts/Buffs/BuffDef.cs.meta
+++ b/marching/Assets/Scripts/Buffs/BuffMetadata.cs.meta
diff --git a/marching/Assets/Scripts/Data.meta b/marching/Assets/Scripts/Data.meta
new file mode 100644
index 0000000..3622fa8
--- /dev/null
+++ b/marching/Assets/Scripts/Data.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 9dac4e9417c4a4343926c0fd48551b07
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/marching/Assets/Scripts/Data/DataManager.cs b/marching/Assets/Scripts/Data/DataManager.cs
new file mode 100644
index 0000000..e56c80b
--- /dev/null
+++ b/marching/Assets/Scripts/Data/DataManager.cs
@@ -0,0 +1,37 @@
+using System.Collections;
+using System.Collections.Generic;
+using Unity.VisualScripting;
+using UnityEngine;
+
+namespace WK.Data
+{
+
+ public class DataManager : Singleton<DataManager>
+ {
+
+ private Dictionary<string/*uid*/, CharacterStatsMetadata> m_CharacterStatsMetadata;
+ private Dictionary<string/*uid*/, BuffMetadata> m_BuffMetadata;
+
+ public CharacterStatsMetadata GetCharacterStats(string uid)
+ {
+ CharacterStatsMetadata metadata;
+ if(m_CharacterStatsMetadata.TryGetValue(uid, out metadata))
+ {
+ return metadata;
+ }
+ return null;
+ }
+
+ public BuffMetadata GetBuffMetadata(string uid)
+ {
+ BuffMetadata metadata;
+ if(m_BuffMetadata.TryGetValue(uid, out metadata))
+ {
+ return metadata;
+ }
+ return null;
+ }
+
+ }
+
+} \ No newline at end of file
diff --git a/marching/Assets/Scripts/Data/DataManager.cs.meta b/marching/Assets/Scripts/Data/DataManager.cs.meta
new file mode 100644
index 0000000..e2f87df
--- /dev/null
+++ b/marching/Assets/Scripts/Data/DataManager.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 426d62970250f0f41b68370ced13105b
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/marching/Assets/Scripts/Managers/ResourceManager.cs b/marching/Assets/Scripts/Managers/ResourceManager.cs
new file mode 100644
index 0000000..4b318ca
--- /dev/null
+++ b/marching/Assets/Scripts/Managers/ResourceManager.cs
@@ -0,0 +1,32 @@
+using System.Collections;
+using System.Collections.Generic;
+#if UNITY_EDITOR
+using UnityEditor;
+#endif
+using UnityEngine;
+
+namespace WK
+{
+
+ public class ResourceManager : Singleton<ResourceManager>
+ {
+
+ // 资源根目录是Assets/Bundle/,后续可能会把部分资源移动到streamingAssets目录
+ public const string kAssetRoot = "Assets/Bundle/";
+
+ public T LoadAsset<T>(string relativePath) where T : UnityEngine.Object
+ {
+#if UNITY_EDITOR
+ string path = kAssetRoot + relativePath;
+ T obj = AssetDatabase.LoadAssetAtPath(path, typeof(T)) as T;
+ return obj;
+#else
+ return null ;
+#endif
+ }
+
+
+
+ }
+
+}
diff --git a/marching/Assets/Scripts/Managers/ResourceManager.cs.meta b/marching/Assets/Scripts/Managers/ResourceManager.cs.meta
new file mode 100644
index 0000000..b3c985b
--- /dev/null
+++ b/marching/Assets/Scripts/Managers/ResourceManager.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 928e39b9448c1c74caa349620602617b
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/marching/Assets/Scripts/Physics/PhysicsManager.cs b/marching/Assets/Scripts/Physics/PhysicsManager.cs
index 0225443..279ebbb 100644
--- a/marching/Assets/Scripts/Physics/PhysicsManager.cs
+++ b/marching/Assets/Scripts/Physics/PhysicsManager.cs
@@ -8,7 +8,6 @@ public enum ColliderType
{
Collider,
Hurtbox,
- //Hitbox,
}
public partial class PhysicsManager : Singleton<PhysicsManager>
diff --git a/marching/Assets/Scripts/Physics/PhysicsManager_CollisionDetection.cs b/marching/Assets/Scripts/Physics/PhysicsManager_CollisionDetection.cs
index 22c2f4e..d5fd913 100644
--- a/marching/Assets/Scripts/Physics/PhysicsManager_CollisionDetection.cs
+++ b/marching/Assets/Scripts/Physics/PhysicsManager_CollisionDetection.cs
@@ -1,7 +1,6 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
-using static UnityEditor.Rendering.CameraUI;
/// <summary>
/// 碰撞检测
diff --git a/marching/Assets/Scripts/Stats/CharacterStatsBase.cs b/marching/Assets/Scripts/Stats/CharacterStatsBase.cs
index a2e5fe2..b4869cb 100644
--- a/marching/Assets/Scripts/Stats/CharacterStatsBase.cs
+++ b/marching/Assets/Scripts/Stats/CharacterStatsBase.cs
@@ -1,16 +1,58 @@
using System.Collections;
using System.Collections.Generic;
+using System.Runtime.InteropServices;
using UnityEngine;
+using WK.Data;
-/// <summary>
-/// 角色基础属性
-/// </summary>
-public abstract class CharacterStatsBase
+namespace WK
{
+
+ [System.Runtime.InteropServices.StructLayout(LayoutKind.Explicit)]
+ public struct CharacterStatsValue
+ {
+ [System.Runtime.InteropServices.FieldOffset(0)]
+ public int i;
+ [System.Runtime.InteropServices.FieldOffset(0)]
+ public float f;
+ [System.Runtime.InteropServices.FieldOffset(0)]
+ public bool boolean;
+ [System.Runtime.InteropServices.FieldOffset(0)]
+ public char c;
+ [System.Runtime.InteropServices.FieldOffset(0)]
+ public Vector2 v2;
+ [System.Runtime.InteropServices.FieldOffset(0)]
+ public Vector3 v3;
+ [System.Runtime.InteropServices.FieldOffset(0)]
+ public Vector4 v4;
+ [System.Runtime.InteropServices.FieldOffset(0)]
+ public Color color;
+ }
+
+
/// <summary>
- /// 属性唯一标识
+ /// 运行时角色基础属性
/// </summary>
- public string UID;
+ public abstract class CharacterStats
+ {
+
+ /// <summary>
+ /// 表格数据
+ /// </summary>
+ public CharacterStatsMetadata metadata;
+
+ /// <summary>
+ /// 当前属性值
+ /// </summary>
+ public CharacterStatsValue value;
+
+ public string uid
+ {
+ get
+ {
+ return metadata.uid;
+ }
+ }
+ }
}
diff --git a/marching/Assets/Scripts/Stats/CharacterStatsDef.cs b/marching/Assets/Scripts/Stats/CharacterStatsDef.cs
deleted file mode 100644
index 87eeecd..0000000
--- a/marching/Assets/Scripts/Stats/CharacterStatsDef.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-
-public class CharacterStatsDef
-{
- public string uid;
-
- public string name_key;
-
- public int type;
-
-}
diff --git a/marching/Assets/Scripts/Stats/CharacterStatsMetadata.cs b/marching/Assets/Scripts/Stats/CharacterStatsMetadata.cs
new file mode 100644
index 0000000..3b0b13b
--- /dev/null
+++ b/marching/Assets/Scripts/Stats/CharacterStatsMetadata.cs
@@ -0,0 +1,23 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace WK.Data
+{
+
+ /// <summary>
+ /// 角色基础属性元数据
+ /// </summary>
+ public class CharacterStatsMetadata
+ {
+ public string uid;
+
+ public string name_key;
+
+ public int type;
+
+ // 暂留数据
+ public string extra_data;
+ }
+
+}
diff --git a/marching/Assets/Scripts/Stats/CharacterStatsDef.cs.meta b/marching/Assets/Scripts/Stats/CharacterStatsMetadata.cs.meta
index a8d9a08..a8d9a08 100644
--- a/marching/Assets/Scripts/Stats/CharacterStatsDef.cs.meta
+++ b/marching/Assets/Scripts/Stats/CharacterStatsMetadata.cs.meta
diff --git a/marching/Assets/Scripts/Tests.meta b/marching/Assets/Scripts/Tests.meta
new file mode 100644
index 0000000..3219e35
--- /dev/null
+++ b/marching/Assets/Scripts/Tests.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: f6e9b28f26f6aee49be2a1c0676abaf1
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/marching/Assets/Scripts/Tests/TestCSV.cs b/marching/Assets/Scripts/Tests/TestCSV.cs
new file mode 100644
index 0000000..068d235
--- /dev/null
+++ b/marching/Assets/Scripts/Tests/TestCSV.cs
@@ -0,0 +1,57 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Resources;
+using System.Text;
+using UnityEngine;
+using yutokun;
+
+public class TestCSV : MonoBehaviour
+{
+ #region 搴忓垪鍖
+
+ #endregion
+
+ #region 鍏叡瀛楁
+
+ #endregion
+
+ #region 绉佹湁瀛楁
+
+ #endregion
+
+ private void OnEnable()
+ {
+ // 绉佹湁瀛楁璧嬪
+
+ // 鍏叡瀛楁璧嬪
+
+ // 鍒濆鍖
+
+ TextAsset text = WK.ResourceManager.Instance.LoadAsset<TextAsset>("metadata/default_stats.csv");
+
+ var sheet = CSVParser.LoadFromString(text.text);
+
+ var styled = new StringBuilder();
+ foreach (var row in sheet)
+ {
+ styled.Append("| ");
+
+ if (row[0][0] == '#')
+ continue;
+
+ foreach (var cell in row)
+ {
+ styled.Append(cell);
+ styled.Append(" | ");
+ }
+
+ styled.AppendLine();
+ }
+
+ Debug.Log(styled.ToString()); // Unity
+ Console.WriteLine(styled.ToString()); // C#
+
+ }
+
+}
diff --git a/marching/Assets/Scripts/Tests/TestCSV.cs.meta b/marching/Assets/Scripts/Tests/TestCSV.cs.meta
new file mode 100644
index 0000000..48e6de1
--- /dev/null
+++ b/marching/Assets/Scripts/Tests/TestCSV.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 5e9d405b1bd5e604db9cc8638d465aaf
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/marching/Assets/Scripts/Unit/Characters/CharacterInfo.cs b/marching/Assets/Scripts/Unit/Characters/CharacterInfo.cs
index 4a39895..950b7ae 100644
--- a/marching/Assets/Scripts/Unit/Characters/CharacterInfo.cs
+++ b/marching/Assets/Scripts/Unit/Characters/CharacterInfo.cs
@@ -3,35 +3,92 @@ using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;
+using WK.Data;
+using WK;
-public class CharacterInfo
+namespace WK
{
- /// <summary>
- /// 角色所有属性
- /// </summary>
- private List<CharacterStatsBase> m_Stats;
+ public class CharacterStatsCollection
+ {
+
+ }
+
+ public class CharacterBuffsCollection
+ {
+
+ }
+
+ public class CharacterPerksCollection
+ {
+
+ }
/// <summary>
- /// 角色当前所有buff
- /// </summary>
- private List<Buff> m_Buffs;
-
- /// <summary>
- /// 角色当前所有被动
+ /// 角色当前状态
/// </summary>
- private List<PerkBase> m_Perks;
-
- public CharacterStatsBase GetStats(string statsUID)
+ public class CharacterInfo
{
- for(int i = 0; i < m_Stats.Count; ++i)
+
+ /// <summary>
+ /// 角色当前所有属性
+ /// </summary>
+ private List<CharacterStats> m_Stats;
+
+ public CharacterStatsCollection stats { get { return m_AllStats; } }
+ private CharacterStatsCollection m_AllStats;
+
+ /// <summary>
+ /// 角色当前所有buff
+ /// </summary>
+ private List<Buff> m_Buffs;
+
+ /// <summary>
+ /// 角色当前所有被动
+ /// </summary>
+ private List<PerkBase> m_Perks;
+
+ public CharacterStats this[string statsUID]
{
- if (m_Stats[i].UID == statsUID)
+ get
{
- return m_Stats[i];
+ if (m_Stats == null)
+ {
+ return null;
+ }
+ return GetStats(statsUID);
}
}
- return null;
+
+ public CharacterStats GetStats(string statsUID)
+ {
+ for (int i = 0; i < m_Stats.Count; ++i)
+ {
+ if (m_Stats[i].uid == statsUID)
+ {
+ return m_Stats[i];
+ }
+ }
+ return null;
+ }
+
+ public bool HasStats(string statsUID)
+ {
+ for (int i = 0; i < m_Stats.Count; ++i)
+ {
+ if (m_Stats[i].uid == statsUID)
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public bool HasBuff(string buffUID)
+ {
+ return false;
+ }
+
}
}
diff --git a/marching/Assets/StreamingAssets/languages.meta b/marching/Assets/StreamingAssets/languages.meta
new file mode 100644
index 0000000..07fb091
--- /dev/null
+++ b/marching/Assets/StreamingAssets/languages.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 3f821e76af7ad0d4eae16d3f24ea1b88
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/marching/Assets/StreamingAssets/languages/de.csv b/marching/Assets/StreamingAssets/languages/de.csv
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/marching/Assets/StreamingAssets/languages/de.csv
diff --git a/marching/Assets/StreamingAssets/languages/de.csv.meta b/marching/Assets/StreamingAssets/languages/de.csv.meta
new file mode 100644
index 0000000..d4b02ae
--- /dev/null
+++ b/marching/Assets/StreamingAssets/languages/de.csv.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 91f0a160fca2b8e47ba82b3fa2f7e8d3
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/marching/Assets/StreamingAssets/languages/en.csv b/marching/Assets/StreamingAssets/languages/en.csv
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/marching/Assets/StreamingAssets/languages/en.csv
diff --git a/marching/Assets/StreamingAssets/languages/en.csv.meta b/marching/Assets/StreamingAssets/languages/en.csv.meta
new file mode 100644
index 0000000..afdfcfe
--- /dev/null
+++ b/marching/Assets/StreamingAssets/languages/en.csv.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: b62c767356e24514a94c9604a4e7a208
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/marching/Assets/StreamingAssets/languages/fr.csv b/marching/Assets/StreamingAssets/languages/fr.csv
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/marching/Assets/StreamingAssets/languages/fr.csv
diff --git a/marching/Assets/StreamingAssets/languages/fr.csv.meta b/marching/Assets/StreamingAssets/languages/fr.csv.meta
new file mode 100644
index 0000000..f4a5e31
--- /dev/null
+++ b/marching/Assets/StreamingAssets/languages/fr.csv.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 4f4dd986cc6bfb649b9986bb3766be56
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/marching/Assets/StreamingAssets/languages/jp.csv b/marching/Assets/StreamingAssets/languages/jp.csv
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/marching/Assets/StreamingAssets/languages/jp.csv
diff --git a/marching/Assets/StreamingAssets/languages/jp.csv.meta b/marching/Assets/StreamingAssets/languages/jp.csv.meta
new file mode 100644
index 0000000..a262ae2
--- /dev/null
+++ b/marching/Assets/StreamingAssets/languages/jp.csv.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: f65f57e009a824a4784ea5273c02be09
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/marching/Assets/StreamingAssets/languages/kr.csv b/marching/Assets/StreamingAssets/languages/kr.csv
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/marching/Assets/StreamingAssets/languages/kr.csv
diff --git a/marching/Assets/StreamingAssets/languages/kr.csv.meta b/marching/Assets/StreamingAssets/languages/kr.csv.meta
new file mode 100644
index 0000000..0b40d31
--- /dev/null
+++ b/marching/Assets/StreamingAssets/languages/kr.csv.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: a3e9c19a47f073343a82326effdb3faf
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/marching/Assets/StreamingAssets/languages/ru.csv b/marching/Assets/StreamingAssets/languages/ru.csv
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/marching/Assets/StreamingAssets/languages/ru.csv
diff --git a/marching/Assets/StreamingAssets/languages/ru.csv.meta b/marching/Assets/StreamingAssets/languages/ru.csv.meta
new file mode 100644
index 0000000..35459c6
--- /dev/null
+++ b/marching/Assets/StreamingAssets/languages/ru.csv.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 46d1df3639a540a49ba9ea723db585bc
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/marching/Assets/StreamingAssets/languages/zh_cn.csv b/marching/Assets/StreamingAssets/languages/zh_cn.csv
new file mode 100644
index 0000000..a12e39e
--- /dev/null
+++ b/marching/Assets/StreamingAssets/languages/zh_cn.csv
@@ -0,0 +1,2 @@
+key value
+LEVEL 等级
diff --git a/marching/Assets/StreamingAssets/languages/zh_cn.csv.meta b/marching/Assets/StreamingAssets/languages/zh_cn.csv.meta
new file mode 100644
index 0000000..d4b77c6
--- /dev/null
+++ b/marching/Assets/StreamingAssets/languages/zh_cn.csv.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 11eb447a92983664ea690f86e938e3a1
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/marching/Assets/StreamingAssets/setting.json b/marching/Assets/StreamingAssets/setting.json
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/marching/Assets/StreamingAssets/setting.json
diff --git a/marching/Assets/StreamingAssets/setting.json.meta b/marching/Assets/StreamingAssets/setting.json.meta
new file mode 100644
index 0000000..57266fe
--- /dev/null
+++ b/marching/Assets/StreamingAssets/setting.json.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: f27d86eeddc5935418f70ae650c527bc
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/marching/Assets/ThirdParty/CSV-Parser.meta b/marching/Assets/ThirdParty/CSV-Parser.meta
new file mode 100644
index 0000000..c49c672
--- /dev/null
+++ b/marching/Assets/ThirdParty/CSV-Parser.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 4f2fe36487065064e821650e6429d9d9
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/marching/Assets/ThirdParty/CSV-Parser/.gitignore b/marching/Assets/ThirdParty/CSV-Parser/.gitignore
new file mode 100644
index 0000000..19f0983
--- /dev/null
+++ b/marching/Assets/ThirdParty/CSV-Parser/.gitignore
@@ -0,0 +1,15 @@
+obj/
+bin/
+.vs/
+.vscode/
+.idea/
+*.DotSettings
+*.user
+
+.DS_Store
+.DS_Store?
+._*
+.Spotlight-V100
+.Trashes
+ehthumbs.db
+Thumbs.db \ No newline at end of file
diff --git a/marching/Assets/ThirdParty/CSV-Parser/CSV Parser.meta b/marching/Assets/ThirdParty/CSV-Parser/CSV Parser.meta
new file mode 100644
index 0000000..1b9c4db
--- /dev/null
+++ b/marching/Assets/ThirdParty/CSV-Parser/CSV Parser.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 85cabb48324945548a8b18124ed3918a
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/marching/Assets/ThirdParty/CSV-Parser/CSV Parser.sln b/marching/Assets/ThirdParty/CSV-Parser/CSV Parser.sln
new file mode 100644
index 0000000..9e25d75
--- /dev/null
+++ b/marching/Assets/ThirdParty/CSV-Parser/CSV Parser.sln
@@ -0,0 +1,22 @@
+锘
+Microsoft Visual Studio Solution File, Format Version 12.00
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CSV Parser", "CSV Parser\CSV Parser.csproj", "{BB50E0DE-75A1-4E9A-AEFA-A823A434EFF3}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests", "Tests\Tests.csproj", "{C7E7ACFD-66DB-4296-8536-4418728F3A5D}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {BB50E0DE-75A1-4E9A-AEFA-A823A434EFF3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {BB50E0DE-75A1-4E9A-AEFA-A823A434EFF3}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {BB50E0DE-75A1-4E9A-AEFA-A823A434EFF3}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {BB50E0DE-75A1-4E9A-AEFA-A823A434EFF3}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C7E7ACFD-66DB-4296-8536-4418728F3A5D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C7E7ACFD-66DB-4296-8536-4418728F3A5D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C7E7ACFD-66DB-4296-8536-4418728F3A5D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C7E7ACFD-66DB-4296-8536-4418728F3A5D}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+EndGlobal
diff --git a/marching/Assets/ThirdParty/CSV-Parser/CSV Parser.sln.meta b/marching/Assets/ThirdParty/CSV-Parser/CSV Parser.sln.meta
new file mode 100644
index 0000000..3f5d3cf
--- /dev/null
+++ b/marching/Assets/ThirdParty/CSV-Parser/CSV Parser.sln.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 2d428b7f5708308489ff910a5977b13c
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/marching/Assets/ThirdParty/CSV-Parser/CSV Parser/CSV Parser.csproj b/marching/Assets/ThirdParty/CSV-Parser/CSV Parser/CSV Parser.csproj
new file mode 100644
index 0000000..bf48c73
--- /dev/null
+++ b/marching/Assets/ThirdParty/CSV-Parser/CSV Parser/CSV Parser.csproj
@@ -0,0 +1,13 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+ <PropertyGroup>
+ <TargetFramework>net6.0</TargetFramework>
+ <RootNamespace>CSV_Parser</RootNamespace>
+ <LangVersion>7.3</LangVersion>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <PackageReference Include="System.Memory" Version="4.5.4" />
+ </ItemGroup>
+
+</Project>
diff --git a/marching/Assets/ThirdParty/CSV-Parser/CSV Parser/CSV Parser.csproj.meta b/marching/Assets/ThirdParty/CSV-Parser/CSV Parser/CSV Parser.csproj.meta
new file mode 100644
index 0000000..da4f4a8
--- /dev/null
+++ b/marching/Assets/ThirdParty/CSV-Parser/CSV Parser/CSV Parser.csproj.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: c9cc963a877064748a9e6fe4397c807f
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src.meta b/marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src.meta
new file mode 100644
index 0000000..8e65917
--- /dev/null
+++ b/marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 3e17c685928714443973ed558020bdee
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src/CSVParser.cs b/marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src/CSVParser.cs
new file mode 100644
index 0000000..c886c19
--- /dev/null
+++ b/marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src/CSVParser.cs
@@ -0,0 +1,181 @@
+/*
+ * CSV Parser for C#.
+ *
+ * These codes are licensed under CC0.
+ * https://github.com/yutokun/CSV-Parser
+ */
+
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.IO;
+using System.Text;
+using System.Text.RegularExpressions;
+using System.Threading.Tasks;
+
+namespace yutokun
+{
+ public static class CSVParser
+ {
+ /// <summary>
+ /// Load CSV data from specified path.
+ /// </summary>
+ /// <param name="path">CSV file path.</param>
+ /// <param name="delimiter">Delimiter.</param>
+ /// <param name="encoding">Type of text encoding. (default UTF-8)</param>
+ /// <returns>Nested list that CSV parsed.</returns>
+ public static List<List<string>> LoadFromPath(string path, Delimiter delimiter = Delimiter.Auto, Encoding encoding = null)
+ {
+ encoding = encoding ?? Encoding.UTF8;
+
+ if (delimiter == Delimiter.Auto)
+ {
+ delimiter = EstimateDelimiter(path);
+ }
+
+ var data = File.ReadAllText(path, encoding);
+ return Parse(data, delimiter);
+ }
+
+ /// <summary>
+ /// Load CSV data asynchronously from specified path.
+ /// </summary>
+ /// <param name="path">CSV file path.</param>
+ /// <param name="delimiter">Delimiter.</param>
+ /// <param name="encoding">Type of text encoding. (default UTF-8)</param>
+ /// <returns>Nested list that CSV parsed.</returns>
+ public static async Task<List<List<string>>> LoadFromPathAsync(string path, Delimiter delimiter = Delimiter.Auto, Encoding encoding = null)
+ {
+ encoding = encoding ?? Encoding.UTF8;
+
+ if (delimiter == Delimiter.Auto)
+ {
+ delimiter = EstimateDelimiter(path);
+ }
+
+ using (var reader = new StreamReader(path, encoding))
+ {
+ var data = await reader.ReadToEndAsync();
+ return Parse(data, delimiter);
+ }
+ }
+
+ static Delimiter EstimateDelimiter(string path)
+ {
+ var extension = Path.GetExtension(path);
+ if (extension.Equals(".csv", StringComparison.OrdinalIgnoreCase))
+ {
+ return Delimiter.Comma;
+ }
+
+ if (extension.Equals(".tsv", StringComparison.OrdinalIgnoreCase))
+ {
+ return Delimiter.Tab;
+ }
+
+ throw new Exception($"Delimiter estimation failed. Unknown Extension: {extension}");
+ }
+
+ /// <summary>
+ /// Load CSV data from string.
+ /// </summary>
+ /// <param name="data">CSV string</param>
+ /// <param name="delimiter">Delimiter.</param>
+ /// <returns>Nested list that CSV parsed.</returns>
+ public static List<List<string>> LoadFromString(string data, Delimiter delimiter = Delimiter.Comma)
+ {
+ if (delimiter == Delimiter.Auto) throw new InvalidEnumArgumentException("Delimiter estimation from string is not supported.");
+ return Parse(data, delimiter);
+ }
+
+ static List<List<string>> Parse(string data, Delimiter delimiter)
+ {
+ ConvertToCrlf(ref data);
+
+ var sheet = new List<List<string>>();
+ var row = new List<string>();
+ var cell = new StringBuilder();
+ var insideQuoteCell = false;
+ var start = 0;
+
+ var delimiterSpan = delimiter.ToChar().ToString().AsSpan();
+ var crlfSpan = "\r\n".AsSpan();
+ var oneDoubleQuotSpan = "\"".AsSpan();
+ var twoDoubleQuotSpan = "\"\"".AsSpan();
+
+ while (start < data.Length)
+ {
+ var length = start <= data.Length - 2 ? 2 : 1;
+ var span = data.AsSpan(start, length);
+
+ if (span.StartsWith(delimiterSpan))
+ {
+ if (insideQuoteCell)
+ {
+ cell.Append(delimiter.ToChar());
+ }
+ else
+ {
+ AddCell(row, cell);
+ }
+
+ start += 1;
+ }
+ else if (span.StartsWith(crlfSpan))
+ {
+ if (insideQuoteCell)
+ {
+ cell.Append("\r\n");
+ }
+ else
+ {
+ AddCell(row, cell);
+ AddRow(sheet, ref row);
+ }
+
+ start += 2;
+ }
+ else if (span.StartsWith(twoDoubleQuotSpan))
+ {
+ cell.Append("\"");
+ start += 2;
+ }
+ else if (span.StartsWith(oneDoubleQuotSpan))
+ {
+ insideQuoteCell = !insideQuoteCell;
+ start += 1;
+ }
+ else
+ {
+ cell.Append(span[0]);
+ start += 1;
+ }
+ }
+
+ if (row.Count > 0 || cell.Length > 0)
+ {
+ AddCell(row, cell);
+ AddRow(sheet, ref row);
+ }
+
+ return sheet;
+ }
+
+ static void AddCell(List<string> row, StringBuilder cell)
+ {
+ row.Add(cell.ToString());
+ cell.Length = 0; // Old C#.
+ }
+
+ static void AddRow(List<List<string>> sheet, ref List<string> row)
+ {
+ sheet.Add(row);
+ row = new List<string>();
+ }
+
+ static void ConvertToCrlf(ref string data)
+ {
+ data = Regex.Replace(data, @"\r\n|\r|\n", "\r\n");
+ }
+ }
+}
diff --git a/marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src/CSVParser.cs.meta b/marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src/CSVParser.cs.meta
new file mode 100644
index 0000000..fb3cd58
--- /dev/null
+++ b/marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src/CSVParser.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 1dcf43e5bd8e0204580fc6899a086b00
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src/Delimiter.cs b/marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src/Delimiter.cs
new file mode 100644
index 0000000..b32dcc3
--- /dev/null
+++ b/marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src/Delimiter.cs
@@ -0,0 +1,9 @@
+锘縩amespace yutokun
+{
+ public enum Delimiter
+ {
+ Auto,
+ Comma,
+ Tab
+ }
+}
diff --git a/marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src/Delimiter.cs.meta b/marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src/Delimiter.cs.meta
new file mode 100644
index 0000000..8f7cf00
--- /dev/null
+++ b/marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src/Delimiter.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: e0e2bb27fdbb714468ca87aeaf607331
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src/DelimiterExtensions.cs b/marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src/DelimiterExtensions.cs
new file mode 100644
index 0000000..a38371d
--- /dev/null
+++ b/marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src/DelimiterExtensions.cs
@@ -0,0 +1,24 @@
+锘縰sing System;
+using System.ComponentModel;
+
+namespace yutokun
+{
+ public static class DelimiterExtensions
+ {
+ public static char ToChar(this Delimiter delimiter)
+ {
+ // C# 7.3: Unity 2018.2 - 2020.1 Compatible
+ switch (delimiter)
+ {
+ case Delimiter.Auto:
+ throw new InvalidEnumArgumentException("Could not return char of Delimiter.Auto.");
+ case Delimiter.Comma:
+ return ',';
+ case Delimiter.Tab:
+ return '\t';
+ default:
+ throw new ArgumentOutOfRangeException(nameof(delimiter), delimiter, null);
+ }
+ }
+ }
+}
diff --git a/marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src/DelimiterExtensions.cs.meta b/marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src/DelimiterExtensions.cs.meta
new file mode 100644
index 0000000..d98b86d
--- /dev/null
+++ b/marching/Assets/ThirdParty/CSV-Parser/CSV Parser/src/DelimiterExtensions.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 7b9ab5b183dd311459e9893fe735bea6
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/marching/Assets/ThirdParty/CSV-Parser/LICENSE b/marching/Assets/ThirdParty/CSV-Parser/LICENSE
new file mode 100644
index 0000000..8a9b3dc
--- /dev/null
+++ b/marching/Assets/ThirdParty/CSV-Parser/LICENSE
@@ -0,0 +1,35 @@
+For unique parts of the repository
+
+This is free and unencumbered software released into the public domain.
+
+Anyone is free to copy, modify, publish, use, compile, sell, or
+distribute this software, either in source code form or as a compiled
+binary, for any purpose, commercial or non-commercial, and by any
+means.
+
+In jurisdictions that recognize copyright laws, the author or authors
+of this software dedicate any and all copyright interest in the
+software to the public domain. We make this dedication for the benefit
+of the public at large and to the detriment of our heirs and
+successors. We intend this dedication to be an overt act of
+relinquishment in perpetuity of all present and future rights to this
+software under copyright law.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+For more information, please refer to <http://unlicense.org>
+
+--------------------------------------------------------------------------------------------
+
+For .NET Runtimes (included in the .unitypackage for old Unity)
+
+The MIT License
+Copyright (c) .NET Foundation and Contributors
+
+https://github.com/dotnet/runtime/blob/main/LICENSE.TXT \ No newline at end of file
diff --git a/marching/Assets/ThirdParty/CSV-Parser/LICENSE.meta b/marching/Assets/ThirdParty/CSV-Parser/LICENSE.meta
new file mode 100644
index 0000000..1df5cd4
--- /dev/null
+++ b/marching/Assets/ThirdParty/CSV-Parser/LICENSE.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: e44599b63f0a77d408c64fcf15e388e1
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/marching/Assets/ThirdParty/CSV-Parser/README.md b/marching/Assets/ThirdParty/CSV-Parser/README.md
new file mode 100644
index 0000000..c87aaef
--- /dev/null
+++ b/marching/Assets/ThirdParty/CSV-Parser/README.md
@@ -0,0 +1,102 @@
+# CSV Parser for C#
+
+[![Test](https://github.com/yutokun/CSV-Parser/actions/workflows/test.yml/badge.svg)](https://github.com/yutokun/CSV-Parser/actions/workflows/test.yml)
+
+CSV Parser with CC0 License.
+
+Best for:
+
+- [Unity](https://unity3d.com/) projects that requires cross-platform CSV parser. (maybe works on any platform supported by Unity)
+- Commercial products that you could not display the license.
+
+## Prerequisites
+
+| Environment | Prerequisites |
+| ----------------------- | ------------------------------------------------------------------------- |
+| Unity 2019.2 or later | None |
+| Unity 2019.1 or earlier | .NET 4.x Equivalent |
+| .NET Project | [System.Memory](https://www.nuget.org/packages/System.Memory/) from NuGet |
+
+## Download
+
+Download zip or unitypackage from [**Releases**](https://github.com/yutokun/CSV-Parser/releases).
+
+## Usage
+
+### Methods
+
+This returns CSV data as `List<List<string>>`.
+
+```c#
+CSVParser.LoadFromString(string data)
+```
+
+or
+
+```c#
+CSVParser.LoadFromPath(string path, Encoding encoding = null)
+```
+
+### Examples
+
+```c#
+var sheet = CSVParser.LoadFromString(csvString);
+
+var styled = new StringBuilder();
+foreach (var row in sheet)
+{
+ styled.Append("| ");
+
+ foreach (var cell in row)
+ {
+ styled.Append(cell);
+ styled.Append(" | ");
+ }
+
+ styled.AppendLine();
+}
+
+Debug.Log(styled.ToString()); // Unity
+Console.WriteLine(styled.ToString()); // C#
+```
+
+## Specs
+
+Compliant with [RFC 4180](http://www.ietf.org/rfc/rfc4180.txt).
+
+- Correctly parse new lines, commas, quotation marks inside cell.
+- Escaped double quotes.
+- Some encoding types. (default UTF-8)
+
+## Beta
+
+- Tab delimiter support
+
+- Async loading
+
+## Development
+
+The repository contains multiple types of newline code. Run `git config core.autocrlf false` in your local repository.
+
+## Why this repo has multiple Unity Examples?
+
+One of the reasons is to check operation in different Unity versions. Another one is to build .unitypackage with CI.
+
+Unity changes a lot between their Tech Streams. It leads different requisites / dependency to the parser. Affected changes below.
+
+| Versions | Difference |
+| ----------------- | ---------------------------------------------- |
+| 2019.1 and 2019.2 | Has Scripting Runtime Version selector or not. |
+| 2021.1 and 2021.2 | Requires additional DLLs or not. |
+
+## License
+
+### Unique part of the repository
+
+[CC0](https://creativecommons.org/publicdomain/zero/1.0/) or [Public Domain](LICENSE)
+
+### .NET Runtimes (included in the .unitypackage for old Unity)
+
+[The MIT License](https://github.com/dotnet/runtime/blob/main/LICENSE.TXT)
+
+Copyright (c) .NET Foundation and Contributors
diff --git a/marching/Assets/ThirdParty/CSV-Parser/README.md.meta b/marching/Assets/ThirdParty/CSV-Parser/README.md.meta
new file mode 100644
index 0000000..97d3fa3
--- /dev/null
+++ b/marching/Assets/ThirdParty/CSV-Parser/README.md.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 369bbbb3341b6ec4583dce723dc805f4
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/marching/Assets/ThirdParty/CSV-Parser/RELEASE.md b/marching/Assets/ThirdParty/CSV-Parser/RELEASE.md
new file mode 100644
index 0000000..99ec2e9
--- /dev/null
+++ b/marching/Assets/ThirdParty/CSV-Parser/RELEASE.md
@@ -0,0 +1,14 @@
+# Change
+
+- Updated project to .NET 6. It because deprecation of .NET 5 by GitHub Actions.
+ - CSV Parser itself has same prerequisites as before.
+
+# Fix
+
+- Fixed a bug that last cell will be ignored when single cell rows not ending with CRLF. (Thank you so much @gmichaudAniki !)
+
+# Misc. Changes
+
+- Fixed some errors in README.
+
+- Updated CI to compliant with Node.js 16. \ No newline at end of file
diff --git a/marching/Assets/ThirdParty/CSV-Parser/RELEASE.md.meta b/marching/Assets/ThirdParty/CSV-Parser/RELEASE.md.meta
new file mode 100644
index 0000000..cc47df1
--- /dev/null
+++ b/marching/Assets/ThirdParty/CSV-Parser/RELEASE.md.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: baea5598d0dce0441a1b60a3364f3cc7
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/marching/Assets/ThirdParty/CSV-Parser/Tests.meta b/marching/Assets/ThirdParty/CSV-Parser/Tests.meta
new file mode 100644
index 0000000..c219211
--- /dev/null
+++ b/marching/Assets/ThirdParty/CSV-Parser/Tests.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 229bb474319e02440b7fde15814d354e
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/marching/Assets/ThirdParty/CSV-Parser/Unity Examples.meta b/marching/Assets/ThirdParty/CSV-Parser/Unity Examples.meta
new file mode 100644
index 0000000..eb2f7be
--- /dev/null
+++ b/marching/Assets/ThirdParty/CSV-Parser/Unity Examples.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 6e45f679bb3e6f54a8ae2adea95ddc1e
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/marching/Assets/ThirdParty/CSV-Parser/global.json b/marching/Assets/ThirdParty/CSV-Parser/global.json
new file mode 100644
index 0000000..1bcf6c0
--- /dev/null
+++ b/marching/Assets/ThirdParty/CSV-Parser/global.json
@@ -0,0 +1,7 @@
+{
+ "sdk": {
+ "version": "6.0.0",
+ "rollForward": "latestMinor",
+ "allowPrerelease": false
+ }
+} \ No newline at end of file
diff --git a/marching/Assets/ThirdParty/CSV-Parser/global.json.meta b/marching/Assets/ThirdParty/CSV-Parser/global.json.meta
new file mode 100644
index 0000000..b2d9917
--- /dev/null
+++ b/marching/Assets/ThirdParty/CSV-Parser/global.json.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: d4150b58aa163dc4d8a2aa3241ae51ea
+TextScriptImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant: