diff options
author | chai <chaifix@163.com> | 2021-01-25 14:28:30 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2021-01-25 14:28:30 +0800 |
commit | 6eb915c129fc90c6f4c82ae097dd6ffad5239efc (patch) | |
tree | 7dd2be50edf41f36b60fac84696e731c13afe617 /Client/Assets/Scripts/XUtliPoolLib |
+scripts
Diffstat (limited to 'Client/Assets/Scripts/XUtliPoolLib')
1266 files changed, 71214 insertions, 0 deletions
diff --git a/Client/Assets/Scripts/XUtliPoolLib/AbyssPartyListTable.cs b/Client/Assets/Scripts/XUtliPoolLib/AbyssPartyListTable.cs new file mode 100644 index 00000000..ceae4f8b --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AbyssPartyListTable.cs @@ -0,0 +1,83 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class AbyssPartyListTable : CVSReader
+ {
+ public AbyssPartyListTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int AbyssPartyId;
+
+ public int Index;
+
+ public string Name;
+
+ public string Icon;
+
+ public SeqRef<int> Cost;
+
+ public uint SugPPT;
+
+ public int ID;
+ }
+
+ public AbyssPartyListTable.RowData GetByID(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ AbyssPartyListTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].ID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ AbyssPartyListTable.RowData rowData = new AbyssPartyListTable.RowData();
+ base.Read<int>(reader, ref rowData.AbyssPartyId, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<int>(reader, ref rowData.Index, CVSReader.intParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.Name, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.Icon, CVSReader.stringParse);
+ this.columnno = 3;
+ rowData.Cost.Read(reader, this.m_DataHandler);
+ this.columnno = 4;
+ base.Read<uint>(reader, ref rowData.SugPPT, CVSReader.uintParse);
+ this.columnno = 5;
+ base.Read<int>(reader, ref rowData.ID, CVSReader.intParse);
+ this.columnno = 7;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new AbyssPartyListTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/AbyssPartyListTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/AbyssPartyListTable.cs.meta new file mode 100644 index 00000000..9933f0c4 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AbyssPartyListTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: be0174499ba972b488a8b975140450a4 +timeCreated: 1611465751 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/AbyssPartyTypeTable.cs b/Client/Assets/Scripts/XUtliPoolLib/AbyssPartyTypeTable.cs new file mode 100644 index 00000000..bc951eee --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AbyssPartyTypeTable.cs @@ -0,0 +1,83 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class AbyssPartyTypeTable : CVSReader
+ {
+ public AbyssPartyTypeTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int AbyssPartyId;
+
+ public string Name;
+
+ public string Icon;
+
+ public int OpenLevel;
+
+ public string SugLevel;
+
+ public int PandoraID;
+
+ public int[] TitanItemID;
+ }
+
+ public AbyssPartyTypeTable.RowData GetByAbyssPartyId(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ AbyssPartyTypeTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].AbyssPartyId == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ AbyssPartyTypeTable.RowData rowData = new AbyssPartyTypeTable.RowData();
+ base.Read<int>(reader, ref rowData.AbyssPartyId, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.Name, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.Icon, CVSReader.stringParse);
+ this.columnno = 3;
+ base.Read<int>(reader, ref rowData.OpenLevel, CVSReader.intParse);
+ this.columnno = 4;
+ base.Read<string>(reader, ref rowData.SugLevel, CVSReader.stringParse);
+ this.columnno = 5;
+ base.Read<int>(reader, ref rowData.PandoraID, CVSReader.intParse);
+ this.columnno = 6;
+ base.ReadArray<int>(reader, ref rowData.TitanItemID, CVSReader.intParse);
+ this.columnno = 7;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new AbyssPartyTypeTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/AbyssPartyTypeTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/AbyssPartyTypeTable.cs.meta new file mode 100644 index 00000000..4d022a2f --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AbyssPartyTypeTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 80ce571715a34a84e807defabcf6e37b +timeCreated: 1611465693 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/AccessCallback.cs b/Client/Assets/Scripts/XUtliPoolLib/AccessCallback.cs new file mode 100644 index 00000000..741b6aea --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AccessCallback.cs @@ -0,0 +1,6 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public delegate void AccessCallback();
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/AccessCallback.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/AccessCallback.cs.meta new file mode 100644 index 00000000..aa8170e6 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AccessCallback.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: bab6e355cabc6024f94c3c46a8b5fc2d +timeCreated: 1611465748 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/AchievementPointRewardTable.cs b/Client/Assets/Scripts/XUtliPoolLib/AchievementPointRewardTable.cs new file mode 100644 index 00000000..3208ed77 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AchievementPointRewardTable.cs @@ -0,0 +1,67 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class AchievementPointRewardTable : CVSReader
+ {
+ public AchievementPointRewardTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int ID;
+
+ public int Point;
+
+ public SeqListRef<int> Reward;
+ }
+
+ public AchievementPointRewardTable.RowData GetByID(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ AchievementPointRewardTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].ID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ AchievementPointRewardTable.RowData rowData = new AchievementPointRewardTable.RowData();
+ base.Read<int>(reader, ref rowData.ID, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<int>(reader, ref rowData.Point, CVSReader.intParse);
+ this.columnno = 1;
+ rowData.Reward.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new AchievementPointRewardTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/AchievementPointRewardTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/AchievementPointRewardTable.cs.meta new file mode 100644 index 00000000..1c8dc6a7 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AchievementPointRewardTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2a82659250e30534c92f115960713bf4 +timeCreated: 1611465303 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/AchievementV2Table.cs b/Client/Assets/Scripts/XUtliPoolLib/AchievementV2Table.cs new file mode 100644 index 00000000..08607fff --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AchievementV2Table.cs @@ -0,0 +1,141 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class AchievementV2Table : CVSReader
+ {
+ public AchievementV2Table.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int ID;
+
+ public string Achievement;
+
+ public int Type;
+
+ public string Explanation;
+
+ public SeqListRef<int> Reward;
+
+ public string ICON;
+
+ public string DesignationName;
+
+ public int GainShowIcon;
+
+ public int SortID;
+ }
+
+ public AchievementV2Table.RowData GetByID(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ AchievementV2Table.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchID(key);
+ }
+ return result;
+ }
+
+ private AchievementV2Table.RowData BinarySearchID(int key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ AchievementV2Table.RowData rowData;
+ AchievementV2Table.RowData rowData2;
+ AchievementV2Table.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.ID == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.ID == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.ID.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.ID.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ AchievementV2Table.RowData rowData = new AchievementV2Table.RowData();
+ base.Read<int>(reader, ref rowData.ID, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.Achievement, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<int>(reader, ref rowData.Type, CVSReader.intParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.Explanation, CVSReader.stringParse);
+ this.columnno = 3;
+ rowData.Reward.Read(reader, this.m_DataHandler);
+ this.columnno = 6;
+ base.Read<string>(reader, ref rowData.ICON, CVSReader.stringParse);
+ this.columnno = 7;
+ base.Read<string>(reader, ref rowData.DesignationName, CVSReader.stringParse);
+ this.columnno = 8;
+ base.Read<int>(reader, ref rowData.GainShowIcon, CVSReader.intParse);
+ this.columnno = 9;
+ base.Read<int>(reader, ref rowData.SortID, CVSReader.intParse);
+ this.columnno = 10;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new AchievementV2Table.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/AchievementV2Table.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/AchievementV2Table.cs.meta new file mode 100644 index 00000000..2c03ce3e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AchievementV2Table.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1a2c662847fe5174ea3bb1369372f667 +timeCreated: 1611465296 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/AchivementTable.cs b/Client/Assets/Scripts/XUtliPoolLib/AchivementTable.cs new file mode 100644 index 00000000..793f3fbd --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AchivementTable.cs @@ -0,0 +1,91 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class AchivementTable : CVSReader
+ {
+ public AchivementTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int AchievementID;
+
+ public string AchievementName;
+
+ public string AchievementIcon;
+
+ public int AchievementLevel;
+
+ public SeqListRef<int> AchievementItem;
+
+ public int AchievementParam;
+
+ public string AchievementDescription;
+
+ public int AchievementCategory;
+
+ public int ShowAchivementTip;
+ }
+
+ public AchivementTable.RowData GetByAchievementID(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ AchivementTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].AchievementID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ AchivementTable.RowData rowData = new AchivementTable.RowData();
+ base.Read<int>(reader, ref rowData.AchievementID, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.AchievementName, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.AchievementIcon, CVSReader.stringParse);
+ this.columnno = 3;
+ base.Read<int>(reader, ref rowData.AchievementLevel, CVSReader.intParse);
+ this.columnno = 4;
+ rowData.AchievementItem.Read(reader, this.m_DataHandler);
+ this.columnno = 5;
+ base.Read<int>(reader, ref rowData.AchievementParam, CVSReader.intParse);
+ this.columnno = 6;
+ base.Read<string>(reader, ref rowData.AchievementDescription, CVSReader.stringParse);
+ this.columnno = 7;
+ base.Read<int>(reader, ref rowData.AchievementCategory, CVSReader.intParse);
+ this.columnno = 8;
+ base.Read<int>(reader, ref rowData.ShowAchivementTip, CVSReader.intParse);
+ this.columnno = 11;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new AchivementTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/AchivementTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/AchivementTable.cs.meta new file mode 100644 index 00000000..5bb0e344 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AchivementTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4f4ed1d122c32ba46938c0d6c2275894 +timeCreated: 1611465642 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ActionAudio.cs b/Client/Assets/Scripts/XUtliPoolLib/ActionAudio.cs new file mode 100644 index 00000000..bcada614 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ActionAudio.cs @@ -0,0 +1,90 @@ +using System;
+using System.Collections.Generic;
+
+namespace XUtliPoolLib
+{
+ public class ActionAudio : CVSReader
+ {
+ public Dictionary<string, ActionAudio.RowData> Table = new Dictionary<string, ActionAudio.RowData>();
+
+ public class RowData
+ {
+ public string Prefab;
+
+ public string[] Idle;
+
+ public string[] Move;
+
+ public string[] Jump;
+
+ public string[] Fall;
+
+ public string[] Charge;
+
+ public string[] Freeze;
+
+ public string[] Behit;
+
+ public string[] Death;
+
+ public string[] BehitFly;
+
+ public string[] BehitRoll;
+
+ public string[] BehitSuperArmor;
+ }
+
+ public ActionAudio.RowData GetByPrefab(string key)
+ {
+ bool flag = this.Table.Count == 0;
+ ActionAudio.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ ActionAudio.RowData rowData = null;
+ this.Table.TryGetValue(key, out rowData);
+ result = rowData;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ ActionAudio.RowData rowData = new ActionAudio.RowData();
+ base.Read<string>(reader, ref rowData.Prefab, CVSReader.stringParse);
+ this.columnno = 0;
+ base.ReadArray<string>(reader, ref rowData.Idle, CVSReader.stringParse);
+ this.columnno = 1;
+ base.ReadArray<string>(reader, ref rowData.Move, CVSReader.stringParse);
+ this.columnno = 2;
+ base.ReadArray<string>(reader, ref rowData.Jump, CVSReader.stringParse);
+ this.columnno = 3;
+ base.ReadArray<string>(reader, ref rowData.Fall, CVSReader.stringParse);
+ this.columnno = 4;
+ base.ReadArray<string>(reader, ref rowData.Charge, CVSReader.stringParse);
+ this.columnno = 6;
+ base.ReadArray<string>(reader, ref rowData.Freeze, CVSReader.stringParse);
+ this.columnno = 7;
+ base.ReadArray<string>(reader, ref rowData.Behit, CVSReader.stringParse);
+ this.columnno = 8;
+ base.ReadArray<string>(reader, ref rowData.Death, CVSReader.stringParse);
+ this.columnno = 9;
+ base.ReadArray<string>(reader, ref rowData.BehitFly, CVSReader.stringParse);
+ this.columnno = 10;
+ base.ReadArray<string>(reader, ref rowData.BehitRoll, CVSReader.stringParse);
+ this.columnno = 11;
+ base.ReadArray<string>(reader, ref rowData.BehitSuperArmor, CVSReader.stringParse);
+ this.columnno = 12;
+ this.Table[rowData.Prefab] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ this.Table.Clear();
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ActionAudio.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ActionAudio.cs.meta new file mode 100644 index 00000000..95c2c9ab --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ActionAudio.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 9450d9a8ebbe4cc48a403c861ec9fbfc +timeCreated: 1611465707 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ActivityChestTable.cs b/Client/Assets/Scripts/XUtliPoolLib/ActivityChestTable.cs new file mode 100644 index 00000000..c4fdc9d1 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ActivityChestTable.cs @@ -0,0 +1,44 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class ActivityChestTable : CVSReader
+ {
+ public ActivityChestTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint chest;
+
+ public SeqRef<uint> level;
+
+ public SeqListRef<uint> viewabledrop;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ ActivityChestTable.RowData rowData = new ActivityChestTable.RowData();
+ base.Read<uint>(reader, ref rowData.chest, CVSReader.uintParse);
+ this.columnno = 0;
+ rowData.level.Read(reader, this.m_DataHandler);
+ this.columnno = 1;
+ rowData.viewabledrop.Read(reader, this.m_DataHandler);
+ this.columnno = 4;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new ActivityChestTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ActivityChestTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ActivityChestTable.cs.meta new file mode 100644 index 00000000..fcdc3371 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ActivityChestTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ff581b2e84cb1954e8bff99996afe9d1 +timeCreated: 1611465813 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ActivityListTable.cs b/Client/Assets/Scripts/XUtliPoolLib/ActivityListTable.cs new file mode 100644 index 00000000..7eb0f128 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ActivityListTable.cs @@ -0,0 +1,95 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class ActivityListTable : CVSReader
+ {
+ public ActivityListTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint SysID;
+
+ public string Tittle;
+
+ public string[] TagNames;
+
+ public string Icon;
+
+ public string[] TagName;
+
+ public bool HadShop;
+
+ public SeqListRef<uint> DropItems;
+
+ public string Describe;
+
+ public uint SortIndex;
+
+ public string AtlasPath;
+ }
+
+ public ActivityListTable.RowData GetBySysID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ ActivityListTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].SysID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ ActivityListTable.RowData rowData = new ActivityListTable.RowData();
+ base.Read<uint>(reader, ref rowData.SysID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.Tittle, CVSReader.stringParse);
+ this.columnno = 1;
+ base.ReadArray<string>(reader, ref rowData.TagNames, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.Icon, CVSReader.stringParse);
+ this.columnno = 3;
+ base.ReadArray<string>(reader, ref rowData.TagName, CVSReader.stringParse);
+ this.columnno = 4;
+ base.Read<bool>(reader, ref rowData.HadShop, CVSReader.boolParse);
+ this.columnno = 5;
+ rowData.DropItems.Read(reader, this.m_DataHandler);
+ this.columnno = 6;
+ base.Read<string>(reader, ref rowData.Describe, CVSReader.stringParse);
+ this.columnno = 7;
+ base.Read<uint>(reader, ref rowData.SortIndex, CVSReader.uintParse);
+ this.columnno = 8;
+ base.Read<string>(reader, ref rowData.AtlasPath, CVSReader.stringParse);
+ this.columnno = 9;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new ActivityListTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ActivityListTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ActivityListTable.cs.meta new file mode 100644 index 00000000..ce345fa8 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ActivityListTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1b65a33b269682d4abf9e952b0afe278 +timeCreated: 1611465297 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ActivityPopInfo.cs b/Client/Assets/Scripts/XUtliPoolLib/ActivityPopInfo.cs new file mode 100644 index 00000000..3b2aaacd --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ActivityPopInfo.cs @@ -0,0 +1,17 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class ActivityPopInfo
+ {
+ public string activityName = "";
+
+ public bool isReady = false;
+
+ public bool isClose = false;
+
+ public int priority = 999;
+
+ public int isNomalType = 1;
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ActivityPopInfo.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ActivityPopInfo.cs.meta new file mode 100644 index 00000000..3ac5bd5c --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ActivityPopInfo.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: df9f63ebabb9b6f4880971072a861bce +timeCreated: 1611465798 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ActivityTabInfo.cs b/Client/Assets/Scripts/XUtliPoolLib/ActivityTabInfo.cs new file mode 100644 index 00000000..03e47197 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ActivityTabInfo.cs @@ -0,0 +1,23 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class ActivityTabInfo
+ {
+ public string activityName = "";
+
+ public string tabName = "";
+
+ public string tabIcon = "";
+
+ public bool tabShow = false;
+
+ public bool redPointShow = false;
+
+ public string moduleName = "";
+
+ public int sysID = 0;
+
+ public int sort = 999;
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ActivityTabInfo.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ActivityTabInfo.cs.meta new file mode 100644 index 00000000..a0147300 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ActivityTabInfo.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 769626a317f720e478eb0f1ccd2369d9 +timeCreated: 1611465689 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ActivityTable.cs b/Client/Assets/Scripts/XUtliPoolLib/ActivityTable.cs new file mode 100644 index 00000000..bda77526 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ActivityTable.cs @@ -0,0 +1,91 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class ActivityTable : CVSReader
+ {
+ public ActivityTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint id;
+
+ public uint value;
+
+ public string name;
+
+ public string icon;
+
+ public string description;
+
+ public SeqListRef<int> item;
+
+ public uint sortid;
+
+ public uint random;
+
+ public string title;
+ }
+
+ public ActivityTable.RowData GetBysortid(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ ActivityTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].sortid == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ ActivityTable.RowData rowData = new ActivityTable.RowData();
+ base.Read<uint>(reader, ref rowData.id, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.value, CVSReader.uintParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.name, CVSReader.stringParse);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.icon, CVSReader.stringParse);
+ this.columnno = 4;
+ base.Read<string>(reader, ref rowData.description, CVSReader.stringParse);
+ this.columnno = 7;
+ rowData.item.Read(reader, this.m_DataHandler);
+ this.columnno = 8;
+ base.Read<uint>(reader, ref rowData.sortid, CVSReader.uintParse);
+ this.columnno = 9;
+ base.Read<uint>(reader, ref rowData.random, CVSReader.uintParse);
+ this.columnno = 10;
+ base.Read<string>(reader, ref rowData.title, CVSReader.stringParse);
+ this.columnno = 11;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new ActivityTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ActivityTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ActivityTable.cs.meta new file mode 100644 index 00000000..ba7d4867 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ActivityTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 3f5f552ee8a60b04b8341d53fcc91b43 +timeCreated: 1611465634 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/AncientTask.cs b/Client/Assets/Scripts/XUtliPoolLib/AncientTask.cs new file mode 100644 index 00000000..1c8c6e46 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AncientTask.cs @@ -0,0 +1,52 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class AncientTask : CVSReader
+ {
+ public AncientTask.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint ID;
+
+ public string title;
+
+ public string content;
+
+ public string time;
+
+ public SeqListRef<uint> rewards;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ AncientTask.RowData rowData = new AncientTask.RowData();
+ base.Read<uint>(reader, ref rowData.ID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.title, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.content, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.time, CVSReader.stringParse);
+ this.columnno = 3;
+ rowData.rewards.Read(reader, this.m_DataHandler);
+ this.columnno = 4;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new AncientTask.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/AncientTask.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/AncientTask.cs.meta new file mode 100644 index 00000000..2b006872 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AncientTask.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 6a202ffede3f68540b20c22328b21d99 +timeCreated: 1611465684 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/AncientTimesTable.cs b/Client/Assets/Scripts/XUtliPoolLib/AncientTimesTable.cs new file mode 100644 index 00000000..a938aa5c --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AncientTimesTable.cs @@ -0,0 +1,48 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class AncientTimesTable : CVSReader
+ {
+ public AncientTimesTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint ID;
+
+ public SeqRef<uint> nPoints;
+
+ public SeqListRef<uint> Items;
+
+ public string Title;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ AncientTimesTable.RowData rowData = new AncientTimesTable.RowData();
+ base.Read<uint>(reader, ref rowData.ID, CVSReader.uintParse);
+ this.columnno = 0;
+ rowData.nPoints.Read(reader, this.m_DataHandler);
+ this.columnno = 1;
+ rowData.Items.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.Title, CVSReader.stringParse);
+ this.columnno = 3;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new AncientTimesTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/AncientTimesTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/AncientTimesTable.cs.meta new file mode 100644 index 00000000..295902ba --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AncientTimesTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2f20e09575bef884684af10a335f0e5e +timeCreated: 1611465306 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/AndroidAssetBundleLoader.cs b/Client/Assets/Scripts/XUtliPoolLib/AndroidAssetBundleLoader.cs new file mode 100644 index 00000000..76e02821 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AndroidAssetBundleLoader.cs @@ -0,0 +1,83 @@ +using System;
+using System.Collections;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ internal class AndroidAssetBundleLoader : MobileAssetBundleLoader
+ {
+ protected override IEnumerator LoadFromPackage()
+ {
+ bool flag = this.state == LoadState.State_Complete;
+ if (flag)
+ {
+ this.Complete();
+ }
+ else
+ {
+ bool flag2 = this.state != LoadState.State_Error;
+ if (flag2)
+ {
+ AssetBundleCreateRequest req = AssetBundle.LoadFromFileAsync(this._assetBundleSourceFile);
+ while (!req.isDone)
+ {
+ yield return null;
+ }
+ bool flag3 = this._bundle == null;
+ if (flag3)
+ {
+ this._bundle = req.assetBundle;
+ }
+ bool flag4 = this.state != LoadState.State_Complete && base.UnloadNotLoadingBundle(this._bundle);
+ if (flag4)
+ {
+ req = AssetBundle.LoadFromFileAsync(this._assetBundleSourceFile);
+ while (!req.isDone)
+ {
+ yield return null;
+ }
+ bool flag5 = this._bundle == null;
+ if (flag5)
+ {
+ this._bundle = req.assetBundle;
+ }
+ }
+ this.Complete();
+ req = null;
+ }
+ }
+ yield break;
+ }
+
+ protected override void LoadFromPackageImm()
+ {
+ bool flag = this.state == LoadState.State_Complete;
+ if (flag)
+ {
+ this.Complete();
+ }
+ else
+ {
+ bool flag2 = this.state != LoadState.State_Error;
+ if (flag2)
+ {
+ bool flag3 = this._bundle == null;
+ if (flag3)
+ {
+ this._bundle = AssetBundle.LoadFromFile(this._assetBundleSourceFile);
+ }
+ bool flag4 = this.state != LoadState.State_Complete && base.UnloadNotLoadingBundle(this._bundle);
+ if (flag4)
+ {
+ bool flag5 = this._bundle == null;
+ if (flag5)
+ {
+ this._bundle = AssetBundle.LoadFromFile(this._assetBundleSourceFile);
+ }
+ }
+ this.Complete();
+ }
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/AndroidAssetBundleLoader.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/AndroidAssetBundleLoader.cs.meta new file mode 100644 index 00000000..34130f3d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AndroidAssetBundleLoader.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 230f137568b42134d9f7721c6bc0a1eb +timeCreated: 1611465300 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/AnimLoadCallback.cs b/Client/Assets/Scripts/XUtliPoolLib/AnimLoadCallback.cs new file mode 100644 index 00000000..b647addc --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AnimLoadCallback.cs @@ -0,0 +1,6 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public delegate void AnimLoadCallback(XAnimator ator);
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/AnimLoadCallback.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/AnimLoadCallback.cs.meta new file mode 100644 index 00000000..da331d25 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AnimLoadCallback.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ddb6327ab9c512b47a774a68d43a9e84 +timeCreated: 1611465797 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ArgentaDaily.cs b/Client/Assets/Scripts/XUtliPoolLib/ArgentaDaily.cs new file mode 100644 index 00000000..8454ee92 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ArgentaDaily.cs @@ -0,0 +1,71 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class ArgentaDaily : CVSReader
+ {
+ public ArgentaDaily.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint ID;
+
+ public SeqListRef<uint> Reward;
+
+ public string Description;
+
+ public string Title;
+ }
+
+ public ArgentaDaily.RowData GetByID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ ArgentaDaily.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].ID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ ArgentaDaily.RowData rowData = new ArgentaDaily.RowData();
+ base.Read<uint>(reader, ref rowData.ID, CVSReader.uintParse);
+ this.columnno = 0;
+ rowData.Reward.Read(reader, this.m_DataHandler);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.Description, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.Title, CVSReader.stringParse);
+ this.columnno = 3;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new ArgentaDaily.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ArgentaDaily.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ArgentaDaily.cs.meta new file mode 100644 index 00000000..fd85b672 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ArgentaDaily.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: bd25d1ce9d24553479afb4451e0e7c6c +timeCreated: 1611465750 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ArgentaTask.cs b/Client/Assets/Scripts/XUtliPoolLib/ArgentaTask.cs new file mode 100644 index 00000000..8360b169 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ArgentaTask.cs @@ -0,0 +1,44 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class ArgentaTask : CVSReader
+ {
+ public ArgentaTask.RowData[] Table = null;
+
+ public class RowData
+ {
+ public SeqRef<uint> LevelRange;
+
+ public uint TaskID;
+
+ public SeqListRef<uint> Reward;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ ArgentaTask.RowData rowData = new ArgentaTask.RowData();
+ rowData.LevelRange.Read(reader, this.m_DataHandler);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.TaskID, CVSReader.uintParse);
+ this.columnno = 1;
+ rowData.Reward.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new ArgentaTask.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ArgentaTask.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ArgentaTask.cs.meta new file mode 100644 index 00000000..f05d5c9b --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ArgentaTask.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2bd5cb4014938364e98c904bad548567 +timeCreated: 1611465304 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ArtifactComposeTable.cs b/Client/Assets/Scripts/XUtliPoolLib/ArtifactComposeTable.cs new file mode 100644 index 00000000..b3c4026c --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ArtifactComposeTable.cs @@ -0,0 +1,44 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class ArtifactComposeTable : CVSReader
+ {
+ public ArtifactComposeTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint ArtifactLevel;
+
+ public uint ArtifactQuality;
+
+ public SeqListRef<uint> ArtifactNum2DropID;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ ArtifactComposeTable.RowData rowData = new ArtifactComposeTable.RowData();
+ base.Read<uint>(reader, ref rowData.ArtifactLevel, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.ArtifactQuality, CVSReader.uintParse);
+ this.columnno = 1;
+ rowData.ArtifactNum2DropID.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new ArtifactComposeTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ArtifactComposeTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ArtifactComposeTable.cs.meta new file mode 100644 index 00000000..ab1d0ff3 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ArtifactComposeTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ae06b47932a34f04ea0c406473488a8e +timeCreated: 1611465742 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ArtifactEffect.cs b/Client/Assets/Scripts/XUtliPoolLib/ArtifactEffect.cs new file mode 100644 index 00000000..e508e3eb --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ArtifactEffect.cs @@ -0,0 +1,44 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class ArtifactEffect : CVSReader
+ {
+ public ArtifactEffect.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint Quanlity;
+
+ public uint AttrTyte;
+
+ public string Path;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ ArtifactEffect.RowData rowData = new ArtifactEffect.RowData();
+ base.Read<uint>(reader, ref rowData.Quanlity, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.AttrTyte, CVSReader.uintParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.Path, CVSReader.stringParse);
+ this.columnno = 2;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new ArtifactEffect.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ArtifactEffect.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ArtifactEffect.cs.meta new file mode 100644 index 00000000..09a95100 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ArtifactEffect.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 13cf287b0e9798741b92c0f1f975ff08 +timeCreated: 1611465293 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ArtifactListTable.cs b/Client/Assets/Scripts/XUtliPoolLib/ArtifactListTable.cs new file mode 100644 index 00000000..c5746501 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ArtifactListTable.cs @@ -0,0 +1,127 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class ArtifactListTable : CVSReader
+ {
+ public ArtifactListTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint ArtifactID;
+
+ public uint ArtifactPos;
+
+ public uint ArtifactSuit;
+
+ public SeqListRef<uint> Attributes1;
+
+ public SeqListRef<uint> Attributes2;
+
+ public SeqListRef<uint> Attributes3;
+
+ public uint EffectNum;
+
+ public string EffectDes;
+
+ public uint AttrType;
+
+ public uint IsCanRecast;
+
+ public SeqListRef<uint> RecastMaterials;
+
+ public uint IsCanFuse;
+
+ public SeqListRef<uint> FuseMaterials;
+
+ public SeqRef<uint> FuseSucRate;
+
+ public uint FuseSucRateUseStone;
+
+ public byte IsCanRefined;
+
+ public SeqListRef<uint> RefinedMaterials;
+
+ public uint ElementType;
+ }
+
+ public ArtifactListTable.RowData GetByArtifactID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ ArtifactListTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].ArtifactID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ ArtifactListTable.RowData rowData = new ArtifactListTable.RowData();
+ base.Read<uint>(reader, ref rowData.ArtifactID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.ArtifactPos, CVSReader.uintParse);
+ this.columnno = 1;
+ base.Read<uint>(reader, ref rowData.ArtifactSuit, CVSReader.uintParse);
+ this.columnno = 2;
+ rowData.Attributes1.Read(reader, this.m_DataHandler);
+ this.columnno = 3;
+ rowData.Attributes2.Read(reader, this.m_DataHandler);
+ this.columnno = 4;
+ rowData.Attributes3.Read(reader, this.m_DataHandler);
+ this.columnno = 5;
+ base.Read<uint>(reader, ref rowData.EffectNum, CVSReader.uintParse);
+ this.columnno = 7;
+ base.Read<string>(reader, ref rowData.EffectDes, CVSReader.stringParse);
+ this.columnno = 9;
+ base.Read<uint>(reader, ref rowData.AttrType, CVSReader.uintParse);
+ this.columnno = 10;
+ base.Read<uint>(reader, ref rowData.IsCanRecast, CVSReader.uintParse);
+ this.columnno = 11;
+ rowData.RecastMaterials.Read(reader, this.m_DataHandler);
+ this.columnno = 12;
+ base.Read<uint>(reader, ref rowData.IsCanFuse, CVSReader.uintParse);
+ this.columnno = 13;
+ rowData.FuseMaterials.Read(reader, this.m_DataHandler);
+ this.columnno = 14;
+ rowData.FuseSucRate.Read(reader, this.m_DataHandler);
+ this.columnno = 15;
+ base.Read<uint>(reader, ref rowData.FuseSucRateUseStone, CVSReader.uintParse);
+ this.columnno = 16;
+ base.Read<byte>(reader, ref rowData.IsCanRefined, CVSReader.byteParse);
+ this.columnno = 20;
+ rowData.RefinedMaterials.Read(reader, this.m_DataHandler);
+ this.columnno = 21;
+ base.Read<uint>(reader, ref rowData.ElementType, CVSReader.uintParse);
+ this.columnno = 22;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new ArtifactListTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ArtifactListTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ArtifactListTable.cs.meta new file mode 100644 index 00000000..242bfd9e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ArtifactListTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1c9465cd1cac8c04fa333f5f554f9ee2 +timeCreated: 1611465298 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ArtifactSuitTable.cs b/Client/Assets/Scripts/XUtliPoolLib/ArtifactSuitTable.cs new file mode 100644 index 00000000..893078c4 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ArtifactSuitTable.cs @@ -0,0 +1,99 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class ArtifactSuitTable : CVSReader
+ {
+ public ArtifactSuitTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint ArtifactSuitID;
+
+ public uint Level;
+
+ public string Name;
+
+ public SeqListRef<uint> Effect2;
+
+ public SeqListRef<uint> Effect3;
+
+ public SeqListRef<uint> Effect4;
+
+ public SeqListRef<uint> Effect5;
+
+ public SeqListRef<uint> Effect6;
+
+ public byte IsCreateShow;
+
+ public uint ElementType;
+
+ public byte SuitQuality;
+ }
+
+ public ArtifactSuitTable.RowData GetByArtifactSuitID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ ArtifactSuitTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].ArtifactSuitID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ ArtifactSuitTable.RowData rowData = new ArtifactSuitTable.RowData();
+ base.Read<uint>(reader, ref rowData.ArtifactSuitID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.Level, CVSReader.uintParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.Name, CVSReader.stringParse);
+ this.columnno = 2;
+ rowData.Effect2.Read(reader, this.m_DataHandler);
+ this.columnno = 3;
+ rowData.Effect3.Read(reader, this.m_DataHandler);
+ this.columnno = 4;
+ rowData.Effect4.Read(reader, this.m_DataHandler);
+ this.columnno = 5;
+ rowData.Effect5.Read(reader, this.m_DataHandler);
+ this.columnno = 6;
+ rowData.Effect6.Read(reader, this.m_DataHandler);
+ this.columnno = 7;
+ base.Read<byte>(reader, ref rowData.IsCreateShow, CVSReader.byteParse);
+ this.columnno = 8;
+ base.Read<uint>(reader, ref rowData.ElementType, CVSReader.uintParse);
+ this.columnno = 9;
+ base.Read<byte>(reader, ref rowData.SuitQuality, CVSReader.byteParse);
+ this.columnno = 10;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new ArtifactSuitTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ArtifactSuitTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ArtifactSuitTable.cs.meta new file mode 100644 index 00000000..dda79b9c --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ArtifactSuitTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 652b8b3d14cf7e14badeef30b55b7e08 +timeCreated: 1611465682 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/AssetBundleData.cs b/Client/Assets/Scripts/XUtliPoolLib/AssetBundleData.cs new file mode 100644 index 00000000..79f6d101 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AssetBundleData.cs @@ -0,0 +1,19 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class AssetBundleData
+ {
+ public uint fullName;
+
+ public string debugName;
+
+ public AssetBundleExportType compositeType;
+
+ public uint[] dependencies;
+
+ public bool isAnalyzed;
+
+ public AssetBundleData[] dependList;
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/AssetBundleData.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/AssetBundleData.cs.meta new file mode 100644 index 00000000..216e7513 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AssetBundleData.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: fa685d1152ed4924aaa995b0d594f5f1 +timeCreated: 1611465810 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/AssetBundleDataBinaryReader.cs b/Client/Assets/Scripts/XUtliPoolLib/AssetBundleDataBinaryReader.cs new file mode 100644 index 00000000..99f43f0a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AssetBundleDataBinaryReader.cs @@ -0,0 +1,43 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ internal class AssetBundleDataBinaryReader : AssetBundleDataReader
+ {
+ public override void Read(XBinaryReader reader)
+ {
+ for (;;)
+ {
+ bool isEof = reader.IsEof;
+ if (isEof)
+ {
+ break;
+ }
+ uint num = reader.ReadUInt32();
+ uint key = reader.ReadUInt32();
+ byte compositeType = reader.ReadByte();
+ byte b = reader.ReadByte();
+ uint[] array = null;
+ bool flag = b > 0;
+ if (flag)
+ {
+ array = new uint[(int)b];
+ }
+ bool flag2 = !this.shortName2FullName.ContainsKey(key);
+ if (flag2)
+ {
+ this.shortName2FullName.Add(key, num);
+ }
+ for (int i = 0; i < (int)b; i++)
+ {
+ array[i] = reader.ReadUInt32();
+ }
+ AssetBundleData assetBundleData = new AssetBundleData();
+ assetBundleData.fullName = num;
+ assetBundleData.dependencies = array;
+ assetBundleData.compositeType = (AssetBundleExportType)compositeType;
+ this.infoMap[num] = assetBundleData;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/AssetBundleDataBinaryReader.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/AssetBundleDataBinaryReader.cs.meta new file mode 100644 index 00000000..d1f6bf51 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AssetBundleDataBinaryReader.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: bfc253c37ca30c64b9baec3f22997868 +timeCreated: 1611465752 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/AssetBundleDataReader.cs b/Client/Assets/Scripts/XUtliPoolLib/AssetBundleDataReader.cs new file mode 100644 index 00000000..91c20af2 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AssetBundleDataReader.cs @@ -0,0 +1,123 @@ +using System;
+using System.Collections.Generic;
+using System.IO;
+
+namespace XUtliPoolLib
+{
+ public class AssetBundleDataReader
+ {
+ public Dictionary<uint, AssetBundleData> infoMap = new Dictionary<uint, AssetBundleData>();
+
+ protected Dictionary<uint, uint> shortName2FullName = new Dictionary<uint, uint>();
+
+ public virtual void Read(XBinaryReader reader)
+ {
+ MemoryStream stream = new MemoryStream(reader.GetBuffer());
+ StreamReader streamReader = new StreamReader(stream);
+ char[] array = new char[6];
+ streamReader.Read(array, 0, array.Length);
+ bool flag = array[0] != 'A' || array[1] != 'B' || array[2] != 'D' || array[3] != 'T';
+ if (!flag)
+ {
+ for (;;)
+ {
+ string text = streamReader.ReadLine();
+ bool flag2 = string.IsNullOrEmpty(text);
+ if (flag2)
+ {
+ break;
+ }
+ uint num = uint.Parse(streamReader.ReadLine().Replace(".ab", ""));
+ string str = streamReader.ReadLine();
+ uint key = XSingleton<XCommon>.singleton.XHash(str);
+ string text2 = streamReader.ReadLine();
+ int compositeType = Convert.ToInt32(streamReader.ReadLine());
+ int num2 = Convert.ToInt32(streamReader.ReadLine());
+ uint[] array2 = new uint[num2];
+ bool flag3 = !this.shortName2FullName.ContainsKey(key);
+ if (flag3)
+ {
+ this.shortName2FullName.Add(key, num);
+ }
+ for (int i = 0; i < num2; i++)
+ {
+ array2[i] = uint.Parse(streamReader.ReadLine().Replace(".ab", ""));
+ }
+ streamReader.ReadLine();
+ AssetBundleData assetBundleData = new AssetBundleData();
+ assetBundleData.debugName = text;
+ assetBundleData.fullName = num;
+ assetBundleData.dependencies = array2;
+ assetBundleData.compositeType = (AssetBundleExportType)compositeType;
+ this.infoMap[num] = assetBundleData;
+ }
+ streamReader.Close();
+ }
+ }
+
+ public void Analyze()
+ {
+ foreach (KeyValuePair<uint, AssetBundleData> keyValuePair in this.infoMap)
+ {
+ this.Analyze(keyValuePair.Value);
+ }
+ }
+
+ private void Analyze(AssetBundleData abd)
+ {
+ bool flag = !abd.isAnalyzed;
+ if (flag)
+ {
+ abd.isAnalyzed = true;
+ bool flag2 = abd.dependencies != null;
+ if (flag2)
+ {
+ abd.dependList = new AssetBundleData[abd.dependencies.Length];
+ for (int i = 0; i < abd.dependencies.Length; i++)
+ {
+ AssetBundleData assetBundleInfo = this.GetAssetBundleInfo(abd.dependencies[i]);
+ abd.dependList[i] = assetBundleInfo;
+ this.Analyze(assetBundleInfo);
+ }
+ }
+ }
+ }
+
+ public uint GetFullName(uint shortName)
+ {
+ uint result = 0u;
+ this.shortName2FullName.TryGetValue(shortName, out result);
+ return result;
+ }
+
+ public AssetBundleData GetAssetBundleInfoByShortName(uint shortName)
+ {
+ uint fullName = this.GetFullName(shortName);
+ bool flag = fullName != 0u && this.infoMap.ContainsKey(fullName);
+ AssetBundleData result;
+ if (flag)
+ {
+ result = this.infoMap[fullName];
+ }
+ else
+ {
+ result = null;
+ }
+ return result;
+ }
+
+ public AssetBundleData GetAssetBundleInfo(uint fullName)
+ {
+ bool flag = fullName > 0u;
+ if (flag)
+ {
+ bool flag2 = this.infoMap.ContainsKey(fullName);
+ if (flag2)
+ {
+ return this.infoMap[fullName];
+ }
+ }
+ return null;
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/AssetBundleDataReader.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/AssetBundleDataReader.cs.meta new file mode 100644 index 00000000..0685f494 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AssetBundleDataReader.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2a9e8309085f8814b91fcdff0f83a1cf +timeCreated: 1611465303 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/AssetBundleExportType.cs b/Client/Assets/Scripts/XUtliPoolLib/AssetBundleExportType.cs new file mode 100644 index 00000000..cad4b33f --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AssetBundleExportType.cs @@ -0,0 +1,12 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public enum AssetBundleExportType
+ {
+ Asset = 1,
+ Root,
+ Standalone = 4,
+ RootAsset = 3
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/AssetBundleExportType.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/AssetBundleExportType.cs.meta new file mode 100644 index 00000000..7412309c --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AssetBundleExportType.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b84ccea3e2922ff49bdec5c3e38ff3ef +timeCreated: 1611465747 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/AssetBundleInfo.cs b/Client/Assets/Scripts/XUtliPoolLib/AssetBundleInfo.cs new file mode 100644 index 00000000..7ac6f887 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AssetBundleInfo.cs @@ -0,0 +1,341 @@ +using System;
+using System.Collections.Generic;
+using UnityEngine;
+using XUpdater;
+
+namespace XUtliPoolLib
+{
+ public class AssetBundleInfo
+ {
+ [SerializeField]
+ public int refCount { get; private set; }
+
+ public bool isUnused
+ {
+ get
+ {
+ return this._isReady && Time.time - this._readyTime > this.minLifeTime && this.refCount <= 0 && this.UpdateReference() == 0;
+ }
+ }
+
+ public bool isReady
+ {
+ get
+ {
+ return this._isReady;
+ }
+ set
+ {
+ this._isReady = value;
+ }
+ }
+
+ public virtual UnityEngine.Object mainObject
+ {
+ get
+ {
+ bool flag = this._mainObject == null && this._isReady;
+ if (flag)
+ {
+ this._mainObject = this.bundle.LoadAsset(this.bundle.GetAllAssetNames()[0]);
+ bool flag2 = this._mainObject != null;
+ if (flag2)
+ {
+ bool flag3 = this.data.compositeType == AssetBundleExportType.Root;
+ if (flag3)
+ {
+ bool flag4 = XSingleton<XUpdater.XUpdater>.singleton.ABManager != null;
+ if (flag4)
+ {
+ XSingleton<XUpdater.XUpdater>.singleton.ABManager.AddUnloadBundleQueue(this);
+ }
+ }
+ }
+ }
+ return this._mainObject;
+ }
+ }
+
+ public AssetBundleInfo.OnUnloadedHandler onUnloaded;
+
+ internal AssetBundle bundle;
+
+ public uint bundleName;
+
+ public AssetBundleData data;
+
+ public float minLifeTime = 2f;
+
+ private float _readyTime;
+
+ private bool _isReady;
+
+ private UnityEngine.Object _mainObject;
+
+ private HashSet<AssetBundleInfo> deps = null;
+
+ private List<uint> depChildren = null;
+
+ private List<WeakReference> references = new List<WeakReference>();
+
+ public delegate void OnUnloadedHandler(AssetBundleInfo abi);
+
+ public void AddDependency(AssetBundleInfo target)
+ {
+ bool flag = target != null;
+ if (flag)
+ {
+ bool flag2 = this.deps == null;
+ if (flag2)
+ {
+ this.deps = new HashSet<AssetBundleInfo>();
+ }
+ bool flag3 = this.deps.Add(target);
+ if (flag3)
+ {
+ target.Retain();
+ bool flag4 = target.depChildren == null;
+ if (flag4)
+ {
+ target.depChildren = new List<uint>();
+ }
+ target.depChildren.Add(this.bundleName);
+ }
+ }
+ }
+
+ public void ResetLifeTime()
+ {
+ bool isReady = this._isReady;
+ if (isReady)
+ {
+ this._readyTime = Time.time;
+ }
+ }
+
+ public void Retain()
+ {
+ int refCount = this.refCount;
+ this.refCount = refCount + 1;
+ }
+
+ public void Release()
+ {
+ int refCount = this.refCount;
+ this.refCount = refCount - 1;
+ }
+
+ public void Retain(UnityEngine.Object owner)
+ {
+ bool flag = owner == null;
+ if (flag)
+ {
+ throw new Exception("Please set the user!");
+ }
+ for (int i = 0; i < this.references.Count; i++)
+ {
+ bool flag2 = owner.Equals(this.references[i].Target);
+ if (flag2)
+ {
+ return;
+ }
+ }
+ WeakReference item = new WeakReference(owner);
+ this.references.Add(item);
+ }
+
+ public void Release(object owner)
+ {
+ for (int i = 0; i < this.references.Count; i++)
+ {
+ bool flag = this.references[i].Target == owner;
+ if (flag)
+ {
+ this.references.RemoveAt(i);
+ break;
+ }
+ }
+ }
+
+ public virtual GameObject Instantiate()
+ {
+ return this.Instantiate(true);
+ }
+
+ public virtual GameObject Instantiate(bool enable)
+ {
+ bool flag = this.mainObject != null;
+ if (flag)
+ {
+ bool flag2 = this.mainObject is GameObject;
+ if (flag2)
+ {
+ GameObject gameObject = this.mainObject as GameObject;
+ gameObject.SetActive(enable);
+ GameObject gameObject2 = XCommon.Instantiate<GameObject>(gameObject);
+ gameObject2.name = gameObject.name;
+ this.Retain(gameObject2);
+ return gameObject2;
+ }
+ }
+ return null;
+ }
+
+ public virtual GameObject Instantiate(Vector3 position, Quaternion rotation, bool enable = true)
+ {
+ bool flag = this.mainObject != null;
+ if (flag)
+ {
+ bool flag2 = this.mainObject is GameObject;
+ if (flag2)
+ {
+ GameObject gameObject = this.mainObject as GameObject;
+ gameObject.SetActive(enable);
+ GameObject gameObject2 = UnityEngine.Object.Instantiate<GameObject>(gameObject, position, rotation, null);
+ gameObject2.name = gameObject.name;
+ this.Retain(gameObject2);
+ return gameObject2;
+ }
+ }
+ return null;
+ }
+
+ public UnityEngine.Object Require(UnityEngine.Object user)
+ {
+ this.Retain(user);
+ return this.mainObject;
+ }
+
+ public UnityEngine.Object Require(Component c, bool autoBindGameObject)
+ {
+ bool flag = autoBindGameObject && c && c.gameObject;
+ UnityEngine.Object result;
+ if (flag)
+ {
+ result = this.Require(c.gameObject);
+ }
+ else
+ {
+ result = this.Require(c);
+ }
+ return result;
+ }
+
+ private int UpdateReference()
+ {
+ for (int i = 0; i < this.references.Count; i++)
+ {
+ UnityEngine.Object @object = (UnityEngine.Object)this.references[i].Target;
+ bool flag = !@object;
+ if (flag)
+ {
+ this.references.RemoveAt(i);
+ i--;
+ }
+ }
+ return this.references.Count;
+ }
+
+ public virtual void Dispose()
+ {
+ this.UnloadBundle();
+ bool flag = this.deps != null;
+ if (flag)
+ {
+ foreach (AssetBundleInfo assetBundleInfo in this.deps)
+ {
+ bool flag2 = assetBundleInfo.depChildren != null;
+ if (flag2)
+ {
+ assetBundleInfo.depChildren.Remove(this.bundleName);
+ }
+ assetBundleInfo.Release();
+ }
+ this.deps.Clear();
+ }
+ this.references.Clear();
+ bool flag3 = this.onUnloaded != null;
+ if (flag3)
+ {
+ this.onUnloaded(this);
+ }
+ bool flag4 = !(this._mainObject is GameObject) && !(this._mainObject is ScriptableObject) && !(this._mainObject is Material);
+ if (flag4)
+ {
+ Resources.UnloadAsset(this._mainObject);
+ }
+ else
+ {
+ UnityEngine.Object.Destroy(this._mainObject);
+ }
+ this._mainObject = null;
+ }
+
+ public AsyncOperation LoadAsync(string name, Type t)
+ {
+ bool flag = this._mainObject == null && this._isReady;
+ AsyncOperation result;
+ if (flag)
+ {
+ result = this.bundle.LoadAssetAsync(name, t);
+ }
+ else
+ {
+ result = null;
+ }
+ return result;
+ }
+
+ public void AsyncLoadFinish(UnityEngine.Object asset)
+ {
+ bool flag = this._mainObject == null && this._isReady;
+ if (flag)
+ {
+ this.Release();
+ this._mainObject = asset;
+ bool flag2 = this.data.compositeType == AssetBundleExportType.Root;
+ if (flag2)
+ {
+ bool flag3 = XSingleton<XUpdater.XUpdater>.singleton.ABManager != null;
+ if (flag3)
+ {
+ XSingleton<XUpdater.XUpdater>.singleton.ABManager.AddUnloadBundleQueue(this);
+ }
+ }
+ }
+ }
+
+ private T LoadAsset<T>(string name) where T : UnityEngine.Object
+ {
+ return this.bundle.LoadAsset(name, typeof(T)) as T;
+ }
+
+ public void UnloadBundle()
+ {
+ bool flag = this.bundle != null;
+ if (flag)
+ {
+ bool enableLog = AssetBundleManager.enableLog;
+ if (enableLog)
+ {
+ XSingleton<XDebug>.singleton.AddLog((string.Concat(new object[]
+ {
+ "Unload : ",
+ this.data.compositeType,
+ " >> ",
+ this.bundleName,
+ "(",
+ this.data.debugName
+ }) != null) ? this.data.debugName : ")", null, null, null, null, null, XDebugColor.XDebug_None);
+ }
+ this.bundle.Unload(false);
+ bool flag2 = XSingleton<XUpdater.XUpdater>.singleton.ABManager != null;
+ if (flag2)
+ {
+ XSingleton<XUpdater.XUpdater>.singleton.ABManager.DeleteBundleCount();
+ }
+ }
+ this.bundle = null;
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/AssetBundleInfo.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/AssetBundleInfo.cs.meta new file mode 100644 index 00000000..0898b7c7 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AssetBundleInfo.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c6407de5f6a327c418493bc9812b8979 +timeCreated: 1611465755 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/AssetBundleLoadProgress.cs b/Client/Assets/Scripts/XUtliPoolLib/AssetBundleLoadProgress.cs new file mode 100644 index 00000000..b745c30a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AssetBundleLoadProgress.cs @@ -0,0 +1,15 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class AssetBundleLoadProgress
+ {
+ public float percent;
+
+ public int total;
+
+ public int complete;
+
+ public AssetBundleLoader loader;
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/AssetBundleLoadProgress.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/AssetBundleLoadProgress.cs.meta new file mode 100644 index 00000000..900e1a1f --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AssetBundleLoadProgress.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1b7a49bc0218b134fbc13066ecd82e77 +timeCreated: 1611465297 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/AssetBundleLoader.cs b/Client/Assets/Scripts/XUtliPoolLib/AssetBundleLoader.cs new file mode 100644 index 00000000..e9ab225c --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AssetBundleLoader.cs @@ -0,0 +1,92 @@ +using System;
+using UnityEngine;
+using XUpdater;
+
+namespace XUtliPoolLib
+{
+ public abstract class AssetBundleLoader
+ {
+ public virtual bool isComplete
+ {
+ get
+ {
+ return this.state == LoadState.State_Error || this.state == LoadState.State_Complete;
+ }
+ }
+
+ internal AssetBundleManager.LoadAssetCompleteHandler onComplete;
+
+ public int loadHandlerID;
+
+ public uint bundleName;
+
+ public AssetBundleData bundleData;
+
+ public AssetBundleInfo bundleInfo;
+
+ public AssetBundleManager bundleManager;
+
+ public LoadState state = LoadState.State_None;
+
+ protected AssetBundleLoader[] depLoaders;
+
+ public virtual void Load()
+ {
+ }
+
+ public virtual void LoadImm()
+ {
+ }
+
+ public virtual void LoadBundle()
+ {
+ }
+
+ public virtual void LoadBundleImm()
+ {
+ }
+
+ protected virtual void Complete()
+ {
+ bool flag = this.onComplete != null;
+ if (flag)
+ {
+ AssetBundleManager.LoadAssetCompleteHandler loadAssetCompleteHandler = this.onComplete;
+ this.onComplete = null;
+ loadAssetCompleteHandler(this.bundleInfo, this.loadHandlerID);
+ }
+ this.bundleManager.LoadComplete(this);
+ }
+
+ protected virtual void Error()
+ {
+ bool flag = this.onComplete != null;
+ if (flag)
+ {
+ AssetBundleManager.LoadAssetCompleteHandler loadAssetCompleteHandler = this.onComplete;
+ this.onComplete = null;
+ loadAssetCompleteHandler(this.bundleInfo, this.loadHandlerID);
+ }
+ this.bundleManager.LoadError(this);
+ }
+
+ protected bool UnloadNotLoadingBundle(AssetBundle bundle)
+ {
+ bool flag = bundle == null;
+ bool result;
+ if (flag)
+ {
+ int bundleCount = XSingleton<XUpdater.XUpdater>.singleton.ABManager.BundleCount;
+ XSingleton<XUpdater.XUpdater>.singleton.ABManager.UnloadNotUsedLoader();
+ Resources.UnloadUnusedAssets();
+ XSingleton<XDebug>.singleton.AddErrorLog("AssetBundle Count: ", bundleCount.ToString(), " , ", XSingleton<XUpdater.XUpdater>.singleton.ABManager.BundleCount.ToString(), null, null);
+ result = true;
+ }
+ else
+ {
+ result = false;
+ }
+ return result;
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/AssetBundleLoader.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/AssetBundleLoader.cs.meta new file mode 100644 index 00000000..492beb37 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AssetBundleLoader.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 6fcfc109308bebc479402a614a4dbba6 +timeCreated: 1611465687 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/AssetBundleManager.cs b/Client/Assets/Scripts/XUtliPoolLib/AssetBundleManager.cs new file mode 100644 index 00000000..5cb6537b --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AssetBundleManager.cs @@ -0,0 +1,649 @@ +using System;
+using System.Collections.Generic;
+using System.IO;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public class AssetBundleManager : MonoBehaviour
+ {
+ public int BundleCount
+ {
+ get
+ {
+ return this._bundleCount;
+ }
+ }
+
+ public AssetBundleDataReader depInfoReader
+ {
+ get
+ {
+ return this._depInfoReader;
+ }
+ }
+
+ public bool isCurrentLoading
+ {
+ get
+ {
+ return this._isCurrentLoading;
+ }
+ }
+
+ public static Version version = new Version(0, 1, 0);
+
+ public static AssetBundleManager Instance;
+
+ public static string NAME = "AssetBundleManager";
+
+ public static bool enableLog = false;
+
+ private const int MAX_REQUEST = 100;
+
+ private int _requestRemain = 100;
+
+ private Queue<AssetBundleLoader> _requestQueue = new Queue<AssetBundleLoader>();
+
+ private List<AssetBundleLoader> _currentLoadQueue = new List<AssetBundleLoader>();
+
+ private HashSet<AssetBundleLoader> _nonCompleteLoaderSet = new HashSet<AssetBundleLoader>();
+
+ private HashSet<AssetBundleLoader> _thisTimeLoaderSet = new HashSet<AssetBundleLoader>();
+
+ private Dictionary<uint, AssetBundleInfo> _loadedAssetBundle = new Dictionary<uint, AssetBundleInfo>();
+
+ private Dictionary<uint, AssetBundleLoader> _loaderCache = new Dictionary<uint, AssetBundleLoader>();
+
+ private bool _isCurrentLoading;
+
+ private Queue<AssetBundleInfo> _requestUnloadBundleQueue = new Queue<AssetBundleInfo>();
+
+ private AssetBundleLoadProgress _progress = new AssetBundleLoadProgress();
+
+ public AssetBundleManager.LoadProgressHandler onProgress;
+
+ public AssetBundlePathResolver pathResolver;
+
+ private AssetBundleDataReader _depInfoReader;
+
+ private int _bundleCount = 0;
+
+ private uint _defaultHash = 0u;
+
+ public delegate void LoadAssetCompleteHandler(AssetBundleInfo info, int handlerID);
+
+ public delegate void LoaderCompleteHandler(AssetBundleLoader info);
+
+ public delegate void LoadProgressHandler(AssetBundleLoadProgress progress);
+
+ public AssetBundleManager()
+ {
+ AssetBundleManager.Instance = this;
+ this.pathResolver = new AssetBundlePathResolver();
+ this._defaultHash = XSingleton<XCommon>.singleton.XHashLowerRelpaceDot(0u, "Assets.Resources.");
+ }
+
+ protected void Awake()
+ {
+ base.InvokeRepeating("CheckUnusedBundle", 0f, 5f);
+ }
+
+ public void Init()
+ {
+ this.RemoveAll();
+ this.LoadDepInfo();
+ }
+
+ public void Init(byte[] data, Action callback)
+ {
+ bool flag = data.Length > 4;
+ if (flag)
+ {
+ XBinaryReader xbinaryReader = XBinaryReader.Get();
+ xbinaryReader.InitByte(data, 0, 0);
+ bool flag2 = xbinaryReader.ReadChar() == 'A' && xbinaryReader.ReadChar() == 'B' && xbinaryReader.ReadChar() == 'D';
+ if (flag2)
+ {
+ bool flag3 = xbinaryReader.ReadChar() == 'T';
+ if (flag3)
+ {
+ this._depInfoReader = new AssetBundleDataReader();
+ }
+ else
+ {
+ this._depInfoReader = new AssetBundleDataBinaryReader();
+ }
+ this._depInfoReader.Read(xbinaryReader);
+ }
+ XBinaryReader.Return(xbinaryReader, false);
+ }
+ bool flag4 = callback != null;
+ if (flag4)
+ {
+ callback();
+ }
+ }
+
+ private void LoadDepInfo()
+ {
+ string path = string.Format("{0}/{1}", this.pathResolver.BundleCacheDir, this.pathResolver.DependFileName);
+ bool flag = File.Exists(path);
+ if (flag)
+ {
+ this.Init(File.ReadAllBytes(path), null);
+ }
+ else
+ {
+ TextAsset textAsset = Resources.Load<TextAsset>("dep");
+ bool flag2 = textAsset != null;
+ if (flag2)
+ {
+ this.Init(textAsset.bytes, null);
+ Resources.UnloadAsset(textAsset);
+ }
+ else
+ {
+ XSingleton<XDebug>.singleton.AddErrorLog("depFile not exist!", null, null, null, null, null);
+ }
+ }
+ }
+
+ private void OnDestroy()
+ {
+ this.RemoveAll();
+ }
+
+ public AssetBundleLoader Load(uint hash, string path, string suffix, string prefix = null, AssetBundleManager.LoadAssetCompleteHandler handler = null, int handlerID = -1)
+ {
+ bool flag = this.depInfoReader == null;
+ AssetBundleLoader result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ AssetBundleLoader assetBundleLoader = this.CreateLoader(hash, path, suffix, prefix);
+ bool flag2 = assetBundleLoader == null;
+ if (flag2)
+ {
+ result = null;
+ }
+ else
+ {
+ assetBundleLoader.loadHandlerID = handlerID;
+ this._thisTimeLoaderSet.Add(assetBundleLoader);
+ bool isComplete = assetBundleLoader.isComplete;
+ if (isComplete)
+ {
+ bool flag3 = handler != null;
+ if (flag3)
+ {
+ handler(assetBundleLoader.bundleInfo, handlerID);
+ }
+ }
+ else
+ {
+ bool flag4 = handler != null;
+ if (flag4)
+ {
+ AssetBundleLoader assetBundleLoader2 = assetBundleLoader;
+ assetBundleLoader2.onComplete = (AssetBundleManager.LoadAssetCompleteHandler)Delegate.Combine(assetBundleLoader2.onComplete, handler);
+ }
+ this._isCurrentLoading = true;
+ bool flag5 = assetBundleLoader.state < LoadState.State_LoadingAsync;
+ if (flag5)
+ {
+ this._nonCompleteLoaderSet.Add(assetBundleLoader);
+ }
+ this.StartLoad();
+ }
+ result = assetBundleLoader;
+ }
+ }
+ return result;
+ }
+
+ public AssetBundleInfo LoadImm(uint hash, string path, string suffix, string prefix = null)
+ {
+ bool flag = this.depInfoReader == null;
+ AssetBundleInfo result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ AssetBundleLoader assetBundleLoader = this.CreateLoader(hash, path, suffix, prefix);
+ bool flag2 = assetBundleLoader == null;
+ if (flag2)
+ {
+ result = null;
+ }
+ else
+ {
+ this._thisTimeLoaderSet.Add(assetBundleLoader);
+ bool isComplete = assetBundleLoader.isComplete;
+ if (isComplete)
+ {
+ result = assetBundleLoader.bundleInfo;
+ }
+ else
+ {
+ this._isCurrentLoading = true;
+ bool flag3 = assetBundleLoader.state < LoadState.State_Loading;
+ if (flag3)
+ {
+ this._nonCompleteLoaderSet.Add(assetBundleLoader);
+ }
+ this.StartLoadImm();
+ result = assetBundleLoader.bundleInfo;
+ }
+ }
+ }
+ return result;
+ }
+
+ public bool CheckInDep(uint hash)
+ {
+ bool flag = this.depInfoReader == null;
+ return !flag && this._depInfoReader.GetAssetBundleInfo(hash) != null;
+ }
+
+ internal AssetBundleLoader CreateLoader(uint abFileName, string location = null, string suffix = null, string prefix = null)
+ {
+ bool flag = this._loaderCache.ContainsKey(abFileName);
+ AssetBundleLoader assetBundleLoader;
+ if (flag)
+ {
+ assetBundleLoader = this._loaderCache[abFileName];
+ }
+ else
+ {
+ AssetBundleData assetBundleData = this._depInfoReader.GetAssetBundleInfo(abFileName);
+ bool flag2 = assetBundleData == null;
+ if (flag2)
+ {
+ bool flag3 = prefix != null;
+ uint num;
+ if (flag3)
+ {
+ num = XSingleton<XCommon>.singleton.XHashLowerRelpaceDot(0u, prefix);
+ }
+ else
+ {
+ num = this._defaultHash;
+ }
+ bool flag4 = location != null;
+ if (flag4)
+ {
+ num = XSingleton<XCommon>.singleton.XHashLowerRelpaceDot(num, location);
+ }
+ bool flag5 = suffix != null;
+ if (flag5)
+ {
+ num = XSingleton<XCommon>.singleton.XHashLowerRelpaceDot(num, suffix);
+ }
+ assetBundleData = this._depInfoReader.GetAssetBundleInfoByShortName(num);
+ }
+ bool flag6 = assetBundleData == null;
+ if (flag6)
+ {
+ return null;
+ }
+ assetBundleLoader = this.CreateLoader();
+ assetBundleLoader.bundleManager = this;
+ assetBundleLoader.bundleData = assetBundleData;
+ assetBundleLoader.bundleName = assetBundleData.fullName;
+ this._loaderCache[abFileName] = assetBundleLoader;
+ }
+ return assetBundleLoader;
+ }
+
+ protected virtual AssetBundleLoader CreateLoader()
+ {
+ RuntimePlatform platform = Application.platform;
+ AssetBundleLoader result;
+ if ((int)platform != 8)
+ {
+ if ((int)platform != 11)
+ {
+ result = new MobileAssetBundleLoader();
+ }
+ else
+ {
+ result = new AndroidAssetBundleLoader();
+ }
+ }
+ else
+ {
+ result = new IOSAssetBundleLoader();
+ }
+ return result;
+ }
+
+ private void StartLoad()
+ {
+ bool flag = this._nonCompleteLoaderSet.Count > 0;
+ if (flag)
+ {
+ List<AssetBundleLoader> list = ListPool<AssetBundleLoader>.Get();
+ list.AddRange(this._nonCompleteLoaderSet);
+ this._nonCompleteLoaderSet.Clear();
+ foreach (AssetBundleLoader item in list)
+ {
+ this._currentLoadQueue.Add(item);
+ }
+ this._progress = new AssetBundleLoadProgress();
+ this._progress.total = this._currentLoadQueue.Count;
+ foreach (AssetBundleLoader assetBundleLoader in list)
+ {
+ assetBundleLoader.Load();
+ }
+ ListPool<AssetBundleLoader>.Release(list);
+ }
+ }
+
+ private void StartLoadImm()
+ {
+ bool flag = this._nonCompleteLoaderSet.Count > 0;
+ if (flag)
+ {
+ bool flag2 = this._nonCompleteLoaderSet.Count == 1;
+ if (flag2)
+ {
+ HashSet<AssetBundleLoader>.Enumerator enumerator = this._nonCompleteLoaderSet.GetEnumerator();
+ enumerator.MoveNext();
+ this._currentLoadQueue.Add(enumerator.Current);
+ this._nonCompleteLoaderSet.Clear();
+ this._progress.percent = 0f;
+ this._progress.complete = 0;
+ this._progress.loader = null;
+ this._progress.total = this._currentLoadQueue.Count;
+ enumerator.Current.LoadImm();
+ }
+ else
+ {
+ List<AssetBundleLoader> list = ListPool<AssetBundleLoader>.Get();
+ list.AddRange(this._nonCompleteLoaderSet);
+ this._nonCompleteLoaderSet.Clear();
+ foreach (AssetBundleLoader item in list)
+ {
+ this._currentLoadQueue.Add(item);
+ }
+ this._progress.percent = 0f;
+ this._progress.complete = 0;
+ this._progress.loader = null;
+ this._progress.total = this._currentLoadQueue.Count;
+ foreach (AssetBundleLoader assetBundleLoader in list)
+ {
+ assetBundleLoader.LoadImm();
+ }
+ ListPool<AssetBundleLoader>.Release(list);
+ }
+ }
+ }
+
+ public void RemoveAll()
+ {
+ this._currentLoadQueue.Clear();
+ this._requestQueue.Clear();
+ foreach (KeyValuePair<uint, AssetBundleInfo> keyValuePair in this._loadedAssetBundle)
+ {
+ keyValuePair.Value.Dispose();
+ }
+ this._loadedAssetBundle.Clear();
+ this._loaderCache.Clear();
+ this._requestUnloadBundleQueue.Clear();
+ }
+
+ public AssetBundleInfo GetBundleInfo(uint key)
+ {
+ foreach (KeyValuePair<uint, AssetBundleInfo> keyValuePair in this._loadedAssetBundle)
+ {
+ AssetBundleInfo value = keyValuePair.Value;
+ bool flag = value.bundleName == key;
+ if (flag)
+ {
+ return value;
+ }
+ }
+ return null;
+ }
+
+ internal void RequestLoadBundle(AssetBundleLoader loader)
+ {
+ bool flag = this._requestRemain < 0;
+ if (flag)
+ {
+ this._requestRemain = 0;
+ }
+ bool flag2 = this._requestRemain == 0;
+ if (flag2)
+ {
+ this._requestQueue.Enqueue(loader);
+ }
+ else
+ {
+ this.LoadBundle(loader);
+ }
+ }
+
+ internal void RequestLoadBundleImm(AssetBundleLoader loader)
+ {
+ bool flag = this._requestRemain < 0;
+ if (flag)
+ {
+ this._requestRemain = 0;
+ }
+ bool flag2 = this._requestRemain == 0;
+ if (flag2)
+ {
+ this._requestQueue.Enqueue(loader);
+ }
+ else
+ {
+ this.LoadBundleImm(loader);
+ }
+ }
+
+ private void CheckRequestList()
+ {
+ while (this._requestRemain > 0 && this._requestQueue.Count > 0)
+ {
+ AssetBundleLoader loader = this._requestQueue.Dequeue();
+ this.LoadBundle(loader);
+ }
+ }
+
+ private void LoadBundle(AssetBundleLoader loader)
+ {
+ bool flag = !loader.isComplete;
+ if (flag)
+ {
+ loader.LoadBundle();
+ this._requestRemain--;
+ }
+ }
+
+ private void LoadBundleImm(AssetBundleLoader loader)
+ {
+ bool flag = !loader.isComplete;
+ if (flag)
+ {
+ loader.LoadBundleImm();
+ this._requestRemain--;
+ }
+ }
+
+ internal void LoadError(AssetBundleLoader loader)
+ {
+ this.LoadComplete(loader);
+ }
+
+ internal void LoadComplete(AssetBundleLoader loader)
+ {
+ this._requestRemain++;
+ this._currentLoadQueue.Remove(loader);
+ bool flag = this.onProgress != null;
+ if (flag)
+ {
+ this._progress.loader = loader;
+ this._progress.complete = this._progress.total - this._currentLoadQueue.Count;
+ this.onProgress(this._progress);
+ }
+ bool flag2 = this._currentLoadQueue.Count == 0 && this._nonCompleteLoaderSet.Count == 0;
+ if (flag2)
+ {
+ this._isCurrentLoading = false;
+ foreach (AssetBundleLoader assetBundleLoader in this._thisTimeLoaderSet)
+ {
+ bool flag3 = assetBundleLoader.bundleInfo != null;
+ if (flag3)
+ {
+ assetBundleLoader.bundleInfo.ResetLifeTime();
+ }
+ }
+ this._thisTimeLoaderSet.Clear();
+ }
+ else
+ {
+ this.CheckRequestList();
+ }
+ }
+
+ internal AssetBundleInfo CreateBundleInfo(AssetBundleLoader loader, AssetBundleInfo abi = null, AssetBundle assetBundle = null)
+ {
+ bool flag = abi == null;
+ if (flag)
+ {
+ abi = new AssetBundleInfo();
+ }
+ abi.bundleName = loader.bundleName;
+ abi.bundle = assetBundle;
+ abi.data = loader.bundleData;
+ this._loadedAssetBundle[abi.bundleName] = abi;
+ this._bundleCount++;
+ return abi;
+ }
+
+ public void DeleteBundleCount()
+ {
+ this._bundleCount--;
+ }
+
+ internal void RemoveBundleInfo(AssetBundleInfo abi)
+ {
+ abi.Dispose();
+ this._loadedAssetBundle.Remove(abi.bundleName);
+ }
+
+ private void CheckUnusedBundle()
+ {
+ this.UnloadUnusedBundle(false);
+ }
+
+ public void UnloadUnusedBundle(bool force = false)
+ {
+ bool flag = (!this._isCurrentLoading && !XSingleton<XResourceLoaderMgr>.singleton.isCurrentLoading) || force;
+ bool flag2 = flag;
+ if (flag2)
+ {
+ List<uint> list = ListPool<uint>.Get();
+ list.AddRange(this._loadedAssetBundle.Keys);
+ int num = force ? 100000 : 20;
+ int num2 = 0;
+ bool flag3;
+ do
+ {
+ flag3 = false;
+ int num3 = 0;
+ while (num3 < list.Count && flag && num2 < num)
+ {
+ uint key = list[num3];
+ AssetBundleInfo assetBundleInfo = this._loadedAssetBundle[key];
+ bool isUnused = assetBundleInfo.isUnused;
+ if (isUnused)
+ {
+ flag3 = true;
+ num2++;
+ this.RemoveBundleInfo(assetBundleInfo);
+ list.RemoveAt(num3);
+ num3--;
+ }
+ num3++;
+ }
+ }
+ while (flag3 && flag && num2 < num);
+ ListPool<uint>.Release(list);
+ while (this._requestUnloadBundleQueue.Count > 0 && flag && num2 < num)
+ {
+ AssetBundleInfo assetBundleInfo2 = this._requestUnloadBundleQueue.Dequeue();
+ bool flag4 = assetBundleInfo2 != null;
+ if (flag4)
+ {
+ assetBundleInfo2.UnloadBundle();
+ num2++;
+ }
+ }
+ }
+ }
+
+ public void UnloadNotUsedLoader()
+ {
+ List<uint> list = ListPool<uint>.Get();
+ list.AddRange(this._loadedAssetBundle.Keys);
+ List<AssetBundleLoader> list2 = ListPool<AssetBundleLoader>.Get();
+ list2.AddRange(this._nonCompleteLoaderSet);
+ list2.AddRange(this._currentLoadQueue);
+ foreach (AssetBundleLoader assetBundleLoader in list2)
+ {
+ this.RemoveLoadingLoader(assetBundleLoader.bundleName, list);
+ }
+ for (int i = 0; i < list.Count; i++)
+ {
+ AssetBundleInfo abi = this._loadedAssetBundle[list[i]];
+ this.RemoveBundleInfo(abi);
+ list.RemoveAt(i);
+ i--;
+ }
+ ListPool<uint>.Release(list);
+ ListPool<AssetBundleLoader>.Release(list2);
+ }
+
+ private void RemoveLoadingLoader(uint hash, List<uint> list)
+ {
+ AssetBundleData assetBundleInfo = this._depInfoReader.GetAssetBundleInfo(hash);
+ list.Remove(assetBundleInfo.fullName);
+ bool flag = assetBundleInfo.dependencies != null;
+ if (flag)
+ {
+ for (int i = 0; i < assetBundleInfo.dependencies.Length; i++)
+ {
+ this.RemoveLoadingLoader(assetBundleInfo.dependencies[i], list);
+ }
+ }
+ }
+
+ public void AddUnloadBundleQueue(AssetBundleInfo info)
+ {
+ this._requestUnloadBundleQueue.Enqueue(info);
+ bool flag = this._requestUnloadBundleQueue.Count > 3;
+ if (flag)
+ {
+ this.UnloadUnusedBundle(false);
+ }
+ }
+
+ public void RemoveBundle(uint key)
+ {
+ AssetBundleInfo bundleInfo = this.GetBundleInfo(key);
+ bool flag = bundleInfo != null;
+ if (flag)
+ {
+ this.RemoveBundleInfo(bundleInfo);
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/AssetBundleManager.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/AssetBundleManager.cs.meta new file mode 100644 index 00000000..c98a5d45 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AssetBundleManager.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 32f85ade3408d4c419a84ca457709217 +timeCreated: 1611465310 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/AssetBundlePathResolver.cs b/Client/Assets/Scripts/XUtliPoolLib/AssetBundlePathResolver.cs new file mode 100644 index 00000000..6235c1b4 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AssetBundlePathResolver.cs @@ -0,0 +1,215 @@ +using System;
+using System.IO;
+using System.Text;
+using UnityEngine;
+using XUpdater;
+
+namespace XUtliPoolLib
+{
+ public class AssetBundlePathResolver
+ {
+ public virtual string BundleSaveDirName
+ {
+ get
+ {
+ return "AssetBundles";
+ }
+ }
+
+ public string AndroidBundleSavePath
+ {
+ get
+ {
+ return "Assets/StreamingAssets/update/Android/" + this.BundleSaveDirName;
+ }
+ }
+
+ public string iOSBundleSavePath
+ {
+ get
+ {
+ return "Assets/StreamingAssets/update/iOS/" + this.BundleSaveDirName;
+ }
+ }
+
+ public string DefaultBundleSavePath
+ {
+ get
+ {
+ return "Assets/StreamingAssets/update/" + this.BundleSaveDirName;
+ }
+ }
+
+ public virtual string AndroidHashCacheSaveFile
+ {
+ get
+ {
+ return "Assets/AssetBundles/Android/cache.txt";
+ }
+ }
+
+ public virtual string iOSHashCacheSaveFile
+ {
+ get
+ {
+ return "Assets/AssetBundles/iOS/cache.txt";
+ }
+ }
+
+ public virtual string DefaultHashCacheSaveFile
+ {
+ get
+ {
+ return "Assets/AssetBundles/cache.txt";
+ }
+ }
+
+ public virtual string DependFileName
+ {
+ get
+ {
+ return "dep.all";
+ }
+ }
+
+ public virtual string BundleCacheDir
+ {
+ get
+ {
+ bool flag = this.cacheDir == null;
+ if (flag)
+ {
+ RuntimePlatform platform = Application.platform;
+ string path;
+ if ((int)platform != 8)
+ {
+ if ((int)platform != 11)
+ {
+ XPlatformType xplatformType = XSingleton<XUpdater.XUpdater>.singleton.XPlatform.Platfrom();
+ XPlatformType xplatformType2 = xplatformType;
+ if (xplatformType2 != XPlatformType.IOS)
+ {
+ if (xplatformType2 != XPlatformType.Android)
+ {
+ path = string.Format("{0}/update/AssetBundles", Application.streamingAssetsPath);
+ }
+ else
+ {
+ path = string.Format("{0}/update/Android/AssetBundles", Application.streamingAssetsPath);
+ }
+ }
+ else
+ {
+ path = string.Format("{0}/update/iOS/AssetBundles", Application.streamingAssetsPath);
+ }
+ }
+ else
+ {
+ path = string.Format("{0}/update/AssetBundles", Application.persistentDataPath);
+ }
+ }
+ else
+ {
+ path = string.Format("{0}/update/AssetBundles", Application.persistentDataPath);
+ }
+ this.cacheDir = new DirectoryInfo(path);
+ bool flag2 = !this.cacheDir.Exists;
+ if (flag2)
+ {
+ this.cacheDir.Create();
+ }
+ }
+ return this.cacheDir.FullName;
+ }
+ }
+
+ public static AssetBundlePathResolver instance;
+
+ private string cachePath = null;
+
+ private string cachePathWWW = null;
+
+ private StringBuilder pathSB = new StringBuilder();
+
+ private DirectoryInfo cacheDir;
+
+ public AssetBundlePathResolver()
+ {
+ AssetBundlePathResolver.instance = this;
+ }
+
+ public virtual string GetEditorModePath(string abName)
+ {
+ abName = abName.Replace(".", "/");
+ int num = abName.LastIndexOf("/");
+ bool flag = num == -1;
+ string result;
+ if (flag)
+ {
+ result = abName;
+ }
+ else
+ {
+ string text = string.Format("{0}.{1}", abName.Substring(0, num), abName.Substring(num + 1));
+ result = text;
+ }
+ return result;
+ }
+
+ public virtual string GetBundleSourceFile(string path, bool forWWW = true)
+ {
+ if (forWWW)
+ {
+ bool flag = this.cachePathWWW == null;
+ if (flag)
+ {
+ RuntimePlatform platform = Application.platform;
+ if ((int)platform != 8)
+ {
+ if ((int)platform != 11)
+ {
+ this.cachePathWWW = string.Format("file://{0}/StreamingAssets/update/{1}/", Application.dataPath, this.BundleSaveDirName);
+ }
+ else
+ {
+ this.cachePathWWW = string.Format("jar:file://{0}!/assets/update/Android/{1}/", Application.dataPath, this.BundleSaveDirName);
+ }
+ }
+ else
+ {
+ this.cachePathWWW = string.Format("file://{0}/Raw/update/iOS/{1}/", Application.dataPath, this.BundleSaveDirName);
+ }
+ }
+ this.pathSB.Length = 0;
+ this.pathSB.Append(this.cachePathWWW);
+ }
+ else
+ {
+ bool flag2 = this.cachePath == null;
+ if (flag2)
+ {
+ RuntimePlatform platform2 = Application.platform;
+ if ((int)platform2 != 8)
+ {
+ if ((int)platform2 != 11)
+ {
+ this.cachePath = string.Format("{0}/StreamingAssets/update/{1}/", Application.dataPath, this.BundleSaveDirName);
+ }
+ else
+ {
+ this.cachePath = string.Format("{0}!assets/update/Android/{1}/", Application.dataPath, this.BundleSaveDirName);
+ }
+ }
+ else
+ {
+ this.cachePath = string.Format("{0}/Raw/update/iOS/{1}/", Application.dataPath, this.BundleSaveDirName);
+ }
+ }
+ this.pathSB.Length = 0;
+ this.pathSB.Append(this.cachePath);
+ }
+ this.pathSB.Append(path);
+ return this.pathSB.ToString();
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/AssetBundlePathResolver.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/AssetBundlePathResolver.cs.meta new file mode 100644 index 00000000..0039a151 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AssetBundlePathResolver.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1af279aea4ee4604cb29f2aeaad30752 +timeCreated: 1611465297 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/AsyncXNGUILoad.cs b/Client/Assets/Scripts/XUtliPoolLib/AsyncXNGUILoad.cs new file mode 100644 index 00000000..be7b4abf --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AsyncXNGUILoad.cs @@ -0,0 +1,15 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public sealed class AsyncXNGUILoad
+ {
+ public bool IsDone = false;
+
+ public bool HasError = false;
+
+ public float Ratio = 0f;
+
+ public string abFilePath = string.Empty;
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/AsyncXNGUILoad.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/AsyncXNGUILoad.cs.meta new file mode 100644 index 00000000..57263bc8 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AsyncXNGUILoad.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 96511363ca95fa1419b7298533fbb7cf +timeCreated: 1611465708 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/AttributeEmblem.cs b/Client/Assets/Scripts/XUtliPoolLib/AttributeEmblem.cs new file mode 100644 index 00000000..555f8e5f --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AttributeEmblem.cs @@ -0,0 +1,48 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class AttributeEmblem : CVSReader
+ {
+ public AttributeEmblem.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint EmblemID;
+
+ public byte Position;
+
+ public byte AttrID;
+
+ public SeqRef<uint> Range;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ AttributeEmblem.RowData rowData = new AttributeEmblem.RowData();
+ base.Read<uint>(reader, ref rowData.EmblemID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<byte>(reader, ref rowData.Position, CVSReader.byteParse);
+ this.columnno = 1;
+ base.Read<byte>(reader, ref rowData.AttrID, CVSReader.byteParse);
+ this.columnno = 2;
+ rowData.Range.Read(reader, this.m_DataHandler);
+ this.columnno = 5;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new AttributeEmblem.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/AttributeEmblem.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/AttributeEmblem.cs.meta new file mode 100644 index 00000000..59fbd890 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AttributeEmblem.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2b3c85f3a65e5b44ca5a5629f787e322 +timeCreated: 1611465304 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/AuctionDiscountTable.cs b/Client/Assets/Scripts/XUtliPoolLib/AuctionDiscountTable.cs new file mode 100644 index 00000000..3fe597e8 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AuctionDiscountTable.cs @@ -0,0 +1,44 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class AuctionDiscountTable : CVSReader
+ {
+ public AuctionDiscountTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint Type;
+
+ public uint Group;
+
+ public float Discount;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ AuctionDiscountTable.RowData rowData = new AuctionDiscountTable.RowData();
+ base.Read<uint>(reader, ref rowData.Type, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.Group, CVSReader.uintParse);
+ this.columnno = 1;
+ base.Read<float>(reader, ref rowData.Discount, CVSReader.floatParse);
+ this.columnno = 2;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new AuctionDiscountTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/AuctionDiscountTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/AuctionDiscountTable.cs.meta new file mode 100644 index 00000000..a8c76893 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AuctionDiscountTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 3ccfa131d991ba249969bf420aa13097 +timeCreated: 1611465632 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/AuctionTypeList.cs b/Client/Assets/Scripts/XUtliPoolLib/AuctionTypeList.cs new file mode 100644 index 00000000..2735830c --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AuctionTypeList.cs @@ -0,0 +1,44 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class AuctionTypeList : CVSReader
+ {
+ public AuctionTypeList.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int id;
+
+ public string name;
+
+ public int pretype;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ AuctionTypeList.RowData rowData = new AuctionTypeList.RowData();
+ base.Read<int>(reader, ref rowData.id, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.name, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<int>(reader, ref rowData.pretype, CVSReader.intParse);
+ this.columnno = 2;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new AuctionTypeList.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/AuctionTypeList.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/AuctionTypeList.cs.meta new file mode 100644 index 00000000..12a9f9cd --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AuctionTypeList.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8a511ce8a60d0bf4c852168be963eb16 +timeCreated: 1611465699 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/AudioChannel.cs b/Client/Assets/Scripts/XUtliPoolLib/AudioChannel.cs new file mode 100644 index 00000000..42dabd6e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AudioChannel.cs @@ -0,0 +1,13 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public enum AudioChannel
+ {
+ Motion = 1,
+ Action,
+ Skill = 4,
+ Behit = 8,
+ SkillCombine = 16
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/AudioChannel.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/AudioChannel.cs.meta new file mode 100644 index 00000000..e3eab335 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/AudioChannel.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a868ef371326e0b4c93c6a35aae64fa2 +timeCreated: 1611465738 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/BackflowActivity.cs b/Client/Assets/Scripts/XUtliPoolLib/BackflowActivity.cs new file mode 100644 index 00000000..4062c421 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/BackflowActivity.cs @@ -0,0 +1,121 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class BackflowActivity : CVSReader
+ {
+ public BackflowActivity.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint Type;
+
+ public uint TaskId;
+
+ public SeqRef<uint> WorldLevel;
+
+ public uint Point;
+ }
+
+ public BackflowActivity.RowData GetByTaskId(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ BackflowActivity.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchTaskId(key);
+ }
+ return result;
+ }
+
+ private BackflowActivity.RowData BinarySearchTaskId(uint key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ BackflowActivity.RowData rowData;
+ BackflowActivity.RowData rowData2;
+ BackflowActivity.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.TaskId == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.TaskId == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.TaskId.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.TaskId.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ BackflowActivity.RowData rowData = new BackflowActivity.RowData();
+ base.Read<uint>(reader, ref rowData.Type, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.TaskId, CVSReader.uintParse);
+ this.columnno = 1;
+ rowData.WorldLevel.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ base.Read<uint>(reader, ref rowData.Point, CVSReader.uintParse);
+ this.columnno = 3;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new BackflowActivity.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/BackflowActivity.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/BackflowActivity.cs.meta new file mode 100644 index 00000000..5a5f895e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/BackflowActivity.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 6cbabfadfb13aa646becf5079b3585b0 +timeCreated: 1611465685 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/BackflowShop.cs b/Client/Assets/Scripts/XUtliPoolLib/BackflowShop.cs new file mode 100644 index 00000000..92386914 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/BackflowShop.cs @@ -0,0 +1,133 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class BackflowShop : CVSReader
+ {
+ public BackflowShop.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint GoodID;
+
+ public uint ItemID;
+
+ public uint ItemCount;
+
+ public uint CostType;
+
+ public uint CostNum;
+
+ public uint Discount;
+
+ public uint Quality;
+ }
+
+ public BackflowShop.RowData GetByGoodID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ BackflowShop.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchGoodID(key);
+ }
+ return result;
+ }
+
+ private BackflowShop.RowData BinarySearchGoodID(uint key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ BackflowShop.RowData rowData;
+ BackflowShop.RowData rowData2;
+ BackflowShop.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.GoodID == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.GoodID == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.GoodID.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.GoodID.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ BackflowShop.RowData rowData = new BackflowShop.RowData();
+ base.Read<uint>(reader, ref rowData.GoodID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.ItemID, CVSReader.uintParse);
+ this.columnno = 1;
+ base.Read<uint>(reader, ref rowData.ItemCount, CVSReader.uintParse);
+ this.columnno = 2;
+ base.Read<uint>(reader, ref rowData.CostType, CVSReader.uintParse);
+ this.columnno = 3;
+ base.Read<uint>(reader, ref rowData.CostNum, CVSReader.uintParse);
+ this.columnno = 4;
+ base.Read<uint>(reader, ref rowData.Discount, CVSReader.uintParse);
+ this.columnno = 5;
+ base.Read<uint>(reader, ref rowData.Quality, CVSReader.uintParse);
+ this.columnno = 10;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new BackflowShop.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/BackflowShop.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/BackflowShop.cs.meta new file mode 100644 index 00000000..dd8397a7 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/BackflowShop.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b08f6d0098e57634a83014e66a5d1ce2 +timeCreated: 1611465744 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/BagExpandItemListTable.cs b/Client/Assets/Scripts/XUtliPoolLib/BagExpandItemListTable.cs new file mode 100644 index 00000000..d655b48a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/BagExpandItemListTable.cs @@ -0,0 +1,90 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class BagExpandItemListTable : CVSReader
+ {
+ public BagExpandItemListTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint ItemId;
+
+ public uint Type;
+
+ public SeqListRef<uint> NeedAndOpen;
+ }
+
+ public BagExpandItemListTable.RowData GetByItemId(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ BagExpandItemListTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].ItemId == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ public BagExpandItemListTable.RowData GetByType(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ BagExpandItemListTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].Type == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ BagExpandItemListTable.RowData rowData = new BagExpandItemListTable.RowData();
+ base.Read<uint>(reader, ref rowData.ItemId, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.Type, CVSReader.uintParse);
+ this.columnno = 1;
+ rowData.NeedAndOpen.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new BagExpandItemListTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/BagExpandItemListTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/BagExpandItemListTable.cs.meta new file mode 100644 index 00000000..9884441c --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/BagExpandItemListTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ab308b9690a2a3949a240676574ef1cf +timeCreated: 1611465741 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/BattleFieldPointReward.cs b/Client/Assets/Scripts/XUtliPoolLib/BattleFieldPointReward.cs new file mode 100644 index 00000000..a811f8aa --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/BattleFieldPointReward.cs @@ -0,0 +1,56 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class BattleFieldPointReward : CVSReader
+ {
+ public BattleFieldPointReward.RowData[] Table = null;
+
+ public class RowData
+ {
+ public SeqRef<int> levelrange;
+
+ public int point;
+
+ public SeqListRef<int> reward;
+
+ public uint id;
+
+ public uint count;
+
+ public SeqRef<uint> pointseg;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ BattleFieldPointReward.RowData rowData = new BattleFieldPointReward.RowData();
+ rowData.levelrange.Read(reader, this.m_DataHandler);
+ this.columnno = 0;
+ base.Read<int>(reader, ref rowData.point, CVSReader.intParse);
+ this.columnno = 1;
+ rowData.reward.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ base.Read<uint>(reader, ref rowData.id, CVSReader.uintParse);
+ this.columnno = 3;
+ base.Read<uint>(reader, ref rowData.count, CVSReader.uintParse);
+ this.columnno = 4;
+ rowData.pointseg.Read(reader, this.m_DataHandler);
+ this.columnno = 5;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new BattleFieldPointReward.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/BattleFieldPointReward.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/BattleFieldPointReward.cs.meta new file mode 100644 index 00000000..ea9180c2 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/BattleFieldPointReward.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 66a77bb439e9dfa4b9e7eb195551630e +timeCreated: 1611465683 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/BeforeUnityUnLoadResource.cs b/Client/Assets/Scripts/XUtliPoolLib/BeforeUnityUnLoadResource.cs new file mode 100644 index 00000000..afedc2ac --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/BeforeUnityUnLoadResource.cs @@ -0,0 +1,6 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public delegate void BeforeUnityUnLoadResource();
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/BeforeUnityUnLoadResource.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/BeforeUnityUnLoadResource.cs.meta new file mode 100644 index 00000000..c2e83f56 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/BeforeUnityUnLoadResource.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 733d902fdf0888a4e878403d1664c081 +timeCreated: 1611465688 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/BigMeleePointReward.cs b/Client/Assets/Scripts/XUtliPoolLib/BigMeleePointReward.cs new file mode 100644 index 00000000..16b2c105 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/BigMeleePointReward.cs @@ -0,0 +1,44 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class BigMeleePointReward : CVSReader
+ {
+ public BigMeleePointReward.RowData[] Table = null;
+
+ public class RowData
+ {
+ public SeqRef<int> levelrange;
+
+ public int point;
+
+ public SeqListRef<int> reward;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ BigMeleePointReward.RowData rowData = new BigMeleePointReward.RowData();
+ rowData.levelrange.Read(reader, this.m_DataHandler);
+ this.columnno = 0;
+ base.Read<int>(reader, ref rowData.point, CVSReader.intParse);
+ this.columnno = 1;
+ rowData.reward.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new BigMeleePointReward.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/BigMeleePointReward.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/BigMeleePointReward.cs.meta new file mode 100644 index 00000000..478c8637 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/BigMeleePointReward.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 5bc40fbc730316840af20d3206bb77fb +timeCreated: 1611465649 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/BigMeleeRankReward.cs b/Client/Assets/Scripts/XUtliPoolLib/BigMeleeRankReward.cs new file mode 100644 index 00000000..42fb454e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/BigMeleeRankReward.cs @@ -0,0 +1,44 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class BigMeleeRankReward : CVSReader
+ {
+ public BigMeleeRankReward.RowData[] Table = null;
+
+ public class RowData
+ {
+ public SeqRef<int> levelrange;
+
+ public SeqRef<int> rank;
+
+ public SeqListRef<int> reward;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ BigMeleeRankReward.RowData rowData = new BigMeleeRankReward.RowData();
+ rowData.levelrange.Read(reader, this.m_DataHandler);
+ this.columnno = 0;
+ rowData.rank.Read(reader, this.m_DataHandler);
+ this.columnno = 1;
+ rowData.reward.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new BigMeleeRankReward.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/BigMeleeRankReward.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/BigMeleeRankReward.cs.meta new file mode 100644 index 00000000..c5baec73 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/BigMeleeRankReward.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0b0e43b372f44d444aab8de3f3ecadc0 +timeCreated: 1611465287 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/BlockInfo.cs b/Client/Assets/Scripts/XUtliPoolLib/BlockInfo.cs new file mode 100644 index 00000000..10f8f38b --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/BlockInfo.cs @@ -0,0 +1,17 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public struct BlockInfo
+ {
+ public int size;
+
+ public int count;
+
+ public BlockInfo(int s, int c)
+ {
+ this.size = s;
+ this.count = c;
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/BlockInfo.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/BlockInfo.cs.meta new file mode 100644 index 00000000..6e0976e0 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/BlockInfo.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 055ad89eecb723c42a47284e738d0d3e +timeCreated: 1611465285 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/BossRushBuffTable.cs b/Client/Assets/Scripts/XUtliPoolLib/BossRushBuffTable.cs new file mode 100644 index 00000000..b6a585eb --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/BossRushBuffTable.cs @@ -0,0 +1,75 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class BossRushBuffTable : CVSReader
+ {
+ public BossRushBuffTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int BossRushBuffID;
+
+ public float RewardBuff;
+
+ public string icon;
+
+ public int Quality;
+
+ public string Comment;
+ }
+
+ public BossRushBuffTable.RowData GetByBossRushBuffID(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ BossRushBuffTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].BossRushBuffID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ BossRushBuffTable.RowData rowData = new BossRushBuffTable.RowData();
+ base.Read<int>(reader, ref rowData.BossRushBuffID, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<float>(reader, ref rowData.RewardBuff, CVSReader.floatParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.icon, CVSReader.stringParse);
+ this.columnno = 4;
+ base.Read<int>(reader, ref rowData.Quality, CVSReader.intParse);
+ this.columnno = 5;
+ base.Read<string>(reader, ref rowData.Comment, CVSReader.stringParse);
+ this.columnno = 6;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new BossRushBuffTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/BossRushBuffTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/BossRushBuffTable.cs.meta new file mode 100644 index 00000000..1bdf907d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/BossRushBuffTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 21ee68ff278b34f419a0431d7f686a52 +timeCreated: 1611465299 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/BossRushTable.cs b/Client/Assets/Scripts/XUtliPoolLib/BossRushTable.cs new file mode 100644 index 00000000..0ea011e7 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/BossRushTable.cs @@ -0,0 +1,125 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class BossRushTable : CVSReader
+ {
+ public BossRushTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int bossid;
+
+ public byte[] bossdifficult;
+
+ public string bosstip;
+
+ public short qniqueid;
+
+ public SeqListRef<uint> reward;
+ }
+
+ public BossRushTable.RowData GetByqniqueid(short key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ BossRushTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchqniqueid(key);
+ }
+ return result;
+ }
+
+ private BossRushTable.RowData BinarySearchqniqueid(short key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ BossRushTable.RowData rowData;
+ BossRushTable.RowData rowData2;
+ BossRushTable.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.qniqueid == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.qniqueid == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.qniqueid.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.qniqueid.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ BossRushTable.RowData rowData = new BossRushTable.RowData();
+ base.Read<int>(reader, ref rowData.bossid, CVSReader.intParse);
+ this.columnno = 0;
+ base.ReadArray<byte>(reader, ref rowData.bossdifficult, CVSReader.byteParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.bosstip, CVSReader.stringParse);
+ this.columnno = 7;
+ base.Read<short>(reader, ref rowData.qniqueid, CVSReader.shortParse);
+ this.columnno = 10;
+ rowData.reward.Read(reader, this.m_DataHandler);
+ this.columnno = 12;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new BossRushTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/BossRushTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/BossRushTable.cs.meta new file mode 100644 index 00000000..4e3342b7 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/BossRushTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 124ba28273a4ce34789319c70e95d21e +timeCreated: 1611465291 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/BuffTable.cs b/Client/Assets/Scripts/XUtliPoolLib/BuffTable.cs new file mode 100644 index 00000000..733f312d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/BuffTable.cs @@ -0,0 +1,248 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class BuffTable : CVSReader
+ {
+ public BuffTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int BuffID;
+
+ public byte BuffLevel;
+
+ public float BuffDuration;
+
+ public SeqListRef<float> BuffChangeAttribute;
+
+ public byte[] BuffState;
+
+ public byte BuffMergeType;
+
+ public short TargetType;
+
+ public string BuffIcon;
+
+ public SeqListRef<float> BuffDOT;
+
+ public string BuffFx;
+
+ public string BuffDoodadFx;
+
+ public string BuffName;
+
+ public byte BuffTriggerCond;
+
+ public float BuffTriggerRate;
+
+ public string[] BuffTriggerParam;
+
+ public SeqListRef<int> BuffTriggerBuff;
+
+ public float CostModify;
+
+ public float BuffTriggerCD;
+
+ public SeqListRef<int> AuraAddBuffID;
+
+ public bool BuffIsVisible;
+
+ public string BuffEffectFx;
+
+ public float[] AuraParams;
+
+ public SeqListRef<float> DamageReduce;
+
+ public bool DontShowText;
+
+ public short[] EffectGroup;
+
+ public SeqListRef<int> BuffDOTValueFromCaster;
+
+ public SeqRef<float> ChangeDamage;
+
+ public byte BuffClearType;
+
+ public byte[] ClearTypes;
+
+ public float DamageReflection;
+
+ public uint MobID;
+
+ public SeqRef<float> BuffHP;
+
+ public byte StackMaxCount;
+
+ public short ChangeFightGroup;
+
+ public byte BuffTriggerCount;
+
+ public SeqRef<float> LifeSteal;
+
+ public SeqListRef<string> ReduceSkillCD;
+
+ public int StateParam;
+
+ public bool IsGlobalTrigger;
+
+ public byte[] Tags;
+
+ public string BuffSpriteFx;
+
+ public string MiniMapIcon;
+
+ public string BuffTriggerSkill;
+
+ public SeqListRef<string> ChangeSkillDamage;
+
+ public byte[] SceneEffect;
+
+ public SeqListRef<float> TargetLifeAddAttack;
+
+ public SeqRef<string> AIEvent;
+
+ public string[] RelevantSkills;
+
+ public bool IsTriggerImm;
+
+ public float[] Manipulate;
+
+ public SeqListRef<string> SkillsReplace;
+
+ public SeqListRef<float> SelfLifeAddAttack;
+
+ public SeqListRef<float> ChangeCastDamageByDistance;
+
+ public short Kill;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ BuffTable.RowData rowData = new BuffTable.RowData();
+ base.Read<int>(reader, ref rowData.BuffID, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<byte>(reader, ref rowData.BuffLevel, CVSReader.byteParse);
+ this.columnno = 1;
+ base.Read<float>(reader, ref rowData.BuffDuration, CVSReader.floatParse);
+ this.columnno = 2;
+ rowData.BuffChangeAttribute.Read(reader, this.m_DataHandler);
+ this.columnno = 3;
+ base.ReadArray<byte>(reader, ref rowData.BuffState, CVSReader.byteParse);
+ this.columnno = 4;
+ base.Read<byte>(reader, ref rowData.BuffMergeType, CVSReader.byteParse);
+ this.columnno = 5;
+ base.Read<short>(reader, ref rowData.TargetType, CVSReader.shortParse);
+ this.columnno = 6;
+ base.Read<string>(reader, ref rowData.BuffIcon, CVSReader.stringParse);
+ this.columnno = 7;
+ rowData.BuffDOT.Read(reader, this.m_DataHandler);
+ this.columnno = 8;
+ base.Read<string>(reader, ref rowData.BuffFx, CVSReader.stringParse);
+ this.columnno = 9;
+ base.Read<string>(reader, ref rowData.BuffDoodadFx, CVSReader.stringParse);
+ this.columnno = 10;
+ base.Read<string>(reader, ref rowData.BuffName, CVSReader.stringParse);
+ this.columnno = 11;
+ base.Read<byte>(reader, ref rowData.BuffTriggerCond, CVSReader.byteParse);
+ this.columnno = 12;
+ base.Read<float>(reader, ref rowData.BuffTriggerRate, CVSReader.floatParse);
+ this.columnno = 13;
+ base.ReadArray<string>(reader, ref rowData.BuffTriggerParam, CVSReader.stringParse);
+ this.columnno = 14;
+ rowData.BuffTriggerBuff.Read(reader, this.m_DataHandler);
+ this.columnno = 15;
+ base.Read<float>(reader, ref rowData.CostModify, CVSReader.floatParse);
+ this.columnno = 16;
+ base.Read<float>(reader, ref rowData.BuffTriggerCD, CVSReader.floatParse);
+ this.columnno = 18;
+ rowData.AuraAddBuffID.Read(reader, this.m_DataHandler);
+ this.columnno = 19;
+ base.Read<bool>(reader, ref rowData.BuffIsVisible, CVSReader.boolParse);
+ this.columnno = 20;
+ base.Read<string>(reader, ref rowData.BuffEffectFx, CVSReader.stringParse);
+ this.columnno = 21;
+ base.ReadArray<float>(reader, ref rowData.AuraParams, CVSReader.floatParse);
+ this.columnno = 22;
+ rowData.DamageReduce.Read(reader, this.m_DataHandler);
+ this.columnno = 23;
+ base.Read<bool>(reader, ref rowData.DontShowText, CVSReader.boolParse);
+ this.columnno = 24;
+ base.ReadArray<short>(reader, ref rowData.EffectGroup, CVSReader.shortParse);
+ this.columnno = 25;
+ rowData.BuffDOTValueFromCaster.Read(reader, this.m_DataHandler);
+ this.columnno = 26;
+ rowData.ChangeDamage.Read(reader, this.m_DataHandler);
+ this.columnno = 27;
+ base.Read<byte>(reader, ref rowData.BuffClearType, CVSReader.byteParse);
+ this.columnno = 28;
+ base.ReadArray<byte>(reader, ref rowData.ClearTypes, CVSReader.byteParse);
+ this.columnno = 29;
+ base.Read<float>(reader, ref rowData.DamageReflection, CVSReader.floatParse);
+ this.columnno = 30;
+ base.Read<uint>(reader, ref rowData.MobID, CVSReader.uintParse);
+ this.columnno = 31;
+ rowData.BuffHP.Read(reader, this.m_DataHandler);
+ this.columnno = 32;
+ base.Read<byte>(reader, ref rowData.StackMaxCount, CVSReader.byteParse);
+ this.columnno = 33;
+ base.Read<short>(reader, ref rowData.ChangeFightGroup, CVSReader.shortParse);
+ this.columnno = 34;
+ base.Read<byte>(reader, ref rowData.BuffTriggerCount, CVSReader.byteParse);
+ this.columnno = 35;
+ rowData.LifeSteal.Read(reader, this.m_DataHandler);
+ this.columnno = 36;
+ rowData.ReduceSkillCD.Read(reader, this.m_DataHandler);
+ this.columnno = 37;
+ base.Read<int>(reader, ref rowData.StateParam, CVSReader.intParse);
+ this.columnno = 38;
+ base.Read<bool>(reader, ref rowData.IsGlobalTrigger, CVSReader.boolParse);
+ this.columnno = 39;
+ base.ReadArray<byte>(reader, ref rowData.Tags, CVSReader.byteParse);
+ this.columnno = 40;
+ base.Read<string>(reader, ref rowData.BuffSpriteFx, CVSReader.stringParse);
+ this.columnno = 41;
+ base.Read<string>(reader, ref rowData.MiniMapIcon, CVSReader.stringParse);
+ this.columnno = 42;
+ base.Read<string>(reader, ref rowData.BuffTriggerSkill, CVSReader.stringParse);
+ this.columnno = 43;
+ rowData.ChangeSkillDamage.Read(reader, this.m_DataHandler);
+ this.columnno = 44;
+ base.ReadArray<byte>(reader, ref rowData.SceneEffect, CVSReader.byteParse);
+ this.columnno = 45;
+ rowData.TargetLifeAddAttack.Read(reader, this.m_DataHandler);
+ this.columnno = 46;
+ rowData.AIEvent.Read(reader, this.m_DataHandler);
+ this.columnno = 47;
+ base.ReadArray<string>(reader, ref rowData.RelevantSkills, CVSReader.stringParse);
+ this.columnno = 48;
+ base.Read<bool>(reader, ref rowData.IsTriggerImm, CVSReader.boolParse);
+ this.columnno = 49;
+ base.ReadArray<float>(reader, ref rowData.Manipulate, CVSReader.floatParse);
+ this.columnno = 50;
+ rowData.SkillsReplace.Read(reader, this.m_DataHandler);
+ this.columnno = 51;
+ rowData.SelfLifeAddAttack.Read(reader, this.m_DataHandler);
+ this.columnno = 52;
+ rowData.ChangeCastDamageByDistance.Read(reader, this.m_DataHandler);
+ this.columnno = 53;
+ base.Read<short>(reader, ref rowData.Kill, CVSReader.shortParse);
+ this.columnno = 54;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new BuffTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/BuffTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/BuffTable.cs.meta new file mode 100644 index 00000000..8db189ce --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/BuffTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 3e3c52a97ad7da845bf22a12479596ff +timeCreated: 1611465633 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/BufferBlock.cs b/Client/Assets/Scripts/XUtliPoolLib/BufferBlock.cs new file mode 100644 index 00000000..68ac700a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/BufferBlock.cs @@ -0,0 +1,17 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public struct BufferBlock
+ {
+ public int offset;
+
+ public int size;
+
+ public int capacity;
+
+ public int blockIndex;
+
+ public bool inUse;
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/BufferBlock.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/BufferBlock.cs.meta new file mode 100644 index 00000000..e1eadb98 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/BufferBlock.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 115d8f1d7d985ff41b908e9f34835b0f +timeCreated: 1611465291 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/BufferPoolMgr.cs b/Client/Assets/Scripts/XUtliPoolLib/BufferPoolMgr.cs new file mode 100644 index 00000000..b97e7f3c --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/BufferPoolMgr.cs @@ -0,0 +1,63 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class BufferPoolMgr : XSingleton<BufferPoolMgr>
+ {
+ private SmallBufferPool<uint> m_UIntSmallBufferPool = new SmallBufferPool<uint>();
+
+ private SmallBufferPool<object> m_ObjSmallBufferPool = new SmallBufferPool<object>();
+
+ public static int TotalCount = 0;
+
+ public static int AllocSize = 0;
+
+ public BlockInfo[] uintBlockInit = new BlockInfo[]
+ {
+ new BlockInfo(4, 512),
+ new BlockInfo(8, 512),
+ new BlockInfo(16, 512),
+ new BlockInfo(32, 512),
+ new BlockInfo(64, 512),
+ new BlockInfo(256, 128),
+ new BlockInfo(512, 128)
+ };
+
+ public BlockInfo[] objBlockInit = new BlockInfo[]
+ {
+ new BlockInfo(8, 512),
+ new BlockInfo(16, 512),
+ new BlockInfo(32, 512),
+ new BlockInfo(64, 512),
+ new BlockInfo(256, 128),
+ new BlockInfo(512, 128)
+ };
+
+ public override bool Init()
+ {
+ this.m_UIntSmallBufferPool.Init(this.uintBlockInit, 4);
+ this.m_ObjSmallBufferPool.Init(this.objBlockInit, 4);
+ return true;
+ }
+
+ public void GetSmallBuffer(ref SmallBuffer<uint> sb, int size, int initSize = 0)
+ {
+ this.m_UIntSmallBufferPool.GetBlock(ref sb, size, 0);
+ }
+
+ public void ReturnSmallBuffer(ref SmallBuffer<uint> sb)
+ {
+ this.m_UIntSmallBufferPool.ReturnBlock(ref sb);
+ }
+
+ public void GetSmallBuffer(ref SmallBuffer<object> sb, int size, int initSize = 0)
+ {
+ this.m_ObjSmallBufferPool.GetBlock(ref sb, size, 0);
+ }
+
+ public void ReturnSmallBuffer(ref SmallBuffer<object> sb)
+ {
+ this.m_ObjSmallBufferPool.ReturnBlock(ref sb);
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/BufferPoolMgr.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/BufferPoolMgr.cs.meta new file mode 100644 index 00000000..ca861cd8 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/BufferPoolMgr.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: be2fd01d85787fd419c413b580dd0768 +timeCreated: 1611465751 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/BuyDragonCoin.cs b/Client/Assets/Scripts/XUtliPoolLib/BuyDragonCoin.cs new file mode 100644 index 00000000..d4dbbbd0 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/BuyDragonCoin.cs @@ -0,0 +1,40 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class BuyDragonCoin : CVSReader
+ {
+ public BuyDragonCoin.RowData[] Table = null;
+
+ public class RowData
+ {
+ public long DragonCoin;
+
+ public int[] DiamondCost;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ BuyDragonCoin.RowData rowData = new BuyDragonCoin.RowData();
+ base.Read<long>(reader, ref rowData.DragonCoin, CVSReader.longParse);
+ this.columnno = 1;
+ base.ReadArray<int>(reader, ref rowData.DiamondCost, CVSReader.intParse);
+ this.columnno = 2;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new BuyDragonCoin.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/BuyDragonCoin.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/BuyDragonCoin.cs.meta new file mode 100644 index 00000000..e38fdfdc --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/BuyDragonCoin.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: e9d7d40bf1cf5c94ca75513232bc8668 +timeCreated: 1611465803 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/BuyFatigueTable.cs b/Client/Assets/Scripts/XUtliPoolLib/BuyFatigueTable.cs new file mode 100644 index 00000000..dfe1091a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/BuyFatigueTable.cs @@ -0,0 +1,48 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class BuyFatigueTable : CVSReader
+ {
+ public BuyFatigueTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int FatigueID;
+
+ public int Value;
+
+ public int[] DragonCoinCost;
+
+ public int[] DiamondCost;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ BuyFatigueTable.RowData rowData = new BuyFatigueTable.RowData();
+ base.Read<int>(reader, ref rowData.FatigueID, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<int>(reader, ref rowData.Value, CVSReader.intParse);
+ this.columnno = 1;
+ base.ReadArray<int>(reader, ref rowData.DragonCoinCost, CVSReader.intParse);
+ this.columnno = 2;
+ base.ReadArray<int>(reader, ref rowData.DiamondCost, CVSReader.intParse);
+ this.columnno = 3;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new BuyFatigueTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/BuyFatigueTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/BuyFatigueTable.cs.meta new file mode 100644 index 00000000..7b87c552 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/BuyFatigueTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 31abe1f0b7d47f247adfe41e852d0d54 +timeCreated: 1611465309 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/BuyGoldTable.cs b/Client/Assets/Scripts/XUtliPoolLib/BuyGoldTable.cs new file mode 100644 index 00000000..24214058 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/BuyGoldTable.cs @@ -0,0 +1,44 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class BuyGoldTable : CVSReader
+ {
+ public BuyGoldTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public long Gold;
+
+ public int[] DragonCoinCost;
+
+ public int[] DiamondCost;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ BuyGoldTable.RowData rowData = new BuyGoldTable.RowData();
+ base.Read<long>(reader, ref rowData.Gold, CVSReader.longParse);
+ this.columnno = 1;
+ base.ReadArray<int>(reader, ref rowData.DragonCoinCost, CVSReader.intParse);
+ this.columnno = 2;
+ base.ReadArray<int>(reader, ref rowData.DiamondCost, CVSReader.intParse);
+ this.columnno = 3;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new BuyGoldTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/BuyGoldTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/BuyGoldTable.cs.meta new file mode 100644 index 00000000..ab56df03 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/BuyGoldTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 704fe6e233305e641946b139af764969 +timeCreated: 1611465687 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/CVSReader.cs b/Client/Assets/Scripts/XUtliPoolLib/CVSReader.cs new file mode 100644 index 00000000..573afd35 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CVSReader.cs @@ -0,0 +1,389 @@ +using System;
+using System.IO;
+
+namespace XUtliPoolLib
+{
+ public abstract class CVSReader
+ {
+ public string error
+ {
+ get
+ {
+ return " line: " + this.lineno.ToString() + " column: " + this.columnno.ToString();
+ }
+ }
+
+ protected static CVSReader.FloatParse floatParse = new CVSReader.FloatParse();
+
+ protected static CVSReader.DoubleParse doubleParse = new CVSReader.DoubleParse();
+
+ protected static CVSReader.UIntParse uintParse = new CVSReader.UIntParse();
+
+ protected static CVSReader.IntParse intParse = new CVSReader.IntParse();
+
+ protected static CVSReader.LongParse longParse = new CVSReader.LongParse();
+
+ protected static CVSReader.StringParse stringParse = new CVSReader.StringParse();
+
+ protected static CVSReader.BoolParse boolParse = new CVSReader.BoolParse();
+
+ protected static CVSReader.ByteParse byteParse = new CVSReader.ByteParse();
+
+ protected static CVSReader.ShortParse shortParse = new CVSReader.ShortParse();
+
+ public int lineno = -1;
+
+ public int columnno = -1;
+
+ protected DataHandler m_DataHandler = null;
+
+ public abstract class ValueParse<T>
+ {
+ public abstract T[] GetBuffer(DataHandler dh);
+
+ public abstract void Read(XBinaryReader stream, ref T t, CVSReader reader);
+ }
+
+ public sealed class UIntParse : CVSReader.ValueParse<uint>
+ {
+ public override uint[] GetBuffer(DataHandler dh)
+ {
+ return dh.uintBuffer;
+ }
+
+ public override void Read(XBinaryReader stream, ref uint t, CVSReader reader)
+ {
+ t = stream.ReadUInt32();
+ }
+ }
+
+ public sealed class IntParse : CVSReader.ValueParse<int>
+ {
+ public override int[] GetBuffer(DataHandler dh)
+ {
+ return dh.intBuffer;
+ }
+
+ public override void Read(XBinaryReader stream, ref int t, CVSReader reader)
+ {
+ t = stream.ReadInt32();
+ }
+ }
+
+ public sealed class LongParse : CVSReader.ValueParse<long>
+ {
+ public override long[] GetBuffer(DataHandler dh)
+ {
+ return dh.longBuffer;
+ }
+
+ public override void Read(XBinaryReader stream, ref long t, CVSReader reader)
+ {
+ t = stream.ReadInt64();
+ }
+ }
+
+ public sealed class FloatParse : CVSReader.ValueParse<float>
+ {
+ public override float[] GetBuffer(DataHandler dh)
+ {
+ return dh.floatBuffer;
+ }
+
+ public override void Read(XBinaryReader stream, ref float t, CVSReader reader)
+ {
+ t = stream.ReadSingle();
+ }
+ }
+
+ public sealed class DoubleParse : CVSReader.ValueParse<double>
+ {
+ public override double[] GetBuffer(DataHandler dh)
+ {
+ return dh.doubleBuffer;
+ }
+
+ public override void Read(XBinaryReader stream, ref double t, CVSReader reader)
+ {
+ t = stream.ReadDouble();
+ }
+ }
+
+ public sealed class StringParse : CVSReader.ValueParse<string>
+ {
+ public override string[] GetBuffer(DataHandler dh)
+ {
+ return dh.stringBuffer;
+ }
+
+ public override void Read(XBinaryReader stream, ref string t, CVSReader reader)
+ {
+ bool flag = reader.m_DataHandler != null;
+ if (flag)
+ {
+ t = reader.m_DataHandler.ReadString(stream);
+ }
+ else
+ {
+ t = string.Intern(stream.ReadString(-1));
+ }
+ }
+ }
+
+ public sealed class BoolParse : CVSReader.ValueParse<bool>
+ {
+ public override bool[] GetBuffer(DataHandler dh)
+ {
+ return null;
+ }
+
+ public override void Read(XBinaryReader stream, ref bool t, CVSReader reader)
+ {
+ t = stream.ReadBoolean();
+ }
+ }
+
+ public sealed class ByteParse : CVSReader.ValueParse<byte>
+ {
+ public override byte[] GetBuffer(DataHandler dh)
+ {
+ return null;
+ }
+
+ public override void Read(XBinaryReader stream, ref byte t, CVSReader reader)
+ {
+ t = stream.ReadByte();
+ }
+ }
+
+ public sealed class ShortParse : CVSReader.ValueParse<short>
+ {
+ public short[] buffer = null;
+
+ public override short[] GetBuffer(DataHandler dh)
+ {
+ return null;
+ }
+
+ public override void Read(XBinaryReader stream, ref short t, CVSReader reader)
+ {
+ t = stream.ReadInt16();
+ }
+ }
+
+ public delegate int RowDataCompare<Trowdata, Ttype>(Trowdata rowData, Ttype key);
+
+ public static void Init()
+ {
+ SeqRef<string>.parser = CVSReader.stringParse;
+ SeqRef<int>.parser = CVSReader.intParse;
+ SeqRef<uint>.parser = CVSReader.uintParse;
+ SeqRef<long>.parser = CVSReader.longParse;
+ SeqRef<float>.parser = CVSReader.floatParse;
+ SeqRef<double>.parser = CVSReader.doubleParse;
+ SeqListRef<string>.parser = CVSReader.stringParse;
+ SeqListRef<int>.parser = CVSReader.intParse;
+ SeqListRef<uint>.parser = CVSReader.uintParse;
+ SeqListRef<long>.parser = CVSReader.longParse;
+ SeqListRef<float>.parser = CVSReader.floatParse;
+ SeqListRef<double>.parser = CVSReader.doubleParse;
+ }
+
+ public CVSReader()
+ {
+ this.lineno = 1;
+ }
+
+ public bool ReadFile(XBinaryReader reader)
+ {
+ this.lineno = 0;
+ this.columnno = -1;
+ int num = reader.ReadInt32();
+ int num2 = reader.ReadInt32();
+ this.OnClear(num2);
+ this.m_DataHandler = new DataHandler();
+ this.m_DataHandler.Init(reader);
+ byte b = reader.ReadByte();
+ for (int i = 0; i < (int)b; i++)
+ {
+ byte b2 = reader.ReadByte();
+ byte b3 = reader.ReadByte();
+ }
+ for (int j = 0; j < num2; j++)
+ {
+ int num3 = reader.ReadInt32();
+ int position = reader.GetPosition();
+ this.ReadLine(reader);
+ int position2 = reader.GetPosition();
+ int num4 = position2 - position;
+ bool flag = num3 > num4;
+ if (flag)
+ {
+ reader.Seek(num3 - num4, SeekOrigin.Current);
+ }
+ else
+ {
+ bool flag2 = num3 < num4;
+ if (flag2)
+ {
+ XSingleton<XDebug>.singleton.AddErrorLog2("read table error:{0} line:{1} column:{2}", new object[]
+ {
+ base.GetType().Name,
+ this.lineno + 1,
+ this.columnno
+ });
+ break;
+ }
+ }
+ this.lineno++;
+ bool flag3 = this.columnno > 0;
+ if (flag3)
+ {
+ break;
+ }
+ }
+ int position3 = reader.GetPosition();
+ bool flag4 = position3 != num;
+ if (flag4)
+ {
+ XSingleton<XDebug>.singleton.AddErrorLog2("read table error:{0} size:{1} read size:{2}", new object[]
+ {
+ base.GetType().Name,
+ num,
+ position3
+ });
+ }
+ this.m_DataHandler.UnInit(false);
+ return this.columnno == -1;
+ }
+
+ public void Clear()
+ {
+ this.OnClear(0);
+ }
+
+ protected bool Read<T>(XBinaryReader stream, ref T v, CVSReader.ValueParse<T> parse)
+ {
+ parse.Read(stream, ref v, this);
+ return true;
+ }
+
+ protected bool ReadArray<T>(XBinaryReader stream, ref T[] v, CVSReader.ValueParse<T> parse)
+ {
+ byte b = stream.ReadByte();
+ bool flag = b > 0;
+ if (flag)
+ {
+ v = new T[(int)b];
+ for (byte b2 = 0; b2 < b; b2 += 1)
+ {
+ parse.Read(stream, ref v[(int)b2], this);
+ }
+ }
+ else
+ {
+ v = null;
+ }
+ return true;
+ }
+
+ protected abstract void OnClear(int lineCount);
+
+ protected virtual void ReadLine(XBinaryReader reader)
+ {
+ }
+
+ public static void GetRowDataListByField<Trowdata, Ttype>(Trowdata[] table, Ttype field, out int startIndex, out int endIndex, CVSReader.RowDataCompare<Trowdata, Ttype> comp) where Ttype : IComparable
+ {
+ startIndex = -1;
+ endIndex = -1;
+ int num = 0;
+ int num2 = table.Length - 1;
+ int num3 = -1;
+ int num4;
+ for (;;)
+ {
+ Trowdata rowData = table[num];
+ bool flag = comp(rowData, field) == 0;
+ if (flag)
+ {
+ break;
+ }
+ Trowdata rowData2 = table[num2];
+ bool flag2 = comp(rowData2, field) == 0;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ num4 = num + (num2 - num) / 2;
+ Trowdata rowData3 = table[num4];
+ bool flag4 = comp(rowData3, field) < 0;
+ if (flag4)
+ {
+ num2 = num4;
+ }
+ else
+ {
+ bool flag5 = comp(rowData3, field) > 0;
+ if (!flag5)
+ {
+ goto IL_AE;
+ }
+ num = num4;
+ }
+ if (num >= num2)
+ {
+ goto IL_C2;
+ }
+ }
+ num3 = num;
+ goto IL_C2;
+ Block_2:
+ num3 = num2;
+ Block_3:
+ goto IL_C2;
+ IL_AE:
+ num3 = num4;
+ IL_C2:
+ bool flag6 = num3 >= 0;
+ if (flag6)
+ {
+ startIndex = num3;
+ endIndex = num3;
+ bool flag7 = num3 > 0;
+ if (flag7)
+ {
+ for (int i = num3 - 1; i >= 0; i--)
+ {
+ Trowdata rowData4 = table[i];
+ bool flag8 = comp(rowData4, field) != 0;
+ if (flag8)
+ {
+ break;
+ }
+ startIndex = i;
+ }
+ }
+ bool flag9 = num3 < table.Length - 1;
+ if (flag9)
+ {
+ for (int j = num3 + 1; j < table.Length; j++)
+ {
+ Trowdata rowData5 = table[j];
+ bool flag10 = comp(rowData5, field) != 0;
+ if (flag10)
+ {
+ break;
+ }
+ endIndex = j;
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/CVSReader.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/CVSReader.cs.meta new file mode 100644 index 00000000..1f5f1966 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CVSReader.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1dd17887debe9b140a9b7d3add1fecbb +timeCreated: 1611465298 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/CallMonsterData.cs b/Client/Assets/Scripts/XUtliPoolLib/CallMonsterData.cs new file mode 100644 index 00000000..a8dac571 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CallMonsterData.cs @@ -0,0 +1,42 @@ +using System;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public class CallMonsterData
+ {
+ public float mAIArgDist;
+
+ public float mAIArgAngle;
+
+ public int mAIArgMonsterId;
+
+ public int mAIArgCopyMonsterId;
+
+ public int mAIArgMaxMonsterNum;
+
+ public float mAIArgLifeTime;
+
+ public float mAIArgDelayTime;
+
+ public Vector3 mAIArgPos;
+
+ public int mAIArgBornType;
+
+ public Vector3 mAIArgPos1;
+
+ public Vector3 mAIArgPos2;
+
+ public Vector3 mAIArgPos3;
+
+ public Vector3 mAIArgPos4;
+
+ public Vector3 mAIArgFinalPos;
+
+ public bool mAIArgForcePlace;
+
+ public float mAIArgDeltaArg;
+
+ public float mAIArgHPPercent;
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/CallMonsterData.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/CallMonsterData.cs.meta new file mode 100644 index 00000000..b0ce1288 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CallMonsterData.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: fe0991ec11f0a4a4f9e74abac5f5566d +timeCreated: 1611465812 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/CameraMotionSpace.cs b/Client/Assets/Scripts/XUtliPoolLib/CameraMotionSpace.cs new file mode 100644 index 00000000..5e7dccec --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CameraMotionSpace.cs @@ -0,0 +1,11 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public enum CameraMotionSpace
+ {
+ World,
+ Self,
+ Camera
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/CameraMotionSpace.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/CameraMotionSpace.cs.meta new file mode 100644 index 00000000..4c617b17 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CameraMotionSpace.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 77912e5df25efec42afa1dee460e23a0 +timeCreated: 1611465691 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/CameraMotionType.cs b/Client/Assets/Scripts/XUtliPoolLib/CameraMotionType.cs new file mode 100644 index 00000000..a5438346 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CameraMotionType.cs @@ -0,0 +1,10 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public enum CameraMotionType
+ {
+ AnchorBased,
+ CameraBased
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/CameraMotionType.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/CameraMotionType.cs.meta new file mode 100644 index 00000000..c095d8b4 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CameraMotionType.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c48a4ede85e4b3c48bb3938091fdde0c +timeCreated: 1611465755 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/CampDuelPointReward.cs b/Client/Assets/Scripts/XUtliPoolLib/CampDuelPointReward.cs new file mode 100644 index 00000000..769d1f65 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CampDuelPointReward.cs @@ -0,0 +1,52 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class CampDuelPointReward : CVSReader
+ {
+ public CampDuelPointReward.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int CampID;
+
+ public int Point;
+
+ public SeqListRef<int> Reward;
+
+ public SeqRef<int> EXReward;
+
+ public string Icon;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ CampDuelPointReward.RowData rowData = new CampDuelPointReward.RowData();
+ base.Read<int>(reader, ref rowData.CampID, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<int>(reader, ref rowData.Point, CVSReader.intParse);
+ this.columnno = 1;
+ rowData.Reward.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ rowData.EXReward.Read(reader, this.m_DataHandler);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.Icon, CVSReader.stringParse);
+ this.columnno = 4;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new CampDuelPointReward.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/CampDuelPointReward.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/CampDuelPointReward.cs.meta new file mode 100644 index 00000000..40e21353 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CampDuelPointReward.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: aee6d1fdc6a6f094295e7492609b335f +timeCreated: 1611465742 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/CampDuelRankReward.cs b/Client/Assets/Scripts/XUtliPoolLib/CampDuelRankReward.cs new file mode 100644 index 00000000..12d5ea3b --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CampDuelRankReward.cs @@ -0,0 +1,48 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class CampDuelRankReward : CVSReader
+ {
+ public CampDuelRankReward.RowData[] Table = null;
+
+ public class RowData
+ {
+ public SeqRef<int> Rank;
+
+ public SeqListRef<int> Reward;
+
+ public bool IsWin;
+
+ public int CampID;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ CampDuelRankReward.RowData rowData = new CampDuelRankReward.RowData();
+ rowData.Rank.Read(reader, this.m_DataHandler);
+ this.columnno = 0;
+ rowData.Reward.Read(reader, this.m_DataHandler);
+ this.columnno = 1;
+ base.Read<bool>(reader, ref rowData.IsWin, CVSReader.boolParse);
+ this.columnno = 2;
+ base.Read<int>(reader, ref rowData.CampID, CVSReader.intParse);
+ this.columnno = 3;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new CampDuelRankReward.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/CampDuelRankReward.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/CampDuelRankReward.cs.meta new file mode 100644 index 00000000..8302a1ae --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CampDuelRankReward.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 773af8eb290d2664693982b290c20e89 +timeCreated: 1611465690 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/CanExecuteHandler.cs b/Client/Assets/Scripts/XUtliPoolLib/CanExecuteHandler.cs new file mode 100644 index 00000000..7f36d04f --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CanExecuteHandler.cs @@ -0,0 +1,6 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public delegate bool CanExecuteHandler(XGameObject gameObject, XEngineCommand command);
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/CanExecuteHandler.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/CanExecuteHandler.cs.meta new file mode 100644 index 00000000..ee00fb4a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CanExecuteHandler.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 7bcddf7c10de0b446a96382b8f949c32 +timeCreated: 1611465692 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/CardRewardTable.cs b/Client/Assets/Scripts/XUtliPoolLib/CardRewardTable.cs new file mode 100644 index 00000000..28952d78 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CardRewardTable.cs @@ -0,0 +1,48 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class CardRewardTable : CVSReader
+ {
+ public CardRewardTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public SeqListRef<uint> reward;
+
+ public uint point;
+
+ public SeqListRef<uint> matchreward;
+
+ public SeqListRef<uint> jokerreward;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ CardRewardTable.RowData rowData = new CardRewardTable.RowData();
+ rowData.reward.Read(reader, this.m_DataHandler);
+ this.columnno = 1;
+ base.Read<uint>(reader, ref rowData.point, CVSReader.uintParse);
+ this.columnno = 4;
+ rowData.matchreward.Read(reader, this.m_DataHandler);
+ this.columnno = 5;
+ rowData.jokerreward.Read(reader, this.m_DataHandler);
+ this.columnno = 6;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new CardRewardTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/CardRewardTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/CardRewardTable.cs.meta new file mode 100644 index 00000000..0630bd88 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CardRewardTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 7523f8c9e786fd7489ce3a6f9451f0c0 +timeCreated: 1611465689 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/CardStoreTable.cs b/Client/Assets/Scripts/XUtliPoolLib/CardStoreTable.cs new file mode 100644 index 00000000..5b96c0c2 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CardStoreTable.cs @@ -0,0 +1,36 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class CardStoreTable : CVSReader
+ {
+ public CardStoreTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public string words;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ CardStoreTable.RowData rowData = new CardStoreTable.RowData();
+ base.Read<string>(reader, ref rowData.words, CVSReader.stringParse);
+ this.columnno = 2;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new CardStoreTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/CardStoreTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/CardStoreTable.cs.meta new file mode 100644 index 00000000..1a332478 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CardStoreTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 23515a6fc0fc6cb489392818c8b4a802 +timeCreated: 1611465300 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/CardsFireProperty.cs b/Client/Assets/Scripts/XUtliPoolLib/CardsFireProperty.cs new file mode 100644 index 00000000..f2e506e7 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CardsFireProperty.cs @@ -0,0 +1,48 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class CardsFireProperty : CVSReader
+ {
+ public CardsFireProperty.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint GroupId;
+
+ public uint FireCounts;
+
+ public SeqListRef<uint> Promote;
+
+ public uint BreakLevel;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ CardsFireProperty.RowData rowData = new CardsFireProperty.RowData();
+ base.Read<uint>(reader, ref rowData.GroupId, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.FireCounts, CVSReader.uintParse);
+ this.columnno = 1;
+ rowData.Promote.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ base.Read<uint>(reader, ref rowData.BreakLevel, CVSReader.uintParse);
+ this.columnno = 3;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new CardsFireProperty.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/CardsFireProperty.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/CardsFireProperty.cs.meta new file mode 100644 index 00000000..63c7d65c --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CardsFireProperty.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4320424c68eb0a74aacb5d68243fb0e5 +timeCreated: 1611465636 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/CardsGroup.cs b/Client/Assets/Scripts/XUtliPoolLib/CardsGroup.cs new file mode 100644 index 00000000..0550c82a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CardsGroup.cs @@ -0,0 +1,129 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class CardsGroup : CVSReader
+ {
+ public CardsGroup.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint GroupId;
+
+ public uint TeamId;
+
+ public string TeamName;
+
+ public SeqListRef<uint> FireProperty_1;
+
+ public SeqListRef<uint> FireProperty_2;
+
+ public SeqListRef<uint> StarFireCondition;
+ }
+
+ public CardsGroup.RowData GetByTeamId(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ CardsGroup.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchTeamId(key);
+ }
+ return result;
+ }
+
+ private CardsGroup.RowData BinarySearchTeamId(uint key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ CardsGroup.RowData rowData;
+ CardsGroup.RowData rowData2;
+ CardsGroup.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.TeamId == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.TeamId == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.TeamId.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.TeamId.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ CardsGroup.RowData rowData = new CardsGroup.RowData();
+ base.Read<uint>(reader, ref rowData.GroupId, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.TeamId, CVSReader.uintParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.TeamName, CVSReader.stringParse);
+ this.columnno = 2;
+ rowData.FireProperty_1.Read(reader, this.m_DataHandler);
+ this.columnno = 3;
+ rowData.FireProperty_2.Read(reader, this.m_DataHandler);
+ this.columnno = 4;
+ rowData.StarFireCondition.Read(reader, this.m_DataHandler);
+ this.columnno = 5;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new CardsGroup.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/CardsGroup.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/CardsGroup.cs.meta new file mode 100644 index 00000000..68102d77 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CardsGroup.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: e4f51c169219382468b31c2b7da7ee11 +timeCreated: 1611465801 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/CardsGroupList.cs b/Client/Assets/Scripts/XUtliPoolLib/CardsGroupList.cs new file mode 100644 index 00000000..f43d7cb4 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CardsGroupList.cs @@ -0,0 +1,87 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class CardsGroupList : CVSReader
+ {
+ public CardsGroupList.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint GroupId;
+
+ public uint ShowLevel;
+
+ public uint OpenLevel;
+
+ public string ShowUp;
+
+ public string Detail;
+
+ public string GroupName;
+
+ public uint MapID;
+
+ public uint[] BreakLevel;
+ }
+
+ public CardsGroupList.RowData GetByGroupId(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ CardsGroupList.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].GroupId == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ CardsGroupList.RowData rowData = new CardsGroupList.RowData();
+ base.Read<uint>(reader, ref rowData.GroupId, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.ShowLevel, CVSReader.uintParse);
+ this.columnno = 1;
+ base.Read<uint>(reader, ref rowData.OpenLevel, CVSReader.uintParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.ShowUp, CVSReader.stringParse);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.Detail, CVSReader.stringParse);
+ this.columnno = 4;
+ base.Read<string>(reader, ref rowData.GroupName, CVSReader.stringParse);
+ this.columnno = 5;
+ base.Read<uint>(reader, ref rowData.MapID, CVSReader.uintParse);
+ this.columnno = 6;
+ base.ReadArray<uint>(reader, ref rowData.BreakLevel, CVSReader.uintParse);
+ this.columnno = 7;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new CardsGroupList.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/CardsGroupList.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/CardsGroupList.cs.meta new file mode 100644 index 00000000..309d503d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CardsGroupList.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 496f0cc5e0ed2f946acfdd9e834b26b6 +timeCreated: 1611465639 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/CardsList.cs b/Client/Assets/Scripts/XUtliPoolLib/CardsList.cs new file mode 100644 index 00000000..e6f4d9f2 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CardsList.cs @@ -0,0 +1,129 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class CardsList : CVSReader
+ {
+ public CardsList.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint CardId;
+
+ public string CardName;
+
+ public uint GroupId;
+
+ public string Description;
+
+ public uint Avatar;
+
+ public uint MapID;
+ }
+
+ public CardsList.RowData GetByCardId(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ CardsList.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchCardId(key);
+ }
+ return result;
+ }
+
+ private CardsList.RowData BinarySearchCardId(uint key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ CardsList.RowData rowData;
+ CardsList.RowData rowData2;
+ CardsList.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.CardId == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.CardId == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.CardId.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.CardId.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ CardsList.RowData rowData = new CardsList.RowData();
+ base.Read<uint>(reader, ref rowData.CardId, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.CardName, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<uint>(reader, ref rowData.GroupId, CVSReader.uintParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.Description, CVSReader.stringParse);
+ this.columnno = 3;
+ base.Read<uint>(reader, ref rowData.Avatar, CVSReader.uintParse);
+ this.columnno = 4;
+ base.Read<uint>(reader, ref rowData.MapID, CVSReader.uintParse);
+ this.columnno = 5;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new CardsList.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/CardsList.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/CardsList.cs.meta new file mode 100644 index 00000000..776fb657 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CardsList.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1da51e3c03f35f94ba1066490ae24ad4 +timeCreated: 1611465298 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/Career.cs b/Client/Assets/Scripts/XUtliPoolLib/Career.cs new file mode 100644 index 00000000..af809e1b --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Career.cs @@ -0,0 +1,44 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class Career : CVSReader
+ {
+ public Career.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int SortId;
+
+ public string TabName;
+
+ public int ID;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ Career.RowData rowData = new Career.RowData();
+ base.Read<int>(reader, ref rowData.SortId, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.TabName, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<int>(reader, ref rowData.ID, CVSReader.intParse);
+ this.columnno = 2;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new Career.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/Career.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/Career.cs.meta new file mode 100644 index 00000000..ffc41564 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Career.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: fb67705c52f7af4449272cf7e50d201a +timeCreated: 1611465811 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/CharacterAttributesList.cs b/Client/Assets/Scripts/XUtliPoolLib/CharacterAttributesList.cs new file mode 100644 index 00000000..669dd3c4 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CharacterAttributesList.cs @@ -0,0 +1,40 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class CharacterAttributesList : CVSReader
+ {
+ public CharacterAttributesList.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint AttributeID;
+
+ public string Section;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ CharacterAttributesList.RowData rowData = new CharacterAttributesList.RowData();
+ base.Read<uint>(reader, ref rowData.AttributeID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.Section, CVSReader.stringParse);
+ this.columnno = 1;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new CharacterAttributesList.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/CharacterAttributesList.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/CharacterAttributesList.cs.meta new file mode 100644 index 00000000..551fbc94 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CharacterAttributesList.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a14a4edf60adb5a47913c7a243518a2c +timeCreated: 1611465735 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/CharacterCommonInfo.cs b/Client/Assets/Scripts/XUtliPoolLib/CharacterCommonInfo.cs new file mode 100644 index 00000000..ebf09ac5 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CharacterCommonInfo.cs @@ -0,0 +1,40 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class CharacterCommonInfo : CVSReader
+ {
+ public CharacterCommonInfo.RowData[] Table = null;
+
+ public class RowData
+ {
+ public string ShowText;
+
+ public uint Type;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ CharacterCommonInfo.RowData rowData = new CharacterCommonInfo.RowData();
+ base.Read<string>(reader, ref rowData.ShowText, CVSReader.stringParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.Type, CVSReader.uintParse);
+ this.columnno = 1;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new CharacterCommonInfo.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/CharacterCommonInfo.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/CharacterCommonInfo.cs.meta new file mode 100644 index 00000000..c77dd39e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CharacterCommonInfo.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a879cb3b1532289499236fc00b0a69ca +timeCreated: 1611465738 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ChatApollo.cs b/Client/Assets/Scripts/XUtliPoolLib/ChatApollo.cs new file mode 100644 index 00000000..75ba5a48 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ChatApollo.cs @@ -0,0 +1,60 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class ChatApollo : CVSReader
+ {
+ public ChatApollo.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int speak;
+
+ public int music;
+
+ public int click;
+
+ public string note;
+
+ public int opens;
+
+ public int openm;
+
+ public string note2;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ ChatApollo.RowData rowData = new ChatApollo.RowData();
+ base.Read<int>(reader, ref rowData.speak, CVSReader.intParse);
+ this.columnno = 1;
+ base.Read<int>(reader, ref rowData.music, CVSReader.intParse);
+ this.columnno = 2;
+ base.Read<int>(reader, ref rowData.click, CVSReader.intParse);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.note, CVSReader.stringParse);
+ this.columnno = 4;
+ base.Read<int>(reader, ref rowData.opens, CVSReader.intParse);
+ this.columnno = 5;
+ base.Read<int>(reader, ref rowData.openm, CVSReader.intParse);
+ this.columnno = 6;
+ base.Read<string>(reader, ref rowData.note2, CVSReader.stringParse);
+ this.columnno = 7;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new ChatApollo.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ChatApollo.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ChatApollo.cs.meta new file mode 100644 index 00000000..20656a95 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ChatApollo.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: eaf2428600cd79e479d1b74b1a7f1060 +timeCreated: 1611465804 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ChatOpen.cs b/Client/Assets/Scripts/XUtliPoolLib/ChatOpen.cs new file mode 100644 index 00000000..d186b1a3 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ChatOpen.cs @@ -0,0 +1,92 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class ChatOpen : CVSReader
+ {
+ public ChatOpen.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint id;
+
+ public int[] opens;
+
+ public uint friends;
+
+ public int posX;
+
+ public int posY;
+
+ public float alpha;
+
+ public int pivot;
+
+ public float scale;
+
+ public int fade;
+
+ public int real;
+
+ public int radioX;
+
+ public int radioY;
+
+ public int battle;
+
+ public uint sceneid;
+
+ public int max;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ ChatOpen.RowData rowData = new ChatOpen.RowData();
+ base.Read<uint>(reader, ref rowData.id, CVSReader.uintParse);
+ this.columnno = 0;
+ base.ReadArray<int>(reader, ref rowData.opens, CVSReader.intParse);
+ this.columnno = 2;
+ base.Read<uint>(reader, ref rowData.friends, CVSReader.uintParse);
+ this.columnno = 3;
+ base.Read<int>(reader, ref rowData.posX, CVSReader.intParse);
+ this.columnno = 4;
+ base.Read<int>(reader, ref rowData.posY, CVSReader.intParse);
+ this.columnno = 5;
+ base.Read<float>(reader, ref rowData.alpha, CVSReader.floatParse);
+ this.columnno = 6;
+ base.Read<int>(reader, ref rowData.pivot, CVSReader.intParse);
+ this.columnno = 7;
+ base.Read<float>(reader, ref rowData.scale, CVSReader.floatParse);
+ this.columnno = 8;
+ base.Read<int>(reader, ref rowData.fade, CVSReader.intParse);
+ this.columnno = 9;
+ base.Read<int>(reader, ref rowData.real, CVSReader.intParse);
+ this.columnno = 10;
+ base.Read<int>(reader, ref rowData.radioX, CVSReader.intParse);
+ this.columnno = 11;
+ base.Read<int>(reader, ref rowData.radioY, CVSReader.intParse);
+ this.columnno = 12;
+ base.Read<int>(reader, ref rowData.battle, CVSReader.intParse);
+ this.columnno = 13;
+ base.Read<uint>(reader, ref rowData.sceneid, CVSReader.uintParse);
+ this.columnno = 14;
+ base.Read<int>(reader, ref rowData.max, CVSReader.intParse);
+ this.columnno = 15;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new ChatOpen.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ChatOpen.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ChatOpen.cs.meta new file mode 100644 index 00000000..552f0b05 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ChatOpen.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 72073c3dc48a9c44687488a02b2da283 +timeCreated: 1611465688 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ChatTable.cs b/Client/Assets/Scripts/XUtliPoolLib/ChatTable.cs new file mode 100644 index 00000000..74c4252a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ChatTable.cs @@ -0,0 +1,79 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class ChatTable : CVSReader
+ {
+ public ChatTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint id;
+
+ public uint level;
+
+ public uint length;
+
+ public string sprName;
+
+ public string miniSpr;
+
+ public string name;
+ }
+
+ public ChatTable.RowData GetByid(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ ChatTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].id == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ ChatTable.RowData rowData = new ChatTable.RowData();
+ base.Read<uint>(reader, ref rowData.id, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.level, CVSReader.uintParse);
+ this.columnno = 2;
+ base.Read<uint>(reader, ref rowData.length, CVSReader.uintParse);
+ this.columnno = 5;
+ base.Read<string>(reader, ref rowData.sprName, CVSReader.stringParse);
+ this.columnno = 6;
+ base.Read<string>(reader, ref rowData.miniSpr, CVSReader.stringParse);
+ this.columnno = 7;
+ base.Read<string>(reader, ref rowData.name, CVSReader.stringParse);
+ this.columnno = 8;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new ChatTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ChatTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ChatTable.cs.meta new file mode 100644 index 00000000..43f4037a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ChatTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c821756cff24d9341913054abbf742c9 +timeCreated: 1611465756 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ChestList.cs b/Client/Assets/Scripts/XUtliPoolLib/ChestList.cs new file mode 100644 index 00000000..59bef873 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ChestList.cs @@ -0,0 +1,48 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class ChestList : CVSReader
+ {
+ public ChestList.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int ItemID;
+
+ public uint[] DropID;
+
+ public int Profession;
+
+ public bool MultiOpen;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ ChestList.RowData rowData = new ChestList.RowData();
+ base.Read<int>(reader, ref rowData.ItemID, CVSReader.intParse);
+ this.columnno = 0;
+ base.ReadArray<uint>(reader, ref rowData.DropID, CVSReader.uintParse);
+ this.columnno = 1;
+ base.Read<int>(reader, ref rowData.Profession, CVSReader.intParse);
+ this.columnno = 5;
+ base.Read<bool>(reader, ref rowData.MultiOpen, CVSReader.boolParse);
+ this.columnno = 6;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new ChestList.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ChestList.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ChestList.cs.meta new file mode 100644 index 00000000..8f3a8472 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ChestList.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 9bc98515c111c0e4890a0b68b36ad2d6 +timeCreated: 1611465710 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ChickenDinnerRankReward.cs b/Client/Assets/Scripts/XUtliPoolLib/ChickenDinnerRankReward.cs new file mode 100644 index 00000000..d7a2d24a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ChickenDinnerRankReward.cs @@ -0,0 +1,40 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class ChickenDinnerRankReward : CVSReader
+ {
+ public ChickenDinnerRankReward.RowData[] Table = null;
+
+ public class RowData
+ {
+ public SeqRef<int> rank;
+
+ public SeqListRef<int> reward;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ ChickenDinnerRankReward.RowData rowData = new ChickenDinnerRankReward.RowData();
+ rowData.rank.Read(reader, this.m_DataHandler);
+ this.columnno = 0;
+ rowData.reward.Read(reader, this.m_DataHandler);
+ this.columnno = 1;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new ChickenDinnerRankReward.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ChickenDinnerRankReward.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ChickenDinnerRankReward.cs.meta new file mode 100644 index 00000000..88687051 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ChickenDinnerRankReward.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2ee14cccf2bb8a645b5faf8fa485f7ac +timeCreated: 1611465305 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/CombatParamTable.cs b/Client/Assets/Scripts/XUtliPoolLib/CombatParamTable.cs new file mode 100644 index 00000000..b3b7a6e9 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CombatParamTable.cs @@ -0,0 +1,80 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class CombatParamTable : CVSReader
+ {
+ public CombatParamTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int CriticalBase;
+
+ public int CritResistBase;
+
+ public int ParalyzeBase;
+
+ public int ParaResistBase;
+
+ public int StunBase;
+
+ public int StunResistBase;
+
+ public int CritDamageBase;
+
+ public int FinalDamageBase;
+
+ public int PhysicalDef;
+
+ public int MagicDef;
+
+ public int ElementAtk;
+
+ public int ElementDef;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ CombatParamTable.RowData rowData = new CombatParamTable.RowData();
+ base.Read<int>(reader, ref rowData.CriticalBase, CVSReader.intParse);
+ this.columnno = 1;
+ base.Read<int>(reader, ref rowData.CritResistBase, CVSReader.intParse);
+ this.columnno = 2;
+ base.Read<int>(reader, ref rowData.ParalyzeBase, CVSReader.intParse);
+ this.columnno = 3;
+ base.Read<int>(reader, ref rowData.ParaResistBase, CVSReader.intParse);
+ this.columnno = 4;
+ base.Read<int>(reader, ref rowData.StunBase, CVSReader.intParse);
+ this.columnno = 5;
+ base.Read<int>(reader, ref rowData.StunResistBase, CVSReader.intParse);
+ this.columnno = 6;
+ base.Read<int>(reader, ref rowData.CritDamageBase, CVSReader.intParse);
+ this.columnno = 7;
+ base.Read<int>(reader, ref rowData.FinalDamageBase, CVSReader.intParse);
+ this.columnno = 8;
+ base.Read<int>(reader, ref rowData.PhysicalDef, CVSReader.intParse);
+ this.columnno = 9;
+ base.Read<int>(reader, ref rowData.MagicDef, CVSReader.intParse);
+ this.columnno = 10;
+ base.Read<int>(reader, ref rowData.ElementAtk, CVSReader.intParse);
+ this.columnno = 11;
+ base.Read<int>(reader, ref rowData.ElementDef, CVSReader.intParse);
+ this.columnno = 12;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new CombatParamTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/CombatParamTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/CombatParamTable.cs.meta new file mode 100644 index 00000000..4435af0d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CombatParamTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 833a2c832d23831498ffb8b6aa4bf304 +timeCreated: 1611465695 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/CommandCallback.cs b/Client/Assets/Scripts/XUtliPoolLib/CommandCallback.cs new file mode 100644 index 00000000..6c99bc74 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CommandCallback.cs @@ -0,0 +1,6 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public delegate void CommandCallback(XGameObject gameObject, object obj, int commandID);
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/CommandCallback.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/CommandCallback.cs.meta new file mode 100644 index 00000000..aefcd4b4 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CommandCallback.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 128d60830484446459c3046f57283bcc +timeCreated: 1611465292 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/CommonObjectPool.cs b/Client/Assets/Scripts/XUtliPoolLib/CommonObjectPool.cs new file mode 100644 index 00000000..6ba319f3 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CommonObjectPool.cs @@ -0,0 +1,24 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class CommonObjectPool<T> where T : new()
+ {
+ private static readonly ObjectPool<object> s_Pool = new ObjectPool<object>(new ObjectPool<object>.CreateObj(CommonObjectPool<T>.Create), null, null);
+
+ public static object Create()
+ {
+ return Activator.CreateInstance<T>();
+ }
+
+ public static T Get()
+ {
+ return (T)((object)CommonObjectPool<T>.s_Pool.Get());
+ }
+
+ public static void Release(T toRelease)
+ {
+ CommonObjectPool<T>.s_Pool.Release(toRelease);
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/CommonObjectPool.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/CommonObjectPool.cs.meta new file mode 100644 index 00000000..70aec26e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CommonObjectPool.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 934a7c817cc87504c94e5168692873af +timeCreated: 1611465706 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/CompeteDragonRankRewardTable.cs b/Client/Assets/Scripts/XUtliPoolLib/CompeteDragonRankRewardTable.cs new file mode 100644 index 00000000..c116b268 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CompeteDragonRankRewardTable.cs @@ -0,0 +1,44 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class CompeteDragonRankRewardTable : CVSReader
+ {
+ public CompeteDragonRankRewardTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint rank;
+
+ public uint desigation;
+
+ public SeqListRef<int> reward;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ CompeteDragonRankRewardTable.RowData rowData = new CompeteDragonRankRewardTable.RowData();
+ base.Read<uint>(reader, ref rowData.rank, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.desigation, CVSReader.uintParse);
+ this.columnno = 1;
+ rowData.reward.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new CompeteDragonRankRewardTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/CompeteDragonRankRewardTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/CompeteDragonRankRewardTable.cs.meta new file mode 100644 index 00000000..8a228733 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CompeteDragonRankRewardTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a7877a9d439a47c4fb9d2b483768c636 +timeCreated: 1611465737 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/CookingFoodInfo.cs b/Client/Assets/Scripts/XUtliPoolLib/CookingFoodInfo.cs new file mode 100644 index 00000000..85f8bcc1 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CookingFoodInfo.cs @@ -0,0 +1,95 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class CookingFoodInfo : CVSReader
+ {
+ public CookingFoodInfo.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint FoodID;
+
+ public string FoodName;
+
+ public string Desc;
+
+ public uint AddExp;
+
+ public SeqListRef<uint> Ingredients;
+
+ public uint Duration;
+
+ public uint Frequency;
+
+ public uint Level;
+
+ public uint CookBookID;
+
+ public uint[] Profession;
+ }
+
+ public CookingFoodInfo.RowData GetByFoodID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ CookingFoodInfo.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].FoodID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ CookingFoodInfo.RowData rowData = new CookingFoodInfo.RowData();
+ base.Read<uint>(reader, ref rowData.FoodID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.FoodName, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.Desc, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<uint>(reader, ref rowData.AddExp, CVSReader.uintParse);
+ this.columnno = 3;
+ rowData.Ingredients.Read(reader, this.m_DataHandler);
+ this.columnno = 4;
+ base.Read<uint>(reader, ref rowData.Duration, CVSReader.uintParse);
+ this.columnno = 6;
+ base.Read<uint>(reader, ref rowData.Frequency, CVSReader.uintParse);
+ this.columnno = 7;
+ base.Read<uint>(reader, ref rowData.Level, CVSReader.uintParse);
+ this.columnno = 8;
+ base.Read<uint>(reader, ref rowData.CookBookID, CVSReader.uintParse);
+ this.columnno = 9;
+ base.ReadArray<uint>(reader, ref rowData.Profession, CVSReader.uintParse);
+ this.columnno = 11;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new CookingFoodInfo.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/CookingFoodInfo.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/CookingFoodInfo.cs.meta new file mode 100644 index 00000000..509031ad --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CookingFoodInfo.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 5e8a37d7454977a489e9a3439dc1d671 +timeCreated: 1611465650 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/CookingLevel.cs b/Client/Assets/Scripts/XUtliPoolLib/CookingLevel.cs new file mode 100644 index 00000000..e1476670 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CookingLevel.cs @@ -0,0 +1,40 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class CookingLevel : CVSReader
+ {
+ public CookingLevel.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint CookLevel;
+
+ public uint Experiences;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ CookingLevel.RowData rowData = new CookingLevel.RowData();
+ base.Read<uint>(reader, ref rowData.CookLevel, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.Experiences, CVSReader.uintParse);
+ this.columnno = 1;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new CookingLevel.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/CookingLevel.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/CookingLevel.cs.meta new file mode 100644 index 00000000..d9f1b6e8 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CookingLevel.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b770e393ca2982a479369ec9154d421d +timeCreated: 1611465747 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/CrossGvgReward.cs b/Client/Assets/Scripts/XUtliPoolLib/CrossGvgReward.cs new file mode 100644 index 00000000..e1182d48 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CrossGvgReward.cs @@ -0,0 +1,52 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class CrossGvgReward : CVSReader
+ {
+ public CrossGvgReward.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint Type;
+
+ public SeqRef<uint> Rank;
+
+ public uint MemberRewardMail;
+
+ public uint GuildExp;
+
+ public uint GuildPrestige;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ CrossGvgReward.RowData rowData = new CrossGvgReward.RowData();
+ base.Read<uint>(reader, ref rowData.Type, CVSReader.uintParse);
+ this.columnno = 0;
+ rowData.Rank.Read(reader, this.m_DataHandler);
+ this.columnno = 1;
+ base.Read<uint>(reader, ref rowData.MemberRewardMail, CVSReader.uintParse);
+ this.columnno = 2;
+ base.Read<uint>(reader, ref rowData.GuildExp, CVSReader.uintParse);
+ this.columnno = 3;
+ base.Read<uint>(reader, ref rowData.GuildPrestige, CVSReader.uintParse);
+ this.columnno = 4;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new CrossGvgReward.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/CrossGvgReward.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/CrossGvgReward.cs.meta new file mode 100644 index 00000000..b7eaef1d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CrossGvgReward.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4c45688d1bc71984680c357b2bb417a6 +timeCreated: 1611465641 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/CustomBattleSystemTable.cs b/Client/Assets/Scripts/XUtliPoolLib/CustomBattleSystemTable.cs new file mode 100644 index 00000000..3efca82a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CustomBattleSystemTable.cs @@ -0,0 +1,91 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class CustomBattleSystemTable : CVSReader
+ {
+ public CustomBattleSystemTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint id;
+
+ public uint type;
+
+ public SeqRef<uint> end;
+
+ public SeqRef<uint> ticket;
+
+ public uint levellimit;
+
+ public string desc;
+
+ public string TitleSpriteName;
+
+ public string IconSpritePath;
+
+ public int ExpID;
+ }
+
+ public CustomBattleSystemTable.RowData GetByid(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ CustomBattleSystemTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].id == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ CustomBattleSystemTable.RowData rowData = new CustomBattleSystemTable.RowData();
+ base.Read<uint>(reader, ref rowData.id, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.type, CVSReader.uintParse);
+ this.columnno = 1;
+ rowData.end.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ rowData.ticket.Read(reader, this.m_DataHandler);
+ this.columnno = 3;
+ base.Read<uint>(reader, ref rowData.levellimit, CVSReader.uintParse);
+ this.columnno = 4;
+ base.Read<string>(reader, ref rowData.desc, CVSReader.stringParse);
+ this.columnno = 5;
+ base.Read<string>(reader, ref rowData.TitleSpriteName, CVSReader.stringParse);
+ this.columnno = 6;
+ base.Read<string>(reader, ref rowData.IconSpritePath, CVSReader.stringParse);
+ this.columnno = 7;
+ base.Read<int>(reader, ref rowData.ExpID, CVSReader.intParse);
+ this.columnno = 8;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new CustomBattleSystemTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/CustomBattleSystemTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/CustomBattleSystemTable.cs.meta new file mode 100644 index 00000000..486f6a06 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CustomBattleSystemTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: beafbd5bd8d3e5e4b80ea22d913892bf +timeCreated: 1611465752 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/CustomBattleTable.cs b/Client/Assets/Scripts/XUtliPoolLib/CustomBattleTable.cs new file mode 100644 index 00000000..86033988 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CustomBattleTable.cs @@ -0,0 +1,95 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class CustomBattleTable : CVSReader
+ {
+ public CustomBattleTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint id;
+
+ public uint type;
+
+ public SeqListRef<uint> create;
+
+ public uint joincount;
+
+ public uint readytimepan;
+
+ public uint[] timespan;
+
+ public uint levellimit;
+
+ public string desc;
+
+ public string BoxSpriteName;
+
+ public int ExpID;
+ }
+
+ public CustomBattleTable.RowData GetByid(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ CustomBattleTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].id == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ CustomBattleTable.RowData rowData = new CustomBattleTable.RowData();
+ base.Read<uint>(reader, ref rowData.id, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.type, CVSReader.uintParse);
+ this.columnno = 1;
+ rowData.create.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ base.Read<uint>(reader, ref rowData.joincount, CVSReader.uintParse);
+ this.columnno = 3;
+ base.Read<uint>(reader, ref rowData.readytimepan, CVSReader.uintParse);
+ this.columnno = 4;
+ base.ReadArray<uint>(reader, ref rowData.timespan, CVSReader.uintParse);
+ this.columnno = 5;
+ base.Read<uint>(reader, ref rowData.levellimit, CVSReader.uintParse);
+ this.columnno = 6;
+ base.Read<string>(reader, ref rowData.desc, CVSReader.stringParse);
+ this.columnno = 7;
+ base.Read<string>(reader, ref rowData.BoxSpriteName, CVSReader.stringParse);
+ this.columnno = 10;
+ base.Read<int>(reader, ref rowData.ExpID, CVSReader.intParse);
+ this.columnno = 11;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new CustomBattleTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/CustomBattleTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/CustomBattleTable.cs.meta new file mode 100644 index 00000000..5bbe46e3 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CustomBattleTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 56d405d600677a04aa880896d4c91aa5 +timeCreated: 1611465645 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/CustomBattleTypeTable.cs b/Client/Assets/Scripts/XUtliPoolLib/CustomBattleTypeTable.cs new file mode 100644 index 00000000..3b10961b --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CustomBattleTypeTable.cs @@ -0,0 +1,75 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class CustomBattleTypeTable : CVSReader
+ {
+ public CustomBattleTypeTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int type;
+
+ public string name;
+
+ public string show;
+
+ public bool notopen;
+
+ public bool gmcreate;
+ }
+
+ public CustomBattleTypeTable.RowData GetBytype(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ CustomBattleTypeTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].type == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ CustomBattleTypeTable.RowData rowData = new CustomBattleTypeTable.RowData();
+ base.Read<int>(reader, ref rowData.type, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.name, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.show, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<bool>(reader, ref rowData.notopen, CVSReader.boolParse);
+ this.columnno = 3;
+ base.Read<bool>(reader, ref rowData.gmcreate, CVSReader.boolParse);
+ this.columnno = 4;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new CustomBattleTypeTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/CustomBattleTypeTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/CustomBattleTypeTable.cs.meta new file mode 100644 index 00000000..a9582c93 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CustomBattleTypeTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 77f804f34771ff243a8e00629f333de0 +timeCreated: 1611465691 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/CustomRewardTable.cs b/Client/Assets/Scripts/XUtliPoolLib/CustomRewardTable.cs new file mode 100644 index 00000000..93293507 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CustomRewardTable.cs @@ -0,0 +1,48 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class CustomRewardTable : CVSReader
+ {
+ public CustomRewardTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint id;
+
+ public SeqRef<uint> rank;
+
+ public SeqListRef<uint> rewardshow;
+
+ public SeqRef<uint> boxquickopen;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ CustomRewardTable.RowData rowData = new CustomRewardTable.RowData();
+ base.Read<uint>(reader, ref rowData.id, CVSReader.uintParse);
+ this.columnno = 0;
+ rowData.rank.Read(reader, this.m_DataHandler);
+ this.columnno = 1;
+ rowData.rewardshow.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ rowData.boxquickopen.Read(reader, this.m_DataHandler);
+ this.columnno = 5;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new CustomRewardTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/CustomRewardTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/CustomRewardTable.cs.meta new file mode 100644 index 00000000..6040b802 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CustomRewardTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b4b8d42929f8a714fa6223267b153be4 +timeCreated: 1611465745 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/CustomSystemRewardTable.cs b/Client/Assets/Scripts/XUtliPoolLib/CustomSystemRewardTable.cs new file mode 100644 index 00000000..7302e057 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CustomSystemRewardTable.cs @@ -0,0 +1,48 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class CustomSystemRewardTable : CVSReader
+ {
+ public CustomSystemRewardTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint id;
+
+ public uint wincounts;
+
+ public SeqListRef<uint> rewardshow;
+
+ public SeqRef<uint> boxquickopen;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ CustomSystemRewardTable.RowData rowData = new CustomSystemRewardTable.RowData();
+ base.Read<uint>(reader, ref rowData.id, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.wincounts, CVSReader.uintParse);
+ this.columnno = 1;
+ rowData.rewardshow.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ rowData.boxquickopen.Read(reader, this.m_DataHandler);
+ this.columnno = 5;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new CustomSystemRewardTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/CustomSystemRewardTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/CustomSystemRewardTable.cs.meta new file mode 100644 index 00000000..8c5a4ace --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/CustomSystemRewardTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 76f0631e24c2066458918ceebfe9ff3e +timeCreated: 1611465690 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/DailyTask.cs b/Client/Assets/Scripts/XUtliPoolLib/DailyTask.cs new file mode 100644 index 00000000..3520d5cf --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DailyTask.cs @@ -0,0 +1,153 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class DailyTask : CVSReader
+ {
+ public DailyTask.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint taskID;
+
+ public uint taskquality;
+
+ public uint tasktype;
+
+ public uint[] conditionId;
+
+ public string taskdescription;
+
+ public uint conditionNum;
+
+ public uint NPCID;
+
+ public SeqListRef<uint> BQ;
+
+ public uint category;
+
+ public uint score;
+
+ public string TaskIcon;
+
+ public string AtlasName;
+ }
+
+ public DailyTask.RowData GetBytaskID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ DailyTask.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchtaskID(key);
+ }
+ return result;
+ }
+
+ private DailyTask.RowData BinarySearchtaskID(uint key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ DailyTask.RowData rowData;
+ DailyTask.RowData rowData2;
+ DailyTask.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.taskID == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.taskID == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.taskID.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.taskID.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ DailyTask.RowData rowData = new DailyTask.RowData();
+ base.Read<uint>(reader, ref rowData.taskID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.taskquality, CVSReader.uintParse);
+ this.columnno = 2;
+ base.Read<uint>(reader, ref rowData.tasktype, CVSReader.uintParse);
+ this.columnno = 3;
+ base.ReadArray<uint>(reader, ref rowData.conditionId, CVSReader.uintParse);
+ this.columnno = 4;
+ base.Read<string>(reader, ref rowData.taskdescription, CVSReader.stringParse);
+ this.columnno = 5;
+ base.Read<uint>(reader, ref rowData.conditionNum, CVSReader.uintParse);
+ this.columnno = 6;
+ base.Read<uint>(reader, ref rowData.NPCID, CVSReader.uintParse);
+ this.columnno = 7;
+ rowData.BQ.Read(reader, this.m_DataHandler);
+ this.columnno = 8;
+ base.Read<uint>(reader, ref rowData.category, CVSReader.uintParse);
+ this.columnno = 10;
+ base.Read<uint>(reader, ref rowData.score, CVSReader.uintParse);
+ this.columnno = 11;
+ base.Read<string>(reader, ref rowData.TaskIcon, CVSReader.stringParse);
+ this.columnno = 12;
+ base.Read<string>(reader, ref rowData.AtlasName, CVSReader.stringParse);
+ this.columnno = 13;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new DailyTask.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/DailyTask.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/DailyTask.cs.meta new file mode 100644 index 00000000..fc5a582a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DailyTask.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 7c05403848115ba48944acd8d64787b1 +timeCreated: 1611465693 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/DailyTaskLuck.cs b/Client/Assets/Scripts/XUtliPoolLib/DailyTaskLuck.cs new file mode 100644 index 00000000..32060a1b --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DailyTaskLuck.cs @@ -0,0 +1,52 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class DailyTaskLuck : CVSReader
+ {
+ public DailyTaskLuck.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint id;
+
+ public string name;
+
+ public SeqListRef<uint> prob;
+
+ public uint getProb;
+
+ public uint backflowProb;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ DailyTaskLuck.RowData rowData = new DailyTaskLuck.RowData();
+ base.Read<uint>(reader, ref rowData.id, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.name, CVSReader.stringParse);
+ this.columnno = 1;
+ rowData.prob.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ base.Read<uint>(reader, ref rowData.getProb, CVSReader.uintParse);
+ this.columnno = 3;
+ base.Read<uint>(reader, ref rowData.backflowProb, CVSReader.uintParse);
+ this.columnno = 4;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new DailyTaskLuck.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/DailyTaskLuck.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/DailyTaskLuck.cs.meta new file mode 100644 index 00000000..e9abd064 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DailyTaskLuck.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 3ab3426fb2e26054e8a9c0740b5b3fe4 +timeCreated: 1611465631 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/DailyTaskReward.cs b/Client/Assets/Scripts/XUtliPoolLib/DailyTaskReward.cs new file mode 100644 index 00000000..8bd48d27 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DailyTaskReward.cs @@ -0,0 +1,96 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class DailyTaskReward : CVSReader
+ {
+ public DailyTaskReward.RowData[] Table = null;
+
+ public class RowData
+ {
+ public SeqRef<uint> level;
+
+ public uint tasktype;
+
+ public uint taskquality;
+
+ public SeqListRef<uint> taskreward;
+
+ public SeqListRef<uint> extrareward_s;
+
+ public uint category;
+
+ public uint score;
+
+ public SeqListRef<uint> reward_s;
+
+ public SeqListRef<uint> reward_a;
+
+ public SeqListRef<uint> reward_b;
+
+ public SeqListRef<uint> reward_c;
+
+ public SeqListRef<uint> reward_d;
+
+ public SeqListRef<uint> extrareward_a;
+
+ public SeqListRef<uint> extrareward_b;
+
+ public SeqListRef<uint> extrareward_c;
+
+ public SeqListRef<uint> extrareward_d;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ DailyTaskReward.RowData rowData = new DailyTaskReward.RowData();
+ rowData.level.Read(reader, this.m_DataHandler);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.tasktype, CVSReader.uintParse);
+ this.columnno = 1;
+ base.Read<uint>(reader, ref rowData.taskquality, CVSReader.uintParse);
+ this.columnno = 2;
+ rowData.taskreward.Read(reader, this.m_DataHandler);
+ this.columnno = 3;
+ rowData.extrareward_s.Read(reader, this.m_DataHandler);
+ this.columnno = 5;
+ base.Read<uint>(reader, ref rowData.category, CVSReader.uintParse);
+ this.columnno = 6;
+ base.Read<uint>(reader, ref rowData.score, CVSReader.uintParse);
+ this.columnno = 7;
+ rowData.reward_s.Read(reader, this.m_DataHandler);
+ this.columnno = 8;
+ rowData.reward_a.Read(reader, this.m_DataHandler);
+ this.columnno = 9;
+ rowData.reward_b.Read(reader, this.m_DataHandler);
+ this.columnno = 10;
+ rowData.reward_c.Read(reader, this.m_DataHandler);
+ this.columnno = 11;
+ rowData.reward_d.Read(reader, this.m_DataHandler);
+ this.columnno = 12;
+ rowData.extrareward_a.Read(reader, this.m_DataHandler);
+ this.columnno = 13;
+ rowData.extrareward_b.Read(reader, this.m_DataHandler);
+ this.columnno = 14;
+ rowData.extrareward_c.Read(reader, this.m_DataHandler);
+ this.columnno = 15;
+ rowData.extrareward_d.Read(reader, this.m_DataHandler);
+ this.columnno = 16;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new DailyTaskReward.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/DailyTaskReward.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/DailyTaskReward.cs.meta new file mode 100644 index 00000000..edbcfe77 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DailyTaskReward.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: decb589e8443c9d47aecbb915e0ffab0 +timeCreated: 1611465797 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/DanceConfig.cs b/Client/Assets/Scripts/XUtliPoolLib/DanceConfig.cs new file mode 100644 index 00000000..72be957a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DanceConfig.cs @@ -0,0 +1,173 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class DanceConfig : CVSReader
+ {
+ public DanceConfig.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint MotionID;
+
+ public string MotionName;
+
+ public int PresentID;
+
+ public string Motion;
+
+ public string Music;
+
+ public int LoopCount;
+
+ public string EffectPath;
+
+ public float EffectTime;
+
+ public int Type;
+
+ public string HallBtnIcon;
+
+ public bool LoverMotion;
+
+ public SeqListRef<uint> Condition;
+
+ public string[] ConditionDesc;
+
+ public string[] GoText;
+
+ public int[] GoSystemID;
+
+ public uint MotionType;
+
+ public string IconAtlas;
+ }
+
+ public DanceConfig.RowData GetByMotionID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ DanceConfig.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchMotionID(key);
+ }
+ return result;
+ }
+
+ private DanceConfig.RowData BinarySearchMotionID(uint key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ DanceConfig.RowData rowData;
+ DanceConfig.RowData rowData2;
+ DanceConfig.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.MotionID == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.MotionID == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.MotionID.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.MotionID.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ DanceConfig.RowData rowData = new DanceConfig.RowData();
+ base.Read<uint>(reader, ref rowData.MotionID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.MotionName, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<int>(reader, ref rowData.PresentID, CVSReader.intParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.Motion, CVSReader.stringParse);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.Music, CVSReader.stringParse);
+ this.columnno = 4;
+ base.Read<int>(reader, ref rowData.LoopCount, CVSReader.intParse);
+ this.columnno = 5;
+ base.Read<string>(reader, ref rowData.EffectPath, CVSReader.stringParse);
+ this.columnno = 6;
+ base.Read<float>(reader, ref rowData.EffectTime, CVSReader.floatParse);
+ this.columnno = 7;
+ base.Read<int>(reader, ref rowData.Type, CVSReader.intParse);
+ this.columnno = 8;
+ base.Read<string>(reader, ref rowData.HallBtnIcon, CVSReader.stringParse);
+ this.columnno = 9;
+ base.Read<bool>(reader, ref rowData.LoverMotion, CVSReader.boolParse);
+ this.columnno = 10;
+ rowData.Condition.Read(reader, this.m_DataHandler);
+ this.columnno = 11;
+ base.ReadArray<string>(reader, ref rowData.ConditionDesc, CVSReader.stringParse);
+ this.columnno = 12;
+ base.ReadArray<string>(reader, ref rowData.GoText, CVSReader.stringParse);
+ this.columnno = 13;
+ base.ReadArray<int>(reader, ref rowData.GoSystemID, CVSReader.intParse);
+ this.columnno = 14;
+ base.Read<uint>(reader, ref rowData.MotionType, CVSReader.uintParse);
+ this.columnno = 15;
+ base.Read<string>(reader, ref rowData.IconAtlas, CVSReader.stringParse);
+ this.columnno = 16;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new DanceConfig.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/DanceConfig.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/DanceConfig.cs.meta new file mode 100644 index 00000000..cf6e559e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DanceConfig.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 79c5acef141dd014dab9328812b55f35 +timeCreated: 1611465692 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/DargonReward.cs b/Client/Assets/Scripts/XUtliPoolLib/DargonReward.cs new file mode 100644 index 00000000..fe2d4fec --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DargonReward.cs @@ -0,0 +1,60 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class DargonReward : CVSReader
+ {
+ public DargonReward.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int ID;
+
+ public string Achievement;
+
+ public string Explanation;
+
+ public SeqListRef<int> Reward;
+
+ public string ICON;
+
+ public string DesignationName;
+
+ public int SortID;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ DargonReward.RowData rowData = new DargonReward.RowData();
+ base.Read<int>(reader, ref rowData.ID, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.Achievement, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.Explanation, CVSReader.stringParse);
+ this.columnno = 2;
+ rowData.Reward.Read(reader, this.m_DataHandler);
+ this.columnno = 4;
+ base.Read<string>(reader, ref rowData.ICON, CVSReader.stringParse);
+ this.columnno = 5;
+ base.Read<string>(reader, ref rowData.DesignationName, CVSReader.stringParse);
+ this.columnno = 6;
+ base.Read<int>(reader, ref rowData.SortID, CVSReader.intParse);
+ this.columnno = 7;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new DargonReward.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/DargonReward.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/DargonReward.cs.meta new file mode 100644 index 00000000..7d088327 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DargonReward.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: e0e731c66c712e44a91ae917ffde83df +timeCreated: 1611465799 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/DataHandler.cs b/Client/Assets/Scripts/XUtliPoolLib/DataHandler.cs new file mode 100644 index 00000000..59db9e41 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DataHandler.cs @@ -0,0 +1,265 @@ +using System;
+using System.IO;
+
+namespace XUtliPoolLib
+{
+ public class DataHandler
+ {
+ private bool m_hasStringSeq = false;
+
+ public string[] stringBuffer = null;
+
+ public int[] intBuffer;
+
+ public uint[] uintBuffer;
+
+ public long[] longBuffer;
+
+ public float[] floatBuffer;
+
+ public double[] doubleBuffer;
+
+ public ushort[] indexBuffer;
+
+ public static string[] defaultStringBuffer = new string[4];
+
+ public static int[] defaultIntBuffer = new int[4];
+
+ public static uint[] defaultUIntBuffer = new uint[4];
+
+ public static long[] defaultLongBuffer = new long[4];
+
+ public static float[] defaultFloatBuffer = new float[4];
+
+ public static double[] defaultDoubleBuffe = new double[4];
+
+ public void Init(XBinaryReader br)
+ {
+ this.m_hasStringSeq = br.ReadBoolean();
+ ushort num = br.ReadUInt16();
+ bool flag = num > 0;
+ if (flag)
+ {
+ this.stringBuffer = new string[(int)num];
+ for (int i = 0; i < (int)num; i++)
+ {
+ this.stringBuffer[i] = br.ReadString(-1);
+ }
+ }
+ else
+ {
+ this.stringBuffer = DataHandler.defaultStringBuffer;
+ }
+ ushort num2 = br.ReadUInt16();
+ bool flag2 = num2 > 0;
+ if (flag2)
+ {
+ this.intBuffer = new int[(int)num2];
+ for (int j = 0; j < (int)num2; j++)
+ {
+ this.intBuffer[j] = br.ReadInt32();
+ }
+ }
+ else
+ {
+ this.intBuffer = DataHandler.defaultIntBuffer;
+ }
+ ushort num3 = br.ReadUInt16();
+ bool flag3 = num3 > 0;
+ if (flag3)
+ {
+ this.uintBuffer = new uint[(int)num3];
+ for (int k = 0; k < (int)num3; k++)
+ {
+ this.uintBuffer[k] = br.ReadUInt32();
+ }
+ }
+ else
+ {
+ this.uintBuffer = DataHandler.defaultUIntBuffer;
+ }
+ ushort num4 = br.ReadUInt16();
+ bool flag4 = num4 > 0;
+ if (flag4)
+ {
+ this.longBuffer = new long[(int)num4];
+ for (int l = 0; l < (int)num4; l++)
+ {
+ this.longBuffer[l] = br.ReadInt64();
+ }
+ }
+ else
+ {
+ this.longBuffer = DataHandler.defaultLongBuffer;
+ }
+ ushort num5 = br.ReadUInt16();
+ bool flag5 = num5 > 0;
+ if (flag5)
+ {
+ this.floatBuffer = new float[(int)num5];
+ for (int m = 0; m < (int)num5; m++)
+ {
+ this.floatBuffer[m] = br.ReadSingle();
+ }
+ }
+ else
+ {
+ this.floatBuffer = DataHandler.defaultFloatBuffer;
+ }
+ ushort num6 = br.ReadUInt16();
+ bool flag6 = num6 > 0;
+ if (flag6)
+ {
+ this.doubleBuffer = new double[(int)num6];
+ for (int n = 0; n < (int)num6; n++)
+ {
+ this.doubleBuffer[n] = br.ReadDouble();
+ }
+ }
+ else
+ {
+ this.doubleBuffer = DataHandler.defaultDoubleBuffe;
+ }
+ ushort num7 = br.ReadUInt16();
+ bool flag7 = num7 > 0;
+ if (flag7)
+ {
+ this.indexBuffer = new ushort[(int)num7];
+ for (int num8 = 0; num8 < (int)num7; num8++)
+ {
+ this.indexBuffer[num8] = br.ReadUInt16();
+ }
+ }
+ }
+
+ public void Init(BinaryReader br)
+ {
+ this.m_hasStringSeq = br.ReadBoolean();
+ ushort num = br.ReadUInt16();
+ bool flag = num > 0;
+ if (flag)
+ {
+ this.stringBuffer = new string[(int)num];
+ for (int i = 0; i < (int)num; i++)
+ {
+ this.stringBuffer[i] = br.ReadString();
+ }
+ }
+ ushort num2 = br.ReadUInt16();
+ bool flag2 = num2 > 0;
+ if (flag2)
+ {
+ this.intBuffer = new int[(int)num2];
+ for (int j = 0; j < (int)num2; j++)
+ {
+ this.intBuffer[j] = br.ReadInt32();
+ }
+ }
+ ushort num3 = br.ReadUInt16();
+ bool flag3 = num3 > 0;
+ if (flag3)
+ {
+ this.uintBuffer = new uint[(int)num3];
+ for (int k = 0; k < (int)num3; k++)
+ {
+ this.uintBuffer[k] = br.ReadUInt32();
+ }
+ }
+ ushort num4 = br.ReadUInt16();
+ bool flag4 = num4 > 0;
+ if (flag4)
+ {
+ this.longBuffer = new long[(int)num4];
+ for (int l = 0; l < (int)num4; l++)
+ {
+ this.longBuffer[l] = br.ReadInt64();
+ }
+ }
+ ushort num5 = br.ReadUInt16();
+ bool flag5 = num5 > 0;
+ if (flag5)
+ {
+ this.floatBuffer = new float[(int)num5];
+ for (int m = 0; m < (int)num5; m++)
+ {
+ this.floatBuffer[m] = br.ReadSingle();
+ }
+ }
+ ushort num6 = br.ReadUInt16();
+ bool flag6 = num6 > 0;
+ if (flag6)
+ {
+ this.doubleBuffer = new double[(int)num6];
+ for (int n = 0; n < (int)num6; n++)
+ {
+ this.doubleBuffer[n] = br.ReadDouble();
+ }
+ }
+ ushort num7 = br.ReadUInt16();
+ bool flag7 = num7 > 0;
+ if (flag7)
+ {
+ this.indexBuffer = new ushort[(int)num7];
+ for (int num8 = 0; num8 < (int)num7; num8++)
+ {
+ this.indexBuffer[num8] = br.ReadUInt16();
+ }
+ }
+ }
+
+ public void UnInit(bool forceClean = false)
+ {
+ bool flag = !this.m_hasStringSeq;
+ if (flag)
+ {
+ this.stringBuffer = null;
+ }
+ if (forceClean)
+ {
+ this.stringBuffer = null;
+ this.intBuffer = null;
+ this.uintBuffer = null;
+ this.longBuffer = null;
+ this.floatBuffer = null;
+ this.doubleBuffer = null;
+ this.indexBuffer = null;
+ }
+ }
+
+ public string ReadString(XBinaryReader br)
+ {
+ ushort num = br.ReadUInt16();
+ bool flag = this.stringBuffer != null;
+ if (flag)
+ {
+ bool flag2 = num >= 0 && (int)num < this.stringBuffer.Length;
+ if (flag2)
+ {
+ return this.stringBuffer[(int)num];
+ }
+ }
+ return string.Empty;
+ }
+
+ public string ReadString(BinaryReader br)
+ {
+ int num = (int)br.ReadUInt16();
+ bool flag = this.stringBuffer != null;
+ if (flag)
+ {
+ bool flag2 = num >= 0 && num < this.stringBuffer.Length;
+ if (flag2)
+ {
+ return this.stringBuffer[num];
+ }
+ }
+ return string.Empty;
+ }
+
+ public T ReadValue<T>(CVSReader.ValueParse<T> parser, byte allSameMask, ushort startOffset, int index, int key)
+ {
+ T[] buffer = parser.GetBuffer(this);
+ return (allSameMask == 1) ? buffer[(int)startOffset + key] : buffer[(int)this.indexBuffer[(int)startOffset + index] + key];
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/DataHandler.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/DataHandler.cs.meta new file mode 100644 index 00000000..f2e187b7 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DataHandler.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 80b44c6dcf820974a83a4c5059f0b26f +timeCreated: 1611465693 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/DeJson.meta b/Client/Assets/Scripts/XUtliPoolLib/DeJson.meta new file mode 100644 index 00000000..5ca44c86 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DeJson.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 25cbdccef1582e34ebbfe48cfd2a3c44 +folderAsset: yes +timeCreated: 1611465282 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/DeJson/Deserializer.cs b/Client/Assets/Scripts/XUtliPoolLib/DeJson/Deserializer.cs new file mode 100644 index 00000000..d51e375f --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DeJson/Deserializer.cs @@ -0,0 +1,318 @@ +using System;
+using System.Collections.Generic;
+using System.Reflection;
+using MiniJSON;
+
+namespace DeJson
+{
+ public class Deserializer
+ {
+ private Dictionary<Type, Deserializer.CustomCreator> m_creators;
+
+ public abstract class CustomCreator
+ {
+ public abstract object Create(Dictionary<string, object> src, Dictionary<string, object> parentSrc);
+
+ public abstract Type TypeToCreate();
+ }
+
+ public Deserializer()
+ {
+ this.m_creators = new Dictionary<Type, Deserializer.CustomCreator>();
+ }
+
+ public T Deserialize<T>(string json)
+ {
+ object o = Json.Deserialize(json);
+ return this.Deserialize<T>(o);
+ }
+
+ public T Deserialize<T>(object o)
+ {
+ return (T)((object)this.ConvertToType(o, typeof(T), null));
+ }
+
+ public void RegisterCreator(Deserializer.CustomCreator creator)
+ {
+ Type key = creator.TypeToCreate();
+ this.m_creators[key] = creator;
+ }
+
+ private object DeserializeO(Type destType, Dictionary<string, object> src, Dictionary<string, object> parentSrc)
+ {
+ object obj = null;
+ bool flag = destType == typeof(Dictionary<string, object>);
+ object result;
+ if (flag)
+ {
+ result = src;
+ }
+ else
+ {
+ Deserializer.CustomCreator customCreator;
+ bool flag2 = this.m_creators.TryGetValue(destType, out customCreator);
+ if (flag2)
+ {
+ obj = customCreator.Create(src, parentSrc);
+ }
+ bool flag3 = obj == null;
+ if (flag3)
+ {
+ object obj2;
+ bool flag4 = src.TryGetValue("$dotNetType", out obj2);
+ if (flag4)
+ {
+ destType = Type.GetType((string)obj2);
+ }
+ obj = Activator.CreateInstance(destType);
+ }
+ this.DeserializeIt(obj, src);
+ result = obj;
+ }
+ return result;
+ }
+
+ private void DeserializeIt(object dest, Dictionary<string, object> src)
+ {
+ Type type = dest.GetType();
+ FieldInfo[] fields = type.GetFields();
+ this.DeserializeClassFields(dest, fields, src);
+ }
+
+ private void DeserializeClassFields(object dest, FieldInfo[] fields, Dictionary<string, object> src)
+ {
+ foreach (FieldInfo fieldInfo in fields)
+ {
+ bool isStatic = fieldInfo.IsStatic;
+ if (!isStatic)
+ {
+ object value;
+ bool flag = src.TryGetValue(fieldInfo.Name, out value);
+ if (flag)
+ {
+ this.DeserializeField(dest, fieldInfo, value, src);
+ }
+ }
+ }
+ }
+
+ private void DeserializeField(object dest, FieldInfo info, object value, Dictionary<string, object> src)
+ {
+ Type fieldType = info.FieldType;
+ object obj = this.ConvertToType(value, fieldType, src);
+ bool flag = fieldType.IsAssignableFrom(obj.GetType());
+ if (flag)
+ {
+ info.SetValue(dest, obj);
+ }
+ }
+
+ private object ConvertToType(object value, Type type, Dictionary<string, object> src)
+ {
+ bool isArray = type.IsArray;
+ object result;
+ if (isArray)
+ {
+ result = this.ConvertToArray(value, type, src);
+ }
+ else
+ {
+ bool isGenericType = type.IsGenericType;
+ if (isGenericType)
+ {
+ result = this.ConvertToList(value, type, src);
+ }
+ else
+ {
+ bool flag = type == typeof(string);
+ if (flag)
+ {
+ result = Convert.ToString(value);
+ }
+ else
+ {
+ bool flag2 = type == typeof(byte);
+ if (flag2)
+ {
+ result = Convert.ToByte(value);
+ }
+ else
+ {
+ bool flag3 = type == typeof(sbyte);
+ if (flag3)
+ {
+ result = Convert.ToSByte(value);
+ }
+ else
+ {
+ bool flag4 = type == typeof(short);
+ if (flag4)
+ {
+ result = Convert.ToInt16(value);
+ }
+ else
+ {
+ bool flag5 = type == typeof(ushort);
+ if (flag5)
+ {
+ result = Convert.ToUInt16(value);
+ }
+ else
+ {
+ bool flag6 = type == typeof(int);
+ if (flag6)
+ {
+ result = Convert.ToInt32(value);
+ }
+ else
+ {
+ bool flag7 = type == typeof(uint);
+ if (flag7)
+ {
+ result = Convert.ToUInt32(value);
+ }
+ else
+ {
+ bool flag8 = type == typeof(long);
+ if (flag8)
+ {
+ result = Convert.ToInt64(value);
+ }
+ else
+ {
+ bool flag9 = type == typeof(ulong);
+ if (flag9)
+ {
+ result = Convert.ToUInt64(value);
+ }
+ else
+ {
+ bool flag10 = type == typeof(char);
+ if (flag10)
+ {
+ result = Convert.ToChar(value);
+ }
+ else
+ {
+ bool flag11 = type == typeof(double);
+ if (flag11)
+ {
+ result = Convert.ToDouble(value);
+ }
+ else
+ {
+ bool flag12 = type == typeof(float);
+ if (flag12)
+ {
+ result = Convert.ToSingle(value);
+ }
+ else
+ {
+ bool flag13 = type == typeof(int);
+ if (flag13)
+ {
+ result = Convert.ToInt32(value);
+ }
+ else
+ {
+ bool flag14 = type == typeof(float);
+ if (flag14)
+ {
+ result = Convert.ToSingle(value);
+ }
+ else
+ {
+ bool flag15 = type == typeof(double);
+ if (flag15)
+ {
+ result = Convert.ToDouble(value);
+ }
+ else
+ {
+ bool flag16 = type == typeof(bool);
+ if (flag16)
+ {
+ result = Convert.ToBoolean(value);
+ }
+ else
+ {
+ bool flag17 = type == typeof(bool);
+ if (flag17)
+ {
+ result = Convert.ToBoolean(value);
+ }
+ else
+ {
+ bool isValueType = type.IsValueType;
+ if (isValueType)
+ {
+ result = this.DeserializeO(type, (Dictionary<string, object>)value, src);
+ }
+ else
+ {
+ bool isClass = type.IsClass;
+ if (isClass)
+ {
+ result = this.DeserializeO(type, (Dictionary<string, object>)value, src);
+ }
+ else
+ {
+ result = value;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ return result;
+ }
+
+ private object ConvertToArray(object value, Type type, Dictionary<string, object> src)
+ {
+ List<object> list = (List<object>)value;
+ int count = list.Count;
+ Type elementType = type.GetElementType();
+ Array array = Array.CreateInstance(elementType, count);
+ int num = 0;
+ foreach (object value2 in list)
+ {
+ object value3 = this.ConvertToType(value2, elementType, src);
+ array.SetValue(value3, num);
+ num++;
+ }
+ return array;
+ }
+
+ private object ConvertToList(object value, Type type, Dictionary<string, object> src)
+ {
+ object obj = Activator.CreateInstance(type);
+ MethodInfo method = type.GetMethod("Add");
+ List<object> list = (List<object>)value;
+ Type returnType = type.GetMethod("Find").ReturnType;
+ foreach (object value2 in list)
+ {
+ object obj2 = this.ConvertToType(value2, returnType, src);
+ method.Invoke(obj, new object[]
+ {
+ obj2
+ });
+ }
+ return obj;
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/DeJson/Deserializer.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/DeJson/Deserializer.cs.meta new file mode 100644 index 00000000..f0743a55 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DeJson/Deserializer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a7c295911059ac440a342c3b4aa2355d +timeCreated: 1611465738 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/DeJson/Serializer.cs b/Client/Assets/Scripts/XUtliPoolLib/DeJson/Serializer.cs new file mode 100644 index 00000000..9f807611 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DeJson/Serializer.cs @@ -0,0 +1,426 @@ +using System;
+using System.Collections;
+using System.Globalization;
+using System.Reflection;
+using System.Text;
+
+namespace DeJson
+{
+ public class Serializer
+ {
+ private StringBuilder m_builder;
+
+ private bool m_includeTypeInfoForDerivedTypes;
+
+ private bool m_prettyPrint;
+
+ private string m_prefix;
+
+ public static string Serialize(object obj, bool includeTypeInfoForDerivedTypes = false, bool prettyPrint = false)
+ {
+ Serializer serializer = new Serializer(includeTypeInfoForDerivedTypes, prettyPrint);
+ serializer.SerializeValue(obj);
+ return serializer.GetJson();
+ }
+
+ private Serializer(bool includeTypeInfoForDerivedTypes, bool prettyPrint)
+ {
+ this.m_builder = new StringBuilder();
+ this.m_includeTypeInfoForDerivedTypes = includeTypeInfoForDerivedTypes;
+ this.m_prettyPrint = prettyPrint;
+ this.m_prefix = "";
+ }
+
+ private string GetJson()
+ {
+ return this.m_builder.ToString();
+ }
+
+ private void Indent()
+ {
+ bool prettyPrint = this.m_prettyPrint;
+ if (prettyPrint)
+ {
+ this.m_prefix += " ";
+ }
+ }
+
+ private void Outdent()
+ {
+ bool prettyPrint = this.m_prettyPrint;
+ if (prettyPrint)
+ {
+ this.m_prefix = this.m_prefix.Substring(2);
+ }
+ }
+
+ private void AddIndent()
+ {
+ bool prettyPrint = this.m_prettyPrint;
+ if (prettyPrint)
+ {
+ this.m_builder.Append(this.m_prefix);
+ }
+ }
+
+ private void AddLine()
+ {
+ bool prettyPrint = this.m_prettyPrint;
+ if (prettyPrint)
+ {
+ this.m_builder.Append("\n");
+ }
+ }
+
+ private void AddSpace()
+ {
+ bool prettyPrint = this.m_prettyPrint;
+ if (prettyPrint)
+ {
+ this.m_builder.Append(" ");
+ }
+ }
+
+ private void SerializeValue(object obj)
+ {
+ bool flag = obj == null;
+ if (flag)
+ {
+ this.m_builder.Append("undefined");
+ }
+ else
+ {
+ Type type = obj.GetType();
+ bool isArray = type.IsArray;
+ if (isArray)
+ {
+ this.SerializeArray(obj);
+ }
+ else
+ {
+ bool flag2 = type == typeof(string);
+ if (flag2)
+ {
+ this.SerializeString(obj as string);
+ }
+ else
+ {
+ bool flag3 = type == typeof(char);
+ if (flag3)
+ {
+ this.SerializeString(obj.ToString());
+ }
+ else
+ {
+ bool flag4 = type == typeof(bool);
+ if (flag4)
+ {
+ this.m_builder.Append(((bool)obj) ? "true" : "false");
+ }
+ else
+ {
+ bool flag5 = type == typeof(bool);
+ if (flag5)
+ {
+ this.m_builder.Append(((bool)obj) ? "true" : "false");
+ this.m_builder.Append(Convert.ChangeType(obj, typeof(string)));
+ }
+ else
+ {
+ bool flag6 = type == typeof(int);
+ if (flag6)
+ {
+ this.m_builder.Append(obj);
+ }
+ else
+ {
+ bool flag7 = type == typeof(byte);
+ if (flag7)
+ {
+ this.m_builder.Append(obj);
+ }
+ else
+ {
+ bool flag8 = type == typeof(sbyte);
+ if (flag8)
+ {
+ this.m_builder.Append(obj);
+ }
+ else
+ {
+ bool flag9 = type == typeof(short);
+ if (flag9)
+ {
+ this.m_builder.Append(obj);
+ }
+ else
+ {
+ bool flag10 = type == typeof(ushort);
+ if (flag10)
+ {
+ this.m_builder.Append(obj);
+ }
+ else
+ {
+ bool flag11 = type == typeof(int);
+ if (flag11)
+ {
+ this.m_builder.Append(obj);
+ }
+ else
+ {
+ bool flag12 = type == typeof(uint);
+ if (flag12)
+ {
+ this.m_builder.Append(obj);
+ }
+ else
+ {
+ bool flag13 = type == typeof(long);
+ if (flag13)
+ {
+ this.m_builder.Append(obj);
+ }
+ else
+ {
+ bool flag14 = type == typeof(ulong);
+ if (flag14)
+ {
+ this.m_builder.Append(obj);
+ }
+ else
+ {
+ bool flag15 = type == typeof(float);
+ if (flag15)
+ {
+ this.m_builder.Append(((float)obj).ToString("R", CultureInfo.InvariantCulture));
+ }
+ else
+ {
+ bool flag16 = type == typeof(double);
+ if (flag16)
+ {
+ this.m_builder.Append(((double)obj).ToString("R", CultureInfo.InvariantCulture));
+ }
+ else
+ {
+ bool flag17 = type == typeof(float);
+ if (flag17)
+ {
+ this.m_builder.Append(((float)obj).ToString("R", CultureInfo.InvariantCulture));
+ }
+ else
+ {
+ bool flag18 = type == typeof(double);
+ if (flag18)
+ {
+ this.m_builder.Append(((double)obj).ToString("R", CultureInfo.InvariantCulture));
+ }
+ else
+ {
+ bool isValueType = type.IsValueType;
+ if (isValueType)
+ {
+ this.SerializeObject(obj);
+ }
+ else
+ {
+ bool isClass = type.IsClass;
+ if (!isClass)
+ {
+ throw new InvalidOperationException("unsupport type: " + type.Name);
+ }
+ this.SerializeObject(obj);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ private void SerializeArray(object obj)
+ {
+ this.m_builder.Append("[");
+ this.AddLine();
+ this.Indent();
+ Array array = obj as Array;
+ bool flag = true;
+ foreach (object obj2 in array)
+ {
+ bool flag2 = !flag;
+ if (flag2)
+ {
+ this.m_builder.Append(",");
+ this.AddLine();
+ }
+ this.AddIndent();
+ this.SerializeValue(obj2);
+ flag = false;
+ }
+ this.AddLine();
+ this.Outdent();
+ this.AddIndent();
+ this.m_builder.Append("]");
+ }
+
+ private void SerializeDictionary(IDictionary obj)
+ {
+ bool flag = true;
+ foreach (object obj2 in obj.Keys)
+ {
+ bool flag2 = !flag;
+ if (flag2)
+ {
+ this.m_builder.Append(',');
+ this.AddLine();
+ }
+ this.AddIndent();
+ this.SerializeString(obj2.ToString());
+ this.m_builder.Append(':');
+ this.AddSpace();
+ this.SerializeValue(obj[obj2]);
+ flag = false;
+ }
+ }
+
+ private void SerializeObject(object obj)
+ {
+ this.m_builder.Append("{");
+ this.AddLine();
+ this.Indent();
+ bool flag = true;
+ bool includeTypeInfoForDerivedTypes = this.m_includeTypeInfoForDerivedTypes;
+ if (includeTypeInfoForDerivedTypes)
+ {
+ Type type = obj.GetType();
+ Type baseType = type.BaseType;
+ bool flag2 = baseType != null && baseType != typeof(object);
+ if (flag2)
+ {
+ this.AddIndent();
+ this.SerializeString("$dotNetType");
+ this.m_builder.Append(":");
+ this.AddSpace();
+ this.SerializeString(type.FullName);
+ }
+ }
+ IDictionary obj2;
+ bool flag3 = (obj2 = (obj as IDictionary)) != null;
+ if (flag3)
+ {
+ this.SerializeDictionary(obj2);
+ }
+ else
+ {
+ FieldInfo[] fields = obj.GetType().GetFields();
+ foreach (FieldInfo fieldInfo in fields)
+ {
+ bool isStatic = fieldInfo.IsStatic;
+ if (!isStatic)
+ {
+ object value = fieldInfo.GetValue(obj);
+ bool flag4 = value != null;
+ if (flag4)
+ {
+ bool flag5 = !flag;
+ if (flag5)
+ {
+ this.m_builder.Append(",");
+ this.AddLine();
+ }
+ this.AddIndent();
+ this.SerializeString(fieldInfo.Name);
+ this.m_builder.Append(":");
+ this.AddSpace();
+ this.SerializeValue(value);
+ flag = false;
+ }
+ }
+ }
+ }
+ this.AddLine();
+ this.Outdent();
+ this.AddIndent();
+ this.m_builder.Append("}");
+ }
+
+ private void SerializeString(string str)
+ {
+ this.m_builder.Append('"');
+ char[] array = str.ToCharArray();
+ char[] array2 = array;
+ int i = 0;
+ while (i < array2.Length)
+ {
+ char c = array2[i];
+ char c2 = c;
+ switch (c2)
+ {
+ case '\b':
+ this.m_builder.Append("\\b");
+ break;
+ case '\t':
+ this.m_builder.Append("\\t");
+ break;
+ case '\n':
+ this.m_builder.Append("\\n");
+ break;
+ case '\v':
+ goto IL_F2;
+ case '\f':
+ this.m_builder.Append("\\f");
+ break;
+ case '\r':
+ this.m_builder.Append("\\r");
+ break;
+ default:
+ if (c2 != '"')
+ {
+ if (c2 != '\\')
+ {
+ goto IL_F2;
+ }
+ this.m_builder.Append("\\\\");
+ }
+ else
+ {
+ this.m_builder.Append("\\\"");
+ }
+ break;
+ }
+ IL_150:
+ i++;
+ continue;
+ IL_F2:
+ int num = Convert.ToInt32(c);
+ bool flag = num >= 32 && num <= 126;
+ if (flag)
+ {
+ this.m_builder.Append(c);
+ }
+ else
+ {
+ this.m_builder.Append("\\u");
+ this.m_builder.Append(num.ToString("x4"));
+ }
+ goto IL_150;
+ }
+ this.m_builder.Append('"');
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/DeJson/Serializer.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/DeJson/Serializer.cs.meta new file mode 100644 index 00000000..7198cf9d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DeJson/Serializer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 22c7aad9d168e1144ac7c2f16f522d47 +timeCreated: 1611465299 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/DebugHandler.cs b/Client/Assets/Scripts/XUtliPoolLib/DebugHandler.cs new file mode 100644 index 00000000..9e54feda --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DebugHandler.cs @@ -0,0 +1,6 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public delegate void DebugHandler(XGameObject gameObject, XEngineCommand command, string str, int id);
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/DebugHandler.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/DebugHandler.cs.meta new file mode 100644 index 00000000..a3b7320f --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DebugHandler.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0b0335df94f1d964c85c0a9f567c8ec0 +timeCreated: 1611465287 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/DefaultEquip.cs b/Client/Assets/Scripts/XUtliPoolLib/DefaultEquip.cs new file mode 100644 index 00000000..89de29ae --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DefaultEquip.cs @@ -0,0 +1,185 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class DefaultEquip : CVSReader
+ {
+ public DefaultEquip.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int ProfID;
+
+ public string Helmet;
+
+ public string Face;
+
+ public string Body;
+
+ public string Leg;
+
+ public string Boots;
+
+ public string Glove;
+
+ public string Weapon;
+
+ public string[] WeaponPoint;
+
+ public string WingPoint;
+
+ public string SecondWeapon;
+
+ public string Wing;
+
+ public string Tail;
+
+ public string Decal;
+
+ public string Hair;
+
+ public string TailPoint;
+
+ public string FishingPoint;
+
+ public string[] SideWeaponPoint;
+
+ public string RootPoint;
+
+ public byte id;
+ }
+
+ public DefaultEquip.RowData GetByProfID(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ DefaultEquip.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchProfID(key);
+ }
+ return result;
+ }
+
+ private DefaultEquip.RowData BinarySearchProfID(int key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ DefaultEquip.RowData rowData;
+ DefaultEquip.RowData rowData2;
+ DefaultEquip.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.ProfID == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.ProfID == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.ProfID.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.ProfID.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ DefaultEquip.RowData rowData = new DefaultEquip.RowData();
+ base.Read<int>(reader, ref rowData.ProfID, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.Helmet, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.Face, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.Body, CVSReader.stringParse);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.Leg, CVSReader.stringParse);
+ this.columnno = 4;
+ base.Read<string>(reader, ref rowData.Boots, CVSReader.stringParse);
+ this.columnno = 5;
+ base.Read<string>(reader, ref rowData.Glove, CVSReader.stringParse);
+ this.columnno = 6;
+ base.Read<string>(reader, ref rowData.Weapon, CVSReader.stringParse);
+ this.columnno = 7;
+ base.ReadArray<string>(reader, ref rowData.WeaponPoint, CVSReader.stringParse);
+ this.columnno = 8;
+ base.Read<string>(reader, ref rowData.WingPoint, CVSReader.stringParse);
+ this.columnno = 9;
+ base.Read<string>(reader, ref rowData.SecondWeapon, CVSReader.stringParse);
+ this.columnno = 10;
+ base.Read<string>(reader, ref rowData.Wing, CVSReader.stringParse);
+ this.columnno = 11;
+ base.Read<string>(reader, ref rowData.Tail, CVSReader.stringParse);
+ this.columnno = 12;
+ base.Read<string>(reader, ref rowData.Decal, CVSReader.stringParse);
+ this.columnno = 13;
+ base.Read<string>(reader, ref rowData.Hair, CVSReader.stringParse);
+ this.columnno = 14;
+ base.Read<string>(reader, ref rowData.TailPoint, CVSReader.stringParse);
+ this.columnno = 15;
+ base.Read<string>(reader, ref rowData.FishingPoint, CVSReader.stringParse);
+ this.columnno = 16;
+ base.ReadArray<string>(reader, ref rowData.SideWeaponPoint, CVSReader.stringParse);
+ this.columnno = 17;
+ base.Read<string>(reader, ref rowData.RootPoint, CVSReader.stringParse);
+ this.columnno = 18;
+ base.Read<byte>(reader, ref rowData.id, CVSReader.byteParse);
+ this.columnno = 19;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new DefaultEquip.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/DefaultEquip.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/DefaultEquip.cs.meta new file mode 100644 index 00000000..ade2f5a9 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DefaultEquip.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d91078a0f77cee84aa21b03e33061411 +timeCreated: 1611465765 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/DelLuaError.cs b/Client/Assets/Scripts/XUtliPoolLib/DelLuaError.cs new file mode 100644 index 00000000..5be8fd3e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DelLuaError.cs @@ -0,0 +1,6 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public delegate void DelLuaError(int errorCode);
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/DelLuaError.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/DelLuaError.cs.meta new file mode 100644 index 00000000..ee9d7379 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DelLuaError.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4ae0fb27b298cef47a8c4dac5eecf113 +timeCreated: 1611465640 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/DelLuaRespond.cs b/Client/Assets/Scripts/XUtliPoolLib/DelLuaRespond.cs new file mode 100644 index 00000000..3510072d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DelLuaRespond.cs @@ -0,0 +1,6 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public delegate void DelLuaRespond(byte[] resBuff, int length);
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/DelLuaRespond.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/DelLuaRespond.cs.meta new file mode 100644 index 00000000..3328e9a0 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DelLuaRespond.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f5ef4020807dcae4e94d5a81372e31d1 +timeCreated: 1611465809 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/DelegateHandler.cs b/Client/Assets/Scripts/XUtliPoolLib/DelegateHandler.cs new file mode 100644 index 00000000..0c9fc002 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DelegateHandler.cs @@ -0,0 +1,6 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public delegate void DelegateHandler(ILoopItemObject item, LoopItemData data);
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/DelegateHandler.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/DelegateHandler.cs.meta new file mode 100644 index 00000000..1aa31b96 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DelegateHandler.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ddabd3c05b2dd71469f793cc9622cece +timeCreated: 1611465797 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/DesignationTable.cs b/Client/Assets/Scripts/XUtliPoolLib/DesignationTable.cs new file mode 100644 index 00000000..a8672713 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DesignationTable.cs @@ -0,0 +1,173 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class DesignationTable : CVSReader
+ {
+ public DesignationTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int ID;
+
+ public string Designation;
+
+ public int Type;
+
+ public string Explanation;
+
+ public int CompleteType;
+
+ public int[] CompleteValue;
+
+ public int Pragmaticality;
+
+ public string Effect;
+
+ public SeqListRef<uint> Attribute;
+
+ public string Color;
+
+ public int GainShowIcon;
+
+ public int SortID;
+
+ public SeqRef<int> Level;
+
+ public bool ShowInChat;
+
+ public int Channel;
+
+ public string Atlas;
+
+ public bool Special;
+ }
+
+ public DesignationTable.RowData GetByID(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ DesignationTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchID(key);
+ }
+ return result;
+ }
+
+ private DesignationTable.RowData BinarySearchID(int key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ DesignationTable.RowData rowData;
+ DesignationTable.RowData rowData2;
+ DesignationTable.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.ID == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.ID == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.ID.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.ID.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ DesignationTable.RowData rowData = new DesignationTable.RowData();
+ base.Read<int>(reader, ref rowData.ID, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.Designation, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<int>(reader, ref rowData.Type, CVSReader.intParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.Explanation, CVSReader.stringParse);
+ this.columnno = 3;
+ base.Read<int>(reader, ref rowData.CompleteType, CVSReader.intParse);
+ this.columnno = 4;
+ base.ReadArray<int>(reader, ref rowData.CompleteValue, CVSReader.intParse);
+ this.columnno = 5;
+ base.Read<int>(reader, ref rowData.Pragmaticality, CVSReader.intParse);
+ this.columnno = 6;
+ base.Read<string>(reader, ref rowData.Effect, CVSReader.stringParse);
+ this.columnno = 7;
+ rowData.Attribute.Read(reader, this.m_DataHandler);
+ this.columnno = 8;
+ base.Read<string>(reader, ref rowData.Color, CVSReader.stringParse);
+ this.columnno = 9;
+ base.Read<int>(reader, ref rowData.GainShowIcon, CVSReader.intParse);
+ this.columnno = 10;
+ base.Read<int>(reader, ref rowData.SortID, CVSReader.intParse);
+ this.columnno = 11;
+ rowData.Level.Read(reader, this.m_DataHandler);
+ this.columnno = 12;
+ base.Read<bool>(reader, ref rowData.ShowInChat, CVSReader.boolParse);
+ this.columnno = 13;
+ base.Read<int>(reader, ref rowData.Channel, CVSReader.intParse);
+ this.columnno = 14;
+ base.Read<string>(reader, ref rowData.Atlas, CVSReader.stringParse);
+ this.columnno = 15;
+ base.Read<bool>(reader, ref rowData.Special, CVSReader.boolParse);
+ this.columnno = 16;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new DesignationTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/DesignationTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/DesignationTable.cs.meta new file mode 100644 index 00000000..3a96362e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DesignationTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ce62bcc003303a042af3b846ef9a2efa +timeCreated: 1611465759 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/DetectEnemyInRangeArg.cs b/Client/Assets/Scripts/XUtliPoolLib/DetectEnemyInRangeArg.cs new file mode 100644 index 00000000..9976295e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DetectEnemyInRangeArg.cs @@ -0,0 +1,23 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public struct DetectEnemyInRangeArg
+ {
+ public int mAIArgRangeType;
+
+ public float mAIArgRadius;
+
+ public float mAIArgAngle;
+
+ public float mAIArgLength;
+
+ public float mAIArgWidth;
+
+ public float mAIArgOffsetLength;
+
+ public int mAIArgMonsterType;
+
+ public int mAIArgFightGroupType;
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/DetectEnemyInRangeArg.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/DetectEnemyInRangeArg.cs.meta new file mode 100644 index 00000000..0ab4d4be --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DetectEnemyInRangeArg.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 10c517cde1b41ed49a3aa68906acc693 +timeCreated: 1611465291 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/DictionaryPool.cs b/Client/Assets/Scripts/XUtliPoolLib/DictionaryPool.cs new file mode 100644 index 00000000..b5d01cd5 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DictionaryPool.cs @@ -0,0 +1,31 @@ +using System;
+using System.Collections.Generic;
+
+namespace XUtliPoolLib
+{
+ public class DictionaryPool<K, V>
+ {
+ private static readonly ObjectPool<Dictionary<K, V>> s_Pool = new ObjectPool<Dictionary<K, V>>(new ObjectPool<Dictionary<K, V>>.CreateObj(DictionaryPool<K, V>.Create), delegate(Dictionary<K, V> l)
+ {
+ l.Clear();
+ }, delegate(Dictionary<K, V> l)
+ {
+ l.Clear();
+ });
+
+ public static Dictionary<K, V> Create()
+ {
+ return new Dictionary<K, V>();
+ }
+
+ public static Dictionary<K, V> Get()
+ {
+ return DictionaryPool<K, V>.s_Pool.Get();
+ }
+
+ public static void Release(Dictionary<K, V> toRelease)
+ {
+ DictionaryPool<K, V>.s_Pool.Release(toRelease);
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/DictionaryPool.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/DictionaryPool.cs.meta new file mode 100644 index 00000000..723e2648 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DictionaryPool.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 89643f0c663917f48a989d5452c5408f +timeCreated: 1611465699 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/DoubleActivity.cs b/Client/Assets/Scripts/XUtliPoolLib/DoubleActivity.cs new file mode 100644 index 00000000..3f185e3d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DoubleActivity.cs @@ -0,0 +1,79 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class DoubleActivity : CVSReader
+ {
+ public DoubleActivity.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint SystemId;
+
+ public uint[] WeekOpenDays;
+
+ public uint[] TimeSpan;
+
+ public uint DropMultiple;
+
+ public uint DropItems;
+
+ public uint LimitTimes;
+ }
+
+ public DoubleActivity.RowData GetBySystemId(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ DoubleActivity.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].SystemId == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ DoubleActivity.RowData rowData = new DoubleActivity.RowData();
+ base.Read<uint>(reader, ref rowData.SystemId, CVSReader.uintParse);
+ this.columnno = 0;
+ base.ReadArray<uint>(reader, ref rowData.WeekOpenDays, CVSReader.uintParse);
+ this.columnno = 1;
+ base.ReadArray<uint>(reader, ref rowData.TimeSpan, CVSReader.uintParse);
+ this.columnno = 2;
+ base.Read<uint>(reader, ref rowData.DropMultiple, CVSReader.uintParse);
+ this.columnno = 3;
+ base.Read<uint>(reader, ref rowData.DropItems, CVSReader.uintParse);
+ this.columnno = 4;
+ base.Read<uint>(reader, ref rowData.LimitTimes, CVSReader.uintParse);
+ this.columnno = 5;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new DoubleActivity.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/DoubleActivity.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/DoubleActivity.cs.meta new file mode 100644 index 00000000..1af5ed73 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DoubleActivity.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f63897f564c0e7d4c80102164b7abbc7 +timeCreated: 1611465809 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/DragonExpList.cs b/Client/Assets/Scripts/XUtliPoolLib/DragonExpList.cs new file mode 100644 index 00000000..e4520684 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DragonExpList.cs @@ -0,0 +1,103 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class DragonExpList : CVSReader
+ {
+ public DragonExpList.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint SceneID;
+
+ public string Description;
+
+ public SeqListRef<uint> WinReward;
+
+ public string ResName;
+
+ public string BuffIcon;
+
+ public string BuffDes;
+
+ public uint BossID;
+
+ public uint SealLevel;
+
+ public SeqRef<uint> ChapterID;
+
+ public string WinHit;
+
+ public float LimitPos;
+
+ public float[] SnapPos;
+ }
+
+ public DragonExpList.RowData GetBySceneID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ DragonExpList.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].SceneID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ DragonExpList.RowData rowData = new DragonExpList.RowData();
+ base.Read<uint>(reader, ref rowData.SceneID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.Description, CVSReader.stringParse);
+ this.columnno = 1;
+ rowData.WinReward.Read(reader, this.m_DataHandler);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.ResName, CVSReader.stringParse);
+ this.columnno = 4;
+ base.Read<string>(reader, ref rowData.BuffIcon, CVSReader.stringParse);
+ this.columnno = 6;
+ base.Read<string>(reader, ref rowData.BuffDes, CVSReader.stringParse);
+ this.columnno = 7;
+ base.Read<uint>(reader, ref rowData.BossID, CVSReader.uintParse);
+ this.columnno = 8;
+ base.Read<uint>(reader, ref rowData.SealLevel, CVSReader.uintParse);
+ this.columnno = 9;
+ rowData.ChapterID.Read(reader, this.m_DataHandler);
+ this.columnno = 11;
+ base.Read<string>(reader, ref rowData.WinHit, CVSReader.stringParse);
+ this.columnno = 12;
+ base.Read<float>(reader, ref rowData.LimitPos, CVSReader.floatParse);
+ this.columnno = 13;
+ base.ReadArray<float>(reader, ref rowData.SnapPos, CVSReader.floatParse);
+ this.columnno = 14;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new DragonExpList.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/DragonExpList.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/DragonExpList.cs.meta new file mode 100644 index 00000000..8744a0aa --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DragonExpList.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 13c252d4385692e499b93806929bdc8a +timeCreated: 1611465293 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/DragonGuildAchieveTable.cs b/Client/Assets/Scripts/XUtliPoolLib/DragonGuildAchieveTable.cs new file mode 100644 index 00000000..ccc49309 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DragonGuildAchieveTable.cs @@ -0,0 +1,103 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class DragonGuildAchieveTable : CVSReader
+ {
+ public DragonGuildAchieveTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint ID;
+
+ public uint Type;
+
+ public string name;
+
+ public string description;
+
+ public string icon;
+
+ public uint SceneID;
+
+ public uint count;
+
+ public uint guildExp;
+
+ public uint[] dropID;
+
+ public SeqListRef<uint> viewabledrop;
+
+ public uint chestCount;
+
+ public uint value;
+ }
+
+ public DragonGuildAchieveTable.RowData GetByID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ DragonGuildAchieveTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].ID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ DragonGuildAchieveTable.RowData rowData = new DragonGuildAchieveTable.RowData();
+ base.Read<uint>(reader, ref rowData.ID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.Type, CVSReader.uintParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.name, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.description, CVSReader.stringParse);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.icon, CVSReader.stringParse);
+ this.columnno = 4;
+ base.Read<uint>(reader, ref rowData.SceneID, CVSReader.uintParse);
+ this.columnno = 5;
+ base.Read<uint>(reader, ref rowData.count, CVSReader.uintParse);
+ this.columnno = 6;
+ base.Read<uint>(reader, ref rowData.guildExp, CVSReader.uintParse);
+ this.columnno = 7;
+ base.ReadArray<uint>(reader, ref rowData.dropID, CVSReader.uintParse);
+ this.columnno = 8;
+ rowData.viewabledrop.Read(reader, this.m_DataHandler);
+ this.columnno = 9;
+ base.Read<uint>(reader, ref rowData.chestCount, CVSReader.uintParse);
+ this.columnno = 10;
+ base.Read<uint>(reader, ref rowData.value, CVSReader.uintParse);
+ this.columnno = 11;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new DragonGuildAchieveTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/DragonGuildAchieveTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/DragonGuildAchieveTable.cs.meta new file mode 100644 index 00000000..405d3cda --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DragonGuildAchieveTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4be8a5c23ee2af74a877e5c631442506 +timeCreated: 1611465641 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/DragonGuildConfigTable.cs b/Client/Assets/Scripts/XUtliPoolLib/DragonGuildConfigTable.cs new file mode 100644 index 00000000..9eba1f98 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DragonGuildConfigTable.cs @@ -0,0 +1,75 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class DragonGuildConfigTable : CVSReader
+ {
+ public DragonGuildConfigTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint DragonGuildLevel;
+
+ public uint DragonGuildExpNeed;
+
+ public uint DragonGuildNumber;
+
+ public uint PresidentNum;
+
+ public uint VicePresidentNum;
+ }
+
+ public DragonGuildConfigTable.RowData GetByDragonGuildLevel(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ DragonGuildConfigTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].DragonGuildLevel == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ DragonGuildConfigTable.RowData rowData = new DragonGuildConfigTable.RowData();
+ base.Read<uint>(reader, ref rowData.DragonGuildLevel, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.DragonGuildExpNeed, CVSReader.uintParse);
+ this.columnno = 1;
+ base.Read<uint>(reader, ref rowData.DragonGuildNumber, CVSReader.uintParse);
+ this.columnno = 2;
+ base.Read<uint>(reader, ref rowData.PresidentNum, CVSReader.uintParse);
+ this.columnno = 3;
+ base.Read<uint>(reader, ref rowData.VicePresidentNum, CVSReader.uintParse);
+ this.columnno = 4;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new DragonGuildConfigTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/DragonGuildConfigTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/DragonGuildConfigTable.cs.meta new file mode 100644 index 00000000..9c146e06 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DragonGuildConfigTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 87e074712a82fff41be09513575e761b +timeCreated: 1611465697 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/DragonGuildIntroduce.cs b/Client/Assets/Scripts/XUtliPoolLib/DragonGuildIntroduce.cs new file mode 100644 index 00000000..2b944a2e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DragonGuildIntroduce.cs @@ -0,0 +1,71 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class DragonGuildIntroduce : CVSReader
+ {
+ public DragonGuildIntroduce.RowData[] Table = null;
+
+ public class RowData
+ {
+ public string HelpName;
+
+ public string Logo;
+
+ public string Title;
+
+ public string Desc;
+ }
+
+ public DragonGuildIntroduce.RowData GetByHelpName(string key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ DragonGuildIntroduce.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].HelpName == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ DragonGuildIntroduce.RowData rowData = new DragonGuildIntroduce.RowData();
+ base.Read<string>(reader, ref rowData.HelpName, CVSReader.stringParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.Logo, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.Title, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.Desc, CVSReader.stringParse);
+ this.columnno = 3;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new DragonGuildIntroduce.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/DragonGuildIntroduce.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/DragonGuildIntroduce.cs.meta new file mode 100644 index 00000000..750c91a4 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DragonGuildIntroduce.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 35d022b0f4ced27449b0b9d4f4159200 +timeCreated: 1611465631 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/DragonGuildLivenessTable.cs b/Client/Assets/Scripts/XUtliPoolLib/DragonGuildLivenessTable.cs new file mode 100644 index 00000000..8711b7c0 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DragonGuildLivenessTable.cs @@ -0,0 +1,52 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class DragonGuildLivenessTable : CVSReader
+ {
+ public DragonGuildLivenessTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint liveness;
+
+ public SeqRef<uint> level;
+
+ public SeqListRef<uint> viewabledrop;
+
+ public uint index;
+
+ public string boxPic;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ DragonGuildLivenessTable.RowData rowData = new DragonGuildLivenessTable.RowData();
+ base.Read<uint>(reader, ref rowData.liveness, CVSReader.uintParse);
+ this.columnno = 0;
+ rowData.level.Read(reader, this.m_DataHandler);
+ this.columnno = 1;
+ rowData.viewabledrop.Read(reader, this.m_DataHandler);
+ this.columnno = 4;
+ base.Read<uint>(reader, ref rowData.index, CVSReader.uintParse);
+ this.columnno = 5;
+ base.Read<string>(reader, ref rowData.boxPic, CVSReader.stringParse);
+ this.columnno = 6;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new DragonGuildLivenessTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/DragonGuildLivenessTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/DragonGuildLivenessTable.cs.meta new file mode 100644 index 00000000..9d7359ae --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DragonGuildLivenessTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 916b831e5c3ecc14a9e95d8c1bab1d92 +timeCreated: 1611465705 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/DragonGuildPermissionTable.cs b/Client/Assets/Scripts/XUtliPoolLib/DragonGuildPermissionTable.cs new file mode 100644 index 00000000..8a3ac0f5 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DragonGuildPermissionTable.cs @@ -0,0 +1,48 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class DragonGuildPermissionTable : CVSReader
+ {
+ public DragonGuildPermissionTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public string DragonGuildID;
+
+ public int DGPOS_LEADER;
+
+ public int DGPOS_VIVELEADER;
+
+ public int DGPOS_MEMBER;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ DragonGuildPermissionTable.RowData rowData = new DragonGuildPermissionTable.RowData();
+ base.Read<string>(reader, ref rowData.DragonGuildID, CVSReader.stringParse);
+ this.columnno = 0;
+ base.Read<int>(reader, ref rowData.DGPOS_LEADER, CVSReader.intParse);
+ this.columnno = 1;
+ base.Read<int>(reader, ref rowData.DGPOS_VIVELEADER, CVSReader.intParse);
+ this.columnno = 2;
+ base.Read<int>(reader, ref rowData.DGPOS_MEMBER, CVSReader.intParse);
+ this.columnno = 3;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new DragonGuildPermissionTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/DragonGuildPermissionTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/DragonGuildPermissionTable.cs.meta new file mode 100644 index 00000000..4aaa5876 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DragonGuildPermissionTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 109974283d9849b4fb69f5c0647a3749 +timeCreated: 1611465290 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/DragonGuildTable.cs b/Client/Assets/Scripts/XUtliPoolLib/DragonGuildTable.cs new file mode 100644 index 00000000..60f14932 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DragonGuildTable.cs @@ -0,0 +1,63 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class DragonGuildTable : CVSReader
+ {
+ public DragonGuildTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint level;
+
+ public SeqRef<int> buf;
+ }
+
+ public DragonGuildTable.RowData GetBylevel(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ DragonGuildTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].level == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ DragonGuildTable.RowData rowData = new DragonGuildTable.RowData();
+ base.Read<uint>(reader, ref rowData.level, CVSReader.uintParse);
+ this.columnno = 0;
+ rowData.buf.Read(reader, this.m_DataHandler);
+ this.columnno = 1;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new DragonGuildTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/DragonGuildTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/DragonGuildTable.cs.meta new file mode 100644 index 00000000..5c6ef350 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DragonGuildTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0bdf4633b256d394f9e74bd1e770f603 +timeCreated: 1611465288 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/DragonGuildTaskTable.cs b/Client/Assets/Scripts/XUtliPoolLib/DragonGuildTaskTable.cs new file mode 100644 index 00000000..ba1e26a6 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DragonGuildTaskTable.cs @@ -0,0 +1,99 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class DragonGuildTaskTable : CVSReader
+ {
+ public DragonGuildTaskTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint taskID;
+
+ public uint taskType;
+
+ public string name;
+
+ public uint SceneID;
+
+ public string icon;
+
+ public SeqRef<uint> worldlevel;
+
+ public uint count;
+
+ public uint guildExp;
+
+ public SeqListRef<uint> viewabledrop;
+
+ public uint[] dropID;
+
+ public uint value;
+ }
+
+ public DragonGuildTaskTable.RowData GetBytaskID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ DragonGuildTaskTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].taskID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ DragonGuildTaskTable.RowData rowData = new DragonGuildTaskTable.RowData();
+ base.Read<uint>(reader, ref rowData.taskID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.taskType, CVSReader.uintParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.name, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<uint>(reader, ref rowData.SceneID, CVSReader.uintParse);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.icon, CVSReader.stringParse);
+ this.columnno = 4;
+ rowData.worldlevel.Read(reader, this.m_DataHandler);
+ this.columnno = 5;
+ base.Read<uint>(reader, ref rowData.count, CVSReader.uintParse);
+ this.columnno = 6;
+ base.Read<uint>(reader, ref rowData.guildExp, CVSReader.uintParse);
+ this.columnno = 7;
+ rowData.viewabledrop.Read(reader, this.m_DataHandler);
+ this.columnno = 8;
+ base.ReadArray<uint>(reader, ref rowData.dropID, CVSReader.uintParse);
+ this.columnno = 9;
+ base.Read<uint>(reader, ref rowData.value, CVSReader.uintParse);
+ this.columnno = 10;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new DragonGuildTaskTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/DragonGuildTaskTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/DragonGuildTaskTable.cs.meta new file mode 100644 index 00000000..cad4dfed --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DragonGuildTaskTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8d11547e104e9ef49acc71c699d7ce65 +timeCreated: 1611465701 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/DragonNestTable.cs b/Client/Assets/Scripts/XUtliPoolLib/DragonNestTable.cs new file mode 100644 index 00000000..a60873e6 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DragonNestTable.cs @@ -0,0 +1,120 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class DragonNestTable : CVSReader
+ {
+ public DragonNestTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint DragonNestID;
+
+ public uint DragonNestType;
+
+ public uint DragonNestDifficulty;
+
+ public uint DragonNestWave;
+
+ public int DragonNestPosX;
+
+ public int DragonNestPosY;
+
+ public string DragonNestIcon;
+
+ public string SuggestAttr;
+
+ public SeqListRef<uint> WeakInfo;
+
+ public string[] WeakTip1;
+
+ public string[] WeakTip2;
+
+ public string WeakNotPassTip1;
+
+ public string WeakNotPassTip2;
+
+ public int[] WeakPercent;
+
+ public uint[] WeakCombat;
+
+ public SeqListRef<uint> WeakInfoEx;
+
+ public string[] WeakTip1EX;
+
+ public string[] WeakTip2EX;
+
+ public int[] WeakPercentEX;
+
+ public uint[] WeakCombatEX;
+
+ public string DragonNestAtlas;
+
+ public int MaxDragonDropLevel;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ DragonNestTable.RowData rowData = new DragonNestTable.RowData();
+ base.Read<uint>(reader, ref rowData.DragonNestID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.DragonNestType, CVSReader.uintParse);
+ this.columnno = 1;
+ base.Read<uint>(reader, ref rowData.DragonNestDifficulty, CVSReader.uintParse);
+ this.columnno = 2;
+ base.Read<uint>(reader, ref rowData.DragonNestWave, CVSReader.uintParse);
+ this.columnno = 3;
+ base.Read<int>(reader, ref rowData.DragonNestPosX, CVSReader.intParse);
+ this.columnno = 4;
+ base.Read<int>(reader, ref rowData.DragonNestPosY, CVSReader.intParse);
+ this.columnno = 5;
+ base.Read<string>(reader, ref rowData.DragonNestIcon, CVSReader.stringParse);
+ this.columnno = 6;
+ base.Read<string>(reader, ref rowData.SuggestAttr, CVSReader.stringParse);
+ this.columnno = 7;
+ rowData.WeakInfo.Read(reader, this.m_DataHandler);
+ this.columnno = 8;
+ base.ReadArray<string>(reader, ref rowData.WeakTip1, CVSReader.stringParse);
+ this.columnno = 9;
+ base.ReadArray<string>(reader, ref rowData.WeakTip2, CVSReader.stringParse);
+ this.columnno = 10;
+ base.Read<string>(reader, ref rowData.WeakNotPassTip1, CVSReader.stringParse);
+ this.columnno = 11;
+ base.Read<string>(reader, ref rowData.WeakNotPassTip2, CVSReader.stringParse);
+ this.columnno = 12;
+ base.ReadArray<int>(reader, ref rowData.WeakPercent, CVSReader.intParse);
+ this.columnno = 13;
+ base.ReadArray<uint>(reader, ref rowData.WeakCombat, CVSReader.uintParse);
+ this.columnno = 14;
+ rowData.WeakInfoEx.Read(reader, this.m_DataHandler);
+ this.columnno = 15;
+ base.ReadArray<string>(reader, ref rowData.WeakTip1EX, CVSReader.stringParse);
+ this.columnno = 16;
+ base.ReadArray<string>(reader, ref rowData.WeakTip2EX, CVSReader.stringParse);
+ this.columnno = 17;
+ base.ReadArray<int>(reader, ref rowData.WeakPercentEX, CVSReader.intParse);
+ this.columnno = 18;
+ base.ReadArray<uint>(reader, ref rowData.WeakCombatEX, CVSReader.uintParse);
+ this.columnno = 19;
+ base.Read<string>(reader, ref rowData.DragonNestAtlas, CVSReader.stringParse);
+ this.columnno = 20;
+ base.Read<int>(reader, ref rowData.MaxDragonDropLevel, CVSReader.intParse);
+ this.columnno = 21;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new DragonNestTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/DragonNestTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/DragonNestTable.cs.meta new file mode 100644 index 00000000..447da330 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DragonNestTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 6f79920077fd77347890352d77a99ac0 +timeCreated: 1611465687 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/DragonNestType.cs b/Client/Assets/Scripts/XUtliPoolLib/DragonNestType.cs new file mode 100644 index 00000000..8a5b1a3e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DragonNestType.cs @@ -0,0 +1,48 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class DragonNestType : CVSReader
+ {
+ public DragonNestType.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint DragonNestType;
+
+ public string TypeName;
+
+ public string TypeBg;
+
+ public string TypeIcon;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ DragonNestType.RowData rowData = new DragonNestType.RowData();
+ base.Read<uint>(reader, ref rowData.DragonNestType, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.TypeName, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.TypeBg, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.TypeIcon, CVSReader.stringParse);
+ this.columnno = 3;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new DragonNestType.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/DragonNestType.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/DragonNestType.cs.meta new file mode 100644 index 00000000..66944191 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DragonNestType.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b62df7850dd9f3f43b43fa3c77c8167d +timeCreated: 1611465746 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/DropList.cs b/Client/Assets/Scripts/XUtliPoolLib/DropList.cs new file mode 100644 index 00000000..472b5589 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DropList.cs @@ -0,0 +1,48 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class DropList : CVSReader
+ {
+ public DropList.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int DropID;
+
+ public int ItemID;
+
+ public int ItemCount;
+
+ public bool ItemBind;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ DropList.RowData rowData = new DropList.RowData();
+ base.Read<int>(reader, ref rowData.DropID, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<int>(reader, ref rowData.ItemID, CVSReader.intParse);
+ this.columnno = 1;
+ base.Read<int>(reader, ref rowData.ItemCount, CVSReader.intParse);
+ this.columnno = 2;
+ base.Read<bool>(reader, ref rowData.ItemBind, CVSReader.boolParse);
+ this.columnno = 6;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new DropList.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/DropList.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/DropList.cs.meta new file mode 100644 index 00000000..c3c2ec7b --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/DropList.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: fd3a8cb5272767c4d80b4fda8f69fdbb +timeCreated: 1611465812 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/EAsyncLoadState.cs b/Client/Assets/Scripts/XUtliPoolLib/EAsyncLoadState.cs new file mode 100644 index 00000000..617f6be6 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/EAsyncLoadState.cs @@ -0,0 +1,12 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public enum EAsyncLoadState
+ {
+ EFree,
+ EPreLoading,
+ ELoading,
+ EInstance
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/EAsyncLoadState.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/EAsyncLoadState.cs.meta new file mode 100644 index 00000000..46cae68c --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/EAsyncLoadState.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2b9247438f20a1244831c1107a5c3eb3 +timeCreated: 1611465304 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/EClassType.cs b/Client/Assets/Scripts/XUtliPoolLib/EClassType.cs new file mode 100644 index 00000000..8f185a94 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/EClassType.cs @@ -0,0 +1,9 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public enum EClassType
+ {
+ ERuntimeFMOD
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/EClassType.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/EClassType.cs.meta new file mode 100644 index 00000000..ba5ba042 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/EClassType.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8f7afb99bbf797348beaea78979ac517 +timeCreated: 1611465703 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/EComponentType.cs b/Client/Assets/Scripts/XUtliPoolLib/EComponentType.cs new file mode 100644 index 00000000..8571987c --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/EComponentType.cs @@ -0,0 +1,12 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public enum EComponentType
+ {
+ EXBehaviorTree,
+ EUIDummy,
+ EXFmod,
+ ENum
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/EComponentType.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/EComponentType.cs.meta new file mode 100644 index 00000000..01b98b79 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/EComponentType.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 868cd217c9351e340ad51d8aef1fb68a +timeCreated: 1611465696 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ECreateHideType.cs b/Client/Assets/Scripts/XUtliPoolLib/ECreateHideType.cs new file mode 100644 index 00000000..93661250 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ECreateHideType.cs @@ -0,0 +1,12 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public enum ECreateHideType
+ {
+ NotHide,
+ DisableObject,
+ DisableAnim,
+ DisableParticleRenderer
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ECreateHideType.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ECreateHideType.cs.meta new file mode 100644 index 00000000..b90d5f3a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ECreateHideType.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: cb02c92c7c02e7e4e8efd380eb336a41 +timeCreated: 1611465758 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/EDelayProcessType.cs b/Client/Assets/Scripts/XUtliPoolLib/EDelayProcessType.cs new file mode 100644 index 00000000..14a0bd3c --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/EDelayProcessType.cs @@ -0,0 +1,10 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public enum EDelayProcessType
+ {
+ EUpdate,
+ EFinish
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/EDelayProcessType.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/EDelayProcessType.cs.meta new file mode 100644 index 00000000..08a5ef9a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/EDelayProcessType.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 91fc2d0f60d1a654b913b21617c0f98b +timeCreated: 1611465706 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/EPartType.cs b/Client/Assets/Scripts/XUtliPoolLib/EPartType.cs new file mode 100644 index 00000000..2741c91a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/EPartType.cs @@ -0,0 +1,26 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public enum EPartType
+ {
+ ECombinePartStart,
+ EFace = 0,
+ EHair,
+ EUpperBody,
+ ELowerBody,
+ EGloves,
+ EBoots,
+ ESecondaryWeapon,
+ EHeadgear,
+ ECombinePartEnd,
+ EMainWeapon = 8,
+ EWeaponEnd,
+ EWings = 9,
+ ETail,
+ ESprite,
+ EMountEnd,
+ EDecal = 12,
+ ENum
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/EPartType.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/EPartType.cs.meta new file mode 100644 index 00000000..80ef9591 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/EPartType.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0c8d72d85977b7f4aa95695698afb430 +timeCreated: 1611465288 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/EffectDesTable.cs b/Client/Assets/Scripts/XUtliPoolLib/EffectDesTable.cs new file mode 100644 index 00000000..cbbe6376 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/EffectDesTable.cs @@ -0,0 +1,79 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class EffectDesTable : CVSReader
+ {
+ public EffectDesTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint EffectID;
+
+ public string EffectDes;
+
+ public float[] ParamCoefficient;
+
+ public string[] ColorDes;
+
+ public byte BaseProf;
+
+ public uint EffectType;
+ }
+
+ public EffectDesTable.RowData GetByEffectID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ EffectDesTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].EffectID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ EffectDesTable.RowData rowData = new EffectDesTable.RowData();
+ base.Read<uint>(reader, ref rowData.EffectID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.EffectDes, CVSReader.stringParse);
+ this.columnno = 1;
+ base.ReadArray<float>(reader, ref rowData.ParamCoefficient, CVSReader.floatParse);
+ this.columnno = 2;
+ base.ReadArray<string>(reader, ref rowData.ColorDes, CVSReader.stringParse);
+ this.columnno = 3;
+ base.Read<byte>(reader, ref rowData.BaseProf, CVSReader.byteParse);
+ this.columnno = 4;
+ base.Read<uint>(reader, ref rowData.EffectType, CVSReader.uintParse);
+ this.columnno = 5;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new EffectDesTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/EffectDesTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/EffectDesTable.cs.meta new file mode 100644 index 00000000..411f7628 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/EffectDesTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c130747742704074ebcdddfa836015b9 +timeCreated: 1611465753 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/EffectTable.cs b/Client/Assets/Scripts/XUtliPoolLib/EffectTable.cs new file mode 100644 index 00000000..939b6150 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/EffectTable.cs @@ -0,0 +1,68 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class EffectTable : CVSReader
+ {
+ public EffectTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint EffectID;
+
+ public uint BuffID;
+
+ public uint TemplateBuffID;
+
+ public uint SkillScript;
+
+ public SeqListRef<int> EffectParams;
+
+ public SeqListRef<string> ConstantParams;
+
+ public byte SortID;
+
+ public byte CompareSortID;
+
+ public SeqListRef<uint> CompareParams;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ EffectTable.RowData rowData = new EffectTable.RowData();
+ base.Read<uint>(reader, ref rowData.EffectID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.BuffID, CVSReader.uintParse);
+ this.columnno = 1;
+ base.Read<uint>(reader, ref rowData.TemplateBuffID, CVSReader.uintParse);
+ this.columnno = 2;
+ base.Read<uint>(reader, ref rowData.SkillScript, CVSReader.uintParse);
+ this.columnno = 3;
+ rowData.EffectParams.Read(reader, this.m_DataHandler);
+ this.columnno = 4;
+ rowData.ConstantParams.Read(reader, this.m_DataHandler);
+ this.columnno = 5;
+ base.Read<byte>(reader, ref rowData.SortID, CVSReader.byteParse);
+ this.columnno = 6;
+ base.Read<byte>(reader, ref rowData.CompareSortID, CVSReader.byteParse);
+ this.columnno = 7;
+ rowData.CompareParams.Read(reader, this.m_DataHandler);
+ this.columnno = 8;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new EffectTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/EffectTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/EffectTable.cs.meta new file mode 100644 index 00000000..43785ff5 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/EffectTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b12a89ac4e2718d49af726c65df771be +timeCreated: 1611465744 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/EmblemBasic.cs b/Client/Assets/Scripts/XUtliPoolLib/EmblemBasic.cs new file mode 100644 index 00000000..7460557d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/EmblemBasic.cs @@ -0,0 +1,129 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class EmblemBasic : CVSReader
+ {
+ public EmblemBasic.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint EmblemID;
+
+ public short EmblemType;
+
+ public short DragonCoinCost;
+
+ public SeqListRef<uint> SmeltNeedItem;
+
+ public uint SmeltNeedMoney;
+
+ public byte ReturnSmeltStoneRate;
+ }
+
+ public EmblemBasic.RowData GetByEmblemID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ EmblemBasic.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchEmblemID(key);
+ }
+ return result;
+ }
+
+ private EmblemBasic.RowData BinarySearchEmblemID(uint key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ EmblemBasic.RowData rowData;
+ EmblemBasic.RowData rowData2;
+ EmblemBasic.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.EmblemID == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.EmblemID == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.EmblemID.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.EmblemID.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ EmblemBasic.RowData rowData = new EmblemBasic.RowData();
+ base.Read<uint>(reader, ref rowData.EmblemID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<short>(reader, ref rowData.EmblemType, CVSReader.shortParse);
+ this.columnno = 3;
+ base.Read<short>(reader, ref rowData.DragonCoinCost, CVSReader.shortParse);
+ this.columnno = 4;
+ rowData.SmeltNeedItem.Read(reader, this.m_DataHandler);
+ this.columnno = 6;
+ base.Read<uint>(reader, ref rowData.SmeltNeedMoney, CVSReader.uintParse);
+ this.columnno = 7;
+ base.Read<byte>(reader, ref rowData.ReturnSmeltStoneRate, CVSReader.byteParse);
+ this.columnno = 8;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new EmblemBasic.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/EmblemBasic.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/EmblemBasic.cs.meta new file mode 100644 index 00000000..cd2abe98 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/EmblemBasic.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 3ecd73d74ba058a4b867ee6fe5fcc6b1 +timeCreated: 1611465633 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/EnchantEquip.cs b/Client/Assets/Scripts/XUtliPoolLib/EnchantEquip.cs new file mode 100644 index 00000000..9779b56c --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/EnchantEquip.cs @@ -0,0 +1,83 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class EnchantEquip : CVSReader
+ {
+ public EnchantEquip.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint EnchantID;
+
+ public uint[] Pos;
+
+ public SeqListRef<uint> Attribute;
+
+ public SeqListRef<uint> Cost;
+
+ public uint Num;
+
+ public uint VisiblePos;
+
+ public uint EnchantLevel;
+ }
+
+ public EnchantEquip.RowData GetByEnchantID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ EnchantEquip.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].EnchantID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ EnchantEquip.RowData rowData = new EnchantEquip.RowData();
+ base.Read<uint>(reader, ref rowData.EnchantID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.ReadArray<uint>(reader, ref rowData.Pos, CVSReader.uintParse);
+ this.columnno = 1;
+ rowData.Attribute.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ rowData.Cost.Read(reader, this.m_DataHandler);
+ this.columnno = 3;
+ base.Read<uint>(reader, ref rowData.Num, CVSReader.uintParse);
+ this.columnno = 4;
+ base.Read<uint>(reader, ref rowData.VisiblePos, CVSReader.uintParse);
+ this.columnno = 5;
+ base.Read<uint>(reader, ref rowData.EnchantLevel, CVSReader.uintParse);
+ this.columnno = 6;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new EnchantEquip.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/EnchantEquip.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/EnchantEquip.cs.meta new file mode 100644 index 00000000..4669bb44 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/EnchantEquip.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c75c24530bb878940b8684f65616a5f5 +timeCreated: 1611465756 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/EnhanceFxTable.cs b/Client/Assets/Scripts/XUtliPoolLib/EnhanceFxTable.cs new file mode 100644 index 00000000..12273688 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/EnhanceFxTable.cs @@ -0,0 +1,48 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class EnhanceFxTable : CVSReader
+ {
+ public EnhanceFxTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint EnhanceLevel;
+
+ public string[] MainWeaponFx;
+
+ public uint ProfID;
+
+ public string Tips;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ EnhanceFxTable.RowData rowData = new EnhanceFxTable.RowData();
+ base.Read<uint>(reader, ref rowData.EnhanceLevel, CVSReader.uintParse);
+ this.columnno = 0;
+ base.ReadArray<string>(reader, ref rowData.MainWeaponFx, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<uint>(reader, ref rowData.ProfID, CVSReader.uintParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.Tips, CVSReader.stringParse);
+ this.columnno = 4;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new EnhanceFxTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/EnhanceFxTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/EnhanceFxTable.cs.meta new file mode 100644 index 00000000..51561f7a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/EnhanceFxTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c04b870ff4bfdc548ac0e50197795b29 +timeCreated: 1611465753 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/EnhanceMaster.cs b/Client/Assets/Scripts/XUtliPoolLib/EnhanceMaster.cs new file mode 100644 index 00000000..ffd3d947 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/EnhanceMaster.cs @@ -0,0 +1,44 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class EnhanceMaster : CVSReader
+ {
+ public EnhanceMaster.RowData[] Table = null;
+
+ public class RowData
+ {
+ public short ProfessionId;
+
+ public short TotalEnhanceLevel;
+
+ public SeqListRef<uint> Attribute;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ EnhanceMaster.RowData rowData = new EnhanceMaster.RowData();
+ base.Read<short>(reader, ref rowData.ProfessionId, CVSReader.shortParse);
+ this.columnno = 0;
+ base.Read<short>(reader, ref rowData.TotalEnhanceLevel, CVSReader.shortParse);
+ this.columnno = 1;
+ rowData.Attribute.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new EnhanceMaster.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/EnhanceMaster.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/EnhanceMaster.cs.meta new file mode 100644 index 00000000..08bb14f5 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/EnhanceMaster.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 976bd4b596445404b9235a05cc5339de +timeCreated: 1611465709 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/EnhanceTable.cs b/Client/Assets/Scripts/XUtliPoolLib/EnhanceTable.cs new file mode 100644 index 00000000..1acb02a0 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/EnhanceTable.cs @@ -0,0 +1,56 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class EnhanceTable : CVSReader
+ {
+ public EnhanceTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint EquipPos;
+
+ public uint EnhanceLevel;
+
+ public SeqListRef<uint> NeedItem;
+
+ public uint SuccessRate;
+
+ public uint UpRate;
+
+ public uint IsNeedBreak;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ EnhanceTable.RowData rowData = new EnhanceTable.RowData();
+ base.Read<uint>(reader, ref rowData.EquipPos, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.EnhanceLevel, CVSReader.uintParse);
+ this.columnno = 1;
+ rowData.NeedItem.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ base.Read<uint>(reader, ref rowData.SuccessRate, CVSReader.uintParse);
+ this.columnno = 3;
+ base.Read<uint>(reader, ref rowData.UpRate, CVSReader.uintParse);
+ this.columnno = 4;
+ base.Read<uint>(reader, ref rowData.IsNeedBreak, CVSReader.uintParse);
+ this.columnno = 5;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new EnhanceTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/EnhanceTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/EnhanceTable.cs.meta new file mode 100644 index 00000000..c148dd85 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/EnhanceTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d014809c5476b324d95997e68879fcba +timeCreated: 1611465760 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/EquipFusionExpTable.cs b/Client/Assets/Scripts/XUtliPoolLib/EquipFusionExpTable.cs new file mode 100644 index 00000000..b3eb613d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/EquipFusionExpTable.cs @@ -0,0 +1,67 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class EquipFusionExpTable : CVSReader
+ {
+ public EquipFusionExpTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint CoreItemId;
+
+ public SeqListRef<uint> AssistItemId;
+
+ public uint AddExp;
+ }
+
+ public EquipFusionExpTable.RowData GetByCoreItemId(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ EquipFusionExpTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].CoreItemId == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ EquipFusionExpTable.RowData rowData = new EquipFusionExpTable.RowData();
+ base.Read<uint>(reader, ref rowData.CoreItemId, CVSReader.uintParse);
+ this.columnno = 0;
+ rowData.AssistItemId.Read(reader, this.m_DataHandler);
+ this.columnno = 1;
+ base.Read<uint>(reader, ref rowData.AddExp, CVSReader.uintParse);
+ this.columnno = 2;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new EquipFusionExpTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/EquipFusionExpTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/EquipFusionExpTable.cs.meta new file mode 100644 index 00000000..c87ea65d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/EquipFusionExpTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d3fc5167dbbd18044ae2caeefa2de6e5 +timeCreated: 1611465762 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/EquipFusionTable.cs b/Client/Assets/Scripts/XUtliPoolLib/EquipFusionTable.cs new file mode 100644 index 00000000..9f7db5df --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/EquipFusionTable.cs @@ -0,0 +1,68 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class EquipFusionTable : CVSReader
+ {
+ public EquipFusionTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint Profession;
+
+ public byte Slot;
+
+ public byte EquipType;
+
+ public byte BreakNum;
+
+ public uint LevelNum;
+
+ public uint NeedExpPerLevel;
+
+ public SeqListRef<uint> LevelAddAttr;
+
+ public SeqListRef<uint> BreakAddAttr;
+
+ public SeqListRef<uint> BreakNeedMaterial;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ EquipFusionTable.RowData rowData = new EquipFusionTable.RowData();
+ base.Read<uint>(reader, ref rowData.Profession, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<byte>(reader, ref rowData.Slot, CVSReader.byteParse);
+ this.columnno = 1;
+ base.Read<byte>(reader, ref rowData.EquipType, CVSReader.byteParse);
+ this.columnno = 2;
+ base.Read<byte>(reader, ref rowData.BreakNum, CVSReader.byteParse);
+ this.columnno = 3;
+ base.Read<uint>(reader, ref rowData.LevelNum, CVSReader.uintParse);
+ this.columnno = 4;
+ base.Read<uint>(reader, ref rowData.NeedExpPerLevel, CVSReader.uintParse);
+ this.columnno = 5;
+ rowData.LevelAddAttr.Read(reader, this.m_DataHandler);
+ this.columnno = 6;
+ rowData.BreakAddAttr.Read(reader, this.m_DataHandler);
+ this.columnno = 7;
+ rowData.BreakNeedMaterial.Read(reader, this.m_DataHandler);
+ this.columnno = 8;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new EquipFusionTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/EquipFusionTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/EquipFusionTable.cs.meta new file mode 100644 index 00000000..ec7e63f3 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/EquipFusionTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ca72db0fc75fda24a8a3743cf798523a +timeCreated: 1611465757 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/EquipList.cs b/Client/Assets/Scripts/XUtliPoolLib/EquipList.cs new file mode 100644 index 00000000..ef1c98ba --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/EquipList.cs @@ -0,0 +1,189 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class EquipList : CVSReader
+ {
+ public EquipList.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int ItemID;
+
+ public byte EquipPos;
+
+ public SeqListRef<int> Attributes;
+
+ public SeqListRef<uint> SmeltNeedItem;
+
+ public uint SmeltNeedMoney;
+
+ public SeqListRef<uint> ForgeNeedItem;
+
+ public SeqRef<uint> ForgeSpecialItem;
+
+ public byte ForgeLowRate;
+
+ public byte ForgeHighRate;
+
+ public SeqListRef<uint> ForgeNeedItemAfter;
+
+ public SeqRef<uint> ForgeSpecialItemAfter;
+
+ public byte ForgeLowRateAfter;
+
+ public byte ForgeHighRateAfter;
+
+ public bool IsCanSmelt;
+
+ public byte ReturnSmeltStoneRate;
+
+ public byte CanForge;
+
+ public SeqListRef<uint> UpgradeNeedMaterials;
+
+ public uint UpgadeTargetID;
+
+ public uint[] FuseCoreItems;
+
+ public byte FuseCanBreakNum;
+
+ public byte EquipType;
+ }
+
+ public EquipList.RowData GetByItemID(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ EquipList.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchItemID(key);
+ }
+ return result;
+ }
+
+ private EquipList.RowData BinarySearchItemID(int key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ EquipList.RowData rowData;
+ EquipList.RowData rowData2;
+ EquipList.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.ItemID == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.ItemID == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.ItemID.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.ItemID.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ EquipList.RowData rowData = new EquipList.RowData();
+ base.Read<int>(reader, ref rowData.ItemID, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<byte>(reader, ref rowData.EquipPos, CVSReader.byteParse);
+ this.columnno = 1;
+ rowData.Attributes.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ rowData.SmeltNeedItem.Read(reader, this.m_DataHandler);
+ this.columnno = 6;
+ base.Read<uint>(reader, ref rowData.SmeltNeedMoney, CVSReader.uintParse);
+ this.columnno = 7;
+ rowData.ForgeNeedItem.Read(reader, this.m_DataHandler);
+ this.columnno = 8;
+ rowData.ForgeSpecialItem.Read(reader, this.m_DataHandler);
+ this.columnno = 9;
+ base.Read<byte>(reader, ref rowData.ForgeLowRate, CVSReader.byteParse);
+ this.columnno = 10;
+ base.Read<byte>(reader, ref rowData.ForgeHighRate, CVSReader.byteParse);
+ this.columnno = 11;
+ rowData.ForgeNeedItemAfter.Read(reader, this.m_DataHandler);
+ this.columnno = 12;
+ rowData.ForgeSpecialItemAfter.Read(reader, this.m_DataHandler);
+ this.columnno = 13;
+ base.Read<byte>(reader, ref rowData.ForgeLowRateAfter, CVSReader.byteParse);
+ this.columnno = 14;
+ base.Read<byte>(reader, ref rowData.ForgeHighRateAfter, CVSReader.byteParse);
+ this.columnno = 15;
+ base.Read<bool>(reader, ref rowData.IsCanSmelt, CVSReader.boolParse);
+ this.columnno = 16;
+ base.Read<byte>(reader, ref rowData.ReturnSmeltStoneRate, CVSReader.byteParse);
+ this.columnno = 17;
+ base.Read<byte>(reader, ref rowData.CanForge, CVSReader.byteParse);
+ this.columnno = 18;
+ rowData.UpgradeNeedMaterials.Read(reader, this.m_DataHandler);
+ this.columnno = 19;
+ base.Read<uint>(reader, ref rowData.UpgadeTargetID, CVSReader.uintParse);
+ this.columnno = 20;
+ base.ReadArray<uint>(reader, ref rowData.FuseCoreItems, CVSReader.uintParse);
+ this.columnno = 21;
+ base.Read<byte>(reader, ref rowData.FuseCanBreakNum, CVSReader.byteParse);
+ this.columnno = 22;
+ base.Read<byte>(reader, ref rowData.EquipType, CVSReader.byteParse);
+ this.columnno = 23;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new EquipList.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/EquipList.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/EquipList.cs.meta new file mode 100644 index 00000000..037d8683 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/EquipList.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c60b942f6c2a459479b20cdf771897d4 +timeCreated: 1611465755 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/EquipSuitTable.cs b/Client/Assets/Scripts/XUtliPoolLib/EquipSuitTable.cs new file mode 100644 index 00000000..ab98f524 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/EquipSuitTable.cs @@ -0,0 +1,177 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class EquipSuitTable : CVSReader
+ {
+ public EquipSuitTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int SuitID;
+
+ public string SuitName;
+
+ public int SuitQuality;
+
+ public int[] EquipID;
+
+ public SeqRef<float> Effect1;
+
+ public SeqRef<float> Effect2;
+
+ public SeqRef<float> Effect3;
+
+ public SeqRef<float> Effect4;
+
+ public SeqRef<float> Effect5;
+
+ public SeqRef<float> Effect6;
+
+ public SeqRef<float> Effect7;
+
+ public SeqRef<float> Effect8;
+
+ public SeqRef<float> Effect9;
+
+ public SeqRef<float> Effect10;
+
+ public int ProfID;
+
+ public int Level;
+
+ public bool IsCreateShow;
+
+ public uint SuitNum;
+ }
+
+ public EquipSuitTable.RowData GetBySuitID(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ EquipSuitTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchSuitID(key);
+ }
+ return result;
+ }
+
+ private EquipSuitTable.RowData BinarySearchSuitID(int key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ EquipSuitTable.RowData rowData;
+ EquipSuitTable.RowData rowData2;
+ EquipSuitTable.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.SuitID == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.SuitID == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.SuitID.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.SuitID.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ EquipSuitTable.RowData rowData = new EquipSuitTable.RowData();
+ base.Read<int>(reader, ref rowData.SuitID, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.SuitName, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<int>(reader, ref rowData.SuitQuality, CVSReader.intParse);
+ this.columnno = 2;
+ base.ReadArray<int>(reader, ref rowData.EquipID, CVSReader.intParse);
+ this.columnno = 3;
+ rowData.Effect1.Read(reader, this.m_DataHandler);
+ this.columnno = 4;
+ rowData.Effect2.Read(reader, this.m_DataHandler);
+ this.columnno = 5;
+ rowData.Effect3.Read(reader, this.m_DataHandler);
+ this.columnno = 6;
+ rowData.Effect4.Read(reader, this.m_DataHandler);
+ this.columnno = 7;
+ rowData.Effect5.Read(reader, this.m_DataHandler);
+ this.columnno = 8;
+ rowData.Effect6.Read(reader, this.m_DataHandler);
+ this.columnno = 9;
+ rowData.Effect7.Read(reader, this.m_DataHandler);
+ this.columnno = 10;
+ rowData.Effect8.Read(reader, this.m_DataHandler);
+ this.columnno = 11;
+ rowData.Effect9.Read(reader, this.m_DataHandler);
+ this.columnno = 12;
+ rowData.Effect10.Read(reader, this.m_DataHandler);
+ this.columnno = 13;
+ base.Read<int>(reader, ref rowData.ProfID, CVSReader.intParse);
+ this.columnno = 14;
+ base.Read<int>(reader, ref rowData.Level, CVSReader.intParse);
+ this.columnno = 15;
+ base.Read<bool>(reader, ref rowData.IsCreateShow, CVSReader.boolParse);
+ this.columnno = 16;
+ base.Read<uint>(reader, ref rowData.SuitNum, CVSReader.uintParse);
+ this.columnno = 17;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new EquipSuitTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/EquipSuitTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/EquipSuitTable.cs.meta new file mode 100644 index 00000000..19ac40b7 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/EquipSuitTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1f6380b3d4eb1d643b3d7ec33bbe75d7 +timeCreated: 1611465299 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ExecuteCommandHandler.cs b/Client/Assets/Scripts/XUtliPoolLib/ExecuteCommandHandler.cs new file mode 100644 index 00000000..59aa6bbc --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ExecuteCommandHandler.cs @@ -0,0 +1,6 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public delegate void ExecuteCommandHandler(XGameObject gameObject, XEngineCommand command);
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ExecuteCommandHandler.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ExecuteCommandHandler.cs.meta new file mode 100644 index 00000000..5e957fe8 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ExecuteCommandHandler.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8c9240928330b644e970b1f317908471 +timeCreated: 1611465701 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ExpBackTable.cs b/Client/Assets/Scripts/XUtliPoolLib/ExpBackTable.cs new file mode 100644 index 00000000..98f00633 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ExpBackTable.cs @@ -0,0 +1,75 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class ExpBackTable : CVSReader
+ {
+ public ExpBackTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int type;
+
+ public int count;
+
+ public int exp;
+
+ public int freeExpParam;
+
+ public int moneyCostParam;
+ }
+
+ public ExpBackTable.RowData GetBytype(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ ExpBackTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].type == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ ExpBackTable.RowData rowData = new ExpBackTable.RowData();
+ base.Read<int>(reader, ref rowData.type, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<int>(reader, ref rowData.count, CVSReader.intParse);
+ this.columnno = 1;
+ base.Read<int>(reader, ref rowData.exp, CVSReader.intParse);
+ this.columnno = 2;
+ base.Read<int>(reader, ref rowData.freeExpParam, CVSReader.intParse);
+ this.columnno = 3;
+ base.Read<int>(reader, ref rowData.moneyCostParam, CVSReader.intParse);
+ this.columnno = 4;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new ExpBackTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ExpBackTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ExpBackTable.cs.meta new file mode 100644 index 00000000..3adffafa --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ExpBackTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4800e01d62188a64e84e247ccd425c5f +timeCreated: 1611465638 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ExpeditionTable.cs b/Client/Assets/Scripts/XUtliPoolLib/ExpeditionTable.cs new file mode 100644 index 00000000..0722658b --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ExpeditionTable.cs @@ -0,0 +1,209 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class ExpeditionTable : CVSReader
+ {
+ public ExpeditionTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int DNExpeditionID;
+
+ public string DNExpeditionName;
+
+ public uint[] ViewableDropList;
+
+ public int RequiredLevel;
+
+ public int PlayerNumber;
+
+ public uint[] RandomSceneIDs;
+
+ public int GuildLevel;
+
+ public int Type;
+
+ public int PlayerLeastNumber;
+
+ public int Category;
+
+ public uint DisplayLevel;
+
+ public uint DisplayPPT;
+
+ public int fastmatch;
+
+ public int FMARobotTime;
+
+ public SeqListRef<int> CostItem;
+
+ public uint LevelSealType;
+
+ public int CanHelp;
+
+ public int AutoSelectPriority;
+
+ public SeqListRef<uint> CostType;
+
+ public int CostCountType;
+
+ public SeqRef<uint> ServerOpenTime;
+
+ public int SortID;
+
+ public SeqRef<uint> UseTicket;
+
+ public SeqRef<uint> Stars;
+
+ public bool isCrossServerInvite;
+
+ public bool ShowPPT;
+ }
+
+ public ExpeditionTable.RowData GetByDNExpeditionID(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ ExpeditionTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchDNExpeditionID(key);
+ }
+ return result;
+ }
+
+ private ExpeditionTable.RowData BinarySearchDNExpeditionID(int key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ ExpeditionTable.RowData rowData;
+ ExpeditionTable.RowData rowData2;
+ ExpeditionTable.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.DNExpeditionID == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.DNExpeditionID == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.DNExpeditionID.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.DNExpeditionID.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ ExpeditionTable.RowData rowData = new ExpeditionTable.RowData();
+ base.Read<int>(reader, ref rowData.DNExpeditionID, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.DNExpeditionName, CVSReader.stringParse);
+ this.columnno = 1;
+ base.ReadArray<uint>(reader, ref rowData.ViewableDropList, CVSReader.uintParse);
+ this.columnno = 2;
+ base.Read<int>(reader, ref rowData.RequiredLevel, CVSReader.intParse);
+ this.columnno = 3;
+ base.Read<int>(reader, ref rowData.PlayerNumber, CVSReader.intParse);
+ this.columnno = 4;
+ base.ReadArray<uint>(reader, ref rowData.RandomSceneIDs, CVSReader.uintParse);
+ this.columnno = 5;
+ base.Read<int>(reader, ref rowData.GuildLevel, CVSReader.intParse);
+ this.columnno = 6;
+ base.Read<int>(reader, ref rowData.Type, CVSReader.intParse);
+ this.columnno = 7;
+ base.Read<int>(reader, ref rowData.PlayerLeastNumber, CVSReader.intParse);
+ this.columnno = 9;
+ base.Read<int>(reader, ref rowData.Category, CVSReader.intParse);
+ this.columnno = 10;
+ base.Read<uint>(reader, ref rowData.DisplayLevel, CVSReader.uintParse);
+ this.columnno = 12;
+ base.Read<uint>(reader, ref rowData.DisplayPPT, CVSReader.uintParse);
+ this.columnno = 13;
+ base.Read<int>(reader, ref rowData.fastmatch, CVSReader.intParse);
+ this.columnno = 15;
+ base.Read<int>(reader, ref rowData.FMARobotTime, CVSReader.intParse);
+ this.columnno = 16;
+ rowData.CostItem.Read(reader, this.m_DataHandler);
+ this.columnno = 17;
+ base.Read<uint>(reader, ref rowData.LevelSealType, CVSReader.uintParse);
+ this.columnno = 18;
+ base.Read<int>(reader, ref rowData.CanHelp, CVSReader.intParse);
+ this.columnno = 19;
+ base.Read<int>(reader, ref rowData.AutoSelectPriority, CVSReader.intParse);
+ this.columnno = 21;
+ rowData.CostType.Read(reader, this.m_DataHandler);
+ this.columnno = 23;
+ base.Read<int>(reader, ref rowData.CostCountType, CVSReader.intParse);
+ this.columnno = 24;
+ rowData.ServerOpenTime.Read(reader, this.m_DataHandler);
+ this.columnno = 27;
+ base.Read<int>(reader, ref rowData.SortID, CVSReader.intParse);
+ this.columnno = 29;
+ rowData.UseTicket.Read(reader, this.m_DataHandler);
+ this.columnno = 30;
+ rowData.Stars.Read(reader, this.m_DataHandler);
+ this.columnno = 31;
+ base.Read<bool>(reader, ref rowData.isCrossServerInvite, CVSReader.boolParse);
+ this.columnno = 32;
+ base.Read<bool>(reader, ref rowData.ShowPPT, CVSReader.boolParse);
+ this.columnno = 38;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new ExpeditionTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ExpeditionTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ExpeditionTable.cs.meta new file mode 100644 index 00000000..4409fa07 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ExpeditionTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f9ce989febb4d3b4483b1311e5e3abee +timeCreated: 1611465810 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/FashionCharm.cs b/Client/Assets/Scripts/XUtliPoolLib/FashionCharm.cs new file mode 100644 index 00000000..1b3d37b0 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FashionCharm.cs @@ -0,0 +1,95 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class FashionCharm : CVSReader
+ {
+ public FashionCharm.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint SuitID;
+
+ public SeqListRef<uint> Effect1;
+
+ public SeqListRef<uint> Effect2;
+
+ public SeqListRef<uint> Effect3;
+
+ public SeqListRef<uint> Effect4;
+
+ public SeqListRef<uint> Effect5;
+
+ public SeqListRef<uint> Effect6;
+
+ public SeqListRef<uint> Effect7;
+
+ public uint Level;
+
+ public uint[] SuitParam;
+ }
+
+ public FashionCharm.RowData GetBySuitID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ FashionCharm.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].SuitID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ FashionCharm.RowData rowData = new FashionCharm.RowData();
+ base.Read<uint>(reader, ref rowData.SuitID, CVSReader.uintParse);
+ this.columnno = 0;
+ rowData.Effect1.Read(reader, this.m_DataHandler);
+ this.columnno = 1;
+ rowData.Effect2.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ rowData.Effect3.Read(reader, this.m_DataHandler);
+ this.columnno = 3;
+ rowData.Effect4.Read(reader, this.m_DataHandler);
+ this.columnno = 4;
+ rowData.Effect5.Read(reader, this.m_DataHandler);
+ this.columnno = 5;
+ rowData.Effect6.Read(reader, this.m_DataHandler);
+ this.columnno = 6;
+ rowData.Effect7.Read(reader, this.m_DataHandler);
+ this.columnno = 7;
+ base.Read<uint>(reader, ref rowData.Level, CVSReader.uintParse);
+ this.columnno = 8;
+ base.ReadArray<uint>(reader, ref rowData.SuitParam, CVSReader.uintParse);
+ this.columnno = 9;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new FashionCharm.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/FashionCharm.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/FashionCharm.cs.meta new file mode 100644 index 00000000..990b25f4 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FashionCharm.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a0ccfc9057e0ef04681156bba1f62514 +timeCreated: 1611465712 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/FashionComposeSet.cs b/Client/Assets/Scripts/XUtliPoolLib/FashionComposeSet.cs new file mode 100644 index 00000000..0e883653 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FashionComposeSet.cs @@ -0,0 +1,48 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class FashionComposeSet : CVSReader
+ {
+ public FashionComposeSet.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint Type;
+
+ public uint LevelSeal;
+
+ public SeqRef<string> Time;
+
+ public SeqRef<uint> FashionSet;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ FashionComposeSet.RowData rowData = new FashionComposeSet.RowData();
+ base.Read<uint>(reader, ref rowData.Type, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.LevelSeal, CVSReader.uintParse);
+ this.columnno = 1;
+ rowData.Time.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ rowData.FashionSet.Read(reader, this.m_DataHandler);
+ this.columnno = 3;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new FashionComposeSet.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/FashionComposeSet.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/FashionComposeSet.cs.meta new file mode 100644 index 00000000..7b94e1db --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FashionComposeSet.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1817ad2b688254142924d6e60c096590 +timeCreated: 1611465295 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/FashionComposeTable.cs b/Client/Assets/Scripts/XUtliPoolLib/FashionComposeTable.cs new file mode 100644 index 00000000..70124bb7 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FashionComposeTable.cs @@ -0,0 +1,44 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class FashionComposeTable : CVSReader
+ {
+ public FashionComposeTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int FashionID;
+
+ public int FashionLevel;
+
+ public SeqListRef<uint> Attributes;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ FashionComposeTable.RowData rowData = new FashionComposeTable.RowData();
+ base.Read<int>(reader, ref rowData.FashionID, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<int>(reader, ref rowData.FashionLevel, CVSReader.intParse);
+ this.columnno = 1;
+ rowData.Attributes.Read(reader, this.m_DataHandler);
+ this.columnno = 6;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new FashionComposeTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/FashionComposeTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/FashionComposeTable.cs.meta new file mode 100644 index 00000000..0ab1db10 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FashionComposeTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d63450fafc3616b44aa6a6279d8c5f64 +timeCreated: 1611465763 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/FashionEffectTable.cs b/Client/Assets/Scripts/XUtliPoolLib/FashionEffectTable.cs new file mode 100644 index 00000000..615b5763 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FashionEffectTable.cs @@ -0,0 +1,64 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class FashionEffectTable : CVSReader
+ {
+ public FashionEffectTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint Quality;
+
+ public SeqListRef<uint> Effect2;
+
+ public SeqListRef<uint> Effect3;
+
+ public SeqListRef<uint> Effect4;
+
+ public SeqListRef<uint> Effect5;
+
+ public SeqListRef<uint> Effect6;
+
+ public SeqListRef<uint> Effect7;
+
+ public bool IsThreeSuit;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ FashionEffectTable.RowData rowData = new FashionEffectTable.RowData();
+ base.Read<uint>(reader, ref rowData.Quality, CVSReader.uintParse);
+ this.columnno = 0;
+ rowData.Effect2.Read(reader, this.m_DataHandler);
+ this.columnno = 1;
+ rowData.Effect3.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ rowData.Effect4.Read(reader, this.m_DataHandler);
+ this.columnno = 3;
+ rowData.Effect5.Read(reader, this.m_DataHandler);
+ this.columnno = 4;
+ rowData.Effect6.Read(reader, this.m_DataHandler);
+ this.columnno = 5;
+ rowData.Effect7.Read(reader, this.m_DataHandler);
+ this.columnno = 6;
+ base.Read<bool>(reader, ref rowData.IsThreeSuit, CVSReader.boolParse);
+ this.columnno = 7;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new FashionEffectTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/FashionEffectTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/FashionEffectTable.cs.meta new file mode 100644 index 00000000..9fd1ad32 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FashionEffectTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: be8694cfb151a88439ccfe7387b8ff70 +timeCreated: 1611465751 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/FashionEnhanceFx.cs b/Client/Assets/Scripts/XUtliPoolLib/FashionEnhanceFx.cs new file mode 100644 index 00000000..e6665189 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FashionEnhanceFx.cs @@ -0,0 +1,91 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class FashionEnhanceFx : CVSReader
+ {
+ public FashionEnhanceFx.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int ItemID;
+
+ public string[] Fx1;
+
+ public string[] Fx2;
+
+ public string[] Fx3;
+
+ public string[] Fx4;
+
+ public string[] Fx5;
+
+ public string[] Fx6;
+
+ public string[] Fx7;
+
+ public string[] Fx8;
+ }
+
+ public FashionEnhanceFx.RowData GetByItemID(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ FashionEnhanceFx.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].ItemID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ FashionEnhanceFx.RowData rowData = new FashionEnhanceFx.RowData();
+ base.Read<int>(reader, ref rowData.ItemID, CVSReader.intParse);
+ this.columnno = 0;
+ base.ReadArray<string>(reader, ref rowData.Fx1, CVSReader.stringParse);
+ this.columnno = 1;
+ base.ReadArray<string>(reader, ref rowData.Fx2, CVSReader.stringParse);
+ this.columnno = 2;
+ base.ReadArray<string>(reader, ref rowData.Fx3, CVSReader.stringParse);
+ this.columnno = 3;
+ base.ReadArray<string>(reader, ref rowData.Fx4, CVSReader.stringParse);
+ this.columnno = 4;
+ base.ReadArray<string>(reader, ref rowData.Fx5, CVSReader.stringParse);
+ this.columnno = 5;
+ base.ReadArray<string>(reader, ref rowData.Fx6, CVSReader.stringParse);
+ this.columnno = 6;
+ base.ReadArray<string>(reader, ref rowData.Fx7, CVSReader.stringParse);
+ this.columnno = 7;
+ base.ReadArray<string>(reader, ref rowData.Fx8, CVSReader.stringParse);
+ this.columnno = 8;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new FashionEnhanceFx.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/FashionEnhanceFx.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/FashionEnhanceFx.cs.meta new file mode 100644 index 00000000..086856fe --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FashionEnhanceFx.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 603b7f0502c0ada46b5c20061507dbd0 +timeCreated: 1611465650 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/FashionHair.cs b/Client/Assets/Scripts/XUtliPoolLib/FashionHair.cs new file mode 100644 index 00000000..37a6ce44 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FashionHair.cs @@ -0,0 +1,71 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class FashionHair : CVSReader
+ {
+ public FashionHair.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint HairID;
+
+ public uint DefaultColorID;
+
+ public uint[] UnLookColorID;
+
+ public SeqListRef<uint> Cost;
+ }
+
+ public FashionHair.RowData GetByHairID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ FashionHair.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].HairID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ FashionHair.RowData rowData = new FashionHair.RowData();
+ base.Read<uint>(reader, ref rowData.HairID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.DefaultColorID, CVSReader.uintParse);
+ this.columnno = 2;
+ base.ReadArray<uint>(reader, ref rowData.UnLookColorID, CVSReader.uintParse);
+ this.columnno = 3;
+ rowData.Cost.Read(reader, this.m_DataHandler);
+ this.columnno = 4;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new FashionHair.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/FashionHair.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/FashionHair.cs.meta new file mode 100644 index 00000000..20cc3ded --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FashionHair.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: adc30273b830c164080f5b09805da705 +timeCreated: 1611465741 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/FashionList.cs b/Client/Assets/Scripts/XUtliPoolLib/FashionList.cs new file mode 100644 index 00000000..44f24fc0 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FashionList.cs @@ -0,0 +1,153 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class FashionList : CVSReader
+ {
+ public FashionList.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int ItemID;
+
+ public byte EquipPos;
+
+ public string ModelPrefabWarrior;
+
+ public int PresentID;
+
+ public string ModelPrefabSorcer;
+
+ public string ModelPrefabArcher;
+
+ public short[] ReplaceID;
+
+ public string ModelPrefabCleric;
+
+ public string ModelPrefab5;
+
+ public string ModelPrefab6;
+
+ public string ModelPrefab7;
+
+ public string SuitName;
+ }
+
+ public FashionList.RowData GetByItemID(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ FashionList.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchItemID(key);
+ }
+ return result;
+ }
+
+ private FashionList.RowData BinarySearchItemID(int key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ FashionList.RowData rowData;
+ FashionList.RowData rowData2;
+ FashionList.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.ItemID == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.ItemID == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.ItemID.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.ItemID.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ FashionList.RowData rowData = new FashionList.RowData();
+ base.Read<int>(reader, ref rowData.ItemID, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<byte>(reader, ref rowData.EquipPos, CVSReader.byteParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.ModelPrefabWarrior, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<int>(reader, ref rowData.PresentID, CVSReader.intParse);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.ModelPrefabSorcer, CVSReader.stringParse);
+ this.columnno = 4;
+ base.Read<string>(reader, ref rowData.ModelPrefabArcher, CVSReader.stringParse);
+ this.columnno = 5;
+ base.ReadArray<short>(reader, ref rowData.ReplaceID, CVSReader.shortParse);
+ this.columnno = 6;
+ base.Read<string>(reader, ref rowData.ModelPrefabCleric, CVSReader.stringParse);
+ this.columnno = 7;
+ base.Read<string>(reader, ref rowData.ModelPrefab5, CVSReader.stringParse);
+ this.columnno = 8;
+ base.Read<string>(reader, ref rowData.ModelPrefab6, CVSReader.stringParse);
+ this.columnno = 9;
+ base.Read<string>(reader, ref rowData.ModelPrefab7, CVSReader.stringParse);
+ this.columnno = 10;
+ base.Read<string>(reader, ref rowData.SuitName, CVSReader.stringParse);
+ this.columnno = 14;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new FashionList.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/FashionList.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/FashionList.cs.meta new file mode 100644 index 00000000..54552734 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FashionList.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 22ccdff383a75ca45bd829c160a42318 +timeCreated: 1611465300 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/FashionSuitSpecialEffects.cs b/Client/Assets/Scripts/XUtliPoolLib/FashionSuitSpecialEffects.cs new file mode 100644 index 00000000..57ecc5c2 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FashionSuitSpecialEffects.cs @@ -0,0 +1,157 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class FashionSuitSpecialEffects : CVSReader
+ {
+ public FashionSuitSpecialEffects.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint suitid;
+
+ public uint specialeffectsid;
+
+ public string Fx1;
+
+ public string Fx2;
+
+ public string Fx3;
+
+ public string Fx4;
+
+ public string Fx5;
+
+ public string Fx6;
+
+ public string Fx7;
+
+ public string Fx8;
+
+ public string Name;
+
+ public string Icon;
+
+ public uint[] FashionList;
+ }
+
+ public FashionSuitSpecialEffects.RowData GetBysuitid(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ FashionSuitSpecialEffects.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchsuitid(key);
+ }
+ return result;
+ }
+
+ private FashionSuitSpecialEffects.RowData BinarySearchsuitid(uint key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ FashionSuitSpecialEffects.RowData rowData;
+ FashionSuitSpecialEffects.RowData rowData2;
+ FashionSuitSpecialEffects.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.suitid == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.suitid == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.suitid.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.suitid.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ FashionSuitSpecialEffects.RowData rowData = new FashionSuitSpecialEffects.RowData();
+ base.Read<uint>(reader, ref rowData.suitid, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.specialeffectsid, CVSReader.uintParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.Fx1, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.Fx2, CVSReader.stringParse);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.Fx3, CVSReader.stringParse);
+ this.columnno = 4;
+ base.Read<string>(reader, ref rowData.Fx4, CVSReader.stringParse);
+ this.columnno = 5;
+ base.Read<string>(reader, ref rowData.Fx5, CVSReader.stringParse);
+ this.columnno = 6;
+ base.Read<string>(reader, ref rowData.Fx6, CVSReader.stringParse);
+ this.columnno = 7;
+ base.Read<string>(reader, ref rowData.Fx7, CVSReader.stringParse);
+ this.columnno = 8;
+ base.Read<string>(reader, ref rowData.Fx8, CVSReader.stringParse);
+ this.columnno = 9;
+ base.Read<string>(reader, ref rowData.Name, CVSReader.stringParse);
+ this.columnno = 10;
+ base.Read<string>(reader, ref rowData.Icon, CVSReader.stringParse);
+ this.columnno = 11;
+ base.ReadArray<uint>(reader, ref rowData.FashionList, CVSReader.uintParse);
+ this.columnno = 12;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new FashionSuitSpecialEffects.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/FashionSuitSpecialEffects.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/FashionSuitSpecialEffects.cs.meta new file mode 100644 index 00000000..a045f007 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FashionSuitSpecialEffects.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8d94a591f407c9849a8384067a105a1b +timeCreated: 1611465702 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/FashionSuitTable.cs b/Client/Assets/Scripts/XUtliPoolLib/FashionSuitTable.cs new file mode 100644 index 00000000..a18022cf --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FashionSuitTable.cs @@ -0,0 +1,127 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class FashionSuitTable : CVSReader
+ {
+ public FashionSuitTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int SuitID;
+
+ public string SuitName;
+
+ public int SuitQuality;
+
+ public uint[] FashionID;
+
+ public SeqListRef<uint> Effect2;
+
+ public SeqListRef<uint> Effect3;
+
+ public SeqListRef<uint> Effect4;
+
+ public SeqListRef<uint> Effect5;
+
+ public SeqListRef<uint> Effect6;
+
+ public SeqListRef<uint> Effect7;
+
+ public SeqListRef<uint> All1;
+
+ public SeqListRef<uint> All2;
+
+ public SeqListRef<uint> All3;
+
+ public SeqListRef<uint> All4;
+
+ public bool NoSale;
+
+ public int ShowLevel;
+
+ public int OverAll;
+
+ public int CraftedItemQuality;
+ }
+
+ public FashionSuitTable.RowData GetBySuitID(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ FashionSuitTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].SuitID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ FashionSuitTable.RowData rowData = new FashionSuitTable.RowData();
+ base.Read<int>(reader, ref rowData.SuitID, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.SuitName, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<int>(reader, ref rowData.SuitQuality, CVSReader.intParse);
+ this.columnno = 2;
+ base.ReadArray<uint>(reader, ref rowData.FashionID, CVSReader.uintParse);
+ this.columnno = 4;
+ rowData.Effect2.Read(reader, this.m_DataHandler);
+ this.columnno = 5;
+ rowData.Effect3.Read(reader, this.m_DataHandler);
+ this.columnno = 6;
+ rowData.Effect4.Read(reader, this.m_DataHandler);
+ this.columnno = 7;
+ rowData.Effect5.Read(reader, this.m_DataHandler);
+ this.columnno = 8;
+ rowData.Effect6.Read(reader, this.m_DataHandler);
+ this.columnno = 9;
+ rowData.Effect7.Read(reader, this.m_DataHandler);
+ this.columnno = 10;
+ rowData.All1.Read(reader, this.m_DataHandler);
+ this.columnno = 11;
+ rowData.All2.Read(reader, this.m_DataHandler);
+ this.columnno = 12;
+ rowData.All3.Read(reader, this.m_DataHandler);
+ this.columnno = 13;
+ rowData.All4.Read(reader, this.m_DataHandler);
+ this.columnno = 14;
+ base.Read<bool>(reader, ref rowData.NoSale, CVSReader.boolParse);
+ this.columnno = 21;
+ base.Read<int>(reader, ref rowData.ShowLevel, CVSReader.intParse);
+ this.columnno = 22;
+ base.Read<int>(reader, ref rowData.OverAll, CVSReader.intParse);
+ this.columnno = 23;
+ base.Read<int>(reader, ref rowData.CraftedItemQuality, CVSReader.intParse);
+ this.columnno = 24;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new FashionSuitTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/FashionSuitTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/FashionSuitTable.cs.meta new file mode 100644 index 00000000..44c45396 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FashionSuitTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 354895a3b5493a94e95cb3abb22e46c4 +timeCreated: 1611465631 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/FashionSynthesis.cs b/Client/Assets/Scripts/XUtliPoolLib/FashionSynthesis.cs new file mode 100644 index 00000000..e3f85bf9 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FashionSynthesis.cs @@ -0,0 +1,52 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class FashionSynthesis : CVSReader
+ {
+ public FashionSynthesis.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint FashionID;
+
+ public uint SuccessRate;
+
+ public SeqListRef<uint> ReturnItems;
+
+ public uint SuitID;
+
+ public uint FashinSynthesisAddSucessRate;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ FashionSynthesis.RowData rowData = new FashionSynthesis.RowData();
+ base.Read<uint>(reader, ref rowData.FashionID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.SuccessRate, CVSReader.uintParse);
+ this.columnno = 1;
+ rowData.ReturnItems.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ base.Read<uint>(reader, ref rowData.SuitID, CVSReader.uintParse);
+ this.columnno = 3;
+ base.Read<uint>(reader, ref rowData.FashinSynthesisAddSucessRate, CVSReader.uintParse);
+ this.columnno = 4;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new FashionSynthesis.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/FashionSynthesis.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/FashionSynthesis.cs.meta new file mode 100644 index 00000000..5e6f24d8 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FashionSynthesis.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 904bc63d5380c9746b23fea4425da032 +timeCreated: 1611465704 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/FestScene.cs b/Client/Assets/Scripts/XUtliPoolLib/FestScene.cs new file mode 100644 index 00000000..bdd14376 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FestScene.cs @@ -0,0 +1,67 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class FestScene : CVSReader
+ {
+ public FestScene.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint id;
+
+ public string PicPath;
+
+ public uint[] RewardList;
+ }
+
+ public FestScene.RowData GetByid(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ FestScene.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].id == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ FestScene.RowData rowData = new FestScene.RowData();
+ base.Read<uint>(reader, ref rowData.id, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.PicPath, CVSReader.stringParse);
+ this.columnno = 4;
+ base.ReadArray<uint>(reader, ref rowData.RewardList, CVSReader.uintParse);
+ this.columnno = 5;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new FestScene.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/FestScene.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/FestScene.cs.meta new file mode 100644 index 00000000..e490de0f --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FestScene.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0a40d25ac19b70e42849cb2be8f2dae4 +timeCreated: 1611465287 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/FestivityLovePersonReward.cs b/Client/Assets/Scripts/XUtliPoolLib/FestivityLovePersonReward.cs new file mode 100644 index 00000000..a0a88713 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FestivityLovePersonReward.cs @@ -0,0 +1,40 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class FestivityLovePersonReward : CVSReader
+ {
+ public FestivityLovePersonReward.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint LoveScore;
+
+ public SeqListRef<uint> LoveReward;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ FestivityLovePersonReward.RowData rowData = new FestivityLovePersonReward.RowData();
+ base.Read<uint>(reader, ref rowData.LoveScore, CVSReader.uintParse);
+ this.columnno = 0;
+ rowData.LoveReward.Read(reader, this.m_DataHandler);
+ this.columnno = 1;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new FestivityLovePersonReward.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/FestivityLovePersonReward.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/FestivityLovePersonReward.cs.meta new file mode 100644 index 00000000..e27a779c --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FestivityLovePersonReward.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0d20b9c6e43ca1b49816134ff0ea7c2d +timeCreated: 1611465289 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/FestivityLoveRankReward.cs b/Client/Assets/Scripts/XUtliPoolLib/FestivityLoveRankReward.cs new file mode 100644 index 00000000..63871619 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FestivityLoveRankReward.cs @@ -0,0 +1,48 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class FestivityLoveRankReward : CVSReader
+ {
+ public FestivityLoveRankReward.RowData[] Table = null;
+
+ public class RowData
+ {
+ public SeqRef<uint> LoveRank;
+
+ public SeqListRef<uint> RankReward;
+
+ public uint DesignationId;
+
+ public string DesignationIcon;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ FestivityLoveRankReward.RowData rowData = new FestivityLoveRankReward.RowData();
+ rowData.LoveRank.Read(reader, this.m_DataHandler);
+ this.columnno = 0;
+ rowData.RankReward.Read(reader, this.m_DataHandler);
+ this.columnno = 1;
+ base.Read<uint>(reader, ref rowData.DesignationId, CVSReader.uintParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.DesignationIcon, CVSReader.stringParse);
+ this.columnno = 3;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new FestivityLoveRankReward.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/FestivityLoveRankReward.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/FestivityLoveRankReward.cs.meta new file mode 100644 index 00000000..aa1ff215 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FestivityLoveRankReward.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: e173815ce1eae6540a75417a0463bfa2 +timeCreated: 1611465800 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/FestivityLoveTable.cs b/Client/Assets/Scripts/XUtliPoolLib/FestivityLoveTable.cs new file mode 100644 index 00000000..c77b84ab --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FestivityLoveTable.cs @@ -0,0 +1,44 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class FestivityLoveTable : CVSReader
+ {
+ public FestivityLoveTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint LoveScore;
+
+ public SeqListRef<uint> LoveGift;
+
+ public string GiftIcon;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ FestivityLoveTable.RowData rowData = new FestivityLoveTable.RowData();
+ base.Read<uint>(reader, ref rowData.LoveScore, CVSReader.uintParse);
+ this.columnno = 0;
+ rowData.LoveGift.Read(reader, this.m_DataHandler);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.GiftIcon, CVSReader.stringParse);
+ this.columnno = 2;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new FestivityLoveTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/FestivityLoveTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/FestivityLoveTable.cs.meta new file mode 100644 index 00000000..f4a14d67 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FestivityLoveTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 9095fec77ea7a744b8bad6d934dd4097 +timeCreated: 1611465704 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/FightDesignation.cs b/Client/Assets/Scripts/XUtliPoolLib/FightDesignation.cs new file mode 100644 index 00000000..e10bc86f --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FightDesignation.cs @@ -0,0 +1,48 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class FightDesignation : CVSReader
+ {
+ public FightDesignation.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint ID;
+
+ public string Designation;
+
+ public string Effect;
+
+ public string Color;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ FightDesignation.RowData rowData = new FightDesignation.RowData();
+ base.Read<uint>(reader, ref rowData.ID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.Designation, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.Effect, CVSReader.stringParse);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.Color, CVSReader.stringParse);
+ this.columnno = 4;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new FightDesignation.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/FightDesignation.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/FightDesignation.cs.meta new file mode 100644 index 00000000..6f85d990 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FightDesignation.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ef6876d3a5817884bb6e5d32c5c240d3 +timeCreated: 1611465806 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/FightGroupTable.cs b/Client/Assets/Scripts/XUtliPoolLib/FightGroupTable.cs new file mode 100644 index 00000000..543cb9af --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FightGroupTable.cs @@ -0,0 +1,64 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class FightGroupTable : CVSReader
+ {
+ public FightGroupTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public string group;
+
+ public string enemy;
+
+ public string role;
+
+ public string neutral;
+
+ public string hostility;
+
+ public string enemygod;
+
+ public string rolegod;
+
+ public string other;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ FightGroupTable.RowData rowData = new FightGroupTable.RowData();
+ base.Read<string>(reader, ref rowData.group, CVSReader.stringParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.enemy, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.role, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.neutral, CVSReader.stringParse);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.hostility, CVSReader.stringParse);
+ this.columnno = 4;
+ base.Read<string>(reader, ref rowData.enemygod, CVSReader.stringParse);
+ this.columnno = 5;
+ base.Read<string>(reader, ref rowData.rolegod, CVSReader.stringParse);
+ this.columnno = 6;
+ base.Read<string>(reader, ref rowData.other, CVSReader.stringParse);
+ this.columnno = 7;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new FightGroupTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/FightGroupTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/FightGroupTable.cs.meta new file mode 100644 index 00000000..a0f782d6 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FightGroupTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 6cfa6a4061417844faa4a4bebc3f908a +timeCreated: 1611465685 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/FilterSkillArg.cs b/Client/Assets/Scripts/XUtliPoolLib/FilterSkillArg.cs new file mode 100644 index 00000000..b652c825 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FilterSkillArg.cs @@ -0,0 +1,32 @@ +using System;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public class FilterSkillArg
+ {
+ public Transform mAIArgTarget;
+
+ public bool mAIArgUseMP;
+
+ public bool mAIArgUseName;
+
+ public bool mAIArgUseHP;
+
+ public bool mAIArgUseCoolDown;
+
+ public bool mAIArgUseAttackField;
+
+ public bool mAIArgUseCombo;
+
+ public bool mAIArgUseInstall = false;
+
+ public int mAIArgSkillType;
+
+ public string mAIArgSkillName;
+
+ public bool mAIArgDetectAllPlayInAttackField;
+
+ public int mAIArgMaxSkillNum;
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/FilterSkillArg.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/FilterSkillArg.cs.meta new file mode 100644 index 00000000..fccd68a9 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FilterSkillArg.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4fcb3fb8fb8f77846ab6d6e9d0478d73 +timeCreated: 1611465642 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/FirstPassReward.cs b/Client/Assets/Scripts/XUtliPoolLib/FirstPassReward.cs new file mode 100644 index 00000000..482a5100 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FirstPassReward.cs @@ -0,0 +1,44 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class FirstPassReward : CVSReader
+ {
+ public FirstPassReward.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int ID;
+
+ public SeqRef<int> Rank;
+
+ public SeqListRef<int> Reward;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ FirstPassReward.RowData rowData = new FirstPassReward.RowData();
+ base.Read<int>(reader, ref rowData.ID, CVSReader.intParse);
+ this.columnno = 0;
+ rowData.Rank.Read(reader, this.m_DataHandler);
+ this.columnno = 1;
+ rowData.Reward.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new FirstPassReward.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/FirstPassReward.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/FirstPassReward.cs.meta new file mode 100644 index 00000000..d5496cfb --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FirstPassReward.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f27fcaff45f63464bab9bfb3e2d1415d +timeCreated: 1611465808 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/FirstPassTable.cs b/Client/Assets/Scripts/XUtliPoolLib/FirstPassTable.cs new file mode 100644 index 00000000..4adb299f --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FirstPassTable.cs @@ -0,0 +1,91 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class FirstPassTable : CVSReader
+ {
+ public FirstPassTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int ID;
+
+ public int[] SceneID;
+
+ public int RewardID;
+
+ public SeqListRef<int> CommendReward;
+
+ public int SystemId;
+
+ public string Des;
+
+ public string BgTexName;
+
+ public uint NestType;
+
+ public string RankTittle;
+ }
+
+ public FirstPassTable.RowData GetByID(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ FirstPassTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].ID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ FirstPassTable.RowData rowData = new FirstPassTable.RowData();
+ base.Read<int>(reader, ref rowData.ID, CVSReader.intParse);
+ this.columnno = 0;
+ base.ReadArray<int>(reader, ref rowData.SceneID, CVSReader.intParse);
+ this.columnno = 1;
+ base.Read<int>(reader, ref rowData.RewardID, CVSReader.intParse);
+ this.columnno = 2;
+ rowData.CommendReward.Read(reader, this.m_DataHandler);
+ this.columnno = 3;
+ base.Read<int>(reader, ref rowData.SystemId, CVSReader.intParse);
+ this.columnno = 4;
+ base.Read<string>(reader, ref rowData.Des, CVSReader.stringParse);
+ this.columnno = 5;
+ base.Read<string>(reader, ref rowData.BgTexName, CVSReader.stringParse);
+ this.columnno = 6;
+ base.Read<uint>(reader, ref rowData.NestType, CVSReader.uintParse);
+ this.columnno = 8;
+ base.Read<string>(reader, ref rowData.RankTittle, CVSReader.stringParse);
+ this.columnno = 9;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new FirstPassTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/FirstPassTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/FirstPassTable.cs.meta new file mode 100644 index 00000000..1f248bd6 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FirstPassTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a1402e9960c349e41935f4b96302fae6 +timeCreated: 1611465712 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/FishInfo.cs b/Client/Assets/Scripts/XUtliPoolLib/FishInfo.cs new file mode 100644 index 00000000..418601e2 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FishInfo.cs @@ -0,0 +1,67 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class FishInfo : CVSReader
+ {
+ public FishInfo.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint FishID;
+
+ public int quality;
+
+ public bool ShowInLevel;
+ }
+
+ public FishInfo.RowData GetByFishID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ FishInfo.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].FishID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ FishInfo.RowData rowData = new FishInfo.RowData();
+ base.Read<uint>(reader, ref rowData.FishID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<int>(reader, ref rowData.quality, CVSReader.intParse);
+ this.columnno = 2;
+ base.Read<bool>(reader, ref rowData.ShowInLevel, CVSReader.boolParse);
+ this.columnno = 4;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new FishInfo.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/FishInfo.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/FishInfo.cs.meta new file mode 100644 index 00000000..11b2602f --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FishInfo.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: e149bb967aedf61449e50dbdce9b63b9 +timeCreated: 1611465799 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/FloatCurve.cs b/Client/Assets/Scripts/XUtliPoolLib/FloatCurve.cs new file mode 100644 index 00000000..8e970cf2 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FloatCurve.cs @@ -0,0 +1,83 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class FloatCurve : IXCurve
+ {
+ public int length
+ {
+ get
+ {
+ return (this.value == null) ? 0 : this.value.Length;
+ }
+ }
+
+ public static float frameTime = 0.0333333351f;
+
+ public uint namehash;
+
+ public short maxValue;
+
+ public short landValue;
+
+ public short[] value = null;
+
+ public float Evaluate(float time)
+ {
+ bool flag = this.value == null;
+ float result;
+ if (flag)
+ {
+ result = 0f;
+ }
+ else
+ {
+ float num = time / FloatCurve.frameTime;
+ int num2 = (int)Math.Ceiling((double)num);
+ int num3 = (int)Math.Floor((double)num);
+ bool flag2 = num2 >= this.value.Length;
+ if (flag2)
+ {
+ num2 = this.value.Length - 1;
+ }
+ bool flag3 = num3 >= this.value.Length;
+ if (flag3)
+ {
+ num3 = this.value.Length - 1;
+ }
+ result = (float)this.value[num3] * 0.01f + (float)(this.value[num2] - this.value[num3]) * 0.01f / FloatCurve.frameTime * (time - (float)num3 * FloatCurve.frameTime);
+ }
+ return result;
+ }
+
+ public float GetValue(int index)
+ {
+ bool flag = this.value == null;
+ float result;
+ if (flag)
+ {
+ result = 0f;
+ }
+ else
+ {
+ result = (float)this.value[index] * 0.01f;
+ }
+ return result;
+ }
+
+ public float GetTime(int index)
+ {
+ return (float)index * FloatCurve.frameTime;
+ }
+
+ public float GetMaxValue()
+ {
+ return (float)this.maxValue * 0.01f;
+ }
+
+ public float GetLandValue()
+ {
+ return (float)this.landValue * 0.01f;
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/FloatCurve.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/FloatCurve.cs.meta new file mode 100644 index 00000000..288a8f62 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FloatCurve.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d20bfc2654701a246a267f48861bf5b4 +timeCreated: 1611465761 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/FlowerRain.cs b/Client/Assets/Scripts/XUtliPoolLib/FlowerRain.cs new file mode 100644 index 00000000..52448010 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FlowerRain.cs @@ -0,0 +1,48 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class FlowerRain : CVSReader
+ {
+ public FlowerRain.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int FlowerID;
+
+ public int Count;
+
+ public string EffectPath;
+
+ public int PlayTime;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ FlowerRain.RowData rowData = new FlowerRain.RowData();
+ base.Read<int>(reader, ref rowData.FlowerID, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<int>(reader, ref rowData.Count, CVSReader.intParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.EffectPath, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<int>(reader, ref rowData.PlayTime, CVSReader.intParse);
+ this.columnno = 3;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new FlowerRain.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/FlowerRain.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/FlowerRain.cs.meta new file mode 100644 index 00000000..dd378312 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FlowerRain.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2348074f7cce26040adedfd16da96292 +timeCreated: 1611465300 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/FlowerRankRewardTable.cs b/Client/Assets/Scripts/XUtliPoolLib/FlowerRankRewardTable.cs new file mode 100644 index 00000000..854d0fa3 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FlowerRankRewardTable.cs @@ -0,0 +1,52 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class FlowerRankRewardTable : CVSReader
+ {
+ public FlowerRankRewardTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public SeqRef<int> rank;
+
+ public SeqListRef<int> reward;
+
+ public uint yesterday;
+
+ public uint history;
+
+ public SeqListRef<int> activity;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ FlowerRankRewardTable.RowData rowData = new FlowerRankRewardTable.RowData();
+ rowData.rank.Read(reader, this.m_DataHandler);
+ this.columnno = 0;
+ rowData.reward.Read(reader, this.m_DataHandler);
+ this.columnno = 1;
+ base.Read<uint>(reader, ref rowData.yesterday, CVSReader.uintParse);
+ this.columnno = 2;
+ base.Read<uint>(reader, ref rowData.history, CVSReader.uintParse);
+ this.columnno = 3;
+ rowData.activity.Read(reader, this.m_DataHandler);
+ this.columnno = 6;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new FlowerRankRewardTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/FlowerRankRewardTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/FlowerRankRewardTable.cs.meta new file mode 100644 index 00000000..ac36bfc4 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FlowerRankRewardTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0ac50ab64f94d854da02cc7166b07f18 +timeCreated: 1611465287 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/FlowerSendNoticeTable.cs b/Client/Assets/Scripts/XUtliPoolLib/FlowerSendNoticeTable.cs new file mode 100644 index 00000000..1d73dc53 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FlowerSendNoticeTable.cs @@ -0,0 +1,44 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class FlowerSendNoticeTable : CVSReader
+ {
+ public FlowerSendNoticeTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int ItemID;
+
+ public int Num;
+
+ public string ThanksWords;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ FlowerSendNoticeTable.RowData rowData = new FlowerSendNoticeTable.RowData();
+ base.Read<int>(reader, ref rowData.ItemID, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<int>(reader, ref rowData.Num, CVSReader.intParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.ThanksWords, CVSReader.stringParse);
+ this.columnno = 3;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new FlowerSendNoticeTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/FlowerSendNoticeTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/FlowerSendNoticeTable.cs.meta new file mode 100644 index 00000000..3bca0e5a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FlowerSendNoticeTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 05571665168d8644797bc9dea352f2d8 +timeCreated: 1611465285 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/FlowerWeekRankReward.cs b/Client/Assets/Scripts/XUtliPoolLib/FlowerWeekRankReward.cs new file mode 100644 index 00000000..db1cdfad --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FlowerWeekRankReward.cs @@ -0,0 +1,40 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class FlowerWeekRankReward : CVSReader
+ {
+ public FlowerWeekRankReward.RowData[] Table = null;
+
+ public class RowData
+ {
+ public SeqRef<int> Rank;
+
+ public SeqListRef<int> Reward;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ FlowerWeekRankReward.RowData rowData = new FlowerWeekRankReward.RowData();
+ rowData.Rank.Read(reader, this.m_DataHandler);
+ this.columnno = 0;
+ rowData.Reward.Read(reader, this.m_DataHandler);
+ this.columnno = 1;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new FlowerWeekRankReward.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/FlowerWeekRankReward.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/FlowerWeekRankReward.cs.meta new file mode 100644 index 00000000..80bf5c77 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FlowerWeekRankReward.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 081f2e08b767c894da2e99642a26e363 +timeCreated: 1611465286 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ForbidWord.cs b/Client/Assets/Scripts/XUtliPoolLib/ForbidWord.cs new file mode 100644 index 00000000..c6473934 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ForbidWord.cs @@ -0,0 +1,36 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class ForbidWord : CVSReader
+ {
+ public ForbidWord.RowData[] Table = null;
+
+ public class RowData
+ {
+ public string forbidword;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ ForbidWord.RowData rowData = new ForbidWord.RowData();
+ base.Read<string>(reader, ref rowData.forbidword, CVSReader.stringParse);
+ this.columnno = 0;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new ForbidWord.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ForbidWord.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ForbidWord.cs.meta new file mode 100644 index 00000000..9daddc7d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ForbidWord.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 532a2a6b51dd11b429e0aa388ec76d6f +timeCreated: 1611465644 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ForgeAttributes.cs b/Client/Assets/Scripts/XUtliPoolLib/ForgeAttributes.cs new file mode 100644 index 00000000..ebac5878 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ForgeAttributes.cs @@ -0,0 +1,56 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class ForgeAttributes : CVSReader
+ {
+ public ForgeAttributes.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint EquipID;
+
+ public byte Slot;
+
+ public byte AttrID;
+
+ public byte Prob;
+
+ public SeqRef<uint> Range;
+
+ public byte CanSmelt;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ ForgeAttributes.RowData rowData = new ForgeAttributes.RowData();
+ base.Read<uint>(reader, ref rowData.EquipID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<byte>(reader, ref rowData.Slot, CVSReader.byteParse);
+ this.columnno = 1;
+ base.Read<byte>(reader, ref rowData.AttrID, CVSReader.byteParse);
+ this.columnno = 2;
+ base.Read<byte>(reader, ref rowData.Prob, CVSReader.byteParse);
+ this.columnno = 3;
+ rowData.Range.Read(reader, this.m_DataHandler);
+ this.columnno = 5;
+ base.Read<byte>(reader, ref rowData.CanSmelt, CVSReader.byteParse);
+ this.columnno = 10;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new ForgeAttributes.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ForgeAttributes.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ForgeAttributes.cs.meta new file mode 100644 index 00000000..7ab93a9a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ForgeAttributes.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 31691ded470c92043b4f3dc743e211d2 +timeCreated: 1611465308 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/FpGoToLevelUp.cs b/Client/Assets/Scripts/XUtliPoolLib/FpGoToLevelUp.cs new file mode 100644 index 00000000..2cea090b --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FpGoToLevelUp.cs @@ -0,0 +1,60 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class FpGoToLevelUp : CVSReader
+ {
+ public FpGoToLevelUp.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint Id;
+
+ public string Name;
+
+ public uint SystemId;
+
+ public string Tips;
+
+ public string IconName;
+
+ public uint StarNum;
+
+ public uint IsRecommond;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ FpGoToLevelUp.RowData rowData = new FpGoToLevelUp.RowData();
+ base.Read<uint>(reader, ref rowData.Id, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.Name, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<uint>(reader, ref rowData.SystemId, CVSReader.uintParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.Tips, CVSReader.stringParse);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.IconName, CVSReader.stringParse);
+ this.columnno = 4;
+ base.Read<uint>(reader, ref rowData.StarNum, CVSReader.uintParse);
+ this.columnno = 5;
+ base.Read<uint>(reader, ref rowData.IsRecommond, CVSReader.uintParse);
+ this.columnno = 6;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new FpGoToLevelUp.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/FpGoToLevelUp.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/FpGoToLevelUp.cs.meta new file mode 100644 index 00000000..f1209b1e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FpGoToLevelUp.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 73e06620ce5e0ae49aafaf9fbfc7c147 +timeCreated: 1611465688 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/FpStrengthNew.cs b/Client/Assets/Scripts/XUtliPoolLib/FpStrengthNew.cs new file mode 100644 index 00000000..6bc8d84a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FpStrengthNew.cs @@ -0,0 +1,83 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class FpStrengthNew : CVSReader
+ {
+ public FpStrengthNew.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int BQID;
+
+ public int Bqtype;
+
+ public int BQSystem;
+
+ public string BQTips;
+
+ public string BQImageID;
+
+ public int ShowLevel;
+
+ public int StarNum;
+ }
+
+ public FpStrengthNew.RowData GetByBQID(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ FpStrengthNew.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].BQID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ FpStrengthNew.RowData rowData = new FpStrengthNew.RowData();
+ base.Read<int>(reader, ref rowData.BQID, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<int>(reader, ref rowData.Bqtype, CVSReader.intParse);
+ this.columnno = 1;
+ base.Read<int>(reader, ref rowData.BQSystem, CVSReader.intParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.BQTips, CVSReader.stringParse);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.BQImageID, CVSReader.stringParse);
+ this.columnno = 4;
+ base.Read<int>(reader, ref rowData.ShowLevel, CVSReader.intParse);
+ this.columnno = 6;
+ base.Read<int>(reader, ref rowData.StarNum, CVSReader.intParse);
+ this.columnno = 7;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new FpStrengthNew.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/FpStrengthNew.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/FpStrengthNew.cs.meta new file mode 100644 index 00000000..d91368db --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FpStrengthNew.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 3edb3af26e52e444bb2966278ec4bce0 +timeCreated: 1611465633 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/FpStrengthenTable.cs b/Client/Assets/Scripts/XUtliPoolLib/FpStrengthenTable.cs new file mode 100644 index 00000000..ee21b33a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FpStrengthenTable.cs @@ -0,0 +1,133 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class FpStrengthenTable : CVSReader
+ {
+ public FpStrengthenTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int BQID;
+
+ public int Bqtype;
+
+ public int BQSystem;
+
+ public string BQTips;
+
+ public string BQImageID;
+
+ public string BQName;
+
+ public int ShowLevel;
+ }
+
+ public FpStrengthenTable.RowData GetByBQID(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ FpStrengthenTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchBQID(key);
+ }
+ return result;
+ }
+
+ private FpStrengthenTable.RowData BinarySearchBQID(int key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ FpStrengthenTable.RowData rowData;
+ FpStrengthenTable.RowData rowData2;
+ FpStrengthenTable.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.BQID == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.BQID == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.BQID.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.BQID.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ FpStrengthenTable.RowData rowData = new FpStrengthenTable.RowData();
+ base.Read<int>(reader, ref rowData.BQID, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<int>(reader, ref rowData.Bqtype, CVSReader.intParse);
+ this.columnno = 1;
+ base.Read<int>(reader, ref rowData.BQSystem, CVSReader.intParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.BQTips, CVSReader.stringParse);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.BQImageID, CVSReader.stringParse);
+ this.columnno = 4;
+ base.Read<string>(reader, ref rowData.BQName, CVSReader.stringParse);
+ this.columnno = 5;
+ base.Read<int>(reader, ref rowData.ShowLevel, CVSReader.intParse);
+ this.columnno = 6;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new FpStrengthenTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/FpStrengthenTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/FpStrengthenTable.cs.meta new file mode 100644 index 00000000..99f39128 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FpStrengthenTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 124380c4f214e0141bca5a07f0cb5e0e +timeCreated: 1611465291 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/FriendInfo.cs b/Client/Assets/Scripts/XUtliPoolLib/FriendInfo.cs new file mode 100644 index 00000000..dfc7683e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FriendInfo.cs @@ -0,0 +1,30 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class FriendInfo
+ {
+ public int apiId;
+
+ public FriendInfo.Data[] data;
+
+ public struct Data
+ {
+ public string nickName;
+
+ public string openId;
+
+ public string gender;
+
+ public string pictureSmall;
+
+ public string pictureMiddle;
+
+ public string pictureLarge;
+
+ public string provice;
+
+ public string city;
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/FriendInfo.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/FriendInfo.cs.meta new file mode 100644 index 00000000..c952d26e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FriendInfo.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d68c2f58389282448844afdf4f3865ee +timeCreated: 1611465763 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/FriendSysConfigTable.cs b/Client/Assets/Scripts/XUtliPoolLib/FriendSysConfigTable.cs new file mode 100644 index 00000000..140ee56e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FriendSysConfigTable.cs @@ -0,0 +1,87 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class FriendSysConfigTable : CVSReader
+ {
+ public FriendSysConfigTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int TabID;
+
+ public bool IsOpen;
+
+ public string TabName;
+
+ public string Icon;
+
+ public string NumLabel;
+
+ public string RButtonLabel;
+
+ public string LButtonLabel;
+
+ public int NumLimit;
+ }
+
+ public FriendSysConfigTable.RowData GetByTabID(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ FriendSysConfigTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].TabID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ FriendSysConfigTable.RowData rowData = new FriendSysConfigTable.RowData();
+ base.Read<int>(reader, ref rowData.TabID, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<bool>(reader, ref rowData.IsOpen, CVSReader.boolParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.TabName, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.Icon, CVSReader.stringParse);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.NumLabel, CVSReader.stringParse);
+ this.columnno = 4;
+ base.Read<string>(reader, ref rowData.RButtonLabel, CVSReader.stringParse);
+ this.columnno = 5;
+ base.Read<string>(reader, ref rowData.LButtonLabel, CVSReader.stringParse);
+ this.columnno = 6;
+ base.Read<int>(reader, ref rowData.NumLimit, CVSReader.intParse);
+ this.columnno = 7;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new FriendSysConfigTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/FriendSysConfigTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/FriendSysConfigTable.cs.meta new file mode 100644 index 00000000..f7ad7a35 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FriendSysConfigTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0d30468b636290d4a8f76345cefc30ba +timeCreated: 1611465289 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/FriendTable.cs b/Client/Assets/Scripts/XUtliPoolLib/FriendTable.cs new file mode 100644 index 00000000..de670b99 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FriendTable.cs @@ -0,0 +1,71 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class FriendTable : CVSReader
+ {
+ public FriendTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint level;
+
+ public string teamname;
+
+ public SeqRef<uint> buf;
+
+ public uint dropid;
+ }
+
+ public FriendTable.RowData GetBylevel(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ FriendTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].level == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ FriendTable.RowData rowData = new FriendTable.RowData();
+ base.Read<uint>(reader, ref rowData.level, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.teamname, CVSReader.stringParse);
+ this.columnno = 2;
+ rowData.buf.Read(reader, this.m_DataHandler);
+ this.columnno = 6;
+ base.Read<uint>(reader, ref rowData.dropid, CVSReader.uintParse);
+ this.columnno = 7;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new FriendTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/FriendTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/FriendTable.cs.meta new file mode 100644 index 00000000..20e24a44 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FriendTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 6e18f981d2153b8418cb38ba2b6d389f +timeCreated: 1611465686 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/FxLoadCallback.cs b/Client/Assets/Scripts/XUtliPoolLib/FxLoadCallback.cs new file mode 100644 index 00000000..eb0b9cfb --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FxLoadCallback.cs @@ -0,0 +1,6 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public delegate void FxLoadCallback(XFx fx);
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/FxLoadCallback.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/FxLoadCallback.cs.meta new file mode 100644 index 00000000..7131f8eb --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/FxLoadCallback.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0ffa12c9d7990ff459459302924a1a6f +timeCreated: 1611465290 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/GameCommunityTable.cs b/Client/Assets/Scripts/XUtliPoolLib/GameCommunityTable.cs new file mode 100644 index 00000000..2cc486d1 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GameCommunityTable.cs @@ -0,0 +1,60 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class GameCommunityTable : CVSReader
+ {
+ public GameCommunityTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int ID;
+
+ public string ButtonName;
+
+ public bool QQ;
+
+ public bool WX;
+
+ public int OpenLevel;
+
+ public int SysID;
+
+ public bool YK;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ GameCommunityTable.RowData rowData = new GameCommunityTable.RowData();
+ base.Read<int>(reader, ref rowData.ID, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.ButtonName, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<bool>(reader, ref rowData.QQ, CVSReader.boolParse);
+ this.columnno = 2;
+ base.Read<bool>(reader, ref rowData.WX, CVSReader.boolParse);
+ this.columnno = 3;
+ base.Read<int>(reader, ref rowData.OpenLevel, CVSReader.intParse);
+ this.columnno = 4;
+ base.Read<int>(reader, ref rowData.SysID, CVSReader.intParse);
+ this.columnno = 5;
+ base.Read<bool>(reader, ref rowData.YK, CVSReader.boolParse);
+ this.columnno = 6;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new GameCommunityTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/GameCommunityTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/GameCommunityTable.cs.meta new file mode 100644 index 00000000..9eae82da --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GameCommunityTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: e87b7f43d7264eb438bacba28be96d72 +timeCreated: 1611465803 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/GardenBanquetCfg.cs b/Client/Assets/Scripts/XUtliPoolLib/GardenBanquetCfg.cs new file mode 100644 index 00000000..234d0a0f --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GardenBanquetCfg.cs @@ -0,0 +1,107 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class GardenBanquetCfg : CVSReader
+ {
+ public GardenBanquetCfg.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint BanquetID;
+
+ public SeqListRef<uint> Stuffs;
+
+ public SeqListRef<uint> BanquetAwards;
+
+ public string BanquetName;
+
+ public uint VoiceOver1Duration;
+
+ public uint VoiceOver2Duration;
+
+ public uint VoiceOver3Duration;
+
+ public uint VoiceOver4Duration;
+
+ public string VoiceOver1;
+
+ public string VoiceOver2;
+
+ public string VoiceOver3;
+
+ public string VoiceOver4;
+
+ public string Desc;
+ }
+
+ public GardenBanquetCfg.RowData GetByBanquetID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ GardenBanquetCfg.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].BanquetID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ GardenBanquetCfg.RowData rowData = new GardenBanquetCfg.RowData();
+ base.Read<uint>(reader, ref rowData.BanquetID, CVSReader.uintParse);
+ this.columnno = 0;
+ rowData.Stuffs.Read(reader, this.m_DataHandler);
+ this.columnno = 1;
+ rowData.BanquetAwards.Read(reader, this.m_DataHandler);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.BanquetName, CVSReader.stringParse);
+ this.columnno = 4;
+ base.Read<uint>(reader, ref rowData.VoiceOver1Duration, CVSReader.uintParse);
+ this.columnno = 5;
+ base.Read<uint>(reader, ref rowData.VoiceOver2Duration, CVSReader.uintParse);
+ this.columnno = 6;
+ base.Read<uint>(reader, ref rowData.VoiceOver3Duration, CVSReader.uintParse);
+ this.columnno = 7;
+ base.Read<uint>(reader, ref rowData.VoiceOver4Duration, CVSReader.uintParse);
+ this.columnno = 8;
+ base.Read<string>(reader, ref rowData.VoiceOver1, CVSReader.stringParse);
+ this.columnno = 9;
+ base.Read<string>(reader, ref rowData.VoiceOver2, CVSReader.stringParse);
+ this.columnno = 10;
+ base.Read<string>(reader, ref rowData.VoiceOver3, CVSReader.stringParse);
+ this.columnno = 11;
+ base.Read<string>(reader, ref rowData.VoiceOver4, CVSReader.stringParse);
+ this.columnno = 12;
+ base.Read<string>(reader, ref rowData.Desc, CVSReader.stringParse);
+ this.columnno = 13;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new GardenBanquetCfg.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/GardenBanquetCfg.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/GardenBanquetCfg.cs.meta new file mode 100644 index 00000000..5b1732f9 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GardenBanquetCfg.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 549ed641d5fc09344931e64766b766ea +timeCreated: 1611465645 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/GardenFishConfig.cs b/Client/Assets/Scripts/XUtliPoolLib/GardenFishConfig.cs new file mode 100644 index 00000000..f99be547 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GardenFishConfig.cs @@ -0,0 +1,71 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class GardenFishConfig : CVSReader
+ {
+ public GardenFishConfig.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint FishLeve;
+
+ public uint Experience;
+
+ public SeqListRef<int> FishWeight;
+
+ public uint SuccessRate;
+ }
+
+ public GardenFishConfig.RowData GetByFishLeve(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ GardenFishConfig.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].FishLeve == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ GardenFishConfig.RowData rowData = new GardenFishConfig.RowData();
+ base.Read<uint>(reader, ref rowData.FishLeve, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.Experience, CVSReader.uintParse);
+ this.columnno = 1;
+ rowData.FishWeight.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ base.Read<uint>(reader, ref rowData.SuccessRate, CVSReader.uintParse);
+ this.columnno = 3;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new GardenFishConfig.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/GardenFishConfig.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/GardenFishConfig.cs.meta new file mode 100644 index 00000000..2ebb77a9 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GardenFishConfig.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f0301a5284e366a4bb5c4d16dbdfe361 +timeCreated: 1611465806 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/GlobalTable.cs b/Client/Assets/Scripts/XUtliPoolLib/GlobalTable.cs new file mode 100644 index 00000000..58d56090 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GlobalTable.cs @@ -0,0 +1,34 @@ +using System;
+using System.Collections.Generic;
+
+namespace XUtliPoolLib
+{
+ public class GlobalTable : CVSReader
+ {
+ public Dictionary<uint, string> Table = new Dictionary<uint, string>();
+
+ public class RowData
+ {
+ public string Name;
+
+ public string Value;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ uint key = 0u;
+ string value = "";
+ base.Read<uint>(reader, ref key, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref value, CVSReader.stringParse);
+ this.columnno = 1;
+ this.Table[key] = value;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ this.Table.Clear();
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/GlobalTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/GlobalTable.cs.meta new file mode 100644 index 00000000..ffe4f472 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GlobalTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a70ab3838ca980c49b4f96decc9d20fa +timeCreated: 1611465736 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/GoalAwards.cs b/Client/Assets/Scripts/XUtliPoolLib/GoalAwards.cs new file mode 100644 index 00000000..dab93696 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GoalAwards.cs @@ -0,0 +1,76 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class GoalAwards : CVSReader
+ {
+ public GoalAwards.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint GoalAwardsID;
+
+ public uint AwardsIndex;
+
+ public uint GKID;
+
+ public double AwardsValue;
+
+ public SeqListRef<uint> Awards;
+
+ public uint TitleID;
+
+ public uint Type;
+
+ public string Description;
+
+ public string Explanation;
+
+ public uint ShowLevel;
+
+ public uint ShowType;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ GoalAwards.RowData rowData = new GoalAwards.RowData();
+ base.Read<uint>(reader, ref rowData.GoalAwardsID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.AwardsIndex, CVSReader.uintParse);
+ this.columnno = 1;
+ base.Read<uint>(reader, ref rowData.GKID, CVSReader.uintParse);
+ this.columnno = 2;
+ base.Read<double>(reader, ref rowData.AwardsValue, CVSReader.doubleParse);
+ this.columnno = 3;
+ rowData.Awards.Read(reader, this.m_DataHandler);
+ this.columnno = 4;
+ base.Read<uint>(reader, ref rowData.TitleID, CVSReader.uintParse);
+ this.columnno = 5;
+ base.Read<uint>(reader, ref rowData.Type, CVSReader.uintParse);
+ this.columnno = 6;
+ base.Read<string>(reader, ref rowData.Description, CVSReader.stringParse);
+ this.columnno = 7;
+ base.Read<string>(reader, ref rowData.Explanation, CVSReader.stringParse);
+ this.columnno = 8;
+ base.Read<uint>(reader, ref rowData.ShowLevel, CVSReader.uintParse);
+ this.columnno = 9;
+ base.Read<uint>(reader, ref rowData.ShowType, CVSReader.uintParse);
+ this.columnno = 10;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new GoalAwards.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/GoalAwards.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/GoalAwards.cs.meta new file mode 100644 index 00000000..dcce44a1 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GoalAwards.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 3e804289b4cd5144e83df9744abe3cc5 +timeCreated: 1611465633 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/GroupStageType.cs b/Client/Assets/Scripts/XUtliPoolLib/GroupStageType.cs new file mode 100644 index 00000000..ea137bf9 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GroupStageType.cs @@ -0,0 +1,71 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class GroupStageType : CVSReader
+ {
+ public GroupStageType.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint StageID;
+
+ public string StageName;
+
+ public uint StagePerent;
+
+ public int Stage2Expedition;
+ }
+
+ public GroupStageType.RowData GetByStageID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ GroupStageType.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].StageID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ GroupStageType.RowData rowData = new GroupStageType.RowData();
+ base.Read<uint>(reader, ref rowData.StageID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.StageName, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<uint>(reader, ref rowData.StagePerent, CVSReader.uintParse);
+ this.columnno = 2;
+ base.Read<int>(reader, ref rowData.Stage2Expedition, CVSReader.intParse);
+ this.columnno = 3;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new GroupStageType.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/GroupStageType.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/GroupStageType.cs.meta new file mode 100644 index 00000000..e3391050 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GroupStageType.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: aa6b3604b518ce3439495cd620f3ebe7 +timeCreated: 1611465740 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildAuctReward.cs b/Client/Assets/Scripts/XUtliPoolLib/GuildAuctReward.cs new file mode 100644 index 00000000..d9f5cf38 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildAuctReward.cs @@ -0,0 +1,117 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class GuildAuctReward : CVSReader
+ {
+ public GuildAuctReward.RowData[] Table = null;
+
+ public class RowData
+ {
+ public short ID;
+
+ public byte ActType;
+
+ public uint[] RewardShow;
+ }
+
+ public GuildAuctReward.RowData GetByID(short key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ GuildAuctReward.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchID(key);
+ }
+ return result;
+ }
+
+ private GuildAuctReward.RowData BinarySearchID(short key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ GuildAuctReward.RowData rowData;
+ GuildAuctReward.RowData rowData2;
+ GuildAuctReward.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.ID == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.ID == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.ID.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.ID.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ GuildAuctReward.RowData rowData = new GuildAuctReward.RowData();
+ base.Read<short>(reader, ref rowData.ID, CVSReader.shortParse);
+ this.columnno = 0;
+ base.Read<byte>(reader, ref rowData.ActType, CVSReader.byteParse);
+ this.columnno = 2;
+ base.ReadArray<uint>(reader, ref rowData.RewardShow, CVSReader.uintParse);
+ this.columnno = 7;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new GuildAuctReward.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildAuctReward.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/GuildAuctReward.cs.meta new file mode 100644 index 00000000..de448b20 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildAuctReward.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: cd56abbdacc305749b0e317dbd42ce1e +timeCreated: 1611465759 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildBonusTable.cs b/Client/Assets/Scripts/XUtliPoolLib/GuildBonusTable.cs new file mode 100644 index 00000000..80b698dd --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildBonusTable.cs @@ -0,0 +1,71 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class GuildBonusTable : CVSReader
+ {
+ public GuildBonusTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint GuildBonusID;
+
+ public string GuildBonusName;
+
+ public string GuildBonusDesc;
+
+ public SeqRef<uint> GuildBonusReward;
+ }
+
+ public GuildBonusTable.RowData GetByGuildBonusID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ GuildBonusTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].GuildBonusID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ GuildBonusTable.RowData rowData = new GuildBonusTable.RowData();
+ base.Read<uint>(reader, ref rowData.GuildBonusID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.GuildBonusName, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.GuildBonusDesc, CVSReader.stringParse);
+ this.columnno = 3;
+ rowData.GuildBonusReward.Read(reader, this.m_DataHandler);
+ this.columnno = 7;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new GuildBonusTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildBonusTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/GuildBonusTable.cs.meta new file mode 100644 index 00000000..fd0693a2 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildBonusTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2f0490b2fdc31594eb463e648b768a85 +timeCreated: 1611465306 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildBossConfigTable.cs b/Client/Assets/Scripts/XUtliPoolLib/GuildBossConfigTable.cs new file mode 100644 index 00000000..70b3d618 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildBossConfigTable.cs @@ -0,0 +1,137 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class GuildBossConfigTable : CVSReader
+ {
+ public GuildBossConfigTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint BossID;
+
+ public uint EnemyID;
+
+ public float LifePercent;
+
+ public string BossName;
+
+ public SeqListRef<uint> FirsttKillReward;
+
+ public SeqListRef<uint> JoinReward;
+
+ public SeqListRef<uint> KillReward;
+
+ public string WinCutScene;
+ }
+
+ public GuildBossConfigTable.RowData GetByBossID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ GuildBossConfigTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchBossID(key);
+ }
+ return result;
+ }
+
+ private GuildBossConfigTable.RowData BinarySearchBossID(uint key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ GuildBossConfigTable.RowData rowData;
+ GuildBossConfigTable.RowData rowData2;
+ GuildBossConfigTable.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.BossID == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.BossID == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.BossID.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.BossID.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ GuildBossConfigTable.RowData rowData = new GuildBossConfigTable.RowData();
+ base.Read<uint>(reader, ref rowData.BossID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.EnemyID, CVSReader.uintParse);
+ this.columnno = 2;
+ base.Read<float>(reader, ref rowData.LifePercent, CVSReader.floatParse);
+ this.columnno = 4;
+ base.Read<string>(reader, ref rowData.BossName, CVSReader.stringParse);
+ this.columnno = 5;
+ rowData.FirsttKillReward.Read(reader, this.m_DataHandler);
+ this.columnno = 6;
+ rowData.JoinReward.Read(reader, this.m_DataHandler);
+ this.columnno = 8;
+ rowData.KillReward.Read(reader, this.m_DataHandler);
+ this.columnno = 9;
+ base.Read<string>(reader, ref rowData.WinCutScene, CVSReader.stringParse);
+ this.columnno = 10;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new GuildBossConfigTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildBossConfigTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/GuildBossConfigTable.cs.meta new file mode 100644 index 00000000..05a69f89 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildBossConfigTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a9c0b618d958aad4d92e463948ba3263 +timeCreated: 1611465739 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildBossRewardTable.cs b/Client/Assets/Scripts/XUtliPoolLib/GuildBossRewardTable.cs new file mode 100644 index 00000000..b65d1fbd --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildBossRewardTable.cs @@ -0,0 +1,113 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class GuildBossRewardTable : CVSReader
+ {
+ public GuildBossRewardTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint rank;
+
+ public SeqListRef<uint> guildexp;
+ }
+
+ public GuildBossRewardTable.RowData GetByrank(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ GuildBossRewardTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchrank(key);
+ }
+ return result;
+ }
+
+ private GuildBossRewardTable.RowData BinarySearchrank(uint key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ GuildBossRewardTable.RowData rowData;
+ GuildBossRewardTable.RowData rowData2;
+ GuildBossRewardTable.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.rank == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.rank == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.rank.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.rank.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ GuildBossRewardTable.RowData rowData = new GuildBossRewardTable.RowData();
+ base.Read<uint>(reader, ref rowData.rank, CVSReader.uintParse);
+ this.columnno = 0;
+ rowData.guildexp.Read(reader, this.m_DataHandler);
+ this.columnno = 4;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new GuildBossRewardTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildBossRewardTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/GuildBossRewardTable.cs.meta new file mode 100644 index 00000000..696c813a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildBossRewardTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 7e49014750dbf2a47b2b4f6916191872 +timeCreated: 1611465693 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildBossRoleRewardTable.cs b/Client/Assets/Scripts/XUtliPoolLib/GuildBossRoleRewardTable.cs new file mode 100644 index 00000000..baecfda3 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildBossRoleRewardTable.cs @@ -0,0 +1,40 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class GuildBossRoleRewardTable : CVSReader
+ {
+ public GuildBossRoleRewardTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint BossID;
+
+ public SeqListRef<uint> prestige;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ GuildBossRoleRewardTable.RowData rowData = new GuildBossRoleRewardTable.RowData();
+ base.Read<uint>(reader, ref rowData.BossID, CVSReader.uintParse);
+ this.columnno = 0;
+ rowData.prestige.Read(reader, this.m_DataHandler);
+ this.columnno = 3;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new GuildBossRoleRewardTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildBossRoleRewardTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/GuildBossRoleRewardTable.cs.meta new file mode 100644 index 00000000..b6d6483e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildBossRoleRewardTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 9d8d7bf5e5159694f839a120391d9fa9 +timeCreated: 1611465711 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildBuffTable.cs b/Client/Assets/Scripts/XUtliPoolLib/GuildBuffTable.cs new file mode 100644 index 00000000..27998fbb --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildBuffTable.cs @@ -0,0 +1,40 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class GuildBuffTable : CVSReader
+ {
+ public GuildBuffTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint id;
+
+ public uint itemid;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ GuildBuffTable.RowData rowData = new GuildBuffTable.RowData();
+ base.Read<uint>(reader, ref rowData.id, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.itemid, CVSReader.uintParse);
+ this.columnno = 6;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new GuildBuffTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildBuffTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/GuildBuffTable.cs.meta new file mode 100644 index 00000000..a64af0a3 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildBuffTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d55651dac607d6e4ebfe0c2115773eab +timeCreated: 1611465763 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildCamp.cs b/Client/Assets/Scripts/XUtliPoolLib/GuildCamp.cs new file mode 100644 index 00000000..dd3155bc --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildCamp.cs @@ -0,0 +1,56 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class GuildCamp : CVSReader
+ {
+ public GuildCamp.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int ID;
+
+ public string Name;
+
+ public string Description;
+
+ public string Condition;
+
+ public int Type;
+
+ public string RankDes;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ GuildCamp.RowData rowData = new GuildCamp.RowData();
+ base.Read<int>(reader, ref rowData.ID, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.Name, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.Description, CVSReader.stringParse);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.Condition, CVSReader.stringParse);
+ this.columnno = 4;
+ base.Read<int>(reader, ref rowData.Type, CVSReader.intParse);
+ this.columnno = 5;
+ base.Read<string>(reader, ref rowData.RankDes, CVSReader.stringParse);
+ this.columnno = 6;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new GuildCamp.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildCamp.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/GuildCamp.cs.meta new file mode 100644 index 00000000..3da97090 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildCamp.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: aa28a7df27f12ca459cb8a1af1501e9b +timeCreated: 1611465740 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildCampPartyReward.cs b/Client/Assets/Scripts/XUtliPoolLib/GuildCampPartyReward.cs new file mode 100644 index 00000000..e04e489a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildCampPartyReward.cs @@ -0,0 +1,44 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class GuildCampPartyReward : CVSReader
+ {
+ public GuildCampPartyReward.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint ID;
+
+ public SeqListRef<uint> Items;
+
+ public SeqListRef<uint> Reward;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ GuildCampPartyReward.RowData rowData = new GuildCampPartyReward.RowData();
+ base.Read<uint>(reader, ref rowData.ID, CVSReader.uintParse);
+ this.columnno = 0;
+ rowData.Items.Read(reader, this.m_DataHandler);
+ this.columnno = 1;
+ rowData.Reward.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new GuildCampPartyReward.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildCampPartyReward.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/GuildCampPartyReward.cs.meta new file mode 100644 index 00000000..a5880bf6 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildCampPartyReward.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2d39b709a7cf88646bc61fc9bfdb088b +timeCreated: 1611465305 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildCampRank.cs b/Client/Assets/Scripts/XUtliPoolLib/GuildCampRank.cs new file mode 100644 index 00000000..13f1f9a8 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildCampRank.cs @@ -0,0 +1,44 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class GuildCampRank : CVSReader
+ {
+ public GuildCampRank.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int ID;
+
+ public int Rank;
+
+ public SeqListRef<uint> Reward;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ GuildCampRank.RowData rowData = new GuildCampRank.RowData();
+ base.Read<int>(reader, ref rowData.ID, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<int>(reader, ref rowData.Rank, CVSReader.intParse);
+ this.columnno = 1;
+ rowData.Reward.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new GuildCampRank.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildCampRank.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/GuildCampRank.cs.meta new file mode 100644 index 00000000..dd6df4f3 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildCampRank.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 680e01bdda65ea64a8eeaaf4e01872c5 +timeCreated: 1611465683 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildCheckinBoxTable.cs b/Client/Assets/Scripts/XUtliPoolLib/GuildCheckinBoxTable.cs new file mode 100644 index 00000000..75579b66 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildCheckinBoxTable.cs @@ -0,0 +1,63 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class GuildCheckinBoxTable : CVSReader
+ {
+ public GuildCheckinBoxTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint process;
+
+ public SeqListRef<uint> viewabledrop;
+ }
+
+ public GuildCheckinBoxTable.RowData GetByprocess(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ GuildCheckinBoxTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].process == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ GuildCheckinBoxTable.RowData rowData = new GuildCheckinBoxTable.RowData();
+ base.Read<uint>(reader, ref rowData.process, CVSReader.uintParse);
+ this.columnno = 0;
+ rowData.viewabledrop.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new GuildCheckinBoxTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildCheckinBoxTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/GuildCheckinBoxTable.cs.meta new file mode 100644 index 00000000..7dcf07f6 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildCheckinBoxTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 5868af70a1a3eee43a03634d373ecc60 +timeCreated: 1611465646 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildCheckinTable.cs b/Client/Assets/Scripts/XUtliPoolLib/GuildCheckinTable.cs new file mode 100644 index 00000000..da6f0d50 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildCheckinTable.cs @@ -0,0 +1,71 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class GuildCheckinTable : CVSReader
+ {
+ public GuildCheckinTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint type;
+
+ public SeqRef<uint> consume;
+
+ public SeqRef<uint> reward;
+
+ public uint process;
+ }
+
+ public GuildCheckinTable.RowData GetBytype(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ GuildCheckinTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].type == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ GuildCheckinTable.RowData rowData = new GuildCheckinTable.RowData();
+ base.Read<uint>(reader, ref rowData.type, CVSReader.uintParse);
+ this.columnno = 0;
+ rowData.consume.Read(reader, this.m_DataHandler);
+ this.columnno = 1;
+ rowData.reward.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ base.Read<uint>(reader, ref rowData.process, CVSReader.uintParse);
+ this.columnno = 3;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new GuildCheckinTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildCheckinTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/GuildCheckinTable.cs.meta new file mode 100644 index 00000000..178beb11 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildCheckinTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 53827afb0ecbabf47a4642fcb032040a +timeCreated: 1611465644 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildConfigTable.cs b/Client/Assets/Scripts/XUtliPoolLib/GuildConfigTable.cs new file mode 100644 index 00000000..3eac2e83 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildConfigTable.cs @@ -0,0 +1,147 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class GuildConfigTable : CVSReader
+ {
+ public GuildConfigTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int GuildLevel;
+
+ public uint GuildExpNeed;
+
+ public int PokerTimes;
+
+ public int GuildSign;
+
+ public int GuildWelfare;
+
+ public int GuildStore;
+
+ public int GuildSkill;
+
+ public uint GuildDragon;
+
+ public int GuildActivity;
+
+ public uint StudySkillTimes;
+
+ public int GuildArena;
+
+ public int GuildChallenge;
+
+ public int GuildJokerMatch;
+
+ public int GuildSalay;
+
+ public int GuildMine;
+
+ public int GuildTerritory;
+
+ public uint JZSchoolRoleMax;
+
+ public uint JZSchoolTotalMax;
+
+ public uint JZHallRoleMax;
+
+ public uint JZHallTotalmax;
+
+ public uint JZSalaryOpen;
+
+ public uint JZSaleOpen;
+
+ public int CrossGVG;
+ }
+
+ public GuildConfigTable.RowData GetByGuildLevel(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ GuildConfigTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].GuildLevel == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ GuildConfigTable.RowData rowData = new GuildConfigTable.RowData();
+ base.Read<int>(reader, ref rowData.GuildLevel, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.GuildExpNeed, CVSReader.uintParse);
+ this.columnno = 1;
+ base.Read<int>(reader, ref rowData.PokerTimes, CVSReader.intParse);
+ this.columnno = 3;
+ base.Read<int>(reader, ref rowData.GuildSign, CVSReader.intParse);
+ this.columnno = 5;
+ base.Read<int>(reader, ref rowData.GuildWelfare, CVSReader.intParse);
+ this.columnno = 6;
+ base.Read<int>(reader, ref rowData.GuildStore, CVSReader.intParse);
+ this.columnno = 7;
+ base.Read<int>(reader, ref rowData.GuildSkill, CVSReader.intParse);
+ this.columnno = 8;
+ base.Read<uint>(reader, ref rowData.GuildDragon, CVSReader.uintParse);
+ this.columnno = 13;
+ base.Read<int>(reader, ref rowData.GuildActivity, CVSReader.intParse);
+ this.columnno = 15;
+ base.Read<uint>(reader, ref rowData.StudySkillTimes, CVSReader.uintParse);
+ this.columnno = 21;
+ base.Read<int>(reader, ref rowData.GuildArena, CVSReader.intParse);
+ this.columnno = 23;
+ base.Read<int>(reader, ref rowData.GuildChallenge, CVSReader.intParse);
+ this.columnno = 26;
+ base.Read<int>(reader, ref rowData.GuildJokerMatch, CVSReader.intParse);
+ this.columnno = 27;
+ base.Read<int>(reader, ref rowData.GuildSalay, CVSReader.intParse);
+ this.columnno = 28;
+ base.Read<int>(reader, ref rowData.GuildMine, CVSReader.intParse);
+ this.columnno = 29;
+ base.Read<int>(reader, ref rowData.GuildTerritory, CVSReader.intParse);
+ this.columnno = 30;
+ base.Read<uint>(reader, ref rowData.JZSchoolRoleMax, CVSReader.uintParse);
+ this.columnno = 31;
+ base.Read<uint>(reader, ref rowData.JZSchoolTotalMax, CVSReader.uintParse);
+ this.columnno = 32;
+ base.Read<uint>(reader, ref rowData.JZHallRoleMax, CVSReader.uintParse);
+ this.columnno = 33;
+ base.Read<uint>(reader, ref rowData.JZHallTotalmax, CVSReader.uintParse);
+ this.columnno = 34;
+ base.Read<uint>(reader, ref rowData.JZSalaryOpen, CVSReader.uintParse);
+ this.columnno = 35;
+ base.Read<uint>(reader, ref rowData.JZSaleOpen, CVSReader.uintParse);
+ this.columnno = 36;
+ base.Read<int>(reader, ref rowData.CrossGVG, CVSReader.intParse);
+ this.columnno = 37;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new GuildConfigTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildConfigTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/GuildConfigTable.cs.meta new file mode 100644 index 00000000..cfce9c4c --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildConfigTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 06d1bf824bc9e2b4d9ae1d2b015b8598 +timeCreated: 1611465286 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildHall.cs b/Client/Assets/Scripts/XUtliPoolLib/GuildHall.cs new file mode 100644 index 00000000..d2a3cd68 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildHall.cs @@ -0,0 +1,72 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class GuildHall : CVSReader
+ {
+ public GuildHall.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint skillid;
+
+ public string name;
+
+ public uint level;
+
+ public uint updateneed;
+
+ public uint dailyneed;
+
+ public uint glevel;
+
+ public SeqRef<uint> buffid;
+
+ public string icon;
+
+ public string atlas;
+
+ public string currentLevelDescription;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ GuildHall.RowData rowData = new GuildHall.RowData();
+ base.Read<uint>(reader, ref rowData.skillid, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.name, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<uint>(reader, ref rowData.level, CVSReader.uintParse);
+ this.columnno = 2;
+ base.Read<uint>(reader, ref rowData.updateneed, CVSReader.uintParse);
+ this.columnno = 3;
+ base.Read<uint>(reader, ref rowData.dailyneed, CVSReader.uintParse);
+ this.columnno = 4;
+ base.Read<uint>(reader, ref rowData.glevel, CVSReader.uintParse);
+ this.columnno = 5;
+ rowData.buffid.Read(reader, this.m_DataHandler);
+ this.columnno = 6;
+ base.Read<string>(reader, ref rowData.icon, CVSReader.stringParse);
+ this.columnno = 7;
+ base.Read<string>(reader, ref rowData.atlas, CVSReader.stringParse);
+ this.columnno = 8;
+ base.Read<string>(reader, ref rowData.currentLevelDescription, CVSReader.stringParse);
+ this.columnno = 9;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new GuildHall.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildHall.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/GuildHall.cs.meta new file mode 100644 index 00000000..9ce3622a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildHall.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 31c13602821b7ab4ca3e99e8202a0dfa +timeCreated: 1611465309 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildMineralBattle.cs b/Client/Assets/Scripts/XUtliPoolLib/GuildMineralBattle.cs new file mode 100644 index 00000000..43cb895e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildMineralBattle.cs @@ -0,0 +1,121 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class GuildMineralBattle : CVSReader
+ {
+ public GuildMineralBattle.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint ID;
+
+ public uint Mineralcounts;
+
+ public int DifficultLevel;
+
+ public uint BossID;
+ }
+
+ public GuildMineralBattle.RowData GetByID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ GuildMineralBattle.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchID(key);
+ }
+ return result;
+ }
+
+ private GuildMineralBattle.RowData BinarySearchID(uint key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ GuildMineralBattle.RowData rowData;
+ GuildMineralBattle.RowData rowData2;
+ GuildMineralBattle.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.ID == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.ID == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.ID.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.ID.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ GuildMineralBattle.RowData rowData = new GuildMineralBattle.RowData();
+ base.Read<uint>(reader, ref rowData.ID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.Mineralcounts, CVSReader.uintParse);
+ this.columnno = 3;
+ base.Read<int>(reader, ref rowData.DifficultLevel, CVSReader.intParse);
+ this.columnno = 4;
+ base.Read<uint>(reader, ref rowData.BossID, CVSReader.uintParse);
+ this.columnno = 5;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new GuildMineralBattle.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildMineralBattle.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/GuildMineralBattle.cs.meta new file mode 100644 index 00000000..6c48dd05 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildMineralBattle.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 6c6a56c0882ed8042845dea5300c3abc +timeCreated: 1611465684 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildMineralBattleReward.cs b/Client/Assets/Scripts/XUtliPoolLib/GuildMineralBattleReward.cs new file mode 100644 index 00000000..ca1f05fd --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildMineralBattleReward.cs @@ -0,0 +1,67 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class GuildMineralBattleReward : CVSReader
+ {
+ public GuildMineralBattleReward.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint Rank;
+
+ public SeqListRef<int> RewardShow;
+
+ public uint LevelSeal;
+ }
+
+ public GuildMineralBattleReward.RowData GetByRank(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ GuildMineralBattleReward.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].Rank == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ GuildMineralBattleReward.RowData rowData = new GuildMineralBattleReward.RowData();
+ base.Read<uint>(reader, ref rowData.Rank, CVSReader.uintParse);
+ this.columnno = 0;
+ rowData.RewardShow.Read(reader, this.m_DataHandler);
+ this.columnno = 6;
+ base.Read<uint>(reader, ref rowData.LevelSeal, CVSReader.uintParse);
+ this.columnno = 7;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new GuildMineralBattleReward.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildMineralBattleReward.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/GuildMineralBattleReward.cs.meta new file mode 100644 index 00000000..4f85c102 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildMineralBattleReward.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2e1b4c1b60924a547b3e7bb35c5ed826 +timeCreated: 1611465305 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildMineralBufflist.cs b/Client/Assets/Scripts/XUtliPoolLib/GuildMineralBufflist.cs new file mode 100644 index 00000000..0097bdd1 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildMineralBufflist.cs @@ -0,0 +1,71 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class GuildMineralBufflist : CVSReader
+ {
+ public GuildMineralBufflist.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint BuffID;
+
+ public string ratestring;
+
+ public string icon;
+
+ public uint Quality;
+ }
+
+ public GuildMineralBufflist.RowData GetByBuffID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ GuildMineralBufflist.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].BuffID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ GuildMineralBufflist.RowData rowData = new GuildMineralBufflist.RowData();
+ base.Read<uint>(reader, ref rowData.BuffID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.ratestring, CVSReader.stringParse);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.icon, CVSReader.stringParse);
+ this.columnno = 5;
+ base.Read<uint>(reader, ref rowData.Quality, CVSReader.uintParse);
+ this.columnno = 6;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new GuildMineralBufflist.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildMineralBufflist.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/GuildMineralBufflist.cs.meta new file mode 100644 index 00000000..6218c858 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildMineralBufflist.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 315fb49862b07a9439bd8fcd5944d69c +timeCreated: 1611465308 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildMineralStorage.cs b/Client/Assets/Scripts/XUtliPoolLib/GuildMineralStorage.cs new file mode 100644 index 00000000..3588493f --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildMineralStorage.cs @@ -0,0 +1,56 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class GuildMineralStorage : CVSReader
+ {
+ public GuildMineralStorage.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint ID;
+
+ public uint itemid;
+
+ public string effect;
+
+ public uint self;
+
+ public string bufficon;
+
+ public string buffdescribe;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ GuildMineralStorage.RowData rowData = new GuildMineralStorage.RowData();
+ base.Read<uint>(reader, ref rowData.ID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.itemid, CVSReader.uintParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.effect, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<uint>(reader, ref rowData.self, CVSReader.uintParse);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.bufficon, CVSReader.stringParse);
+ this.columnno = 4;
+ base.Read<string>(reader, ref rowData.buffdescribe, CVSReader.stringParse);
+ this.columnno = 5;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new GuildMineralStorage.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildMineralStorage.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/GuildMineralStorage.cs.meta new file mode 100644 index 00000000..74178e9e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildMineralStorage.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: bda198b1f3f53d8469c5d78f2676ffdc +timeCreated: 1611465750 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildPermissionTable.cs b/Client/Assets/Scripts/XUtliPoolLib/GuildPermissionTable.cs new file mode 100644 index 00000000..431c2002 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildPermissionTable.cs @@ -0,0 +1,56 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class GuildPermissionTable : CVSReader
+ {
+ public GuildPermissionTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public string GuildID;
+
+ public int GPOS_LEADER;
+
+ public int GPOS_VICELEADER;
+
+ public int GPOS_OFFICER;
+
+ public int GPOS_ELITEMEMBER;
+
+ public int GPOS_MEMBER;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ GuildPermissionTable.RowData rowData = new GuildPermissionTable.RowData();
+ base.Read<string>(reader, ref rowData.GuildID, CVSReader.stringParse);
+ this.columnno = 0;
+ base.Read<int>(reader, ref rowData.GPOS_LEADER, CVSReader.intParse);
+ this.columnno = 1;
+ base.Read<int>(reader, ref rowData.GPOS_VICELEADER, CVSReader.intParse);
+ this.columnno = 2;
+ base.Read<int>(reader, ref rowData.GPOS_OFFICER, CVSReader.intParse);
+ this.columnno = 3;
+ base.Read<int>(reader, ref rowData.GPOS_ELITEMEMBER, CVSReader.intParse);
+ this.columnno = 4;
+ base.Read<int>(reader, ref rowData.GPOS_MEMBER, CVSReader.intParse);
+ this.columnno = 5;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new GuildPermissionTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildPermissionTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/GuildPermissionTable.cs.meta new file mode 100644 index 00000000..63383236 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildPermissionTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2d423045a02b84e45a085b225113413b +timeCreated: 1611465305 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildPkRankReward.cs b/Client/Assets/Scripts/XUtliPoolLib/GuildPkRankReward.cs new file mode 100644 index 00000000..329b85f1 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildPkRankReward.cs @@ -0,0 +1,63 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class GuildPkRankReward : CVSReader
+ {
+ public GuildPkRankReward.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint rank;
+
+ public SeqListRef<uint> reward;
+ }
+
+ public GuildPkRankReward.RowData GetByrank(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ GuildPkRankReward.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].rank == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ GuildPkRankReward.RowData rowData = new GuildPkRankReward.RowData();
+ base.Read<uint>(reader, ref rowData.rank, CVSReader.uintParse);
+ this.columnno = 0;
+ rowData.reward.Read(reader, this.m_DataHandler);
+ this.columnno = 1;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new GuildPkRankReward.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildPkRankReward.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/GuildPkRankReward.cs.meta new file mode 100644 index 00000000..eec209ed --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildPkRankReward.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 00818c60b4daa0648aa2f35a9a28f0f5 +timeCreated: 1611465284 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildRankRewardTable.cs b/Client/Assets/Scripts/XUtliPoolLib/GuildRankRewardTable.cs new file mode 100644 index 00000000..32a2d3ea --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildRankRewardTable.cs @@ -0,0 +1,48 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class GuildRankRewardTable : CVSReader
+ {
+ public GuildRankRewardTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public SeqRef<uint> Rank;
+
+ public SeqListRef<uint> LeaderReward;
+
+ public SeqListRef<uint> OfficerRreward;
+
+ public SeqListRef<uint> MemberReward;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ GuildRankRewardTable.RowData rowData = new GuildRankRewardTable.RowData();
+ rowData.Rank.Read(reader, this.m_DataHandler);
+ this.columnno = 0;
+ rowData.LeaderReward.Read(reader, this.m_DataHandler);
+ this.columnno = 1;
+ rowData.OfficerRreward.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ rowData.MemberReward.Read(reader, this.m_DataHandler);
+ this.columnno = 3;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new GuildRankRewardTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildRankRewardTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/GuildRankRewardTable.cs.meta new file mode 100644 index 00000000..83fb7852 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildRankRewardTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8e3be3b9fe41dba499279ed48fd3f05e +timeCreated: 1611465702 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildRelaxGameList.cs b/Client/Assets/Scripts/XUtliPoolLib/GuildRelaxGameList.cs new file mode 100644 index 00000000..6ec75617 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildRelaxGameList.cs @@ -0,0 +1,67 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class GuildRelaxGameList : CVSReader
+ {
+ public GuildRelaxGameList.RowData[] Table = null;
+
+ public class RowData
+ {
+ public string GameBg;
+
+ public string GameName;
+
+ public int ModuleID;
+ }
+
+ public GuildRelaxGameList.RowData GetByModuleID(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ GuildRelaxGameList.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].ModuleID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ GuildRelaxGameList.RowData rowData = new GuildRelaxGameList.RowData();
+ base.Read<string>(reader, ref rowData.GameBg, CVSReader.stringParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.GameName, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<int>(reader, ref rowData.ModuleID, CVSReader.intParse);
+ this.columnno = 3;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new GuildRelaxGameList.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildRelaxGameList.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/GuildRelaxGameList.cs.meta new file mode 100644 index 00000000..bee70a02 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildRelaxGameList.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1d45b8481cb427c4a9733d6ef8258e8f +timeCreated: 1611465298 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildSalaryDesc.cs b/Client/Assets/Scripts/XUtliPoolLib/GuildSalaryDesc.cs new file mode 100644 index 00000000..876d403a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildSalaryDesc.cs @@ -0,0 +1,48 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class GuildSalaryDesc : CVSReader
+ {
+ public GuildSalaryDesc.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int Type;
+
+ public string Desc;
+
+ public int Go;
+
+ public string GoLabel;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ GuildSalaryDesc.RowData rowData = new GuildSalaryDesc.RowData();
+ base.Read<int>(reader, ref rowData.Type, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.Desc, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<int>(reader, ref rowData.Go, CVSReader.intParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.GoLabel, CVSReader.stringParse);
+ this.columnno = 3;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new GuildSalaryDesc.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildSalaryDesc.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/GuildSalaryDesc.cs.meta new file mode 100644 index 00000000..8e58507e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildSalaryDesc.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 13ce325890f76794aac7d12ea5c78ad6 +timeCreated: 1611465293 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildSalaryTable.cs b/Client/Assets/Scripts/XUtliPoolLib/GuildSalaryTable.cs new file mode 100644 index 00000000..5234f1f6 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildSalaryTable.cs @@ -0,0 +1,179 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class GuildSalaryTable : CVSReader
+ {
+ public GuildSalaryTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint GuildLevel;
+
+ public uint[] GuildReview;
+
+ public SeqListRef<uint> NumberTransformation;
+
+ public SeqListRef<uint> PrestigeTransformation;
+
+ public SeqListRef<uint> ActiveTransformation;
+
+ public SeqListRef<uint> EXPTransformation;
+
+ public SeqListRef<uint> SSalary1;
+
+ public SeqListRef<uint> SSalary2;
+
+ public SeqListRef<uint> SSalary3;
+
+ public SeqListRef<uint> SSalary4;
+
+ public SeqListRef<uint> SSalary5;
+
+ public SeqListRef<uint> ASalary1;
+
+ public SeqListRef<uint> ASalary2;
+
+ public SeqListRef<uint> ASalary3;
+
+ public SeqListRef<uint> ASalary4;
+
+ public SeqListRef<uint> ASalary5;
+
+ public SeqListRef<uint> BSalary1;
+
+ public SeqListRef<uint> BSalary2;
+
+ public SeqListRef<uint> BSalary3;
+
+ public SeqListRef<uint> BSalary4;
+
+ public SeqListRef<uint> BSalary5;
+
+ public SeqListRef<uint> CSalary1;
+
+ public SeqListRef<uint> CSalary2;
+
+ public SeqListRef<uint> CSalary3;
+
+ public SeqListRef<uint> CSalary4;
+
+ public SeqListRef<uint> CSalary5;
+
+ public SeqListRef<uint> DSalary1;
+
+ public SeqListRef<uint> DSalary2;
+
+ public SeqListRef<uint> DSalary3;
+
+ public SeqListRef<uint> DSalary4;
+
+ public SeqListRef<uint> DSalary5;
+ }
+
+ public GuildSalaryTable.RowData GetByGuildLevel(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ GuildSalaryTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].GuildLevel == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ GuildSalaryTable.RowData rowData = new GuildSalaryTable.RowData();
+ base.Read<uint>(reader, ref rowData.GuildLevel, CVSReader.uintParse);
+ this.columnno = 0;
+ base.ReadArray<uint>(reader, ref rowData.GuildReview, CVSReader.uintParse);
+ this.columnno = 1;
+ rowData.NumberTransformation.Read(reader, this.m_DataHandler);
+ this.columnno = 3;
+ rowData.PrestigeTransformation.Read(reader, this.m_DataHandler);
+ this.columnno = 4;
+ rowData.ActiveTransformation.Read(reader, this.m_DataHandler);
+ this.columnno = 5;
+ rowData.EXPTransformation.Read(reader, this.m_DataHandler);
+ this.columnno = 6;
+ rowData.SSalary1.Read(reader, this.m_DataHandler);
+ this.columnno = 7;
+ rowData.SSalary2.Read(reader, this.m_DataHandler);
+ this.columnno = 8;
+ rowData.SSalary3.Read(reader, this.m_DataHandler);
+ this.columnno = 9;
+ rowData.SSalary4.Read(reader, this.m_DataHandler);
+ this.columnno = 10;
+ rowData.SSalary5.Read(reader, this.m_DataHandler);
+ this.columnno = 11;
+ rowData.ASalary1.Read(reader, this.m_DataHandler);
+ this.columnno = 12;
+ rowData.ASalary2.Read(reader, this.m_DataHandler);
+ this.columnno = 13;
+ rowData.ASalary3.Read(reader, this.m_DataHandler);
+ this.columnno = 14;
+ rowData.ASalary4.Read(reader, this.m_DataHandler);
+ this.columnno = 15;
+ rowData.ASalary5.Read(reader, this.m_DataHandler);
+ this.columnno = 16;
+ rowData.BSalary1.Read(reader, this.m_DataHandler);
+ this.columnno = 17;
+ rowData.BSalary2.Read(reader, this.m_DataHandler);
+ this.columnno = 18;
+ rowData.BSalary3.Read(reader, this.m_DataHandler);
+ this.columnno = 19;
+ rowData.BSalary4.Read(reader, this.m_DataHandler);
+ this.columnno = 20;
+ rowData.BSalary5.Read(reader, this.m_DataHandler);
+ this.columnno = 21;
+ rowData.CSalary1.Read(reader, this.m_DataHandler);
+ this.columnno = 22;
+ rowData.CSalary2.Read(reader, this.m_DataHandler);
+ this.columnno = 23;
+ rowData.CSalary3.Read(reader, this.m_DataHandler);
+ this.columnno = 24;
+ rowData.CSalary4.Read(reader, this.m_DataHandler);
+ this.columnno = 25;
+ rowData.CSalary5.Read(reader, this.m_DataHandler);
+ this.columnno = 26;
+ rowData.DSalary1.Read(reader, this.m_DataHandler);
+ this.columnno = 27;
+ rowData.DSalary2.Read(reader, this.m_DataHandler);
+ this.columnno = 28;
+ rowData.DSalary3.Read(reader, this.m_DataHandler);
+ this.columnno = 29;
+ rowData.DSalary4.Read(reader, this.m_DataHandler);
+ this.columnno = 30;
+ rowData.DSalary5.Read(reader, this.m_DataHandler);
+ this.columnno = 31;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new GuildSalaryTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildSalaryTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/GuildSalaryTable.cs.meta new file mode 100644 index 00000000..ace03574 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildSalaryTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d4f39469c1041c146ac0e25faf08a7ab +timeCreated: 1611465763 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildSkillTable.cs b/Client/Assets/Scripts/XUtliPoolLib/GuildSkillTable.cs new file mode 100644 index 00000000..533ee82d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildSkillTable.cs @@ -0,0 +1,84 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class GuildSkillTable : CVSReader
+ {
+ public GuildSkillTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint skillid;
+
+ public string name;
+
+ public uint level;
+
+ public SeqListRef<uint> need;
+
+ public uint rexp;
+
+ public uint glevel;
+
+ public SeqListRef<uint> attribute;
+
+ public string icon;
+
+ public string atlas;
+
+ public string currentLevelDescription;
+
+ public uint roleLevel;
+
+ public uint[] profecssion;
+
+ public uint needtype;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ GuildSkillTable.RowData rowData = new GuildSkillTable.RowData();
+ base.Read<uint>(reader, ref rowData.skillid, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.name, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<uint>(reader, ref rowData.level, CVSReader.uintParse);
+ this.columnno = 2;
+ rowData.need.Read(reader, this.m_DataHandler);
+ this.columnno = 3;
+ base.Read<uint>(reader, ref rowData.rexp, CVSReader.uintParse);
+ this.columnno = 4;
+ base.Read<uint>(reader, ref rowData.glevel, CVSReader.uintParse);
+ this.columnno = 5;
+ rowData.attribute.Read(reader, this.m_DataHandler);
+ this.columnno = 6;
+ base.Read<string>(reader, ref rowData.icon, CVSReader.stringParse);
+ this.columnno = 7;
+ base.Read<string>(reader, ref rowData.atlas, CVSReader.stringParse);
+ this.columnno = 8;
+ base.Read<string>(reader, ref rowData.currentLevelDescription, CVSReader.stringParse);
+ this.columnno = 9;
+ base.Read<uint>(reader, ref rowData.roleLevel, CVSReader.uintParse);
+ this.columnno = 10;
+ base.ReadArray<uint>(reader, ref rowData.profecssion, CVSReader.uintParse);
+ this.columnno = 11;
+ base.Read<uint>(reader, ref rowData.needtype, CVSReader.uintParse);
+ this.columnno = 12;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new GuildSkillTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildSkillTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/GuildSkillTable.cs.meta new file mode 100644 index 00000000..9c2ad2a5 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildSkillTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c36ee82f0ddc5b44abb6d5ac787cc8f2 +timeCreated: 1611465754 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildTransfer.cs b/Client/Assets/Scripts/XUtliPoolLib/GuildTransfer.cs new file mode 100644 index 00000000..67674d07 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildTransfer.cs @@ -0,0 +1,71 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class GuildTransfer : CVSReader
+ {
+ public GuildTransfer.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint id;
+
+ public string name;
+
+ public uint sceneid;
+
+ public string icon;
+ }
+
+ public GuildTransfer.RowData GetByid(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ GuildTransfer.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].id == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ GuildTransfer.RowData rowData = new GuildTransfer.RowData();
+ base.Read<uint>(reader, ref rowData.id, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.name, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<uint>(reader, ref rowData.sceneid, CVSReader.uintParse);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.icon, CVSReader.stringParse);
+ this.columnno = 5;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new GuildTransfer.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildTransfer.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/GuildTransfer.cs.meta new file mode 100644 index 00000000..f9484c0d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildTransfer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f545322a3821da24ba9dbeba5dbfb3c3 +timeCreated: 1611465809 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildZiCai.cs b/Client/Assets/Scripts/XUtliPoolLib/GuildZiCai.cs new file mode 100644 index 00000000..20a6c00f --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildZiCai.cs @@ -0,0 +1,56 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class GuildZiCai : CVSReader
+ {
+ public GuildZiCai.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint itemid;
+
+ public SeqListRef<uint> rolerewards;
+
+ public SeqListRef<uint> guildrewards;
+
+ public string ShowTips;
+
+ public uint senior;
+
+ public SeqRef<uint> roleextrarewards;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ GuildZiCai.RowData rowData = new GuildZiCai.RowData();
+ base.Read<uint>(reader, ref rowData.itemid, CVSReader.uintParse);
+ this.columnno = 0;
+ rowData.rolerewards.Read(reader, this.m_DataHandler);
+ this.columnno = 1;
+ rowData.guildrewards.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.ShowTips, CVSReader.stringParse);
+ this.columnno = 3;
+ base.Read<uint>(reader, ref rowData.senior, CVSReader.uintParse);
+ this.columnno = 4;
+ rowData.roleextrarewards.Read(reader, this.m_DataHandler);
+ this.columnno = 5;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new GuildZiCai.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/GuildZiCai.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/GuildZiCai.cs.meta new file mode 100644 index 00000000..762a75ba --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/GuildZiCai.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: aa74ba4bc18144641999f5e6dcb7b96a +timeCreated: 1611465740 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/Guildintroduce.cs b/Client/Assets/Scripts/XUtliPoolLib/Guildintroduce.cs new file mode 100644 index 00000000..f0f9f7f5 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Guildintroduce.cs @@ -0,0 +1,67 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class Guildintroduce : CVSReader
+ {
+ public Guildintroduce.RowData[] Table = null;
+
+ public class RowData
+ {
+ public string HelpName;
+
+ public string Title;
+
+ public string Desc;
+ }
+
+ public Guildintroduce.RowData GetByHelpName(string key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ Guildintroduce.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].HelpName == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ Guildintroduce.RowData rowData = new Guildintroduce.RowData();
+ base.Read<string>(reader, ref rowData.HelpName, CVSReader.stringParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.Title, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.Desc, CVSReader.stringParse);
+ this.columnno = 3;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new Guildintroduce.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/Guildintroduce.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/Guildintroduce.cs.meta new file mode 100644 index 00000000..06eafa1b --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Guildintroduce.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 3ac5ef7f511e94343b68ac90340dc379 +timeCreated: 1611465632 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/HairColorTable.cs b/Client/Assets/Scripts/XUtliPoolLib/HairColorTable.cs new file mode 100644 index 00000000..cc696c6e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/HairColorTable.cs @@ -0,0 +1,71 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class HairColorTable : CVSReader
+ {
+ public HairColorTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint ID;
+
+ public float[] Color;
+
+ public string Name;
+
+ public string Icon;
+ }
+
+ public HairColorTable.RowData GetByID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ HairColorTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].ID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ HairColorTable.RowData rowData = new HairColorTable.RowData();
+ base.Read<uint>(reader, ref rowData.ID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.ReadArray<float>(reader, ref rowData.Color, CVSReader.floatParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.Name, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.Icon, CVSReader.stringParse);
+ this.columnno = 3;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new HairColorTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/HairColorTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/HairColorTable.cs.meta new file mode 100644 index 00000000..919d5306 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/HairColorTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2ada86c2ef3072d48bfb525057e69bd4 +timeCreated: 1611465303 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/HashPool.cs b/Client/Assets/Scripts/XUtliPoolLib/HashPool.cs new file mode 100644 index 00000000..2c9f5a1b --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/HashPool.cs @@ -0,0 +1,31 @@ +using System;
+using System.Collections.Generic;
+
+namespace XUtliPoolLib
+{
+ public class HashPool<T>
+ {
+ private static readonly ObjectPool<HashSet<T>> s_Pool = new ObjectPool<HashSet<T>>(new ObjectPool<HashSet<T>>.CreateObj(HashPool<T>.Create), delegate(HashSet<T> l)
+ {
+ l.Clear();
+ }, delegate(HashSet<T> l)
+ {
+ l.Clear();
+ });
+
+ public static HashSet<T> Create()
+ {
+ return new HashSet<T>();
+ }
+
+ public static HashSet<T> Get()
+ {
+ return HashPool<T>.s_Pool.Get();
+ }
+
+ public static void Release(HashSet<T> toRelease)
+ {
+ HashPool<T>.s_Pool.Release(toRelease);
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/HashPool.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/HashPool.cs.meta new file mode 100644 index 00000000..cd3944a6 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/HashPool.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c112f3e54923c5a458894b6be51e70f2 +timeCreated: 1611465753 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/HeroBattleExperienceHero.cs b/Client/Assets/Scripts/XUtliPoolLib/HeroBattleExperienceHero.cs new file mode 100644 index 00000000..7063fd5a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/HeroBattleExperienceHero.cs @@ -0,0 +1,71 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class HeroBattleExperienceHero : CVSReader
+ {
+ public HeroBattleExperienceHero.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint ItemID;
+
+ public uint HeroID;
+
+ public uint LastTime;
+
+ public string ShowTime;
+ }
+
+ public HeroBattleExperienceHero.RowData GetByItemID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ HeroBattleExperienceHero.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].ItemID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ HeroBattleExperienceHero.RowData rowData = new HeroBattleExperienceHero.RowData();
+ base.Read<uint>(reader, ref rowData.ItemID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.HeroID, CVSReader.uintParse);
+ this.columnno = 1;
+ base.Read<uint>(reader, ref rowData.LastTime, CVSReader.uintParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.ShowTime, CVSReader.stringParse);
+ this.columnno = 4;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new HeroBattleExperienceHero.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/HeroBattleExperienceHero.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/HeroBattleExperienceHero.cs.meta new file mode 100644 index 00000000..d2f27dd2 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/HeroBattleExperienceHero.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 60bdb5096a305c545aa8260d614affa6 +timeCreated: 1611465651 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/HeroBattleMapCenter.cs b/Client/Assets/Scripts/XUtliPoolLib/HeroBattleMapCenter.cs new file mode 100644 index 00000000..9295b270 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/HeroBattleMapCenter.cs @@ -0,0 +1,99 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class HeroBattleMapCenter : CVSReader
+ {
+ public HeroBattleMapCenter.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint SceneID;
+
+ public uint CenterType;
+
+ public SeqRef<float> Center;
+
+ public float[] Param;
+
+ public float ClientFxScalse;
+
+ public string[] OccupantFx;
+
+ public string[] MiniMapFx;
+
+ public string[] OccSuccessFx;
+
+ public string[] OccWinFx;
+
+ public string MVPCutScene;
+
+ public float[] MVPPos;
+ }
+
+ public HeroBattleMapCenter.RowData GetBySceneID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ HeroBattleMapCenter.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].SceneID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ HeroBattleMapCenter.RowData rowData = new HeroBattleMapCenter.RowData();
+ base.Read<uint>(reader, ref rowData.SceneID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.CenterType, CVSReader.uintParse);
+ this.columnno = 1;
+ rowData.Center.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ base.ReadArray<float>(reader, ref rowData.Param, CVSReader.floatParse);
+ this.columnno = 3;
+ base.Read<float>(reader, ref rowData.ClientFxScalse, CVSReader.floatParse);
+ this.columnno = 4;
+ base.ReadArray<string>(reader, ref rowData.OccupantFx, CVSReader.stringParse);
+ this.columnno = 5;
+ base.ReadArray<string>(reader, ref rowData.MiniMapFx, CVSReader.stringParse);
+ this.columnno = 6;
+ base.ReadArray<string>(reader, ref rowData.OccSuccessFx, CVSReader.stringParse);
+ this.columnno = 7;
+ base.ReadArray<string>(reader, ref rowData.OccWinFx, CVSReader.stringParse);
+ this.columnno = 8;
+ base.Read<string>(reader, ref rowData.MVPCutScene, CVSReader.stringParse);
+ this.columnno = 9;
+ base.ReadArray<float>(reader, ref rowData.MVPPos, CVSReader.floatParse);
+ this.columnno = 10;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new HeroBattleMapCenter.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/HeroBattleMapCenter.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/HeroBattleMapCenter.cs.meta new file mode 100644 index 00000000..3e1962c8 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/HeroBattleMapCenter.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d77d0dd766f20154ba1f215bad513884 +timeCreated: 1611465764 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/HeroBattleTips.cs b/Client/Assets/Scripts/XUtliPoolLib/HeroBattleTips.cs new file mode 100644 index 00000000..b10571bf --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/HeroBattleTips.cs @@ -0,0 +1,63 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class HeroBattleTips : CVSReader
+ {
+ public HeroBattleTips.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint id;
+
+ public string tips;
+ }
+
+ public HeroBattleTips.RowData GetByid(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ HeroBattleTips.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].id == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ HeroBattleTips.RowData rowData = new HeroBattleTips.RowData();
+ base.Read<uint>(reader, ref rowData.id, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.tips, CVSReader.stringParse);
+ this.columnno = 1;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new HeroBattleTips.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/HeroBattleTips.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/HeroBattleTips.cs.meta new file mode 100644 index 00000000..98484303 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/HeroBattleTips.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: e8740cf086415e04dbf8bfa32252ef9d +timeCreated: 1611465803 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/HeroBattleWeekReward.cs b/Client/Assets/Scripts/XUtliPoolLib/HeroBattleWeekReward.cs new file mode 100644 index 00000000..7ac1b27d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/HeroBattleWeekReward.cs @@ -0,0 +1,67 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class HeroBattleWeekReward : CVSReader
+ {
+ public HeroBattleWeekReward.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint id;
+
+ public uint winnum;
+
+ public uint[] reward;
+ }
+
+ public HeroBattleWeekReward.RowData GetByid(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ HeroBattleWeekReward.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].id == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ HeroBattleWeekReward.RowData rowData = new HeroBattleWeekReward.RowData();
+ base.Read<uint>(reader, ref rowData.id, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.winnum, CVSReader.uintParse);
+ this.columnno = 1;
+ base.ReadArray<uint>(reader, ref rowData.reward, CVSReader.uintParse);
+ this.columnno = 2;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new HeroBattleWeekReward.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/HeroBattleWeekReward.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/HeroBattleWeekReward.cs.meta new file mode 100644 index 00000000..8f37e523 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/HeroBattleWeekReward.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b83a04565fe806447a28aff27f4d787a +timeCreated: 1611465747 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/Horse.cs b/Client/Assets/Scripts/XUtliPoolLib/Horse.cs new file mode 100644 index 00000000..5f5f1449 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Horse.cs @@ -0,0 +1,63 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class Horse : CVSReader
+ {
+ public Horse.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint sceneid;
+
+ public uint Laps;
+ }
+
+ public Horse.RowData GetBysceneid(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ Horse.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].sceneid == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ Horse.RowData rowData = new Horse.RowData();
+ base.Read<uint>(reader, ref rowData.sceneid, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.Laps, CVSReader.uintParse);
+ this.columnno = 2;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new Horse.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/Horse.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/Horse.cs.meta new file mode 100644 index 00000000..122c119d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Horse.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ebc752a60dbf79348a8cc4f56288c538 +timeCreated: 1611465805 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/HotfixAttribute.cs b/Client/Assets/Scripts/XUtliPoolLib/HotfixAttribute.cs new file mode 100644 index 00000000..5809f36b --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/HotfixAttribute.cs @@ -0,0 +1,6 @@ +using System;
+
+[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
+public class HotfixAttribute : Attribute
+{
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/HotfixAttribute.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/HotfixAttribute.cs.meta new file mode 100644 index 00000000..644fb5a9 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/HotfixAttribute.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 28846599110b74741a4284fbbf79aa2f +timeCreated: 1611465302 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/HotfixIgnoreAttribute.cs b/Client/Assets/Scripts/XUtliPoolLib/HotfixIgnoreAttribute.cs new file mode 100644 index 00000000..24179687 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/HotfixIgnoreAttribute.cs @@ -0,0 +1,6 @@ +using System;
+
+[AttributeUsage(AttributeTargets.Method)]
+public class HotfixIgnoreAttribute : Attribute
+{
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/HotfixIgnoreAttribute.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/HotfixIgnoreAttribute.cs.meta new file mode 100644 index 00000000..3de38301 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/HotfixIgnoreAttribute.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 54f40ec3779ea054c9035b023174f315 +timeCreated: 1611465645 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/HotfixMode.cs b/Client/Assets/Scripts/XUtliPoolLib/HotfixMode.cs new file mode 100644 index 00000000..447b97d5 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/HotfixMode.cs @@ -0,0 +1,12 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public enum HotfixMode
+ {
+ BEFORE,
+ AFTER,
+ HIDE,
+ UNLOAD
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/HotfixMode.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/HotfixMode.cs.meta new file mode 100644 index 00000000..74fcc624 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/HotfixMode.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 73ce42c143a2bed41aa1db5c8bd2b430 +timeCreated: 1611465688 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IAnimStateMachine.cs b/Client/Assets/Scripts/XUtliPoolLib/IAnimStateMachine.cs new file mode 100644 index 00000000..c2d65c80 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IAnimStateMachine.cs @@ -0,0 +1,9 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public interface IAnimStateMachine
+ {
+ void OnAnimationOverrided();
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IAnimStateMachine.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IAnimStateMachine.cs.meta new file mode 100644 index 00000000..a4fcde14 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IAnimStateMachine.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 41106508a6089d940b761ac59dd80523 +timeCreated: 1611465635 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IApolloManager.cs b/Client/Assets/Scripts/XUtliPoolLib/IApolloManager.cs new file mode 100644 index 00000000..2c31a599 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IApolloManager.cs @@ -0,0 +1,55 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public interface IApolloManager
+ {
+ bool openMusic { get; set; }
+
+ bool openSpeak { get; set; }
+
+ void Init(int channel, string openid);
+
+ void SetRealtimeMode();
+
+ void ForbitMember(int memberId, bool bEnable);
+
+ void JoinRoom(string url1, string url2, string url3, long roomId, long roomKey, short memberId);
+
+ void JoinBigRoom(string urls, int role, uint busniessID, long roomid, long roomkey, short memberid);
+
+ bool GetJoinRoomResult();
+
+ bool GetJoinRoomBigResult();
+
+ int[] GetMembersState(ref int size);
+
+ void QuitRoom(long roomId, short memberId);
+
+ void QuitBigRoom();
+
+ int GetSpeakerVolume();
+
+ void SetMusicVolum(int nVol);
+
+ int InitApolloEngine(int ip1, int ip2, int ip3, int ip4, byte[] key, int len);
+
+ int StartRecord(string filename);
+
+ int StopApolloRecord();
+
+ int GetApolloUploadStatus();
+
+ int UploadRecordFile(string filename);
+
+ string GetFileID();
+
+ int GetMicLevel();
+
+ int StartPlayVoice(string filepath);
+
+ int StopPlayVoice();
+
+ int SetApolloMode(int mode);
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IApolloManager.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IApolloManager.cs.meta new file mode 100644 index 00000000..7311e7b6 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IApolloManager.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 78c828f01a4799845bd980589dd8ae33 +timeCreated: 1611465691 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IAssociatedCamera.cs b/Client/Assets/Scripts/XUtliPoolLib/IAssociatedCamera.cs new file mode 100644 index 00000000..ebcb7a75 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IAssociatedCamera.cs @@ -0,0 +1,10 @@ +using System;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public interface IAssociatedCamera : IXInterface
+ {
+ Camera Get();
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IAssociatedCamera.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IAssociatedCamera.cs.meta new file mode 100644 index 00000000..aa274c37 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IAssociatedCamera.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 323d8854cbd45f14db4216dbb6c21d9c +timeCreated: 1611465310 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IBShop.cs b/Client/Assets/Scripts/XUtliPoolLib/IBShop.cs new file mode 100644 index 00000000..581dc42c --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IBShop.cs @@ -0,0 +1,169 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class IBShop : CVSReader
+ {
+ public IBShop.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint id;
+
+ public uint type;
+
+ public uint itemid;
+
+ public uint discount;
+
+ public uint viplevel;
+
+ public bool bind;
+
+ public uint levelbuy;
+
+ public uint buycount;
+
+ public uint refreshtype;
+
+ public uint currencytype;
+
+ public uint currencycount;
+
+ public uint newproduct;
+
+ public int sortid;
+
+ public uint rmb;
+
+ public string goodsid;
+
+ public bool fashion;
+ }
+
+ public IBShop.RowData GetByid(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ IBShop.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchid(key);
+ }
+ return result;
+ }
+
+ private IBShop.RowData BinarySearchid(uint key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ IBShop.RowData rowData;
+ IBShop.RowData rowData2;
+ IBShop.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.id == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.id == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.id.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.id.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ IBShop.RowData rowData = new IBShop.RowData();
+ base.Read<uint>(reader, ref rowData.id, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.type, CVSReader.uintParse);
+ this.columnno = 1;
+ base.Read<uint>(reader, ref rowData.itemid, CVSReader.uintParse);
+ this.columnno = 3;
+ base.Read<uint>(reader, ref rowData.discount, CVSReader.uintParse);
+ this.columnno = 4;
+ base.Read<uint>(reader, ref rowData.viplevel, CVSReader.uintParse);
+ this.columnno = 5;
+ base.Read<bool>(reader, ref rowData.bind, CVSReader.boolParse);
+ this.columnno = 6;
+ base.Read<uint>(reader, ref rowData.levelbuy, CVSReader.uintParse);
+ this.columnno = 8;
+ base.Read<uint>(reader, ref rowData.buycount, CVSReader.uintParse);
+ this.columnno = 9;
+ base.Read<uint>(reader, ref rowData.refreshtype, CVSReader.uintParse);
+ this.columnno = 10;
+ base.Read<uint>(reader, ref rowData.currencytype, CVSReader.uintParse);
+ this.columnno = 11;
+ base.Read<uint>(reader, ref rowData.currencycount, CVSReader.uintParse);
+ this.columnno = 12;
+ base.Read<uint>(reader, ref rowData.newproduct, CVSReader.uintParse);
+ this.columnno = 15;
+ base.Read<int>(reader, ref rowData.sortid, CVSReader.intParse);
+ this.columnno = 16;
+ base.Read<uint>(reader, ref rowData.rmb, CVSReader.uintParse);
+ this.columnno = 21;
+ base.Read<string>(reader, ref rowData.goodsid, CVSReader.stringParse);
+ this.columnno = 22;
+ base.Read<bool>(reader, ref rowData.fashion, CVSReader.boolParse);
+ this.columnno = 24;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new IBShop.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IBShop.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IBShop.cs.meta new file mode 100644 index 00000000..ec3f3f1d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IBShop.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 24101fc43bdc451488229ffef79da536 +timeCreated: 1611465300 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IBroardcast.cs b/Client/Assets/Scripts/XUtliPoolLib/IBroardcast.cs new file mode 100644 index 00000000..3eb1a570 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IBroardcast.cs @@ -0,0 +1,21 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public interface IBroardcast
+ {
+ bool IsBroadState();
+
+ void SetAccount(int platf, string openid, string token);
+
+ void StartLiveBroadcast(string title, string desc);
+
+ void StopBroadcast();
+
+ int GetState();
+
+ void EnterHall();
+
+ bool ShowCamera(bool show);
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IBroardcast.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IBroardcast.cs.meta new file mode 100644 index 00000000..3738ca9e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IBroardcast.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d129e27b38c209d4493ebc41ca1a4de3 +timeCreated: 1611465760 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IColliderRenderLinker.cs b/Client/Assets/Scripts/XUtliPoolLib/IColliderRenderLinker.cs new file mode 100644 index 00000000..898bfc13 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IColliderRenderLinker.cs @@ -0,0 +1,10 @@ +using System;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public interface IColliderRenderLinker : IXInterface
+ {
+ Renderer[] GetLinkedRender();
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IColliderRenderLinker.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IColliderRenderLinker.cs.meta new file mode 100644 index 00000000..9a966ba5 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IColliderRenderLinker.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b2968a2becb8b644da94b3712b6db36b +timeCreated: 1611465744 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IControlParticle.cs b/Client/Assets/Scripts/XUtliPoolLib/IControlParticle.cs new file mode 100644 index 00000000..4fe0d879 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IControlParticle.cs @@ -0,0 +1,12 @@ +using System;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public interface IControlParticle
+ {
+ void RefreshRenderQueue(bool resetWidget);
+
+ void SetWidget(GameObject go);
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IControlParticle.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IControlParticle.cs.meta new file mode 100644 index 00000000..5cd78991 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IControlParticle.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a78b5c979783d7c44ae0ce13d63cbb13 +timeCreated: 1611465738 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IDelayLoad.cs b/Client/Assets/Scripts/XUtliPoolLib/IDelayLoad.cs new file mode 100644 index 00000000..d46dcf4b --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IDelayLoad.cs @@ -0,0 +1,9 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public interface IDelayLoad
+ {
+ EDelayProcessType DelayUpdate();
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IDelayLoad.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IDelayLoad.cs.meta new file mode 100644 index 00000000..7bfa04c1 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IDelayLoad.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8d8d59d7c8f54a442a35b70040171614 +timeCreated: 1611465702 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IEntrance.cs b/Client/Assets/Scripts/XUtliPoolLib/IEntrance.cs new file mode 100644 index 00000000..bb715c0e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IEntrance.cs @@ -0,0 +1,34 @@ +using System;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public interface IEntrance : IXInterface
+ {
+ bool Awaked { get; }
+
+ void Awake();
+
+ void Start();
+
+ void NetUpdate();
+
+ void PreUpdate();
+
+ void Update();
+
+ void PostUpdate();
+
+ void FadeUpdate();
+
+ void Quit();
+
+ void Authorization(string token);
+
+ void AuthorizationSignOut(string msg);
+
+ void SetQualityLevel(int level);
+
+ void MonoObjectRegister(string key, MonoBehaviour behavior);
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IEntrance.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IEntrance.cs.meta new file mode 100644 index 00000000..645624ed --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IEntrance.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 5c800282d2133c548b019e602a175f77 +timeCreated: 1611465650 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IEnvSetting.cs b/Client/Assets/Scripts/XUtliPoolLib/IEnvSetting.cs new file mode 100644 index 00000000..0e4ae056 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IEnvSetting.cs @@ -0,0 +1,9 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public interface IEnvSetting
+ {
+ void EnableSetting(int index);
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IEnvSetting.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IEnvSetting.cs.meta new file mode 100644 index 00000000..4c7354ba --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IEnvSetting.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: fc94dc0fb36541d469fb10fd341ea711 +timeCreated: 1611465812 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IFMOD_Listener.cs b/Client/Assets/Scripts/XUtliPoolLib/IFMOD_Listener.cs new file mode 100644 index 00000000..e99f5c98 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IFMOD_Listener.cs @@ -0,0 +1,9 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public interface IFMOD_Listener
+ {
+ void Reload();
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IFMOD_Listener.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IFMOD_Listener.cs.meta new file mode 100644 index 00000000..4220b383 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IFMOD_Listener.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 871363218433fe74eb6dc153e9c9cca9 +timeCreated: 1611465696 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IFxPro.cs b/Client/Assets/Scripts/XUtliPoolLib/IFxPro.cs new file mode 100644 index 00000000..1fc6bc7a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IFxPro.cs @@ -0,0 +1,11 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public interface IFxPro
+ {
+ void SetDofFade(float fade);
+
+ void Enable(bool enable);
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IFxPro.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IFxPro.cs.meta new file mode 100644 index 00000000..1073fb63 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IFxPro.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 67ea93ec0afe50446b777a93498fcfe4 +timeCreated: 1611465683 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IGameSysMgr.cs b/Client/Assets/Scripts/XUtliPoolLib/IGameSysMgr.cs new file mode 100644 index 00000000..cc4b8b83 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IGameSysMgr.cs @@ -0,0 +1,40 @@ +using System;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public interface IGameSysMgr : IXInterface
+ {
+ float OnlineRewardRemainTime { get; set; }
+
+ bool Init();
+
+ void Uninit();
+
+ void InitWhenSelectRole(uint level);
+
+ bool IsSystemOpen(int sys);
+
+ string GetSysName(int sysid);
+
+ string GetSysIcon(int sysid);
+
+ string GetSysAnnounceIcon(int sysid);
+
+ void OpenSystem(int sys);
+
+ void ForceUpdateSysRedPointImmediately(int sys, bool redpoint);
+
+ void AttachSysRedPointRelative(int sys, int childSys, bool bImmCalculate);
+
+ void AttachSysRedPointRelativeUI(int sys, GameObject go);
+
+ void DetachSysRedPointRelative(int sys);
+
+ void DetachSysRedPointRelativeUI(int sys);
+
+ void GamePause(bool pause);
+
+ bool GetSysRedPointState(int sys);
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IGameSysMgr.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IGameSysMgr.cs.meta new file mode 100644 index 00000000..a6ea97b9 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IGameSysMgr.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f357c31f5472c8c4c928e9f0c4aeab0c +timeCreated: 1611465808 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IHere.cs b/Client/Assets/Scripts/XUtliPoolLib/IHere.cs new file mode 100644 index 00000000..1611a2c9 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IHere.cs @@ -0,0 +1,9 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ internal interface IHere
+ {
+ int Here { get; set; }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IHere.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IHere.cs.meta new file mode 100644 index 00000000..086e5097 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IHere.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: e514d0ec12c92f646bfba8fcbfe0b9f7 +timeCreated: 1611465802 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IHotfixManager.cs b/Client/Assets/Scripts/XUtliPoolLib/IHotfixManager.cs new file mode 100644 index 00000000..5abe8eff --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IHotfixManager.cs @@ -0,0 +1,40 @@ +using System;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public interface IHotfixManager
+ {
+ void Dispose();
+
+ bool DoLuaFile(string name);
+
+ void TryFixMsglist();
+
+ bool TryFixClick(HotfixMode _mode, string _path);
+
+ bool TryFixRefresh(HotfixMode _mode, string _pageName, GameObject go);
+
+ bool TryFixHandler(HotfixMode _mode, string _handlerName, GameObject go);
+
+ void RegistedPtc(uint _type, byte[] body, int length);
+
+ void ProcessOveride(uint _type, byte[] body, int length);
+
+ void OnLeaveScene();
+
+ void OnEnterScene();
+
+ void OnEnterSceneFinally();
+
+ void OnAttachToHost();
+
+ void OnReconnect();
+
+ void OnDetachFromHost();
+
+ void CallLuaFunc(string className, string funcName);
+
+ void OnPayCallback(string result, string paramID);
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IHotfixManager.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IHotfixManager.cs.meta new file mode 100644 index 00000000..36bfa261 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IHotfixManager.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 75fa3211cf023ff44902b589d3907de3 +timeCreated: 1611465689 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ILoopItemObject.cs b/Client/Assets/Scripts/XUtliPoolLib/ILoopItemObject.cs new file mode 100644 index 00000000..a447283f --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ILoopItemObject.cs @@ -0,0 +1,16 @@ +using System;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public interface ILoopItemObject
+ {
+ int dataIndex { get; set; }
+
+ bool isVisible();
+
+ GameObject GetObj();
+
+ void SetHeight(int height);
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ILoopItemObject.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ILoopItemObject.cs.meta new file mode 100644 index 00000000..864dfc09 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ILoopItemObject.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 9dd714c41ff5353418308725c7bcff12 +timeCreated: 1611465711 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ILoopScrollView.cs b/Client/Assets/Scripts/XUtliPoolLib/ILoopScrollView.cs new file mode 100644 index 00000000..6b222927 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ILoopScrollView.cs @@ -0,0 +1,29 @@ +using System;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public interface ILoopScrollView
+ {
+ GameObject gameobject { get; }
+
+ void Init(List<LoopItemData> datas, DelegateHandler onItemInitCallback, Action onDragfinish, int pivot = 0, bool forceRefreshPerTime = false);
+
+ GameObject GetTpl();
+
+ bool IsScrollLast();
+
+ void ResetScroll();
+
+ void SetDepth(int delpth);
+
+ GameObject GetFirstItem();
+
+ GameObject GetLastItem();
+
+ void AddItem(LoopItemData data);
+
+ void SetClipSize(Vector2 size);
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ILoopScrollView.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ILoopScrollView.cs.meta new file mode 100644 index 00000000..b31c91e5 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ILoopScrollView.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b0e75ee976767dc46b7867e6f3e80571 +timeCreated: 1611465744 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ILuaEngine.cs b/Client/Assets/Scripts/XUtliPoolLib/ILuaEngine.cs new file mode 100644 index 00000000..4fa28dbf --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ILuaEngine.cs @@ -0,0 +1,15 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public interface ILuaEngine
+ {
+ IHotfixManager hotfixMgr { get; }
+
+ ILuaUIManager luaUIManager { get; }
+
+ ILuaGameInfo luaGameInfo { get; }
+
+ void InitLua();
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ILuaEngine.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ILuaEngine.cs.meta new file mode 100644 index 00000000..2567ed77 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ILuaEngine.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d79ef2b313a5b5f4e8a8f3d075936d4a +timeCreated: 1611465764 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ILuaExtion.cs b/Client/Assets/Scripts/XUtliPoolLib/ILuaExtion.cs new file mode 100644 index 00000000..6fdffedc --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ILuaExtion.cs @@ -0,0 +1,45 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public interface ILuaExtion : IXInterface
+ {
+ void SetPlayerProprerty(string key, object value);
+
+ object GetPlayeProprerty(string key);
+
+ object CallPlayerMethod(bool isPublic, string method, params object[] args);
+
+ object GetDocument(string doc);
+
+ object GetDocumentMember(string doc, string key, bool isPublic, bool isField);
+
+ object GetDocumentStaticMember(string doc, string key, bool isPublic, bool isField);
+
+ void SetDocumentMember(string doc, string key, object value, bool isPublic, bool isField);
+
+ object CallDocumentMethod(string doc, bool isPublic, string method, params object[] args);
+
+ object CallDocumentStaticMethod(string doc, bool isPublic, string method, params object[] args);
+
+ object GetSingle(string className);
+
+ object GetSingleMember(string className, string key, bool isPublic, bool isField, bool isStatic);
+
+ void SetSingleMember(string className, string key, object value, bool isPublic, bool isField, bool isStatic);
+
+ object CallSingleMethod(string className, bool isPublic, bool isStatic, string methodName, params object[] args);
+
+ void RefreshPlayerName();
+
+ Type GetType(string classname);
+
+ object GetEnumType(string classname, string value);
+
+ string GetStringTable(string key, params object[] args);
+
+ string GetGlobalString(string key);
+
+ XLuaLong Get(string str);
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ILuaExtion.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ILuaExtion.cs.meta new file mode 100644 index 00000000..ee1ae1f9 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ILuaExtion.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: e4f6c7c25f335264a9ed0d1eb26ee842 +timeCreated: 1611465802 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ILuaFunction.cs b/Client/Assets/Scripts/XUtliPoolLib/ILuaFunction.cs new file mode 100644 index 00000000..7aa0b0fe --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ILuaFunction.cs @@ -0,0 +1,19 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public interface ILuaFunction
+ {
+ object[] Call();
+
+ object[] Call(params object[] args);
+
+ object[] Call(double arg1);
+
+ void Dispose();
+
+ void Release();
+
+ int GetReference();
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ILuaFunction.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ILuaFunction.cs.meta new file mode 100644 index 00000000..5005cd04 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ILuaFunction.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 25d29490a74d0dc4bbc47c21ed08529b +timeCreated: 1611465301 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ILuaGameInfo.cs b/Client/Assets/Scripts/XUtliPoolLib/ILuaGameInfo.cs new file mode 100644 index 00000000..c7aae9a4 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ILuaGameInfo.cs @@ -0,0 +1,25 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public interface ILuaGameInfo
+ {
+ string name { get; set; }
+
+ uint exp { get; set; }
+
+ uint maxexp { get; set; }
+
+ uint level { get; set; }
+
+ int ppt { get; set; }
+
+ uint coin { get; set; }
+
+ uint dia { get; set; }
+
+ uint energy { get; set; }
+
+ uint draggon { get; set; }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ILuaGameInfo.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ILuaGameInfo.cs.meta new file mode 100644 index 00000000..37aad65e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ILuaGameInfo.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: dfb64f778469ea44ebfaffbcecedb842 +timeCreated: 1611465798 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ILuaNetSender.cs b/Client/Assets/Scripts/XUtliPoolLib/ILuaNetSender.cs new file mode 100644 index 00000000..9c012290 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ILuaNetSender.cs @@ -0,0 +1,9 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public interface ILuaNetSender
+ {
+ bool Send(uint _type, bool isRpc, uint tagID, byte[] _reqBuff);
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ILuaNetSender.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ILuaNetSender.cs.meta new file mode 100644 index 00000000..55e4a6df --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ILuaNetSender.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: bb86446e4fb71a545a29c9bb0b07b72f +timeCreated: 1611465748 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ILuaNetwork.cs b/Client/Assets/Scripts/XUtliPoolLib/ILuaNetwork.cs new file mode 100644 index 00000000..bc293dca --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ILuaNetwork.cs @@ -0,0 +1,20 @@ +using System;
+using System.Collections.Generic;
+
+namespace XUtliPoolLib
+{
+ public interface ILuaNetwork : IXInterface
+ {
+ void InitLua(int rpcCache);
+
+ bool LuaRigsterPtc(uint type, bool copyBuffer);
+
+ void LuaRegistDispacher(List<uint> types);
+
+ void LuaRigsterRPC(uint _type, bool copyBuffer, DelLuaRespond _onRes, DelLuaError _onError);
+
+ bool LuaSendPtc(uint _type, byte[] _reqBuff);
+
+ bool LuaSendRPC(uint _type, byte[] _reqBuff, DelLuaRespond _onRes, DelLuaError _onError);
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ILuaNetwork.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ILuaNetwork.cs.meta new file mode 100644 index 00000000..c1dff326 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ILuaNetwork.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 696f64933cdb92b4d87288649a152f49 +timeCreated: 1611465683 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ILuaUIManager.cs b/Client/Assets/Scripts/XUtliPoolLib/ILuaUIManager.cs new file mode 100644 index 00000000..cbff5c4c --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ILuaUIManager.cs @@ -0,0 +1,17 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public interface ILuaUIManager
+ {
+ bool IsUIShowed();
+
+ bool Load(string name);
+
+ bool Hide(string name);
+
+ bool Destroy(string name);
+
+ void Clear();
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ILuaUIManager.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ILuaUIManager.cs.meta new file mode 100644 index 00000000..9cc26921 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ILuaUIManager.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 41477a32b2f682449a654a8f033146a9 +timeCreated: 1611465635 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IModalDlg.cs b/Client/Assets/Scripts/XUtliPoolLib/IModalDlg.cs new file mode 100644 index 00000000..656c1779 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IModalDlg.cs @@ -0,0 +1,10 @@ +using System;
+using UILib;
+
+namespace XUtliPoolLib
+{
+ public interface IModalDlg : IXInterface
+ {
+ void LuaShow(string content, ButtonClickEventHandler handler, ButtonClickEventHandler handler2);
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IModalDlg.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IModalDlg.cs.meta new file mode 100644 index 00000000..b020608a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IModalDlg.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 69d7b172eccd4f24dbbcf1d27e601679 +timeCreated: 1611465684 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/INativePlugin.cs b/Client/Assets/Scripts/XUtliPoolLib/INativePlugin.cs new file mode 100644 index 00000000..477e228e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/INativePlugin.cs @@ -0,0 +1,17 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public interface INativePlugin
+ {
+ void InitializeHooks();
+
+ void CloseHooks();
+
+ void Init();
+
+ void Update();
+
+ void InputData(short tableID, short tableType, byte[] buffer, int length);
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/INativePlugin.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/INativePlugin.cs.meta new file mode 100644 index 00000000..b52bfc3c --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/INativePlugin.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: fc07139f3421550409311254b46f7062 +timeCreated: 1611465811 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IOSAssetBundleLoader.cs b/Client/Assets/Scripts/XUtliPoolLib/IOSAssetBundleLoader.cs new file mode 100644 index 00000000..13bfada3 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IOSAssetBundleLoader.cs @@ -0,0 +1,83 @@ +using System;
+using System.Collections;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public class IOSAssetBundleLoader : MobileAssetBundleLoader
+ {
+ protected override IEnumerator LoadFromPackage()
+ {
+ bool flag = this.state == LoadState.State_Complete;
+ if (flag)
+ {
+ this.Complete();
+ }
+ else
+ {
+ bool flag2 = this.state != LoadState.State_Error;
+ if (flag2)
+ {
+ AssetBundleCreateRequest req = AssetBundle.LoadFromFileAsync(this._assetBundleSourceFile);
+ while (!req.isDone)
+ {
+ yield return null;
+ }
+ bool flag3 = this._bundle == null;
+ if (flag3)
+ {
+ this._bundle = req.assetBundle;
+ }
+ bool flag4 = this.state != LoadState.State_Complete && base.UnloadNotLoadingBundle(this._bundle);
+ if (flag4)
+ {
+ req = AssetBundle.LoadFromFileAsync(this._assetBundleSourceFile);
+ while (!req.isDone)
+ {
+ yield return null;
+ }
+ bool flag5 = this._bundle == null;
+ if (flag5)
+ {
+ this._bundle = req.assetBundle;
+ }
+ }
+ this.Complete();
+ req = null;
+ }
+ }
+ yield break;
+ }
+
+ protected override void LoadFromPackageImm()
+ {
+ bool flag = this.state == LoadState.State_Complete;
+ if (flag)
+ {
+ this.Complete();
+ }
+ else
+ {
+ bool flag2 = this.state != LoadState.State_Error;
+ if (flag2)
+ {
+ bool flag3 = this._bundle == null;
+ if (flag3)
+ {
+ this._bundle = AssetBundle.LoadFromFile(this._assetBundleSourceFile);
+ }
+ bool flag4 = this.state != LoadState.State_Complete && base.UnloadNotLoadingBundle(this._bundle);
+ if (flag4)
+ {
+ bool flag5 = this._bundle == null;
+ if (flag5)
+ {
+ this._bundle = AssetBundle.LoadFromFile(this._assetBundleSourceFile);
+ }
+ }
+ this.Complete();
+ }
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IOSAssetBundleLoader.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IOSAssetBundleLoader.cs.meta new file mode 100644 index 00000000..47d6af8b --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IOSAssetBundleLoader.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: be6979ca6f6de85469a4286524de1e91 +timeCreated: 1611465751 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IObjectPool.cs b/Client/Assets/Scripts/XUtliPoolLib/IObjectPool.cs new file mode 100644 index 00000000..7133b26a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IObjectPool.cs @@ -0,0 +1,13 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public interface IObjectPool
+ {
+ int countAll { get; }
+
+ int countActive { get; }
+
+ int countInactive { get; }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IObjectPool.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IObjectPool.cs.meta new file mode 100644 index 00000000..1fd59af2 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IObjectPool.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: dcef90b95e035cc49b5d789f12ddd7b2 +timeCreated: 1611465796 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IPlatform.cs b/Client/Assets/Scripts/XUtliPoolLib/IPlatform.cs new file mode 100644 index 00000000..b7e5d6ca --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IPlatform.cs @@ -0,0 +1,106 @@ +using System;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public interface IPlatform : IXInterface
+ {
+ XPlatformType Platfrom();
+
+ bool IsEdior();
+
+ void SetNoBackupFlag(string fullpath);
+
+ void OnPlatformLogin();
+
+ void OnQQLogin();
+
+ void OnWeChatLogin();
+
+ void OnGuestLogin();
+
+ void LogOut();
+
+ void ResgiterSDONotification(uint serverid, string rolename);
+
+ string GetPFToken();
+
+ string GetVersionServer();
+
+ string GetHostUrl();
+
+ string GetLoginServer(string loginType);
+
+ bool IsPublish();
+
+ bool IsTestMode();
+
+ void SendGameExData(string type, string json);
+
+ void SetPushStatus(bool status);
+
+ string GetHostWithHttpDns(string url);
+
+ bool CheckStatus(string type, string json);
+
+ string GetSDKConfig(string type, string json);
+
+ bool CheckWeChatInstalled();
+
+ string GetChannelID();
+
+ string GetBatteryLevel();
+
+ void SendUserInfo(uint serverID, ulong roleID);
+
+ int GetQualityLevel();
+
+ void MarkLoadlevel(string scene_name);
+
+ void InitApm();
+
+ void MarkLoadlevelCompleted();
+
+ void MarkLevelEnd();
+
+ void SetApmUserID(string userID);
+
+ void SetScreenLightness(int percentage);
+
+ void ResetScreenLightness();
+
+ object CreateClass(EClassType type);
+
+ void ReturnClass(EClassType type, object obj);
+
+ void ClearClass();
+
+ string GetPayBill();
+
+ void Pay(int price, string orderID, string paramID, ulong role, uint serverID);
+
+ void SendExtDara(string key, string param);
+
+ void CreateWXGroup(string param);
+
+ void JoinWXGroup(string param);
+
+ void ShareWithWXGroup(string param);
+
+ void QueryWXGroup(string param);
+
+ string GetMD5(string plainText);
+
+ string UserMd5(string str);
+
+ int GetDensity();
+
+ string GetSim();
+
+ Component AddComponent(GameObject go, EComponentType type);
+
+ void ReloadFMOD();
+
+ INativePlugin GetNativePlugin();
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IPlatform.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IPlatform.cs.meta new file mode 100644 index 00000000..2c5ada33 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IPlatform.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1b4773bedcfbe454b8054cdd451c9e4f +timeCreated: 1611465297 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IQueueObject.cs b/Client/Assets/Scripts/XUtliPoolLib/IQueueObject.cs new file mode 100644 index 00000000..1ec0a780 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IQueueObject.cs @@ -0,0 +1,9 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public interface IQueueObject
+ {
+ IQueueObject next { get; set; }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IQueueObject.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IQueueObject.cs.meta new file mode 100644 index 00000000..c9e721a6 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IQueueObject.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ee8811a50bf16204faa245a36cee2779 +timeCreated: 1611465805 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IRenderObject.cs b/Client/Assets/Scripts/XUtliPoolLib/IRenderObject.cs new file mode 100644 index 00000000..1d8b30b1 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IRenderObject.cs @@ -0,0 +1,26 @@ +using System;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public interface IRenderObject
+ {
+ int InstanceID { set; }
+
+ bool IsSameObj(int id);
+
+ void SetRenderLayer(int layer);
+
+ void SetShader(int type);
+
+ void ResetShader();
+
+ void SetColor(byte r, byte g, byte b, byte a);
+
+ void SetColor(Color32 c);
+
+ void Clean();
+
+ void Update();
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IRenderObject.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IRenderObject.cs.meta new file mode 100644 index 00000000..0837366a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IRenderObject.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 88c341293935fe746a6117149e9e1042 +timeCreated: 1611465698 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IResourceHelp.cs b/Client/Assets/Scripts/XUtliPoolLib/IResourceHelp.cs new file mode 100644 index 00000000..c1cb5799 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IResourceHelp.cs @@ -0,0 +1,10 @@ +using System;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public interface IResourceHelp : IXInterface
+ {
+ void CheckResource(UnityEngine.Object o, string path);
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IResourceHelp.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IResourceHelp.cs.meta new file mode 100644 index 00000000..a99ec550 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IResourceHelp.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: af23053858aa20c4597102da72e24c97 +timeCreated: 1611465743 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ISeqListRef.2.cs b/Client/Assets/Scripts/XUtliPoolLib/ISeqListRef.2.cs new file mode 100644 index 00000000..9af70e5d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ISeqListRef.2.cs @@ -0,0 +1,14 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public interface ISeqListRef<T>
+ {
+ T this[int index, int key]
+ {
+ get;
+ }
+
+ int Count { get; }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ISeqListRef.2.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ISeqListRef.2.cs.meta new file mode 100644 index 00000000..5fb8425d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ISeqListRef.2.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 877a430224eb0fc41ab9ad9a998506b0 +timeCreated: 1611465697 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ISeqListRef.cs b/Client/Assets/Scripts/XUtliPoolLib/ISeqListRef.cs new file mode 100644 index 00000000..f2c097d6 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ISeqListRef.cs @@ -0,0 +1,9 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public interface ISeqListRef
+ {
+ void SetData(DataHandler dh, byte c, byte mask, ushort offset);
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ISeqListRef.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ISeqListRef.cs.meta new file mode 100644 index 00000000..60717f8a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ISeqListRef.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c23937a8bf900514796ddd27395d3aae +timeCreated: 1611465754 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ISeqRef.2.cs b/Client/Assets/Scripts/XUtliPoolLib/ISeqRef.2.cs new file mode 100644 index 00000000..74355164 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ISeqRef.2.cs @@ -0,0 +1,12 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public interface ISeqRef<T>
+ {
+ T this[int key]
+ {
+ get;
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ISeqRef.2.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ISeqRef.2.cs.meta new file mode 100644 index 00000000..bdd60b7d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ISeqRef.2.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 6641f0964b34a914e92a9127cac0f0f2 +timeCreated: 1611465683 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ISeqRef.cs b/Client/Assets/Scripts/XUtliPoolLib/ISeqRef.cs new file mode 100644 index 00000000..a47f2098 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ISeqRef.cs @@ -0,0 +1,9 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public interface ISeqRef
+ {
+ void Read(XBinaryReader stream, DataHandler dh);
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ISeqRef.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ISeqRef.cs.meta new file mode 100644 index 00000000..f64d9383 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ISeqRef.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ca7d59f9528a51b49a4d3e1a542eef8a +timeCreated: 1611465757 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ITssSdk.cs b/Client/Assets/Scripts/XUtliPoolLib/ITssSdk.cs new file mode 100644 index 00000000..96ea47d9 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ITssSdk.cs @@ -0,0 +1,11 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public interface ITssSdk
+ {
+ void OnLogin(int platf, string openId, uint worldId, string roleId);
+
+ void OnRcvWhichNeedToSendClientSdk(byte[] data, uint length);
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ITssSdk.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ITssSdk.cs.meta new file mode 100644 index 00000000..f4c83324 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ITssSdk.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b73b219e75a38cb419b6de46aedf8000 +timeCreated: 1611465747 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ITssSdkSend.cs b/Client/Assets/Scripts/XUtliPoolLib/ITssSdkSend.cs new file mode 100644 index 00000000..b065124a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ITssSdkSend.cs @@ -0,0 +1,9 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public interface ITssSdkSend : IXInterface
+ {
+ void SendDataToServer(byte[] data, uint length);
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ITssSdkSend.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ITssSdkSend.cs.meta new file mode 100644 index 00000000..39ea2706 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ITssSdkSend.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: caca6af59a0f82e458fd8ec66136b0e7 +timeCreated: 1611465757 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IUiUtility.cs b/Client/Assets/Scripts/XUtliPoolLib/IUiUtility.cs new file mode 100644 index 00000000..ee5bd618 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IUiUtility.cs @@ -0,0 +1,95 @@ +using System;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public interface IUiUtility : IXInterface
+ {
+ void ShowSystemTip(string text, string rgb = "fece00");
+
+ void ShowSystemTip(int errcode, string rgb = "fece00");
+
+ void ShowItemAccess(int itemid, AccessCallback callback = null);
+
+ void ShowTooltipDialog(int itemID, GameObject icon = null);
+
+ void ShowDetailTooltip(int itemID, GameObject icon = null);
+
+ void ShowTooltipDialogByUID(string strUID, GameObject icon = null);
+
+ void ShowPressToolTips(bool pressed, string content, Vector3 pos, Vector3 offset);
+
+ string GlobalConfigGetValue(string cfgName);
+
+ void OnPayCallback(string msg);
+
+ void OnQQVipPayCallback(string msg);
+
+ void OnReplayStart();
+
+ void PushBarrage(string nick, string content);
+
+ void StartBroadcast(bool start);
+
+ void OnGameCenterWakeUp(int type);
+
+ void OnPayMarketingInfo(List<PayMarketingInfo> listInfo);
+
+ void OnGetPlatFriendsInfo();
+
+ void SerialHandle3DTouch(string msg);
+
+ void SerialHandleScreenLock(string msg);
+
+ string GetPartitionId();
+
+ string GetRoleId();
+
+ void OnSetBg(bool on);
+
+ void OnSetWebViewMenu(int menutype);
+
+ void OnWebViewBackGame(int backtype);
+
+ void OnWebViewRefershRefPoint(string jsonstr);
+
+ void OnWebViewSetheaderInfo(string jsonstr);
+
+ void OnWebViewCloseLoading(int show);
+
+ void OnWebViewShowReconnect(int show);
+
+ void OnWebViewClose();
+
+ void OnWebViewLiveTab();
+
+ void ShowPandoraPopView(bool bShow);
+
+ void NoticeShareResult(string result, ShareCallBackType type);
+
+ bool CheckQQInstalled();
+
+ bool CheckWXInstalled();
+
+ void OpenUrl(string url, bool landscape);
+
+ void UpdatePandoraSDKRedPoint(int pandoraSysID, bool showRedPoint, string module);
+
+ void AttachPandoraSDKRedPoint(int sysID, string module);
+
+ void ResetAllPopPLParent();
+
+ void SDKPandoraBuyGoods(string json);
+
+ void ShareToWXFriendBackEnd(string openID, string title, string desc, string tag);
+
+ void ShareToQQFreindBackEnd(string openID, string title, string desc, string tag, string targetUrl, string imageUrl, string previewText);
+
+ void PandoraPicShare(string accountType, string scene, string objPath);
+
+ void OnWXGroupResult(string apiId, string result, int error, WXGroupCallBackType type);
+
+ void RefreshWXGroupBtn(WXGroupCallBackType type);
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IUiUtility.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IUiUtility.cs.meta new file mode 100644 index 00000000..de130a96 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IUiUtility.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4ad4981946af41b43b0b3bab5338ec6a +timeCreated: 1611465640 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IWeaponTail.cs b/Client/Assets/Scripts/XUtliPoolLib/IWeaponTail.cs new file mode 100644 index 00000000..77e416bf --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IWeaponTail.cs @@ -0,0 +1,16 @@ +using System;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public class IWeaponTail : MonoBehaviour
+ {
+ public virtual void Activate()
+ {
+ }
+
+ public virtual void Deactivate()
+ {
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IWeaponTail.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IWeaponTail.cs.meta new file mode 100644 index 00000000..6986e3db --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IWeaponTail.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8cdb52f559af3c049ae9600b7015ce0b +timeCreated: 1611465701 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IX3DAvatarMgr.cs b/Client/Assets/Scripts/XUtliPoolLib/IX3DAvatarMgr.cs new file mode 100644 index 00000000..cdf994fe --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IX3DAvatarMgr.cs @@ -0,0 +1,32 @@ +using System;
+using UILib;
+
+namespace XUtliPoolLib
+{
+ public interface IX3DAvatarMgr : IXInterface
+ {
+ int AllocDummyPool(string user, int maxCount);
+
+ void ReturnDummyPool(int index);
+
+ void EnableMainDummy(bool enable, IUIDummy snapShot);
+
+ void OnUIUnloadMainDummy(IUIDummy snapShot);
+
+ void SetMainDummy(bool ui);
+
+ void Clean(bool transfer);
+
+ void RotateMain(float degree);
+
+ void ResetMainAnimation();
+
+ string CreateCommonDummy(int dummyPool, uint presentID, IUIDummy snapShot, IXDummy orig, float scale);
+
+ void DestroyDummy(int dummyPool, string idStr);
+
+ void SetDummyAnim(int dummyPool, string idStr, string anim);
+
+ void SetMainDummyAnim(string anim);
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IX3DAvatarMgr.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IX3DAvatarMgr.cs.meta new file mode 100644 index 00000000..fd6ea3ba --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IX3DAvatarMgr.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8a5b8ac4f04e60a4591c52dd06b76715 +timeCreated: 1611465700 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXAIGeneralMgr.cs b/Client/Assets/Scripts/XUtliPoolLib/IXAIGeneralMgr.cs new file mode 100644 index 00000000..ac82b8d2 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXAIGeneralMgr.cs @@ -0,0 +1,152 @@ +using System;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public interface IXAIGeneralMgr : IXInterface
+ {
+ bool IsHPValue(ulong id, int min, int max);
+
+ bool IsHPValue(Transform transform, int min, int max);
+
+ bool IsMPValue(ulong id, int min, int max);
+
+ bool IsMPValue(Transform transform, int min, int max);
+
+ bool IsValid(ulong id);
+
+ bool IsValid(Transform transform);
+
+ bool HasQTE(ulong id, int QTEState);
+
+ bool HasQTE(GameObject go, int QTEState);
+
+ bool IsAtState(GameObject go, int state);
+
+ bool IsAtState(ulong id, int state);
+
+ bool IsRotate(GameObject go);
+
+ bool IsCastSkill(GameObject go);
+
+ bool IsFighting(ulong id);
+
+ bool IsFighting(Transform transform);
+
+ bool IsWoozy(GameObject go);
+
+ bool IsOppoCastingSkill(ulong id);
+
+ bool IsOppoCastingSkill(Transform transform);
+
+ bool IsHurtOppo(ulong id);
+
+ bool IsHurtOppo(Transform transform);
+
+ bool IsFixedInCd(ulong id);
+
+ bool IsFixedInCd(Transform transform);
+
+ bool IsWander(ulong id);
+
+ bool IsWander(Transform transform);
+
+ bool IsSkillChoosed(ulong id);
+
+ bool IsSkillChoosed(Transform transform);
+
+ bool DetectEnimyInSight(GameObject go);
+
+ bool CastQTESkill(GameObject go);
+
+ bool CastDashSkill(GameObject go);
+
+ bool ResetTargets(GameObject go);
+
+ bool FindTargetByDistance(GameObject go, float distance, bool filterImmortal, float angle, float delta, int targettype);
+
+ bool FindTargetByHitLevel(GameObject go, bool filterImmortal);
+
+ bool FindTargetByHartedList(GameObject go, bool filterImmortal);
+
+ bool FindTargetByNonImmortal(GameObject go);
+
+ bool DoSelectNearest(GameObject go);
+
+ bool DoSelectFarthest(GameObject go);
+
+ bool DoSelectRandomTarget(GameObject go);
+
+ void ClearTarget(ulong id);
+
+ void ClearTarget(Transform transform);
+
+ bool TryCastInstallSkill(GameObject go, GameObject targetgo);
+
+ bool TryCastLearnedSkill(GameObject go, GameObject targetgo);
+
+ bool TryCastPhysicalSkill(GameObject go, GameObject targetgo);
+
+ bool NavToTarget(ulong id, GameObject target);
+
+ bool NavToTarget(GameObject go, GameObject target);
+
+ bool FindNavPath(GameObject go);
+
+ bool ActionMove(GameObject go, Vector3 dir, Vector3 dest, float speed);
+
+ bool ActionNav(ulong id, Vector3 dest);
+
+ bool ActionNav(GameObject go, Vector3 dest);
+
+ bool ActionRotate(GameObject go, float degree, float speed, int type);
+
+ bool RotateToTarget(GameObject go);
+
+ bool SelectSkill(GameObject go, FilterSkillArg skillarg);
+
+ bool DoSelectInOrder(GameObject go);
+
+ bool DoSelectRandom(GameObject go);
+
+ bool DoCastSkill(GameObject go, GameObject targetgo);
+
+ bool SendAIEvent(GameObject go, int msgto, int msgtype, int entitytypeid, string msgarg, float delaytime, Vector3 pos);
+
+ string ReceiveAIEvent(GameObject go, int msgType, bool Deprecate);
+
+ bool IsTargetImmortal(ulong id);
+
+ Transform SelectMoveTargetById(GameObject go, int objectid);
+
+ Transform SelectBuffTarget(GameObject go);
+
+ Transform SelectItemTarget(GameObject go);
+
+ bool SelectTargetBySkillCircle(GameObject go);
+
+ bool ResetHartedList(GameObject go);
+
+ bool CallMonster(GameObject go, CallMonsterData data);
+
+ bool CallScript(GameObject go, string script, float delaytime);
+
+ bool AddBuff(int monsterid, int buffid, int buffid2);
+
+ void RunSubTree(GameObject go, string treename);
+
+ bool PlayFx(GameObject go, string fxname, Vector3 fxpos, float delaytime);
+
+ bool StopCastingSkill(GameObject go);
+
+ bool DetectEnemyInRange(GameObject go, ref DetectEnemyInRangeArg arg);
+
+ bool UpdateNavigation(GameObject go, int dir, int oldDir);
+
+ int GetPlayerProf();
+
+ bool IsPointInMap(Vector3 pos);
+
+ bool AIDoodad(GameObject go, int doodadid, int waveid, Vector3 pos, float randompos, float delaytime);
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXAIGeneralMgr.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IXAIGeneralMgr.cs.meta new file mode 100644 index 00000000..eccec196 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXAIGeneralMgr.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0fa6afb406f4b5f4ca7384946f08c0de +timeCreated: 1611465290 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXBehaviorTree.cs b/Client/Assets/Scripts/XUtliPoolLib/IXBehaviorTree.cs new file mode 100644 index 00000000..d9bf52f8 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXBehaviorTree.cs @@ -0,0 +1,40 @@ +using System;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public interface IXBehaviorTree : IXInterface
+ {
+ void OnStartSkill(uint skillid);
+
+ void OnEndSkill(uint skillid);
+
+ void OnSkillHurt();
+
+ void EnableBehaviorTree(bool enable);
+
+ void SetManual(bool enable);
+
+ float OnGetHeartRate();
+
+ void TickBehaviorTree();
+
+ bool SetBehaviorTree(string location);
+
+ void SetNavPoint(Transform navpoint);
+
+ void SetVariable(string name, object value);
+
+ void SetIntByName(string name, int value);
+
+ void SetFloatByName(string name, float value);
+
+ void SetBoolByName(string name, bool value);
+
+ void SetVector3ByName(string name, Vector3 value);
+
+ void SetTransformByName(string name, Transform value);
+
+ void SetXGameObjectByName(string name, XGameObject value);
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXBehaviorTree.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IXBehaviorTree.cs.meta new file mode 100644 index 00000000..68ec83fd --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXBehaviorTree.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ceee003fce8590943a6092b4f3d5d790 +timeCreated: 1611465760 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXBuglyMgr.cs b/Client/Assets/Scripts/XUtliPoolLib/IXBuglyMgr.cs new file mode 100644 index 00000000..ba8c655e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXBuglyMgr.cs @@ -0,0 +1,9 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public interface IXBuglyMgr : IXInterface
+ {
+ void ReportCrashToBugly(string serverid, string rolename, uint rolelevel, int roleprof, string openid, string version, string realtime, string scenename, string sceneid, string content);
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXBuglyMgr.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IXBuglyMgr.cs.meta new file mode 100644 index 00000000..ddcf26c5 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXBuglyMgr.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b2f3c5ee740d89d419e2036291d1b983 +timeCreated: 1611465745 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXCamera.cs b/Client/Assets/Scripts/XUtliPoolLib/IXCamera.cs new file mode 100644 index 00000000..009626cb --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXCamera.cs @@ -0,0 +1,9 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public interface IXCamera : IXInterface
+ {
+ void DOFEnable(bool enabled);
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXCamera.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IXCamera.cs.meta new file mode 100644 index 00000000..11a8fc70 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXCamera.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: eef478c758a25a24fbc43fbfe1bdd027 +timeCreated: 1611465806 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXCurve.cs b/Client/Assets/Scripts/XUtliPoolLib/IXCurve.cs new file mode 100644 index 00000000..5694f2fd --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXCurve.cs @@ -0,0 +1,19 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public interface IXCurve
+ {
+ int length { get; }
+
+ float Evaluate(float time);
+
+ float GetValue(int index);
+
+ float GetTime(int index);
+
+ float GetMaxValue();
+
+ float GetLandValue();
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXCurve.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IXCurve.cs.meta new file mode 100644 index 00000000..b55a5a54 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXCurve.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: cdca7f647973f224a80b394257a2c916 +timeCreated: 1611465759 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXDragonExpedition.cs b/Client/Assets/Scripts/XUtliPoolLib/IXDragonExpedition.cs new file mode 100644 index 00000000..83b05196 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXDragonExpedition.cs @@ -0,0 +1,20 @@ +using System;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public interface IXDragonExpedition
+ {
+ void Drag(float delta);
+
+ void Assign(float delta);
+
+ GameObject Click();
+
+ Transform GetGO(string name);
+
+ void SetLimitPos(float MinPos);
+
+ Camera GetDragonCamera();
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXDragonExpedition.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IXDragonExpedition.cs.meta new file mode 100644 index 00000000..87c62817 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXDragonExpedition.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: e250b3725bac4bc46a68a2adc391f68a +timeCreated: 1611465800 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXDummy.cs b/Client/Assets/Scripts/XUtliPoolLib/IXDummy.cs new file mode 100644 index 00000000..35d35e90 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXDummy.cs @@ -0,0 +1,17 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public interface IXDummy
+ {
+ uint TypeID { get; }
+
+ ulong ID { get; }
+
+ bool Deprecated { get; set; }
+
+ void ResetAnimation();
+
+ void SetupUIDummy(bool ui);
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXDummy.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IXDummy.cs.meta new file mode 100644 index 00000000..404c5ebd --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXDummy.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 6aa1b1c3486e55d49a6f02d63a573798 +timeCreated: 1611465684 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXFmod.cs b/Client/Assets/Scripts/XUtliPoolLib/IXFmod.cs new file mode 100644 index 00000000..3a3246fd --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXFmod.cs @@ -0,0 +1,24 @@ +using System;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public interface IXFmod : IXInterface
+ {
+ void StartEvent(string key, AudioChannel channel = AudioChannel.Action, bool stopPre = true, string para = "", float value = 0f);
+
+ void Play(AudioChannel channel = AudioChannel.Action);
+
+ void Stop(AudioChannel channel = AudioChannel.Action);
+
+ bool IsPlaying(AudioChannel channel);
+
+ void Destroy();
+
+ void Update3DAttributes(Vector3 vec, AudioChannel channel = AudioChannel.Action);
+
+ void PlayOneShot(string key, Vector3 pos);
+
+ void Init(GameObject go, Rigidbody rigidbody);
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXFmod.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IXFmod.cs.meta new file mode 100644 index 00000000..1734cdf5 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXFmod.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 02592f784aac5f54ea434db11d3db751 +timeCreated: 1611465285 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXFmodBus.cs b/Client/Assets/Scripts/XUtliPoolLib/IXFmodBus.cs new file mode 100644 index 00000000..77bdc693 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXFmodBus.cs @@ -0,0 +1,22 @@ +using System;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public interface IXFmodBus : IXInterface
+ {
+ void SetBusVolume(string bus, float volume);
+
+ void SetMainVolume(float volume);
+
+ void SetBGMVolume(float volume);
+
+ void SetSFXVolume(float volume);
+
+ void PlayOneShot(string key, Vector3 pos);
+
+ void StartEvent(string key);
+
+ void StopEvent();
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXFmodBus.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IXFmodBus.cs.meta new file mode 100644 index 00000000..c662b5cf --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXFmodBus.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: fa80c770e61a49547beaf1f7e155f400 +timeCreated: 1611465810 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXGameSirControl.cs b/Client/Assets/Scripts/XUtliPoolLib/IXGameSirControl.cs new file mode 100644 index 00000000..6baa681e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXGameSirControl.cs @@ -0,0 +1,25 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public interface IXGameSirControl
+ {
+ bool IsOpen { get; }
+
+ void Init();
+
+ void StartSir();
+
+ void StopSir();
+
+ bool IsConnected();
+
+ int GetGameSirState();
+
+ bool GetButton(string buttonName);
+
+ float GetAxis(string axisName);
+
+ void ShowGameSirDialog();
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXGameSirControl.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IXGameSirControl.cs.meta new file mode 100644 index 00000000..77d95716 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXGameSirControl.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: add1b601117d78c49afeb8586486a394 +timeCreated: 1611465742 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXGameUI.cs b/Client/Assets/Scripts/XUtliPoolLib/IXGameUI.cs new file mode 100644 index 00000000..593a067d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXGameUI.cs @@ -0,0 +1,26 @@ +using System;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public interface IXGameUI : IXInterface
+ {
+ Transform UIRoot { get; set; }
+
+ GameObject[] buttonTpl { get; }
+
+ GameObject[] spriteTpl { get; }
+
+ GameObject DlgControllerTpl { get; }
+
+ int Base_UI_Width { get; set; }
+
+ int Base_UI_Height { get; set; }
+
+ Camera UICamera { get; set; }
+
+ void OnGenericClick();
+
+ void SetOverlayAlpha(float alpha);
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXGameUI.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IXGameUI.cs.meta new file mode 100644 index 00000000..f536c71c --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXGameUI.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f9ada18caa26c4e4b8813ae7201f297b +timeCreated: 1611465810 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXHUDDescription.cs b/Client/Assets/Scripts/XUtliPoolLib/IXHUDDescription.cs new file mode 100644 index 00000000..4929d0fa --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXHUDDescription.cs @@ -0,0 +1,14 @@ +using System;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public interface IXHUDDescription : IXInterface
+ {
+ AnimationCurve GetPosCurve();
+
+ AnimationCurve GetAlphaCurve();
+
+ AnimationCurve GetScaleCurve();
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXHUDDescription.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IXHUDDescription.cs.meta new file mode 100644 index 00000000..7847692e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXHUDDescription.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: da544c4884a84d34a82d594ec3d66c34 +timeCreated: 1611465765 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXIFlyMgr.cs b/Client/Assets/Scripts/XUtliPoolLib/IXIFlyMgr.cs new file mode 100644 index 00000000..d572083f --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXIFlyMgr.cs @@ -0,0 +1,56 @@ +using System;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public interface IXIFlyMgr : IXInterface
+ {
+ int StartRecord();
+
+ void StopRecord();
+
+ void Cancel();
+
+ string StartTransMp3(string destFileName);
+
+ AudioClip GetAudioClip(string filepath);
+
+ void SetCallback(Action<string> action);
+
+ void SetVoiceCallback(Action<string> action);
+
+ bool IsIFlyListening();
+
+ bool IsRecordFileExist();
+
+ bool IsInited();
+
+ bool ScreenShotQQShare(string filepath, string isZone);
+
+ bool ScreenShotWeChatShare(string filepath, string isZone);
+
+ bool ScreenShotSave(string filepath);
+
+ bool RefreshAndroidPhotoView(string androidpath);
+
+ bool ShareWechatLink(string desc, string logopath, string url, bool issession);
+
+ bool ShareWechatLinkWithMediaTag(string desc, string logopath, string url, bool issession, string media);
+
+ bool ShareQZoneLink(string title, string summary, string url, string logopath, bool issession);
+
+ bool OnOpenWebView();
+
+ void OnInitWebViewInfo(int platform, string openid, string serverid, string roleid, string nickname);
+
+ void OnEvalJsScript(string script);
+
+ void OnCloseWebView();
+
+ void OnScreenLock(bool islock);
+
+ void RefershWebViewShow(bool show);
+
+ MonoBehaviour GetMonoBehavior();
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXIFlyMgr.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IXIFlyMgr.cs.meta new file mode 100644 index 00000000..f1d89026 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXIFlyMgr.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2f2726282939e1e429888554520c16d7 +timeCreated: 1611465306 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXInterface.cs b/Client/Assets/Scripts/XUtliPoolLib/IXInterface.cs new file mode 100644 index 00000000..cf356b47 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXInterface.cs @@ -0,0 +1,9 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public interface IXInterface
+ {
+ bool Deprecated { get; set; }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXInterface.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IXInterface.cs.meta new file mode 100644 index 00000000..1e0c8acc --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXInterface.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 79897f3257e4f83498a4725b42c0cfe1 +timeCreated: 1611465692 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXNGUI.cs b/Client/Assets/Scripts/XUtliPoolLib/IXNGUI.cs new file mode 100644 index 00000000..cf9bc527 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXNGUI.cs @@ -0,0 +1,30 @@ +using System;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public interface IXNGUI : IXInterface
+ {
+ bool XNGUIEnable();
+
+ GameObject XNGUICreate(string locate);
+
+ GameObject XPrefabCreate(string locate);
+
+ bool XNGUIDestory(UnityEngine.Object o);
+
+ T XNGUIResource<T>(string locate, bool ignore_null) where T : UnityEngine.Object;
+
+ AssetBundleRequest XNGUISharedResourceAsync<T>(string locate, bool ignore_null = false) where T : UnityEngine.Object;
+
+ bool XNGUIIsDecompress();
+
+ bool XNGUIDecompressStreamAssets(Action<float> percent);
+
+ string XNGUIGetDecompressProgress();
+
+ bool XNGUIDecompressZipBytes(string zipFile, byte[] stream);
+
+ void XNGUIWWW(Action<string> errorinfo);
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXNGUI.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IXNGUI.cs.meta new file mode 100644 index 00000000..ba403081 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXNGUI.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 6a328a2483b4b484aa0affca9b3943b1 +timeCreated: 1611465684 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXNGUICallback.cs b/Client/Assets/Scripts/XUtliPoolLib/IXNGUICallback.cs new file mode 100644 index 00000000..e62c0c78 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXNGUICallback.cs @@ -0,0 +1,12 @@ +using System;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public interface IXNGUICallback
+ {
+ void RegisterClickEventHandler(IXNGUIClickEventHandler handler);
+
+ GameObject SetXUILable(string name, string content);
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXNGUICallback.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IXNGUICallback.cs.meta new file mode 100644 index 00000000..a5eade48 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXNGUICallback.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ccfd3fba1ca82b3489e153c5cc30f9fb +timeCreated: 1611465759 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXNGUIClickEventHandler.cs b/Client/Assets/Scripts/XUtliPoolLib/IXNGUIClickEventHandler.cs new file mode 100644 index 00000000..bfe050f6 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXNGUIClickEventHandler.cs @@ -0,0 +1,7 @@ +using System;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public delegate void IXNGUIClickEventHandler(GameObject obj, string clickpath);
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXNGUIClickEventHandler.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IXNGUIClickEventHandler.cs.meta new file mode 100644 index 00000000..c0cfea6e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXNGUIClickEventHandler.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ceccb84faf4cabc46be22a12564946a8 +timeCreated: 1611465760 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXNormalItemDrawer.cs b/Client/Assets/Scripts/XUtliPoolLib/IXNormalItemDrawer.cs new file mode 100644 index 00000000..4c7b5dca --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXNormalItemDrawer.cs @@ -0,0 +1,10 @@ +using System;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public interface IXNormalItemDrawer : IXInterface
+ {
+ void DrawItem(GameObject go, int itemID, int count, bool showCount);
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXNormalItemDrawer.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IXNormalItemDrawer.cs.meta new file mode 100644 index 00000000..84cadd26 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXNormalItemDrawer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 95822330efabd6c4d945ef57554cd83c +timeCreated: 1611465708 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXOperationRecord.cs b/Client/Assets/Scripts/XUtliPoolLib/IXOperationRecord.cs new file mode 100644 index 00000000..2081b440 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXOperationRecord.cs @@ -0,0 +1,10 @@ +using System;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public interface IXOperationRecord : IXInterface
+ {
+ int FindRecordID(Transform go);
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXOperationRecord.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IXOperationRecord.cs.meta new file mode 100644 index 00000000..815570c3 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXOperationRecord.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ddacc2eaac7f2f04c8fae6432b083d16 +timeCreated: 1611465797 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXPandoraMgr.cs b/Client/Assets/Scripts/XUtliPoolLib/IXPandoraMgr.cs new file mode 100644 index 00000000..0a74e6b6 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXPandoraMgr.cs @@ -0,0 +1,59 @@ +using System;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public interface IXPandoraMgr : IXInterface
+ {
+ void SetUseHttps(int use);
+
+ void PandoraLogin(string openid, string acctype, string area, string areaID, string appId, string roleID, string accessToken, string payToken, string gameVersion, string platID);
+
+ void PopPLPanel();
+
+ void CloseAllPandoraPanel();
+
+ void ClosePandoraTabPanel(string module);
+
+ void SetPandoraPanelParent(string panelName, GameObject panelParent);
+
+ void PandoraDo(Dictionary<string, string> commandDict);
+
+ void PandoraDoJson(string json);
+
+ void PandoraInit(bool isProductEnvironment, string rootName = "");
+
+ void PandoraLogout();
+
+ void SetFont(Font font);
+
+ void NoticePandoraShareResult(string result);
+
+ void LoadProgramAsset();
+
+ void SetUserData(Dictionary<string, string> data);
+
+ void SetGameCallback(Action<Dictionary<string, string>> callback);
+
+ void SetJsonGameCallback(Action<string> callback);
+
+ bool IsActivityTabShow(string tabName);
+
+ bool IsActivityTabShow(int sysID);
+
+ bool IsActivityTabShowByContent(string tabContent);
+
+ void PopPreLossActivity(bool pop);
+
+ void NoticePandoraBuyGoodsResult(string result);
+
+ List<ActivityTabInfo> GetAllTabInfo();
+
+ List<ActivityPopInfo> GetAllPopInfo();
+
+ void OnJsonPandoraEvent(string json);
+
+ Bounds GetBoundsIncludesChildren(Transform trans);
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXPandoraMgr.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IXPandoraMgr.cs.meta new file mode 100644 index 00000000..d2b5ed84 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXPandoraMgr.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a987845d036d8f44db639726c788d1c7 +timeCreated: 1611465739 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXPlayerAction.cs b/Client/Assets/Scripts/XUtliPoolLib/IXPlayerAction.cs new file mode 100644 index 00000000..44e42cb5 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXPlayerAction.cs @@ -0,0 +1,40 @@ +using System;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public interface IXPlayerAction : IXInterface
+ {
+ bool IsValid { get; }
+
+ void CameraWallEnter(AnimationCurve curve, Vector3 intersection, Vector3 cornerdir, float sector, float inDegree, float outDegree, bool positive);
+
+ void CameraWallExit(float angle);
+
+ void CameraWallVertical(float angle);
+
+ void SetExternalString(string exString, bool bOnce);
+
+ void TransferToSceneLocation(Vector3 pos, Vector3 forward);
+
+ void TransferToNewScene(uint sceneID);
+
+ void PlayCutScene(string cutscene);
+
+ void GotoBattle();
+
+ void GotoTerritoryBattle(int index);
+
+ void GotoNest();
+
+ void GotoFishing(int seatIndex, bool bFishing);
+
+ void GotoYororuya();
+
+ Vector3 PlayerPosition(bool notplayertrigger);
+
+ Vector3 PlayerLastPosition(bool notplayertrigger);
+
+ void RefreshPosition();
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXPlayerAction.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IXPlayerAction.cs.meta new file mode 100644 index 00000000..3e2674a6 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXPlayerAction.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4600c8a54cba4654d948fa1e5a19d68b +timeCreated: 1611465638 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXPositionGroup.cs b/Client/Assets/Scripts/XUtliPoolLib/IXPositionGroup.cs new file mode 100644 index 00000000..b7fa3b70 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXPositionGroup.cs @@ -0,0 +1,12 @@ +using System;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public interface IXPositionGroup
+ {
+ void SetGroup(int index);
+
+ Vector3 GetGroup(int index);
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXPositionGroup.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IXPositionGroup.cs.meta new file mode 100644 index 00000000..efaa982e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXPositionGroup.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 271b40cd4214218408a9ada0045687eb +timeCreated: 1611465301 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXRedpointDirtyMgr.cs b/Client/Assets/Scripts/XUtliPoolLib/IXRedpointDirtyMgr.cs new file mode 100644 index 00000000..f4e01de6 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXRedpointDirtyMgr.cs @@ -0,0 +1,9 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ internal interface IXRedpointDirtyMgr
+ {
+ void RecalculateRedPointState(int sys, bool bImmUpdateUI = true);
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXRedpointDirtyMgr.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IXRedpointDirtyMgr.cs.meta new file mode 100644 index 00000000..92ff45d4 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXRedpointDirtyMgr.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 44b5d00051449084c8cb74f65d44ba8d +timeCreated: 1611465637 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXRedpointExMgr.cs b/Client/Assets/Scripts/XUtliPoolLib/IXRedpointExMgr.cs new file mode 100644 index 00000000..856c2c9e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXRedpointExMgr.cs @@ -0,0 +1,13 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ internal interface IXRedpointExMgr : IXRedpointMgr, IXRedpointRelationMgr, IXRedpointForbidMgr
+ {
+ void SetCurrentLevel(uint level);
+
+ void AddSysForbidLevels(int sys, uint level);
+
+ void RemoveSysForbidLevels(int sys, uint level);
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXRedpointExMgr.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IXRedpointExMgr.cs.meta new file mode 100644 index 00000000..a01ad6db --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXRedpointExMgr.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 9674a00f771f3de4881c797a783a443c +timeCreated: 1611465708 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXRedpointForbidMgr.cs b/Client/Assets/Scripts/XUtliPoolLib/IXRedpointForbidMgr.cs new file mode 100644 index 00000000..7062340a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXRedpointForbidMgr.cs @@ -0,0 +1,17 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ internal interface IXRedpointForbidMgr
+ {
+ void AddForbid(int sys, bool bImmUpdateUI = true);
+
+ void AddForbids(int[] systems, bool bImmUpdateUI = true);
+
+ void RemoveForbid(int sys, bool bImmUpdateUI = true);
+
+ void RemoveForbids(int[] systems, bool bImmUpdateUI = true);
+
+ void ClearForbids(bool bImmUpdateUI = true);
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXRedpointForbidMgr.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IXRedpointForbidMgr.cs.meta new file mode 100644 index 00000000..aac2cb97 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXRedpointForbidMgr.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 93469c20c1bc8d743be1519e7da0c729 +timeCreated: 1611465706 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXRedpointMgr.cs b/Client/Assets/Scripts/XUtliPoolLib/IXRedpointMgr.cs new file mode 100644 index 00000000..d64e0c46 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXRedpointMgr.cs @@ -0,0 +1,18 @@ +using System;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ internal interface IXRedpointMgr : IXRedpointRelationMgr, IXRedpointForbidMgr
+ {
+ void AddSysRedpointUI(int sys, GameObject go, SetRedpointUIHandler callback = null);
+
+ void RemoveSysRedpointUI(int sys, GameObject go);
+
+ void RemoveAllSysRedpointsUI(int sys);
+
+ void ClearAllSysRedpointsUI();
+
+ void SetSysRedpointState(int sys, bool redpoint, bool bImmUpdateUI = true);
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXRedpointMgr.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IXRedpointMgr.cs.meta new file mode 100644 index 00000000..32aa3e45 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXRedpointMgr.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: e4bf011f29f83a045939f3f7644a19f1 +timeCreated: 1611465801 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXRedpointRelationMgr.cs b/Client/Assets/Scripts/XUtliPoolLib/IXRedpointRelationMgr.cs new file mode 100644 index 00000000..3442242d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXRedpointRelationMgr.cs @@ -0,0 +1,19 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ internal interface IXRedpointRelationMgr
+ {
+ void AddRelation(int child, int parent, bool bImmUpdateUI = false);
+
+ void AddRelations(int child, int[] parents, bool bImmUpdateUI = false);
+
+ void RemoveRelation(int child, int parent, bool bImmUpdateUI = false);
+
+ void RemoveRelations(int child, int[] parents, bool bImmUpdateUI = false);
+
+ void RemoveAllRelations(int child, bool bImmUpdateUI = false);
+
+ void ClearAllRelations(bool bImmUpdateUI = false);
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXRedpointRelationMgr.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IXRedpointRelationMgr.cs.meta new file mode 100644 index 00000000..e78f6099 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXRedpointRelationMgr.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 432d9b133c4234c4383f68c4f0d02dc5 +timeCreated: 1611465636 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXScene.cs b/Client/Assets/Scripts/XUtliPoolLib/IXScene.cs new file mode 100644 index 00000000..33c5a2e9 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXScene.cs @@ -0,0 +1,13 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public interface IXScene
+ {
+ bool XSceneLoadScene(string scenename, Action<float> progress);
+
+ bool XSceneIsDone();
+
+ bool XSceneEnable(string scenename);
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXScene.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IXScene.cs.meta new file mode 100644 index 00000000..589e703c --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXScene.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4072242d02dc3b641b1b3065e895f9fb +timeCreated: 1611465635 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXSceneOperation.cs b/Client/Assets/Scripts/XUtliPoolLib/IXSceneOperation.cs new file mode 100644 index 00000000..32448050 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXSceneOperation.cs @@ -0,0 +1,9 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public interface IXSceneOperation : IXInterface
+ {
+ void SetLightMap();
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXSceneOperation.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IXSceneOperation.cs.meta new file mode 100644 index 00000000..2a202ee0 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXSceneOperation.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: e9129bccf68b74d4db72bd377b2dac8c +timeCreated: 1611465803 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXTutorial.cs b/Client/Assets/Scripts/XUtliPoolLib/IXTutorial.cs new file mode 100644 index 00000000..c6f2a9a8 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXTutorial.cs @@ -0,0 +1,13 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public interface IXTutorial : IXInterface
+ {
+ bool NoforceClick { get; }
+
+ bool Exculsive { get; }
+
+ void OnTutorialClicked();
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXTutorial.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IXTutorial.cs.meta new file mode 100644 index 00000000..2d3f7409 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXTutorial.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 3f5d2e64015073941b0e32005d82fd8a +timeCreated: 1611465634 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXTweenFadeIn.cs b/Client/Assets/Scripts/XUtliPoolLib/IXTweenFadeIn.cs new file mode 100644 index 00000000..090db05d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXTweenFadeIn.cs @@ -0,0 +1,11 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public interface IXTweenFadeIn
+ {
+ void PlayFadeIn();
+
+ void ResetGroupDelay();
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXTweenFadeIn.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IXTweenFadeIn.cs.meta new file mode 100644 index 00000000..0a36e1df --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXTweenFadeIn.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 76848651b489df54e96497aab0d6d9a5 +timeCreated: 1611465689 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXVideo.cs b/Client/Assets/Scripts/XUtliPoolLib/IXVideo.cs new file mode 100644 index 00000000..b306dd38 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXVideo.cs @@ -0,0 +1,13 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public interface IXVideo : IXInterface
+ {
+ bool isPlaying { get; }
+
+ void Play(bool loop = false);
+
+ void Stop();
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/IXVideo.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/IXVideo.cs.meta new file mode 100644 index 00000000..de717a48 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/IXVideo.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 440e894e41f22de4389e77aef5e97f39 +timeCreated: 1611465637 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic.meta b/Client/Assets/Scripts/XUtliPoolLib/Ionic.meta new file mode 100644 index 00000000..232202c1 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 99bc0df6913d3894f8762052e9fb42b9 +folderAsset: yes +timeCreated: 1611465283 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Crc.meta b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Crc.meta new file mode 100644 index 00000000..6d786460 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Crc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 058a44ad22d74f1458b1d9515bf232c2 +folderAsset: yes +timeCreated: 1611465283 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Crc/CRC32.cs b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Crc/CRC32.cs new file mode 100644 index 00000000..c73c17eb --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Crc/CRC32.cs @@ -0,0 +1,286 @@ +using System;
+using System.IO;
+using System.Runtime.InteropServices;
+
+namespace Ionic.Crc
+{
+ [Guid("ebc25cf6-9120-4283-b972-0e5520d0000C")]
+ [ComVisible(true)]
+ [ClassInterface(ClassInterfaceType.AutoDispatch)]
+ public class CRC32
+ {
+ public long TotalBytesRead
+ {
+ get
+ {
+ return this._TotalBytesRead;
+ }
+ }
+
+ public int Crc32Result
+ {
+ get
+ {
+ return (int)(~(int)this._register);
+ }
+ }
+
+ private uint dwPolynomial;
+
+ private long _TotalBytesRead;
+
+ private bool reverseBits;
+
+ private uint[] crc32Table;
+
+ private const int BUFFER_SIZE = 8192;
+
+ private uint _register = uint.MaxValue;
+
+ public int GetCrc32(Stream input)
+ {
+ return this.GetCrc32AndCopy(input, null);
+ }
+
+ public int GetCrc32AndCopy(Stream input, Stream output)
+ {
+ bool flag = input == null;
+ if (flag)
+ {
+ throw new Exception("The input stream must not be null.");
+ }
+ byte[] array = new byte[8192];
+ int count = 8192;
+ this._TotalBytesRead = 0L;
+ int i = input.Read(array, 0, count);
+ bool flag2 = output != null;
+ if (flag2)
+ {
+ output.Write(array, 0, i);
+ }
+ this._TotalBytesRead += (long)i;
+ while (i > 0)
+ {
+ this.SlurpBlock(array, 0, i);
+ i = input.Read(array, 0, count);
+ bool flag3 = output != null;
+ if (flag3)
+ {
+ output.Write(array, 0, i);
+ }
+ this._TotalBytesRead += (long)i;
+ }
+ return (int)(~(int)this._register);
+ }
+
+ public int ComputeCrc32(int W, byte B)
+ {
+ return this._InternalComputeCrc32((uint)W, B);
+ }
+
+ internal int _InternalComputeCrc32(uint W, byte B)
+ {
+ return (int)(this.crc32Table[(int)((W ^ (uint)B) & 255u)] ^ W >> 8);
+ }
+
+ public void SlurpBlock(byte[] block, int offset, int count)
+ {
+ bool flag = block == null;
+ if (flag)
+ {
+ throw new Exception("The data buffer must not be null.");
+ }
+ for (int i = 0; i < count; i++)
+ {
+ int num = offset + i;
+ byte b = block[num];
+ bool flag2 = this.reverseBits;
+ if (flag2)
+ {
+ uint num2 = this._register >> 24 ^ (uint)b;
+ this._register = (this._register << 8 ^ this.crc32Table[(int)num2]);
+ }
+ else
+ {
+ uint num3 = (this._register & 255u) ^ (uint)b;
+ this._register = (this._register >> 8 ^ this.crc32Table[(int)num3]);
+ }
+ }
+ this._TotalBytesRead += (long)count;
+ }
+
+ public void UpdateCRC(byte b)
+ {
+ bool flag = this.reverseBits;
+ if (flag)
+ {
+ uint num = this._register >> 24 ^ (uint)b;
+ this._register = (this._register << 8 ^ this.crc32Table[(int)num]);
+ }
+ else
+ {
+ uint num2 = (this._register & 255u) ^ (uint)b;
+ this._register = (this._register >> 8 ^ this.crc32Table[(int)num2]);
+ }
+ }
+
+ public void UpdateCRC(byte b, int n)
+ {
+ while (n-- > 0)
+ {
+ bool flag = this.reverseBits;
+ if (flag)
+ {
+ uint num = this._register >> 24 ^ (uint)b;
+ this._register = (this._register << 8 ^ this.crc32Table[(int)((num >= 0u) ? num : (num + 256u))]);
+ }
+ else
+ {
+ uint num2 = (this._register & 255u) ^ (uint)b;
+ this._register = (this._register >> 8 ^ this.crc32Table[(int)((num2 >= 0u) ? num2 : (num2 + 256u))]);
+ }
+ }
+ }
+
+ private static uint ReverseBits(uint data)
+ {
+ uint num = (data & 1431655765u) << 1 | (data >> 1 & 1431655765u);
+ num = ((num & 858993459u) << 2 | (num >> 2 & 858993459u));
+ num = ((num & 252645135u) << 4 | (num >> 4 & 252645135u));
+ return num << 24 | (num & 65280u) << 8 | (num >> 8 & 65280u) | num >> 24;
+ }
+
+ private static byte ReverseBits(byte data)
+ {
+ uint num = (uint)data * 131586u;
+ uint num2 = 17055760u;
+ uint num3 = num & num2;
+ uint num4 = num << 2 & num2 << 1;
+ return (byte)(16781313u * (num3 + num4) >> 24);
+ }
+
+ private void GenerateLookupTable()
+ {
+ this.crc32Table = new uint[256];
+ byte b = 0;
+ do
+ {
+ uint num = (uint)b;
+ for (byte b2 = 8; b2 > 0; b2 -= 1)
+ {
+ bool flag = (num & 1u) == 1u;
+ if (flag)
+ {
+ num = (num >> 1 ^ this.dwPolynomial);
+ }
+ else
+ {
+ num >>= 1;
+ }
+ }
+ bool flag2 = this.reverseBits;
+ if (flag2)
+ {
+ this.crc32Table[(int)CRC32.ReverseBits(b)] = CRC32.ReverseBits(num);
+ }
+ else
+ {
+ this.crc32Table[(int)b] = num;
+ }
+ b += 1;
+ }
+ while (b > 0);
+ }
+
+ private uint gf2_matrix_times(uint[] matrix, uint vec)
+ {
+ uint num = 0u;
+ int num2 = 0;
+ while (vec > 0u)
+ {
+ bool flag = (vec & 1u) == 1u;
+ if (flag)
+ {
+ num ^= matrix[num2];
+ }
+ vec >>= 1;
+ num2++;
+ }
+ return num;
+ }
+
+ private void gf2_matrix_square(uint[] square, uint[] mat)
+ {
+ for (int i = 0; i < 32; i++)
+ {
+ square[i] = this.gf2_matrix_times(mat, mat[i]);
+ }
+ }
+
+ public void Combine(int crc, int length)
+ {
+ uint[] array = new uint[32];
+ uint[] array2 = new uint[32];
+ bool flag = length == 0;
+ if (!flag)
+ {
+ uint num = ~this._register;
+ array2[0] = this.dwPolynomial;
+ uint num2 = 1u;
+ for (int i = 1; i < 32; i++)
+ {
+ array2[i] = num2;
+ num2 <<= 1;
+ }
+ this.gf2_matrix_square(array, array2);
+ this.gf2_matrix_square(array2, array);
+ uint num3 = (uint)length;
+ do
+ {
+ this.gf2_matrix_square(array, array2);
+ bool flag2 = (num3 & 1u) == 1u;
+ if (flag2)
+ {
+ num = this.gf2_matrix_times(array, num);
+ }
+ num3 >>= 1;
+ bool flag3 = num3 == 0u;
+ if (flag3)
+ {
+ break;
+ }
+ this.gf2_matrix_square(array2, array);
+ bool flag4 = (num3 & 1u) == 1u;
+ if (flag4)
+ {
+ num = this.gf2_matrix_times(array2, num);
+ }
+ num3 >>= 1;
+ }
+ while (num3 > 0u);
+ num ^= (uint)crc;
+ this._register = ~num;
+ }
+ }
+
+ public CRC32() : this(false)
+ {
+ }
+
+ public CRC32(bool reverseBits) : this(-306674912, reverseBits)
+ {
+ }
+
+ public CRC32(int polynomial, bool reverseBits)
+ {
+ this.reverseBits = reverseBits;
+ this.dwPolynomial = (uint)polynomial;
+ this.GenerateLookupTable();
+ }
+
+ public void Reset()
+ {
+ this._register = uint.MaxValue;
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Crc/CRC32.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Crc/CRC32.cs.meta new file mode 100644 index 00000000..15ba7c25 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Crc/CRC32.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: e7561e05e3adb2248a384ca19e751de7 +timeCreated: 1611465802 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Crc/CrcCalculatorStream.cs b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Crc/CrcCalculatorStream.cs new file mode 100644 index 00000000..fb6dc520 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Crc/CrcCalculatorStream.cs @@ -0,0 +1,210 @@ +using System;
+using System.IO;
+
+namespace Ionic.Crc
+{
+ public class CrcCalculatorStream : Stream, IDisposable
+ {
+ public long TotalBytesSlurped
+ {
+ get
+ {
+ return this._Crc32.TotalBytesRead;
+ }
+ }
+
+ public int Crc
+ {
+ get
+ {
+ return this._Crc32.Crc32Result;
+ }
+ }
+
+ public bool LeaveOpen
+ {
+ get
+ {
+ return this._leaveOpen;
+ }
+ set
+ {
+ this._leaveOpen = value;
+ }
+ }
+
+ public override bool CanRead
+ {
+ get
+ {
+ return this._innerStream.CanRead;
+ }
+ }
+
+ public override bool CanSeek
+ {
+ get
+ {
+ return false;
+ }
+ }
+
+ public override bool CanWrite
+ {
+ get
+ {
+ return this._innerStream.CanWrite;
+ }
+ }
+
+ public override long Length
+ {
+ get
+ {
+ bool flag = this._lengthLimit == CrcCalculatorStream.UnsetLengthLimit;
+ long result;
+ if (flag)
+ {
+ result = this._innerStream.Length;
+ }
+ else
+ {
+ result = this._lengthLimit;
+ }
+ return result;
+ }
+ }
+
+ public override long Position
+ {
+ get
+ {
+ return this._Crc32.TotalBytesRead;
+ }
+ set
+ {
+ throw new NotSupportedException();
+ }
+ }
+
+ private static readonly long UnsetLengthLimit = -99L;
+
+ internal Stream _innerStream;
+
+ private CRC32 _Crc32;
+
+ private long _lengthLimit = -99L;
+
+ private bool _leaveOpen;
+
+ public CrcCalculatorStream(Stream stream) : this(true, CrcCalculatorStream.UnsetLengthLimit, stream, null)
+ {
+ }
+
+ public CrcCalculatorStream(Stream stream, bool leaveOpen) : this(leaveOpen, CrcCalculatorStream.UnsetLengthLimit, stream, null)
+ {
+ }
+
+ public CrcCalculatorStream(Stream stream, long length) : this(true, length, stream, null)
+ {
+ bool flag = length < 0L;
+ if (flag)
+ {
+ throw new ArgumentException("length");
+ }
+ }
+
+ public CrcCalculatorStream(Stream stream, long length, bool leaveOpen) : this(leaveOpen, length, stream, null)
+ {
+ bool flag = length < 0L;
+ if (flag)
+ {
+ throw new ArgumentException("length");
+ }
+ }
+
+ public CrcCalculatorStream(Stream stream, long length, bool leaveOpen, CRC32 crc32) : this(leaveOpen, length, stream, crc32)
+ {
+ bool flag = length < 0L;
+ if (flag)
+ {
+ throw new ArgumentException("length");
+ }
+ }
+
+ private CrcCalculatorStream(bool leaveOpen, long length, Stream stream, CRC32 crc32)
+ {
+ this._innerStream = stream;
+ this._Crc32 = (crc32 ?? new CRC32());
+ this._lengthLimit = length;
+ this._leaveOpen = leaveOpen;
+ }
+
+ public override int Read(byte[] buffer, int offset, int count)
+ {
+ int count2 = count;
+ bool flag = this._lengthLimit != CrcCalculatorStream.UnsetLengthLimit;
+ if (flag)
+ {
+ bool flag2 = this._Crc32.TotalBytesRead >= this._lengthLimit;
+ if (flag2)
+ {
+ return 0;
+ }
+ long num = this._lengthLimit - this._Crc32.TotalBytesRead;
+ bool flag3 = num < (long)count;
+ if (flag3)
+ {
+ count2 = (int)num;
+ }
+ }
+ int num2 = this._innerStream.Read(buffer, offset, count2);
+ bool flag4 = num2 > 0;
+ if (flag4)
+ {
+ this._Crc32.SlurpBlock(buffer, offset, num2);
+ }
+ return num2;
+ }
+
+ public override void Write(byte[] buffer, int offset, int count)
+ {
+ bool flag = count > 0;
+ if (flag)
+ {
+ this._Crc32.SlurpBlock(buffer, offset, count);
+ }
+ this._innerStream.Write(buffer, offset, count);
+ }
+
+ public override void Flush()
+ {
+ this._innerStream.Flush();
+ }
+
+ public override long Seek(long offset, SeekOrigin origin)
+ {
+ throw new NotSupportedException();
+ }
+
+ public override void SetLength(long value)
+ {
+ throw new NotSupportedException();
+ }
+
+ void IDisposable.Dispose()
+ {
+ this.Close();
+ }
+
+ public override void Close()
+ {
+ base.Close();
+ bool flag = !this._leaveOpen;
+ if (flag)
+ {
+ this._innerStream.Close();
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Crc/CrcCalculatorStream.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Crc/CrcCalculatorStream.cs.meta new file mode 100644 index 00000000..7004d0d4 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Crc/CrcCalculatorStream.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 997359f18cd5d9f4eb28827ec896167a +timeCreated: 1611465710 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib.meta b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib.meta new file mode 100644 index 00000000..6d828dab --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: daa797353e7a07b42baaba72ced4a26b +folderAsset: yes +timeCreated: 1611465283 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/Adler.cs b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/Adler.cs new file mode 100644 index 00000000..f58e0e4a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/Adler.cs @@ -0,0 +1,81 @@ +using System;
+
+namespace Ionic.Zlib
+{
+ public sealed class Adler
+ {
+ private static readonly uint BASE = 65521u;
+
+ private static readonly int NMAX = 5552;
+
+ public static uint Adler32(uint adler, byte[] buf, int index, int len)
+ {
+ bool flag = buf == null;
+ uint result;
+ if (flag)
+ {
+ result = 1u;
+ }
+ else
+ {
+ uint num = adler & 65535u;
+ uint num2 = adler >> 16 & 65535u;
+ while (len > 0)
+ {
+ int i = (len < Adler.NMAX) ? len : Adler.NMAX;
+ len -= i;
+ while (i >= 16)
+ {
+ num += (uint)buf[index++];
+ num2 += num;
+ num += (uint)buf[index++];
+ num2 += num;
+ num += (uint)buf[index++];
+ num2 += num;
+ num += (uint)buf[index++];
+ num2 += num;
+ num += (uint)buf[index++];
+ num2 += num;
+ num += (uint)buf[index++];
+ num2 += num;
+ num += (uint)buf[index++];
+ num2 += num;
+ num += (uint)buf[index++];
+ num2 += num;
+ num += (uint)buf[index++];
+ num2 += num;
+ num += (uint)buf[index++];
+ num2 += num;
+ num += (uint)buf[index++];
+ num2 += num;
+ num += (uint)buf[index++];
+ num2 += num;
+ num += (uint)buf[index++];
+ num2 += num;
+ num += (uint)buf[index++];
+ num2 += num;
+ num += (uint)buf[index++];
+ num2 += num;
+ num += (uint)buf[index++];
+ num2 += num;
+ i -= 16;
+ }
+ bool flag2 = i != 0;
+ if (flag2)
+ {
+ do
+ {
+ num += (uint)buf[index++];
+ num2 += num;
+ }
+ while (--i != 0);
+ }
+ num %= Adler.BASE;
+ num2 %= Adler.BASE;
+ }
+ result = (num2 << 16 | num);
+ }
+ return result;
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/Adler.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/Adler.cs.meta new file mode 100644 index 00000000..3847336e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/Adler.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b41ba122cd186414691f6541fad6c9a4 +timeCreated: 1611465745 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/BlockState.cs b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/BlockState.cs new file mode 100644 index 00000000..821394fd --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/BlockState.cs @@ -0,0 +1,12 @@ +using System;
+
+namespace Ionic.Zlib
+{
+ internal enum BlockState
+ {
+ NeedMore,
+ BlockDone,
+ FinishStarted,
+ FinishDone
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/BlockState.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/BlockState.cs.meta new file mode 100644 index 00000000..21ad02f0 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/BlockState.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 68827052e097f0a47ad03b99e6ebc69b +timeCreated: 1611465683 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/CompressionLevel.cs b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/CompressionLevel.cs new file mode 100644 index 00000000..7b9dfefa --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/CompressionLevel.cs @@ -0,0 +1,22 @@ +using System;
+
+namespace Ionic.Zlib
+{
+ public enum CompressionLevel
+ {
+ None,
+ Level0 = 0,
+ BestSpeed,
+ Level1 = 1,
+ Level2,
+ Level3,
+ Level4,
+ Level5,
+ Default,
+ Level6 = 6,
+ Level7,
+ Level8,
+ BestCompression,
+ Level9 = 9
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/CompressionLevel.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/CompressionLevel.cs.meta new file mode 100644 index 00000000..01346c39 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/CompressionLevel.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 84e41608826132c4a92549cfdc37f19d +timeCreated: 1611465695 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/CompressionMode.cs b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/CompressionMode.cs new file mode 100644 index 00000000..60c9981c --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/CompressionMode.cs @@ -0,0 +1,10 @@ +using System;
+
+namespace Ionic.Zlib
+{
+ public enum CompressionMode
+ {
+ Compress,
+ Decompress
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/CompressionMode.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/CompressionMode.cs.meta new file mode 100644 index 00000000..987fd513 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/CompressionMode.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 33117e8b329a46e4ba3118e4cc32200d +timeCreated: 1611465310 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/CompressionStrategy.cs b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/CompressionStrategy.cs new file mode 100644 index 00000000..30e740d8 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/CompressionStrategy.cs @@ -0,0 +1,11 @@ +using System;
+
+namespace Ionic.Zlib
+{
+ public enum CompressionStrategy
+ {
+ Default,
+ Filtered,
+ HuffmanOnly
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/CompressionStrategy.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/CompressionStrategy.cs.meta new file mode 100644 index 00000000..7684d477 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/CompressionStrategy.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 726df2559ddc4e748a2f85bac5421329 +timeCreated: 1611465688 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/DeflateFlavor.cs b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/DeflateFlavor.cs new file mode 100644 index 00000000..46f9234a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/DeflateFlavor.cs @@ -0,0 +1,11 @@ +using System;
+
+namespace Ionic.Zlib
+{
+ internal enum DeflateFlavor
+ {
+ Store,
+ Fast,
+ Slow
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/DeflateFlavor.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/DeflateFlavor.cs.meta new file mode 100644 index 00000000..cc9fa9df --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/DeflateFlavor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2a0eff7773320894e9ae38e9438d323e +timeCreated: 1611465303 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/DeflateManager.cs b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/DeflateManager.cs new file mode 100644 index 00000000..45f89851 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/DeflateManager.cs @@ -0,0 +1,1592 @@ +using System;
+
+namespace Ionic.Zlib
+{
+ internal sealed class DeflateManager
+ {
+ internal bool WantRfc1950HeaderBytes
+ {
+ get
+ {
+ return this._WantRfc1950HeaderBytes;
+ }
+ set
+ {
+ this._WantRfc1950HeaderBytes = value;
+ }
+ }
+
+ private static readonly int MEM_LEVEL_MAX = 9;
+
+ private static readonly int MEM_LEVEL_DEFAULT = 8;
+
+ private DeflateManager.CompressFunc DeflateFunction;
+
+ private static readonly string[] _ErrorMessage = new string[]
+ {
+ "need dictionary",
+ "stream end",
+ "",
+ "file error",
+ "stream error",
+ "data error",
+ "insufficient memory",
+ "buffer error",
+ "incompatible version",
+ ""
+ };
+
+ private static readonly int PRESET_DICT = 32;
+
+ private static readonly int INIT_STATE = 42;
+
+ private static readonly int BUSY_STATE = 113;
+
+ private static readonly int FINISH_STATE = 666;
+
+ private static readonly int Z_DEFLATED = 8;
+
+ private static readonly int STORED_BLOCK = 0;
+
+ private static readonly int STATIC_TREES = 1;
+
+ private static readonly int DYN_TREES = 2;
+
+ private static readonly int Z_BINARY = 0;
+
+ private static readonly int Z_ASCII = 1;
+
+ private static readonly int Z_UNKNOWN = 2;
+
+ private static readonly int Buf_size = 16;
+
+ private static readonly int MIN_MATCH = 3;
+
+ private static readonly int MAX_MATCH = 258;
+
+ private static readonly int MIN_LOOKAHEAD = DeflateManager.MAX_MATCH + DeflateManager.MIN_MATCH + 1;
+
+ private static readonly int HEAP_SIZE = 2 * InternalConstants.L_CODES + 1;
+
+ private static readonly int END_BLOCK = 256;
+
+ internal ZlibCodec _codec;
+
+ internal int status;
+
+ internal byte[] pending;
+
+ internal int nextPending;
+
+ internal int pendingCount;
+
+ internal sbyte data_type;
+
+ internal int last_flush;
+
+ internal int w_size;
+
+ internal int w_bits;
+
+ internal int w_mask;
+
+ internal byte[] window;
+
+ internal int window_size;
+
+ internal short[] prev;
+
+ internal short[] head;
+
+ internal int ins_h;
+
+ internal int hash_size;
+
+ internal int hash_bits;
+
+ internal int hash_mask;
+
+ internal int hash_shift;
+
+ internal int block_start;
+
+ private DeflateManager.Config config;
+
+ internal int match_length;
+
+ internal int prev_match;
+
+ internal int match_available;
+
+ internal int strstart;
+
+ internal int match_start;
+
+ internal int lookahead;
+
+ internal int prev_length;
+
+ internal CompressionLevel compressionLevel;
+
+ internal CompressionStrategy compressionStrategy;
+
+ internal short[] dyn_ltree;
+
+ internal short[] dyn_dtree;
+
+ internal short[] bl_tree;
+
+ internal Tree treeLiterals = new Tree();
+
+ internal Tree treeDistances = new Tree();
+
+ internal Tree treeBitLengths = new Tree();
+
+ internal short[] bl_count = new short[InternalConstants.MAX_BITS + 1];
+
+ internal int[] heap = new int[2 * InternalConstants.L_CODES + 1];
+
+ internal int heap_len;
+
+ internal int heap_max;
+
+ internal sbyte[] depth = new sbyte[2 * InternalConstants.L_CODES + 1];
+
+ internal int _lengthOffset;
+
+ internal int lit_bufsize;
+
+ internal int last_lit;
+
+ internal int _distanceOffset;
+
+ internal int opt_len;
+
+ internal int static_len;
+
+ internal int matches;
+
+ internal int last_eob_len;
+
+ internal short bi_buf;
+
+ internal int bi_valid;
+
+ private bool Rfc1950BytesEmitted = false;
+
+ private bool _WantRfc1950HeaderBytes = true;
+
+ internal delegate BlockState CompressFunc(FlushType flush);
+
+ internal class Config
+ {
+ internal int GoodLength;
+
+ internal int MaxLazy;
+
+ internal int NiceLength;
+
+ internal int MaxChainLength;
+
+ internal DeflateFlavor Flavor;
+
+ private static readonly DeflateManager.Config[] Table = new DeflateManager.Config[]
+ {
+ new DeflateManager.Config(0, 0, 0, 0, DeflateFlavor.Store),
+ new DeflateManager.Config(4, 4, 8, 4, DeflateFlavor.Fast),
+ new DeflateManager.Config(4, 5, 16, 8, DeflateFlavor.Fast),
+ new DeflateManager.Config(4, 6, 32, 32, DeflateFlavor.Fast),
+ new DeflateManager.Config(4, 4, 16, 16, DeflateFlavor.Slow),
+ new DeflateManager.Config(8, 16, 32, 32, DeflateFlavor.Slow),
+ new DeflateManager.Config(8, 16, 128, 128, DeflateFlavor.Slow),
+ new DeflateManager.Config(8, 32, 128, 256, DeflateFlavor.Slow),
+ new DeflateManager.Config(32, 128, 258, 1024, DeflateFlavor.Slow),
+ new DeflateManager.Config(32, 258, 258, 4096, DeflateFlavor.Slow)
+ };
+
+ private Config(int goodLength, int maxLazy, int niceLength, int maxChainLength, DeflateFlavor flavor)
+ {
+ this.GoodLength = goodLength;
+ this.MaxLazy = maxLazy;
+ this.NiceLength = niceLength;
+ this.MaxChainLength = maxChainLength;
+ this.Flavor = flavor;
+ }
+
+ public static DeflateManager.Config Lookup(CompressionLevel level)
+ {
+ return DeflateManager.Config.Table[(int)level];
+ }
+ }
+
+ internal DeflateManager()
+ {
+ this.dyn_ltree = new short[DeflateManager.HEAP_SIZE * 2];
+ this.dyn_dtree = new short[(2 * InternalConstants.D_CODES + 1) * 2];
+ this.bl_tree = new short[(2 * InternalConstants.BL_CODES + 1) * 2];
+ }
+
+ private void _InitializeLazyMatch(bool setDeflater)
+ {
+ this.window_size = 2 * this.w_size;
+ Array.Clear(this.head, 0, this.hash_size);
+ this.config = DeflateManager.Config.Lookup(this.compressionLevel);
+ if (setDeflater)
+ {
+ this.SetDeflater();
+ }
+ this.strstart = 0;
+ this.block_start = 0;
+ this.lookahead = 0;
+ this.match_length = (this.prev_length = DeflateManager.MIN_MATCH - 1);
+ this.match_available = 0;
+ this.ins_h = 0;
+ }
+
+ private void _InitializeTreeData()
+ {
+ this.treeLiterals.dyn_tree = this.dyn_ltree;
+ this.treeLiterals.staticTree = StaticTree.Literals;
+ this.treeDistances.dyn_tree = this.dyn_dtree;
+ this.treeDistances.staticTree = StaticTree.Distances;
+ this.treeBitLengths.dyn_tree = this.bl_tree;
+ this.treeBitLengths.staticTree = StaticTree.BitLengths;
+ this.bi_buf = 0;
+ this.bi_valid = 0;
+ this.last_eob_len = 8;
+ this._InitializeBlocks();
+ }
+
+ internal void _InitializeBlocks()
+ {
+ for (int i = 0; i < InternalConstants.L_CODES; i++)
+ {
+ this.dyn_ltree[i * 2] = 0;
+ }
+ for (int j = 0; j < InternalConstants.D_CODES; j++)
+ {
+ this.dyn_dtree[j * 2] = 0;
+ }
+ for (int k = 0; k < InternalConstants.BL_CODES; k++)
+ {
+ this.bl_tree[k * 2] = 0;
+ }
+ this.dyn_ltree[DeflateManager.END_BLOCK * 2] = 1;
+ this.opt_len = (this.static_len = 0);
+ this.last_lit = (this.matches = 0);
+ }
+
+ internal void pqdownheap(short[] tree, int k)
+ {
+ int num = this.heap[k];
+ for (int i = k << 1; i <= this.heap_len; i <<= 1)
+ {
+ bool flag = i < this.heap_len && DeflateManager._IsSmaller(tree, this.heap[i + 1], this.heap[i], this.depth);
+ if (flag)
+ {
+ i++;
+ }
+ bool flag2 = DeflateManager._IsSmaller(tree, num, this.heap[i], this.depth);
+ if (flag2)
+ {
+ break;
+ }
+ this.heap[k] = this.heap[i];
+ k = i;
+ }
+ this.heap[k] = num;
+ }
+
+ internal static bool _IsSmaller(short[] tree, int n, int m, sbyte[] depth)
+ {
+ short num = tree[n * 2];
+ short num2 = tree[m * 2];
+ return num < num2 || (num == num2 && depth[n] <= depth[m]);
+ }
+
+ internal void scan_tree(short[] tree, int max_code)
+ {
+ int num = -1;
+ int num2 = (int)tree[1];
+ int num3 = 0;
+ int num4 = 7;
+ int num5 = 4;
+ bool flag = num2 == 0;
+ if (flag)
+ {
+ num4 = 138;
+ num5 = 3;
+ }
+ tree[(max_code + 1) * 2 + 1] = short.MaxValue;
+ for (int i = 0; i <= max_code; i++)
+ {
+ int num6 = num2;
+ num2 = (int)tree[(i + 1) * 2 + 1];
+ bool flag2 = ++num3 < num4 && num6 == num2;
+ if (!flag2)
+ {
+ bool flag3 = num3 < num5;
+ if (flag3)
+ {
+ this.bl_tree[num6 * 2] = (short)((int)this.bl_tree[num6 * 2] + num3);
+ }
+ else
+ {
+ bool flag4 = num6 != 0;
+ if (flag4)
+ {
+ bool flag5 = num6 != num;
+ if (flag5)
+ {
+ short[] array = this.bl_tree;
+ int num7 = num6 * 2;
+ array[num7] += 1;
+ }
+ short[] array2 = this.bl_tree;
+ int num8 = InternalConstants.REP_3_6 * 2;
+ array2[num8] += 1;
+ }
+ else
+ {
+ bool flag6 = num3 <= 10;
+ if (flag6)
+ {
+ short[] array3 = this.bl_tree;
+ int num9 = InternalConstants.REPZ_3_10 * 2;
+ array3[num9] += 1;
+ }
+ else
+ {
+ short[] array4 = this.bl_tree;
+ int num10 = InternalConstants.REPZ_11_138 * 2;
+ array4[num10] += 1;
+ }
+ }
+ }
+ num3 = 0;
+ num = num6;
+ bool flag7 = num2 == 0;
+ if (flag7)
+ {
+ num4 = 138;
+ num5 = 3;
+ }
+ else
+ {
+ bool flag8 = num6 == num2;
+ if (flag8)
+ {
+ num4 = 6;
+ num5 = 3;
+ }
+ else
+ {
+ num4 = 7;
+ num5 = 4;
+ }
+ }
+ }
+ }
+ }
+
+ internal int build_bl_tree()
+ {
+ this.scan_tree(this.dyn_ltree, this.treeLiterals.max_code);
+ this.scan_tree(this.dyn_dtree, this.treeDistances.max_code);
+ this.treeBitLengths.build_tree(this);
+ int i;
+ for (i = InternalConstants.BL_CODES - 1; i >= 3; i--)
+ {
+ bool flag = this.bl_tree[(int)(Tree.bl_order[i] * 2 + 1)] != 0;
+ if (flag)
+ {
+ break;
+ }
+ }
+ this.opt_len += 3 * (i + 1) + 5 + 5 + 4;
+ return i;
+ }
+
+ internal void send_all_trees(int lcodes, int dcodes, int blcodes)
+ {
+ this.send_bits(lcodes - 257, 5);
+ this.send_bits(dcodes - 1, 5);
+ this.send_bits(blcodes - 4, 4);
+ for (int i = 0; i < blcodes; i++)
+ {
+ this.send_bits((int)this.bl_tree[(int)(Tree.bl_order[i] * 2 + 1)], 3);
+ }
+ this.send_tree(this.dyn_ltree, lcodes - 1);
+ this.send_tree(this.dyn_dtree, dcodes - 1);
+ }
+
+ internal void send_tree(short[] tree, int max_code)
+ {
+ int num = -1;
+ int num2 = (int)tree[1];
+ int num3 = 0;
+ int num4 = 7;
+ int num5 = 4;
+ bool flag = num2 == 0;
+ if (flag)
+ {
+ num4 = 138;
+ num5 = 3;
+ }
+ for (int i = 0; i <= max_code; i++)
+ {
+ int num6 = num2;
+ num2 = (int)tree[(i + 1) * 2 + 1];
+ bool flag2 = ++num3 < num4 && num6 == num2;
+ if (!flag2)
+ {
+ bool flag3 = num3 < num5;
+ if (flag3)
+ {
+ do
+ {
+ this.send_code(num6, this.bl_tree);
+ }
+ while (--num3 != 0);
+ }
+ else
+ {
+ bool flag4 = num6 != 0;
+ if (flag4)
+ {
+ bool flag5 = num6 != num;
+ if (flag5)
+ {
+ this.send_code(num6, this.bl_tree);
+ num3--;
+ }
+ this.send_code(InternalConstants.REP_3_6, this.bl_tree);
+ this.send_bits(num3 - 3, 2);
+ }
+ else
+ {
+ bool flag6 = num3 <= 10;
+ if (flag6)
+ {
+ this.send_code(InternalConstants.REPZ_3_10, this.bl_tree);
+ this.send_bits(num3 - 3, 3);
+ }
+ else
+ {
+ this.send_code(InternalConstants.REPZ_11_138, this.bl_tree);
+ this.send_bits(num3 - 11, 7);
+ }
+ }
+ }
+ num3 = 0;
+ num = num6;
+ bool flag7 = num2 == 0;
+ if (flag7)
+ {
+ num4 = 138;
+ num5 = 3;
+ }
+ else
+ {
+ bool flag8 = num6 == num2;
+ if (flag8)
+ {
+ num4 = 6;
+ num5 = 3;
+ }
+ else
+ {
+ num4 = 7;
+ num5 = 4;
+ }
+ }
+ }
+ }
+ }
+
+ private void put_bytes(byte[] p, int start, int len)
+ {
+ Array.Copy(p, start, this.pending, this.pendingCount, len);
+ this.pendingCount += len;
+ }
+
+ internal void send_code(int c, short[] tree)
+ {
+ int num = c * 2;
+ this.send_bits((int)tree[num] & 65535, (int)tree[num + 1] & 65535);
+ }
+
+ internal void send_bits(int value, int length)
+ {
+ bool flag = this.bi_valid > DeflateManager.Buf_size - length;
+ if (flag)
+ {
+ this.bi_buf |= (short)(value << this.bi_valid & 65535);
+ byte[] array = this.pending;
+ int num = this.pendingCount;
+ this.pendingCount = num + 1;
+ array[num] = (byte)this.bi_buf;
+ byte[] array2 = this.pending;
+ num = this.pendingCount;
+ this.pendingCount = num + 1;
+ array2[num] = (byte)(this.bi_buf >> 8);
+ this.bi_buf = (short)((uint)value >> DeflateManager.Buf_size - this.bi_valid);
+ this.bi_valid += length - DeflateManager.Buf_size;
+ }
+ else
+ {
+ this.bi_buf |= (short)(value << this.bi_valid & 65535);
+ this.bi_valid += length;
+ }
+ }
+
+ internal void _tr_align()
+ {
+ this.send_bits(DeflateManager.STATIC_TREES << 1, 3);
+ this.send_code(DeflateManager.END_BLOCK, StaticTree.lengthAndLiteralsTreeCodes);
+ this.bi_flush();
+ bool flag = 1 + this.last_eob_len + 10 - this.bi_valid < 9;
+ if (flag)
+ {
+ this.send_bits(DeflateManager.STATIC_TREES << 1, 3);
+ this.send_code(DeflateManager.END_BLOCK, StaticTree.lengthAndLiteralsTreeCodes);
+ this.bi_flush();
+ }
+ this.last_eob_len = 7;
+ }
+
+ internal bool _tr_tally(int dist, int lc)
+ {
+ this.pending[this._distanceOffset + this.last_lit * 2] = (byte)((uint)dist >> 8);
+ this.pending[this._distanceOffset + this.last_lit * 2 + 1] = (byte)dist;
+ this.pending[this._lengthOffset + this.last_lit] = (byte)lc;
+ this.last_lit++;
+ bool flag = dist == 0;
+ if (flag)
+ {
+ short[] array = this.dyn_ltree;
+ int num = lc * 2;
+ array[num] += 1;
+ }
+ else
+ {
+ this.matches++;
+ dist--;
+ short[] array2 = this.dyn_ltree;
+ int num2 = ((int)Tree.LengthCode[lc] + InternalConstants.LITERALS + 1) * 2;
+ array2[num2] += 1;
+ short[] array3 = this.dyn_dtree;
+ int num3 = Tree.DistanceCode(dist) * 2;
+ array3[num3] += 1;
+ }
+ bool flag2 = (this.last_lit & 8191) == 0 && this.compressionLevel > CompressionLevel.Level2;
+ if (flag2)
+ {
+ int num4 = this.last_lit << 3;
+ int num5 = this.strstart - this.block_start;
+ for (int i = 0; i < InternalConstants.D_CODES; i++)
+ {
+ num4 = (int)((long)num4 + (long)this.dyn_dtree[i * 2] * (5L + (long)Tree.ExtraDistanceBits[i]));
+ }
+ num4 >>= 3;
+ bool flag3 = this.matches < this.last_lit / 2 && num4 < num5 / 2;
+ if (flag3)
+ {
+ return true;
+ }
+ }
+ return this.last_lit == this.lit_bufsize - 1 || this.last_lit == this.lit_bufsize;
+ }
+
+ internal void send_compressed_block(short[] ltree, short[] dtree)
+ {
+ int num = 0;
+ bool flag = this.last_lit != 0;
+ if (flag)
+ {
+ do
+ {
+ int num2 = this._distanceOffset + num * 2;
+ int num3 = ((int)this.pending[num2] << 8 & 65280) | (int)(this.pending[num2 + 1] & byte.MaxValue);
+ int num4 = (int)(this.pending[this._lengthOffset + num] & byte.MaxValue);
+ num++;
+ bool flag2 = num3 == 0;
+ if (flag2)
+ {
+ this.send_code(num4, ltree);
+ }
+ else
+ {
+ int num5 = (int)Tree.LengthCode[num4];
+ this.send_code(num5 + InternalConstants.LITERALS + 1, ltree);
+ int num6 = Tree.ExtraLengthBits[num5];
+ bool flag3 = num6 != 0;
+ if (flag3)
+ {
+ num4 -= Tree.LengthBase[num5];
+ this.send_bits(num4, num6);
+ }
+ num3--;
+ num5 = Tree.DistanceCode(num3);
+ this.send_code(num5, dtree);
+ num6 = Tree.ExtraDistanceBits[num5];
+ bool flag4 = num6 != 0;
+ if (flag4)
+ {
+ num3 -= Tree.DistanceBase[num5];
+ this.send_bits(num3, num6);
+ }
+ }
+ }
+ while (num < this.last_lit);
+ }
+ this.send_code(DeflateManager.END_BLOCK, ltree);
+ this.last_eob_len = (int)ltree[DeflateManager.END_BLOCK * 2 + 1];
+ }
+
+ internal void set_data_type()
+ {
+ int i = 0;
+ int num = 0;
+ int num2 = 0;
+ while (i < 7)
+ {
+ num2 += (int)this.dyn_ltree[i * 2];
+ i++;
+ }
+ while (i < 128)
+ {
+ num += (int)this.dyn_ltree[i * 2];
+ i++;
+ }
+ while (i < InternalConstants.LITERALS)
+ {
+ num2 += (int)this.dyn_ltree[i * 2];
+ i++;
+ }
+ this.data_type = (sbyte)((num2 > num >> 2) ? DeflateManager.Z_BINARY : DeflateManager.Z_ASCII);
+ }
+
+ internal void bi_flush()
+ {
+ bool flag = this.bi_valid == 16;
+ if (flag)
+ {
+ byte[] array = this.pending;
+ int num = this.pendingCount;
+ this.pendingCount = num + 1;
+ array[num] = (byte)this.bi_buf;
+ byte[] array2 = this.pending;
+ num = this.pendingCount;
+ this.pendingCount = num + 1;
+ array2[num] = (byte)(this.bi_buf >> 8);
+ this.bi_buf = 0;
+ this.bi_valid = 0;
+ }
+ else
+ {
+ bool flag2 = this.bi_valid >= 8;
+ if (flag2)
+ {
+ byte[] array3 = this.pending;
+ int num = this.pendingCount;
+ this.pendingCount = num + 1;
+ array3[num] = (byte)this.bi_buf;
+ this.bi_buf = (short)(this.bi_buf >> 8);
+ this.bi_valid -= 8;
+ }
+ }
+ }
+
+ internal void bi_windup()
+ {
+ bool flag = this.bi_valid > 8;
+ if (flag)
+ {
+ byte[] array = this.pending;
+ int num = this.pendingCount;
+ this.pendingCount = num + 1;
+ array[num] = (byte)this.bi_buf;
+ byte[] array2 = this.pending;
+ num = this.pendingCount;
+ this.pendingCount = num + 1;
+ array2[num] = (byte)(this.bi_buf >> 8);
+ }
+ else
+ {
+ bool flag2 = this.bi_valid > 0;
+ if (flag2)
+ {
+ byte[] array3 = this.pending;
+ int num = this.pendingCount;
+ this.pendingCount = num + 1;
+ array3[num] = (byte)this.bi_buf;
+ }
+ }
+ this.bi_buf = 0;
+ this.bi_valid = 0;
+ }
+
+ internal void copy_block(int buf, int len, bool header)
+ {
+ this.bi_windup();
+ this.last_eob_len = 8;
+ if (header)
+ {
+ byte[] array = this.pending;
+ int num = this.pendingCount;
+ this.pendingCount = num + 1;
+ array[num] = (byte)len;
+ byte[] array2 = this.pending;
+ num = this.pendingCount;
+ this.pendingCount = num + 1;
+ array2[num] = (byte)(len >> 8);
+ byte[] array3 = this.pending;
+ num = this.pendingCount;
+ this.pendingCount = num + 1;
+ array3[num] = (byte)(~(byte)len);
+ byte[] array4 = this.pending;
+ num = this.pendingCount;
+ this.pendingCount = num + 1;
+ array4[num] = (byte)(~len >> 8);
+ }
+ this.put_bytes(this.window, buf, len);
+ }
+
+ internal void flush_block_only(bool eof)
+ {
+ this._tr_flush_block((this.block_start >= 0) ? this.block_start : -1, this.strstart - this.block_start, eof);
+ this.block_start = this.strstart;
+ this._codec.flush_pending();
+ }
+
+ internal BlockState DeflateNone(FlushType flush)
+ {
+ int num = 65535;
+ bool flag = num > this.pending.Length - 5;
+ if (flag)
+ {
+ num = this.pending.Length - 5;
+ }
+ for (;;)
+ {
+ bool flag2 = this.lookahead <= 1;
+ if (flag2)
+ {
+ this._fillWindow();
+ bool flag3 = this.lookahead == 0 && flush == FlushType.None;
+ if (flag3)
+ {
+ break;
+ }
+ bool flag4 = this.lookahead == 0;
+ if (flag4)
+ {
+ goto Block_5;
+ }
+ }
+ this.strstart += this.lookahead;
+ this.lookahead = 0;
+ int num2 = this.block_start + num;
+ bool flag5 = this.strstart == 0 || this.strstart >= num2;
+ if (flag5)
+ {
+ this.lookahead = this.strstart - num2;
+ this.strstart = num2;
+ this.flush_block_only(false);
+ bool flag6 = this._codec.AvailableBytesOut == 0;
+ if (flag6)
+ {
+ goto Block_8;
+ }
+ }
+ bool flag7 = this.strstart - this.block_start >= this.w_size - DeflateManager.MIN_LOOKAHEAD;
+ if (flag7)
+ {
+ this.flush_block_only(false);
+ bool flag8 = this._codec.AvailableBytesOut == 0;
+ if (flag8)
+ {
+ goto Block_10;
+ }
+ }
+ }
+ return BlockState.NeedMore;
+ Block_5:
+ this.flush_block_only(flush == FlushType.Finish);
+ bool flag9 = this._codec.AvailableBytesOut == 0;
+ if (flag9)
+ {
+ return (flush == FlushType.Finish) ? BlockState.FinishStarted : BlockState.NeedMore;
+ }
+ return (flush == FlushType.Finish) ? BlockState.FinishDone : BlockState.BlockDone;
+ Block_8:
+ return BlockState.NeedMore;
+ Block_10:
+ return BlockState.NeedMore;
+ }
+
+ internal void _tr_stored_block(int buf, int stored_len, bool eof)
+ {
+ this.send_bits((DeflateManager.STORED_BLOCK << 1) + (eof ? 1 : 0), 3);
+ this.copy_block(buf, stored_len, true);
+ }
+
+ internal void _tr_flush_block(int buf, int stored_len, bool eof)
+ {
+ int num = 0;
+ bool flag = this.compressionLevel > CompressionLevel.None;
+ int num2;
+ int num3;
+ if (flag)
+ {
+ bool flag2 = (int)this.data_type == DeflateManager.Z_UNKNOWN;
+ if (flag2)
+ {
+ this.set_data_type();
+ }
+ this.treeLiterals.build_tree(this);
+ this.treeDistances.build_tree(this);
+ num = this.build_bl_tree();
+ num2 = this.opt_len + 3 + 7 >> 3;
+ num3 = this.static_len + 3 + 7 >> 3;
+ bool flag3 = num3 <= num2;
+ if (flag3)
+ {
+ num2 = num3;
+ }
+ }
+ else
+ {
+ num3 = (num2 = stored_len + 5);
+ }
+ bool flag4 = stored_len + 4 <= num2 && buf != -1;
+ if (flag4)
+ {
+ this._tr_stored_block(buf, stored_len, eof);
+ }
+ else
+ {
+ bool flag5 = num3 == num2;
+ if (flag5)
+ {
+ this.send_bits((DeflateManager.STATIC_TREES << 1) + (eof ? 1 : 0), 3);
+ this.send_compressed_block(StaticTree.lengthAndLiteralsTreeCodes, StaticTree.distTreeCodes);
+ }
+ else
+ {
+ this.send_bits((DeflateManager.DYN_TREES << 1) + (eof ? 1 : 0), 3);
+ this.send_all_trees(this.treeLiterals.max_code + 1, this.treeDistances.max_code + 1, num + 1);
+ this.send_compressed_block(this.dyn_ltree, this.dyn_dtree);
+ }
+ }
+ this._InitializeBlocks();
+ if (eof)
+ {
+ this.bi_windup();
+ }
+ }
+
+ private void _fillWindow()
+ {
+ do
+ {
+ int num = this.window_size - this.lookahead - this.strstart;
+ bool flag = num == 0 && this.strstart == 0 && this.lookahead == 0;
+ int num2;
+ if (flag)
+ {
+ num = this.w_size;
+ }
+ else
+ {
+ bool flag2 = num == -1;
+ if (flag2)
+ {
+ num--;
+ }
+ else
+ {
+ bool flag3 = this.strstart >= this.w_size + this.w_size - DeflateManager.MIN_LOOKAHEAD;
+ if (flag3)
+ {
+ Array.Copy(this.window, this.w_size, this.window, 0, this.w_size);
+ this.match_start -= this.w_size;
+ this.strstart -= this.w_size;
+ this.block_start -= this.w_size;
+ num2 = this.hash_size;
+ int num3 = num2;
+ do
+ {
+ int num4 = (int)this.head[--num3] & 65535;
+ this.head[num3] = (short)((num4 >= this.w_size) ? (num4 - this.w_size) : 0);
+ }
+ while (--num2 != 0);
+ num2 = this.w_size;
+ num3 = num2;
+ do
+ {
+ int num4 = (int)this.prev[--num3] & 65535;
+ this.prev[num3] = (short)((num4 >= this.w_size) ? (num4 - this.w_size) : 0);
+ }
+ while (--num2 != 0);
+ num += this.w_size;
+ }
+ }
+ }
+ bool flag4 = this._codec.AvailableBytesIn == 0;
+ if (flag4)
+ {
+ break;
+ }
+ num2 = this._codec.read_buf(this.window, this.strstart + this.lookahead, num);
+ this.lookahead += num2;
+ bool flag5 = this.lookahead >= DeflateManager.MIN_MATCH;
+ if (flag5)
+ {
+ this.ins_h = (int)(this.window[this.strstart] & byte.MaxValue);
+ this.ins_h = ((this.ins_h << this.hash_shift ^ (int)(this.window[this.strstart + 1] & byte.MaxValue)) & this.hash_mask);
+ }
+ }
+ while (this.lookahead < DeflateManager.MIN_LOOKAHEAD && this._codec.AvailableBytesIn != 0);
+ }
+
+ internal BlockState DeflateFast(FlushType flush)
+ {
+ int num = 0;
+ for (;;)
+ {
+ bool flag = this.lookahead < DeflateManager.MIN_LOOKAHEAD;
+ if (flag)
+ {
+ this._fillWindow();
+ bool flag2 = this.lookahead < DeflateManager.MIN_LOOKAHEAD && flush == FlushType.None;
+ if (flag2)
+ {
+ break;
+ }
+ bool flag3 = this.lookahead == 0;
+ if (flag3)
+ {
+ goto Block_4;
+ }
+ }
+ bool flag4 = this.lookahead >= DeflateManager.MIN_MATCH;
+ if (flag4)
+ {
+ this.ins_h = ((this.ins_h << this.hash_shift ^ (int)(this.window[this.strstart + (DeflateManager.MIN_MATCH - 1)] & byte.MaxValue)) & this.hash_mask);
+ num = ((int)this.head[this.ins_h] & 65535);
+ this.prev[this.strstart & this.w_mask] = this.head[this.ins_h];
+ this.head[this.ins_h] = (short)this.strstart;
+ }
+ bool flag5 = (long)num != 0L && (this.strstart - num & 65535) <= this.w_size - DeflateManager.MIN_LOOKAHEAD;
+ if (flag5)
+ {
+ bool flag6 = this.compressionStrategy != CompressionStrategy.HuffmanOnly;
+ if (flag6)
+ {
+ this.match_length = this.longest_match(num);
+ }
+ }
+ bool flag7 = this.match_length >= DeflateManager.MIN_MATCH;
+ bool flag8;
+ if (flag7)
+ {
+ flag8 = this._tr_tally(this.strstart - this.match_start, this.match_length - DeflateManager.MIN_MATCH);
+ this.lookahead -= this.match_length;
+ bool flag9 = this.match_length <= this.config.MaxLazy && this.lookahead >= DeflateManager.MIN_MATCH;
+ if (flag9)
+ {
+ this.match_length--;
+ int num2;
+ do
+ {
+ this.strstart++;
+ this.ins_h = ((this.ins_h << this.hash_shift ^ (int)(this.window[this.strstart + (DeflateManager.MIN_MATCH - 1)] & byte.MaxValue)) & this.hash_mask);
+ num = ((int)this.head[this.ins_h] & 65535);
+ this.prev[this.strstart & this.w_mask] = this.head[this.ins_h];
+ this.head[this.ins_h] = (short)this.strstart;
+ num2 = this.match_length - 1;
+ this.match_length = num2;
+ }
+ while (num2 != 0);
+ this.strstart++;
+ }
+ else
+ {
+ this.strstart += this.match_length;
+ this.match_length = 0;
+ this.ins_h = (int)(this.window[this.strstart] & byte.MaxValue);
+ this.ins_h = ((this.ins_h << this.hash_shift ^ (int)(this.window[this.strstart + 1] & byte.MaxValue)) & this.hash_mask);
+ }
+ }
+ else
+ {
+ flag8 = this._tr_tally(0, (int)(this.window[this.strstart] & byte.MaxValue));
+ this.lookahead--;
+ this.strstart++;
+ }
+ bool flag10 = flag8;
+ if (flag10)
+ {
+ this.flush_block_only(false);
+ bool flag11 = this._codec.AvailableBytesOut == 0;
+ if (flag11)
+ {
+ goto Block_14;
+ }
+ }
+ }
+ return BlockState.NeedMore;
+ Block_4:
+ this.flush_block_only(flush == FlushType.Finish);
+ bool flag12 = this._codec.AvailableBytesOut == 0;
+ if (!flag12)
+ {
+ return (flush == FlushType.Finish) ? BlockState.FinishDone : BlockState.BlockDone;
+ }
+ bool flag13 = flush == FlushType.Finish;
+ if (flag13)
+ {
+ return BlockState.FinishStarted;
+ }
+ return BlockState.NeedMore;
+ Block_14:
+ return BlockState.NeedMore;
+ }
+
+ internal BlockState DeflateSlow(FlushType flush)
+ {
+ int num = 0;
+ for (;;)
+ {
+ bool flag = this.lookahead < DeflateManager.MIN_LOOKAHEAD;
+ if (flag)
+ {
+ this._fillWindow();
+ bool flag2 = this.lookahead < DeflateManager.MIN_LOOKAHEAD && flush == FlushType.None;
+ if (flag2)
+ {
+ break;
+ }
+ bool flag3 = this.lookahead == 0;
+ if (flag3)
+ {
+ goto Block_4;
+ }
+ }
+ bool flag4 = this.lookahead >= DeflateManager.MIN_MATCH;
+ if (flag4)
+ {
+ this.ins_h = ((this.ins_h << this.hash_shift ^ (int)(this.window[this.strstart + (DeflateManager.MIN_MATCH - 1)] & byte.MaxValue)) & this.hash_mask);
+ num = ((int)this.head[this.ins_h] & 65535);
+ this.prev[this.strstart & this.w_mask] = this.head[this.ins_h];
+ this.head[this.ins_h] = (short)this.strstart;
+ }
+ this.prev_length = this.match_length;
+ this.prev_match = this.match_start;
+ this.match_length = DeflateManager.MIN_MATCH - 1;
+ bool flag5 = num != 0 && this.prev_length < this.config.MaxLazy && (this.strstart - num & 65535) <= this.w_size - DeflateManager.MIN_LOOKAHEAD;
+ if (flag5)
+ {
+ bool flag6 = this.compressionStrategy != CompressionStrategy.HuffmanOnly;
+ if (flag6)
+ {
+ this.match_length = this.longest_match(num);
+ }
+ bool flag7 = this.match_length <= 5 && (this.compressionStrategy == CompressionStrategy.Filtered || (this.match_length == DeflateManager.MIN_MATCH && this.strstart - this.match_start > 4096));
+ if (flag7)
+ {
+ this.match_length = DeflateManager.MIN_MATCH - 1;
+ }
+ }
+ bool flag8 = this.prev_length >= DeflateManager.MIN_MATCH && this.match_length <= this.prev_length;
+ if (flag8)
+ {
+ int num2 = this.strstart + this.lookahead - DeflateManager.MIN_MATCH;
+ bool flag9 = this._tr_tally(this.strstart - 1 - this.prev_match, this.prev_length - DeflateManager.MIN_MATCH);
+ this.lookahead -= this.prev_length - 1;
+ this.prev_length -= 2;
+ int num3;
+ do
+ {
+ num3 = this.strstart + 1;
+ this.strstart = num3;
+ bool flag10 = num3 <= num2;
+ if (flag10)
+ {
+ this.ins_h = ((this.ins_h << this.hash_shift ^ (int)(this.window[this.strstart + (DeflateManager.MIN_MATCH - 1)] & byte.MaxValue)) & this.hash_mask);
+ num = ((int)this.head[this.ins_h] & 65535);
+ this.prev[this.strstart & this.w_mask] = this.head[this.ins_h];
+ this.head[this.ins_h] = (short)this.strstart;
+ }
+ num3 = this.prev_length - 1;
+ this.prev_length = num3;
+ }
+ while (num3 != 0);
+ this.match_available = 0;
+ this.match_length = DeflateManager.MIN_MATCH - 1;
+ this.strstart++;
+ bool flag11 = flag9;
+ if (flag11)
+ {
+ this.flush_block_only(false);
+ bool flag12 = this._codec.AvailableBytesOut == 0;
+ if (flag12)
+ {
+ goto Block_19;
+ }
+ }
+ }
+ else
+ {
+ bool flag13 = this.match_available != 0;
+ if (flag13)
+ {
+ bool flag9 = this._tr_tally(0, (int)(this.window[this.strstart - 1] & byte.MaxValue));
+ bool flag14 = flag9;
+ if (flag14)
+ {
+ this.flush_block_only(false);
+ }
+ this.strstart++;
+ this.lookahead--;
+ bool flag15 = this._codec.AvailableBytesOut == 0;
+ if (flag15)
+ {
+ goto Block_22;
+ }
+ }
+ else
+ {
+ this.match_available = 1;
+ this.strstart++;
+ this.lookahead--;
+ }
+ }
+ }
+ return BlockState.NeedMore;
+ Block_4:
+ bool flag16 = this.match_available != 0;
+ if (flag16)
+ {
+ bool flag9 = this._tr_tally(0, (int)(this.window[this.strstart - 1] & byte.MaxValue));
+ this.match_available = 0;
+ }
+ this.flush_block_only(flush == FlushType.Finish);
+ bool flag17 = this._codec.AvailableBytesOut == 0;
+ if (!flag17)
+ {
+ return (flush == FlushType.Finish) ? BlockState.FinishDone : BlockState.BlockDone;
+ }
+ bool flag18 = flush == FlushType.Finish;
+ if (flag18)
+ {
+ return BlockState.FinishStarted;
+ }
+ return BlockState.NeedMore;
+ Block_19:
+ return BlockState.NeedMore;
+ Block_22:
+ return BlockState.NeedMore;
+ }
+
+ internal int longest_match(int cur_match)
+ {
+ int num = this.config.MaxChainLength;
+ int num2 = this.strstart;
+ int num3 = this.prev_length;
+ int num4 = (this.strstart > this.w_size - DeflateManager.MIN_LOOKAHEAD) ? (this.strstart - (this.w_size - DeflateManager.MIN_LOOKAHEAD)) : 0;
+ int niceLength = this.config.NiceLength;
+ int num5 = this.w_mask;
+ int num6 = this.strstart + DeflateManager.MAX_MATCH;
+ byte b = this.window[num2 + num3 - 1];
+ byte b2 = this.window[num2 + num3];
+ bool flag = this.prev_length >= this.config.GoodLength;
+ if (flag)
+ {
+ num >>= 2;
+ }
+ bool flag2 = niceLength > this.lookahead;
+ if (flag2)
+ {
+ niceLength = this.lookahead;
+ }
+ do
+ {
+ int num7 = cur_match;
+ bool flag3 = this.window[num7 + num3] != b2 || this.window[num7 + num3 - 1] != b || this.window[num7] != this.window[num2] || this.window[++num7] != this.window[num2 + 1];
+ if (!flag3)
+ {
+ num2 += 2;
+ num7++;
+ while (this.window[++num2] == this.window[++num7] && this.window[++num2] == this.window[++num7] && this.window[++num2] == this.window[++num7] && this.window[++num2] == this.window[++num7] && this.window[++num2] == this.window[++num7] && this.window[++num2] == this.window[++num7] && this.window[++num2] == this.window[++num7] && this.window[++num2] == this.window[++num7] && num2 < num6)
+ {
+ }
+ int num8 = DeflateManager.MAX_MATCH - (num6 - num2);
+ num2 = num6 - DeflateManager.MAX_MATCH;
+ bool flag4 = num8 > num3;
+ if (flag4)
+ {
+ this.match_start = cur_match;
+ num3 = num8;
+ bool flag5 = num8 >= niceLength;
+ if (flag5)
+ {
+ break;
+ }
+ b = this.window[num2 + num3 - 1];
+ b2 = this.window[num2 + num3];
+ }
+ }
+ }
+ while ((cur_match = ((int)this.prev[cur_match & num5] & 65535)) > num4 && --num != 0);
+ bool flag6 = num3 <= this.lookahead;
+ int result;
+ if (flag6)
+ {
+ result = num3;
+ }
+ else
+ {
+ result = this.lookahead;
+ }
+ return result;
+ }
+
+ internal int Initialize(ZlibCodec codec, CompressionLevel level)
+ {
+ return this.Initialize(codec, level, 15);
+ }
+
+ internal int Initialize(ZlibCodec codec, CompressionLevel level, int bits)
+ {
+ return this.Initialize(codec, level, bits, DeflateManager.MEM_LEVEL_DEFAULT, CompressionStrategy.Default);
+ }
+
+ internal int Initialize(ZlibCodec codec, CompressionLevel level, int bits, CompressionStrategy compressionStrategy)
+ {
+ return this.Initialize(codec, level, bits, DeflateManager.MEM_LEVEL_DEFAULT, compressionStrategy);
+ }
+
+ internal int Initialize(ZlibCodec codec, CompressionLevel level, int windowBits, int memLevel, CompressionStrategy strategy)
+ {
+ this._codec = codec;
+ this._codec.Message = null;
+ bool flag = windowBits < 9 || windowBits > 15;
+ if (flag)
+ {
+ throw new ZlibException("windowBits must be in the range 9..15.");
+ }
+ bool flag2 = memLevel < 1 || memLevel > DeflateManager.MEM_LEVEL_MAX;
+ if (flag2)
+ {
+ throw new ZlibException(string.Format("memLevel must be in the range 1.. {0}", DeflateManager.MEM_LEVEL_MAX));
+ }
+ this._codec.dstate = this;
+ this.w_bits = windowBits;
+ this.w_size = 1 << this.w_bits;
+ this.w_mask = this.w_size - 1;
+ this.hash_bits = memLevel + 7;
+ this.hash_size = 1 << this.hash_bits;
+ this.hash_mask = this.hash_size - 1;
+ this.hash_shift = (this.hash_bits + DeflateManager.MIN_MATCH - 1) / DeflateManager.MIN_MATCH;
+ this.window = new byte[this.w_size * 2];
+ this.prev = new short[this.w_size];
+ this.head = new short[this.hash_size];
+ this.lit_bufsize = 1 << memLevel + 6;
+ this.pending = new byte[this.lit_bufsize * 4];
+ this._distanceOffset = this.lit_bufsize;
+ this._lengthOffset = 3 * this.lit_bufsize;
+ this.compressionLevel = level;
+ this.compressionStrategy = strategy;
+ this.Reset(true);
+ return 0;
+ }
+
+ internal void Reset(bool setDeflater = true)
+ {
+ this._codec.TotalBytesIn = (this._codec.TotalBytesOut = 0L);
+ this._codec.Message = null;
+ this.pendingCount = 0;
+ this.nextPending = 0;
+ this.Rfc1950BytesEmitted = false;
+ this.status = (this.WantRfc1950HeaderBytes ? DeflateManager.INIT_STATE : DeflateManager.BUSY_STATE);
+ this._codec._Adler32 = Adler.Adler32(0u, null, 0, 0);
+ this.last_flush = 0;
+ this._InitializeTreeData();
+ this._InitializeLazyMatch(setDeflater);
+ }
+
+ internal int End()
+ {
+ bool flag = this.status != DeflateManager.INIT_STATE && this.status != DeflateManager.BUSY_STATE && this.status != DeflateManager.FINISH_STATE;
+ int result;
+ if (flag)
+ {
+ result = -2;
+ }
+ else
+ {
+ this.pending = null;
+ this.head = null;
+ this.prev = null;
+ this.window = null;
+ result = ((this.status == DeflateManager.BUSY_STATE) ? -3 : 0);
+ }
+ return result;
+ }
+
+ private void SetDeflater()
+ {
+ switch (this.config.Flavor)
+ {
+ case DeflateFlavor.Store:
+ this.DeflateFunction = new DeflateManager.CompressFunc(this.DeflateNone);
+ break;
+ case DeflateFlavor.Fast:
+ this.DeflateFunction = new DeflateManager.CompressFunc(this.DeflateFast);
+ break;
+ case DeflateFlavor.Slow:
+ this.DeflateFunction = new DeflateManager.CompressFunc(this.DeflateSlow);
+ break;
+ }
+ }
+
+ internal int SetParams(CompressionLevel level, CompressionStrategy strategy)
+ {
+ int result = 0;
+ bool flag = this.compressionLevel != level;
+ if (flag)
+ {
+ DeflateManager.Config config = DeflateManager.Config.Lookup(level);
+ bool flag2 = config.Flavor != this.config.Flavor && this._codec.TotalBytesIn != 0L;
+ if (flag2)
+ {
+ result = this._codec.Deflate(FlushType.Partial);
+ }
+ this.compressionLevel = level;
+ this.config = config;
+ this.SetDeflater();
+ }
+ this.compressionStrategy = strategy;
+ return result;
+ }
+
+ internal int SetDictionary(byte[] dictionary)
+ {
+ int num = dictionary.Length;
+ int sourceIndex = 0;
+ bool flag = dictionary == null || this.status != DeflateManager.INIT_STATE;
+ if (flag)
+ {
+ throw new ZlibException("Stream error.");
+ }
+ this._codec._Adler32 = Adler.Adler32(this._codec._Adler32, dictionary, 0, dictionary.Length);
+ bool flag2 = num < DeflateManager.MIN_MATCH;
+ int result;
+ if (flag2)
+ {
+ result = 0;
+ }
+ else
+ {
+ bool flag3 = num > this.w_size - DeflateManager.MIN_LOOKAHEAD;
+ if (flag3)
+ {
+ num = this.w_size - DeflateManager.MIN_LOOKAHEAD;
+ sourceIndex = dictionary.Length - num;
+ }
+ Array.Copy(dictionary, sourceIndex, this.window, 0, num);
+ this.strstart = num;
+ this.block_start = num;
+ this.ins_h = (int)(this.window[0] & byte.MaxValue);
+ this.ins_h = ((this.ins_h << this.hash_shift ^ (int)(this.window[1] & byte.MaxValue)) & this.hash_mask);
+ for (int i = 0; i <= num - DeflateManager.MIN_MATCH; i++)
+ {
+ this.ins_h = ((this.ins_h << this.hash_shift ^ (int)(this.window[i + (DeflateManager.MIN_MATCH - 1)] & byte.MaxValue)) & this.hash_mask);
+ this.prev[i & this.w_mask] = this.head[this.ins_h];
+ this.head[this.ins_h] = (short)i;
+ }
+ result = 0;
+ }
+ return result;
+ }
+
+ internal int Deflate(FlushType flush)
+ {
+ bool flag = this._codec.OutputBuffer == null || (this._codec.InputBuffer == null && this._codec.AvailableBytesIn != 0) || (this.status == DeflateManager.FINISH_STATE && flush != FlushType.Finish);
+ if (flag)
+ {
+ this._codec.Message = DeflateManager._ErrorMessage[4];
+ throw new ZlibException(string.Format("Something is fishy. [{0}]", this._codec.Message));
+ }
+ bool flag2 = this._codec.AvailableBytesOut == 0;
+ if (flag2)
+ {
+ this._codec.Message = DeflateManager._ErrorMessage[7];
+ throw new ZlibException("OutputBuffer is full (AvailableBytesOut == 0)");
+ }
+ int num = this.last_flush;
+ this.last_flush = (int)flush;
+ bool flag3 = this.status == DeflateManager.INIT_STATE;
+ if (flag3)
+ {
+ int num2 = DeflateManager.Z_DEFLATED + (this.w_bits - 8 << 4) << 8;
+ int num3 = (this.compressionLevel - CompressionLevel.BestSpeed & 255) >> 1;
+ bool flag4 = num3 > 3;
+ if (flag4)
+ {
+ num3 = 3;
+ }
+ num2 |= num3 << 6;
+ bool flag5 = this.strstart != 0;
+ if (flag5)
+ {
+ num2 |= DeflateManager.PRESET_DICT;
+ }
+ num2 += 31 - num2 % 31;
+ this.status = DeflateManager.BUSY_STATE;
+ byte[] array = this.pending;
+ int num4 = this.pendingCount;
+ this.pendingCount = num4 + 1;
+ array[num4] = (byte)(num2 >> 8);
+ byte[] array2 = this.pending;
+ num4 = this.pendingCount;
+ this.pendingCount = num4 + 1;
+ array2[num4] = (byte)num2;
+ bool flag6 = this.strstart != 0;
+ if (flag6)
+ {
+ byte[] array3 = this.pending;
+ num4 = this.pendingCount;
+ this.pendingCount = num4 + 1;
+ array3[num4] = (byte)((this._codec._Adler32 & 4278190080u) >> 24);
+ byte[] array4 = this.pending;
+ num4 = this.pendingCount;
+ this.pendingCount = num4 + 1;
+ array4[num4] = (byte)((this._codec._Adler32 & 16711680u) >> 16);
+ byte[] array5 = this.pending;
+ num4 = this.pendingCount;
+ this.pendingCount = num4 + 1;
+ array5[num4] = (byte)((this._codec._Adler32 & 65280u) >> 8);
+ byte[] array6 = this.pending;
+ num4 = this.pendingCount;
+ this.pendingCount = num4 + 1;
+ array6[num4] = (byte)(this._codec._Adler32 & 255u);
+ }
+ this._codec._Adler32 = Adler.Adler32(0u, null, 0, 0);
+ }
+ bool flag7 = this.pendingCount != 0;
+ if (flag7)
+ {
+ this._codec.flush_pending();
+ bool flag8 = this._codec.AvailableBytesOut == 0;
+ if (flag8)
+ {
+ this.last_flush = -1;
+ return 0;
+ }
+ }
+ else
+ {
+ bool flag9 = this._codec.AvailableBytesIn == 0 && flush <= (FlushType)num && flush != FlushType.Finish;
+ if (flag9)
+ {
+ return 0;
+ }
+ }
+ bool flag10 = this.status == DeflateManager.FINISH_STATE && this._codec.AvailableBytesIn != 0;
+ if (flag10)
+ {
+ this._codec.Message = DeflateManager._ErrorMessage[7];
+ throw new ZlibException("status == FINISH_STATE && _codec.AvailableBytesIn != 0");
+ }
+ bool flag11 = this._codec.AvailableBytesIn != 0 || this.lookahead != 0 || (flush != FlushType.None && this.status != DeflateManager.FINISH_STATE);
+ if (flag11)
+ {
+ BlockState blockState = this.DeflateFunction(flush);
+ bool flag12 = blockState == BlockState.FinishStarted || blockState == BlockState.FinishDone;
+ if (flag12)
+ {
+ this.status = DeflateManager.FINISH_STATE;
+ }
+ bool flag13 = blockState == BlockState.NeedMore || blockState == BlockState.FinishStarted;
+ if (flag13)
+ {
+ bool flag14 = this._codec.AvailableBytesOut == 0;
+ if (flag14)
+ {
+ this.last_flush = -1;
+ }
+ return 0;
+ }
+ bool flag15 = blockState == BlockState.BlockDone;
+ if (flag15)
+ {
+ bool flag16 = flush == FlushType.Partial;
+ if (flag16)
+ {
+ this._tr_align();
+ }
+ else
+ {
+ this._tr_stored_block(0, 0, false);
+ bool flag17 = flush == FlushType.Full;
+ if (flag17)
+ {
+ for (int i = 0; i < this.hash_size; i++)
+ {
+ this.head[i] = 0;
+ }
+ }
+ }
+ this._codec.flush_pending();
+ bool flag18 = this._codec.AvailableBytesOut == 0;
+ if (flag18)
+ {
+ this.last_flush = -1;
+ return 0;
+ }
+ }
+ }
+ bool flag19 = flush != FlushType.Finish;
+ int result;
+ if (flag19)
+ {
+ result = 0;
+ }
+ else
+ {
+ bool flag20 = !this.WantRfc1950HeaderBytes || this.Rfc1950BytesEmitted;
+ if (flag20)
+ {
+ result = 1;
+ }
+ else
+ {
+ byte[] array7 = this.pending;
+ int num4 = this.pendingCount;
+ this.pendingCount = num4 + 1;
+ array7[num4] = (byte)((this._codec._Adler32 & 4278190080u) >> 24);
+ byte[] array8 = this.pending;
+ num4 = this.pendingCount;
+ this.pendingCount = num4 + 1;
+ array8[num4] = (byte)((this._codec._Adler32 & 16711680u) >> 16);
+ byte[] array9 = this.pending;
+ num4 = this.pendingCount;
+ this.pendingCount = num4 + 1;
+ array9[num4] = (byte)((this._codec._Adler32 & 65280u) >> 8);
+ byte[] array10 = this.pending;
+ num4 = this.pendingCount;
+ this.pendingCount = num4 + 1;
+ array10[num4] = (byte)(this._codec._Adler32 & 255u);
+ this._codec.flush_pending();
+ this.Rfc1950BytesEmitted = true;
+ result = ((this.pendingCount != 0) ? 0 : 1);
+ }
+ }
+ return result;
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/DeflateManager.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/DeflateManager.cs.meta new file mode 100644 index 00000000..2d32be0f --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/DeflateManager.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: db13ffaad66712c4baa5f1c47795cf6f +timeCreated: 1611465795 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/DeflateStream.cs b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/DeflateStream.cs new file mode 100644 index 00000000..dd0e376b --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/DeflateStream.cs @@ -0,0 +1,288 @@ +using System;
+using System.IO;
+
+namespace Ionic.Zlib
+{
+ public class DeflateStream : Stream
+ {
+ public virtual FlushType FlushMode
+ {
+ get
+ {
+ return this._baseStream._flushMode;
+ }
+ set
+ {
+ bool disposed = this._disposed;
+ if (disposed)
+ {
+ throw new ObjectDisposedException("DeflateStream");
+ }
+ this._baseStream._flushMode = value;
+ }
+ }
+
+ public int BufferSize
+ {
+ get
+ {
+ return this._baseStream._bufferSize;
+ }
+ set
+ {
+ bool disposed = this._disposed;
+ if (disposed)
+ {
+ throw new ObjectDisposedException("DeflateStream");
+ }
+ bool flag = this._baseStream._workingBuffer != null;
+ if (flag)
+ {
+ throw new ZlibException("The working buffer is already set.");
+ }
+ bool flag2 = value < 1024;
+ if (flag2)
+ {
+ throw new ZlibException(string.Format("Don't be silly. {0} bytes?? Use a bigger buffer, at least {1}.", value, 1024));
+ }
+ this._baseStream._bufferSize = value;
+ }
+ }
+
+ public CompressionStrategy Strategy
+ {
+ get
+ {
+ return this._baseStream.Strategy;
+ }
+ set
+ {
+ bool disposed = this._disposed;
+ if (disposed)
+ {
+ throw new ObjectDisposedException("DeflateStream");
+ }
+ this._baseStream.Strategy = value;
+ }
+ }
+
+ public virtual long TotalIn
+ {
+ get
+ {
+ return this._baseStream._z.TotalBytesIn;
+ }
+ }
+
+ public virtual long TotalOut
+ {
+ get
+ {
+ return this._baseStream._z.TotalBytesOut;
+ }
+ }
+
+ public override bool CanRead
+ {
+ get
+ {
+ bool disposed = this._disposed;
+ if (disposed)
+ {
+ throw new ObjectDisposedException("DeflateStream");
+ }
+ return this._baseStream._stream.CanRead;
+ }
+ }
+
+ public override bool CanSeek
+ {
+ get
+ {
+ return false;
+ }
+ }
+
+ public override bool CanWrite
+ {
+ get
+ {
+ bool disposed = this._disposed;
+ if (disposed)
+ {
+ throw new ObjectDisposedException("DeflateStream");
+ }
+ return this._baseStream._stream.CanWrite;
+ }
+ }
+
+ public override long Length
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public override long Position
+ {
+ get
+ {
+ bool flag = this._baseStream._streamMode == ZlibBaseStream.StreamMode.Writer;
+ long result;
+ if (flag)
+ {
+ result = this._baseStream._z.TotalBytesOut;
+ }
+ else
+ {
+ bool flag2 = this._baseStream._streamMode == ZlibBaseStream.StreamMode.Reader;
+ if (flag2)
+ {
+ result = this._baseStream._z.TotalBytesIn;
+ }
+ else
+ {
+ result = 0L;
+ }
+ }
+ return result;
+ }
+ set
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ internal ZlibBaseStream _baseStream;
+
+ internal Stream _innerStream;
+
+ private bool _disposed;
+
+ public DeflateStream(Stream stream, CompressionMode mode) : this(stream, mode, CompressionLevel.Default, false)
+ {
+ }
+
+ public DeflateStream(Stream stream, CompressionMode mode, CompressionLevel level) : this(stream, mode, level, false)
+ {
+ }
+
+ public DeflateStream(Stream stream, CompressionMode mode, bool leaveOpen) : this(stream, mode, CompressionLevel.Default, leaveOpen)
+ {
+ }
+
+ public DeflateStream(Stream stream, CompressionMode mode, CompressionLevel level, bool leaveOpen)
+ {
+ this._innerStream = stream;
+ this._baseStream = new ZlibBaseStream(stream, mode, level, ZlibStreamFlavor.DEFLATE, leaveOpen);
+ }
+
+ protected override void Dispose(bool disposing)
+ {
+ try
+ {
+ bool flag = !this._disposed;
+ if (flag)
+ {
+ bool flag2 = disposing && this._baseStream != null;
+ if (flag2)
+ {
+ this._baseStream.Close();
+ }
+ this._disposed = true;
+ }
+ }
+ finally
+ {
+ base.Dispose(disposing);
+ }
+ }
+
+ public override void Flush()
+ {
+ bool disposed = this._disposed;
+ if (disposed)
+ {
+ throw new ObjectDisposedException("DeflateStream");
+ }
+ this._baseStream.Flush();
+ }
+
+ public override int Read(byte[] buffer, int offset, int count)
+ {
+ bool disposed = this._disposed;
+ if (disposed)
+ {
+ throw new ObjectDisposedException("DeflateStream");
+ }
+ return this._baseStream.Read(buffer, offset, count);
+ }
+
+ public override long Seek(long offset, SeekOrigin origin)
+ {
+ throw new NotImplementedException();
+ }
+
+ public override void SetLength(long value)
+ {
+ throw new NotImplementedException();
+ }
+
+ public override void Write(byte[] buffer, int offset, int count)
+ {
+ bool disposed = this._disposed;
+ if (disposed)
+ {
+ throw new ObjectDisposedException("DeflateStream");
+ }
+ this._baseStream.Write(buffer, offset, count);
+ }
+
+ public static byte[] CompressString(string s)
+ {
+ byte[] result;
+ using (MemoryStream memoryStream = new MemoryStream())
+ {
+ Stream compressor = new DeflateStream(memoryStream, CompressionMode.Compress, CompressionLevel.BestCompression);
+ ZlibBaseStream.CompressString(s, compressor);
+ result = memoryStream.ToArray();
+ }
+ return result;
+ }
+
+ public static byte[] CompressBuffer(byte[] b)
+ {
+ byte[] result;
+ using (MemoryStream memoryStream = new MemoryStream())
+ {
+ Stream compressor = new DeflateStream(memoryStream, CompressionMode.Compress, CompressionLevel.BestCompression);
+ ZlibBaseStream.CompressBuffer(b, compressor);
+ result = memoryStream.ToArray();
+ }
+ return result;
+ }
+
+ public static string UncompressString(byte[] compressed)
+ {
+ string result;
+ using (MemoryStream memoryStream = new MemoryStream(compressed))
+ {
+ Stream decompressor = new DeflateStream(memoryStream, CompressionMode.Decompress);
+ result = ZlibBaseStream.UncompressString(compressed, decompressor);
+ }
+ return result;
+ }
+
+ public static byte[] UncompressBuffer(byte[] compressed)
+ {
+ byte[] result;
+ using (MemoryStream memoryStream = new MemoryStream(compressed))
+ {
+ Stream decompressor = new DeflateStream(memoryStream, CompressionMode.Decompress);
+ result = ZlibBaseStream.UncompressBuffer(compressed, decompressor);
+ }
+ return result;
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/DeflateStream.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/DeflateStream.cs.meta new file mode 100644 index 00000000..678c7dff --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/DeflateStream.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1da92ebd4261b12439b90a7f7113648b +timeCreated: 1611465298 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/FlushType.cs b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/FlushType.cs new file mode 100644 index 00000000..e2a15cde --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/FlushType.cs @@ -0,0 +1,13 @@ +using System;
+
+namespace Ionic.Zlib
+{
+ public enum FlushType
+ {
+ None,
+ Partial,
+ Sync,
+ Full,
+ Finish
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/FlushType.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/FlushType.cs.meta new file mode 100644 index 00000000..886a5ccb --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/FlushType.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: bd1bbeb867267094990fb2e772b7caa0 +timeCreated: 1611465750 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/GZipStream.cs b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/GZipStream.cs new file mode 100644 index 00000000..152ed425 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/GZipStream.cs @@ -0,0 +1,417 @@ +using System;
+using System.IO;
+using System.Text;
+
+namespace Ionic.Zlib
+{
+ public class GZipStream : Stream
+ {
+ public string Comment
+ {
+ get
+ {
+ return this._Comment;
+ }
+ set
+ {
+ bool disposed = this._disposed;
+ if (disposed)
+ {
+ throw new ObjectDisposedException("GZipStream");
+ }
+ this._Comment = value;
+ }
+ }
+
+ public string FileName
+ {
+ get
+ {
+ return this._FileName;
+ }
+ set
+ {
+ bool disposed = this._disposed;
+ if (disposed)
+ {
+ throw new ObjectDisposedException("GZipStream");
+ }
+ this._FileName = value;
+ bool flag = this._FileName == null;
+ if (!flag)
+ {
+ bool flag2 = this._FileName.IndexOf("/") != -1;
+ if (flag2)
+ {
+ this._FileName = this._FileName.Replace("/", "\\");
+ }
+ bool flag3 = this._FileName.EndsWith("\\");
+ if (flag3)
+ {
+ throw new Exception("Illegal filename");
+ }
+ bool flag4 = this._FileName.IndexOf("\\") != -1;
+ if (flag4)
+ {
+ this._FileName = Path.GetFileName(this._FileName);
+ }
+ }
+ }
+ }
+
+ public int Crc32
+ {
+ get
+ {
+ return this._Crc32;
+ }
+ }
+
+ public virtual FlushType FlushMode
+ {
+ get
+ {
+ return this._baseStream._flushMode;
+ }
+ set
+ {
+ bool disposed = this._disposed;
+ if (disposed)
+ {
+ throw new ObjectDisposedException("GZipStream");
+ }
+ this._baseStream._flushMode = value;
+ }
+ }
+
+ public int BufferSize
+ {
+ get
+ {
+ return this._baseStream._bufferSize;
+ }
+ set
+ {
+ bool disposed = this._disposed;
+ if (disposed)
+ {
+ throw new ObjectDisposedException("GZipStream");
+ }
+ bool flag = this._baseStream._workingBuffer != null;
+ if (flag)
+ {
+ throw new ZlibException("The working buffer is already set.");
+ }
+ bool flag2 = value < 1024;
+ if (flag2)
+ {
+ throw new ZlibException(string.Format("Don't be silly. {0} bytes?? Use a bigger buffer, at least {1}.", value, 1024));
+ }
+ this._baseStream._bufferSize = value;
+ }
+ }
+
+ public virtual long TotalIn
+ {
+ get
+ {
+ return this._baseStream._z.TotalBytesIn;
+ }
+ }
+
+ public virtual long TotalOut
+ {
+ get
+ {
+ return this._baseStream._z.TotalBytesOut;
+ }
+ }
+
+ public override bool CanRead
+ {
+ get
+ {
+ bool disposed = this._disposed;
+ if (disposed)
+ {
+ throw new ObjectDisposedException("GZipStream");
+ }
+ return this._baseStream._stream.CanRead;
+ }
+ }
+
+ public override bool CanSeek
+ {
+ get
+ {
+ return false;
+ }
+ }
+
+ public override bool CanWrite
+ {
+ get
+ {
+ bool disposed = this._disposed;
+ if (disposed)
+ {
+ throw new ObjectDisposedException("GZipStream");
+ }
+ return this._baseStream._stream.CanWrite;
+ }
+ }
+
+ public override long Length
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public override long Position
+ {
+ get
+ {
+ bool flag = this._baseStream._streamMode == ZlibBaseStream.StreamMode.Writer;
+ long result;
+ if (flag)
+ {
+ result = this._baseStream._z.TotalBytesOut + (long)this._headerByteCount;
+ }
+ else
+ {
+ bool flag2 = this._baseStream._streamMode == ZlibBaseStream.StreamMode.Reader;
+ if (flag2)
+ {
+ result = this._baseStream._z.TotalBytesIn + (long)this._baseStream._gzipHeaderByteCount;
+ }
+ else
+ {
+ result = 0L;
+ }
+ }
+ return result;
+ }
+ set
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ public DateTime? LastModified;
+
+ private int _headerByteCount;
+
+ internal ZlibBaseStream _baseStream;
+
+ private bool _disposed;
+
+ private bool _firstReadDone;
+
+ private string _FileName;
+
+ private string _Comment;
+
+ private int _Crc32;
+
+ internal static readonly DateTime _unixEpoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
+
+ internal static readonly Encoding iso8859dash1 = Encoding.GetEncoding("iso-8859-1");
+
+ public GZipStream(Stream stream, CompressionMode mode) : this(stream, mode, CompressionLevel.Default, false)
+ {
+ }
+
+ public GZipStream(Stream stream, CompressionMode mode, CompressionLevel level) : this(stream, mode, level, false)
+ {
+ }
+
+ public GZipStream(Stream stream, CompressionMode mode, bool leaveOpen) : this(stream, mode, CompressionLevel.Default, leaveOpen)
+ {
+ }
+
+ public GZipStream(Stream stream, CompressionMode mode, CompressionLevel level, bool leaveOpen)
+ {
+ this._baseStream = new ZlibBaseStream(stream, mode, level, ZlibStreamFlavor.GZIP, leaveOpen);
+ }
+
+ protected override void Dispose(bool disposing)
+ {
+ try
+ {
+ bool flag = !this._disposed;
+ if (flag)
+ {
+ bool flag2 = disposing && this._baseStream != null;
+ if (flag2)
+ {
+ this._baseStream.Close();
+ this._Crc32 = this._baseStream.Crc32;
+ }
+ this._disposed = true;
+ }
+ }
+ finally
+ {
+ base.Dispose(disposing);
+ }
+ }
+
+ public override void Flush()
+ {
+ bool disposed = this._disposed;
+ if (disposed)
+ {
+ throw new ObjectDisposedException("GZipStream");
+ }
+ this._baseStream.Flush();
+ }
+
+ public override int Read(byte[] buffer, int offset, int count)
+ {
+ bool disposed = this._disposed;
+ if (disposed)
+ {
+ throw new ObjectDisposedException("GZipStream");
+ }
+ int result = this._baseStream.Read(buffer, offset, count);
+ bool flag = !this._firstReadDone;
+ if (flag)
+ {
+ this._firstReadDone = true;
+ this.FileName = this._baseStream._GzipFileName;
+ this.Comment = this._baseStream._GzipComment;
+ }
+ return result;
+ }
+
+ public override long Seek(long offset, SeekOrigin origin)
+ {
+ throw new NotImplementedException();
+ }
+
+ public override void SetLength(long value)
+ {
+ throw new NotImplementedException();
+ }
+
+ public override void Write(byte[] buffer, int offset, int count)
+ {
+ bool disposed = this._disposed;
+ if (disposed)
+ {
+ throw new ObjectDisposedException("GZipStream");
+ }
+ bool flag = this._baseStream._streamMode == ZlibBaseStream.StreamMode.Undefined;
+ if (flag)
+ {
+ bool wantCompress = this._baseStream._wantCompress;
+ if (!wantCompress)
+ {
+ throw new InvalidOperationException();
+ }
+ this._headerByteCount = this.EmitHeader();
+ }
+ this._baseStream.Write(buffer, offset, count);
+ }
+
+ private int EmitHeader()
+ {
+ byte[] array = (this.Comment == null) ? null : GZipStream.iso8859dash1.GetBytes(this.Comment);
+ byte[] array2 = (this.FileName == null) ? null : GZipStream.iso8859dash1.GetBytes(this.FileName);
+ int num = (this.Comment == null) ? 0 : (array.Length + 1);
+ int num2 = (this.FileName == null) ? 0 : (array2.Length + 1);
+ int num3 = 10 + num + num2;
+ byte[] array3 = new byte[num3];
+ int num4 = 0;
+ array3[num4++] = 31;
+ array3[num4++] = 139;
+ array3[num4++] = 8;
+ byte b = 0;
+ bool flag = this.Comment != null;
+ if (flag)
+ {
+ b ^= 16;
+ }
+ bool flag2 = this.FileName != null;
+ if (flag2)
+ {
+ b ^= 8;
+ }
+ array3[num4++] = b;
+ bool flag3 = this.LastModified == null;
+ if (flag3)
+ {
+ this.LastModified = new DateTime?(DateTime.Now);
+ }
+ int value = (int)(this.LastModified.Value - GZipStream._unixEpoch).TotalSeconds;
+ Array.Copy(BitConverter.GetBytes(value), 0, array3, num4, 4);
+ num4 += 4;
+ array3[num4++] = 0;
+ array3[num4++] = byte.MaxValue;
+ bool flag4 = num2 != 0;
+ if (flag4)
+ {
+ Array.Copy(array2, 0, array3, num4, num2 - 1);
+ num4 += num2 - 1;
+ array3[num4++] = 0;
+ }
+ bool flag5 = num != 0;
+ if (flag5)
+ {
+ Array.Copy(array, 0, array3, num4, num - 1);
+ num4 += num - 1;
+ array3[num4++] = 0;
+ }
+ this._baseStream._stream.Write(array3, 0, array3.Length);
+ return array3.Length;
+ }
+
+ public static byte[] CompressString(string s)
+ {
+ byte[] result;
+ using (MemoryStream memoryStream = new MemoryStream())
+ {
+ Stream compressor = new GZipStream(memoryStream, CompressionMode.Compress, CompressionLevel.BestCompression);
+ ZlibBaseStream.CompressString(s, compressor);
+ result = memoryStream.ToArray();
+ }
+ return result;
+ }
+
+ public static byte[] CompressBuffer(byte[] b)
+ {
+ byte[] result;
+ using (MemoryStream memoryStream = new MemoryStream())
+ {
+ Stream compressor = new GZipStream(memoryStream, CompressionMode.Compress, CompressionLevel.BestCompression);
+ ZlibBaseStream.CompressBuffer(b, compressor);
+ result = memoryStream.ToArray();
+ }
+ return result;
+ }
+
+ public static string UncompressString(byte[] compressed)
+ {
+ string result;
+ using (MemoryStream memoryStream = new MemoryStream(compressed))
+ {
+ Stream decompressor = new GZipStream(memoryStream, CompressionMode.Decompress);
+ result = ZlibBaseStream.UncompressString(compressed, decompressor);
+ }
+ return result;
+ }
+
+ public static byte[] UncompressBuffer(byte[] compressed)
+ {
+ byte[] result;
+ using (MemoryStream memoryStream = new MemoryStream(compressed))
+ {
+ Stream decompressor = new GZipStream(memoryStream, CompressionMode.Decompress);
+ result = ZlibBaseStream.UncompressBuffer(compressed, decompressor);
+ }
+ return result;
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/GZipStream.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/GZipStream.cs.meta new file mode 100644 index 00000000..1d1d796a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/GZipStream.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4c51a6dee7c0f4f4791e8af61fa83c32 +timeCreated: 1611465641 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/InfTree.cs b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/InfTree.cs new file mode 100644 index 00000000..e6368120 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/InfTree.cs @@ -0,0 +1,2154 @@ +using System;
+
+namespace Ionic.Zlib
+{
+ internal sealed class InfTree
+ {
+ private const int MANY = 1440;
+
+ private const int Z_OK = 0;
+
+ private const int Z_STREAM_END = 1;
+
+ private const int Z_NEED_DICT = 2;
+
+ private const int Z_ERRNO = -1;
+
+ private const int Z_STREAM_ERROR = -2;
+
+ private const int Z_DATA_ERROR = -3;
+
+ private const int Z_MEM_ERROR = -4;
+
+ private const int Z_BUF_ERROR = -5;
+
+ private const int Z_VERSION_ERROR = -6;
+
+ internal const int fixed_bl = 9;
+
+ internal const int fixed_bd = 5;
+
+ internal static readonly int[] fixed_tl = new int[]
+ {
+ 96,
+ 7,
+ 256,
+ 0,
+ 8,
+ 80,
+ 0,
+ 8,
+ 16,
+ 84,
+ 8,
+ 115,
+ 82,
+ 7,
+ 31,
+ 0,
+ 8,
+ 112,
+ 0,
+ 8,
+ 48,
+ 0,
+ 9,
+ 192,
+ 80,
+ 7,
+ 10,
+ 0,
+ 8,
+ 96,
+ 0,
+ 8,
+ 32,
+ 0,
+ 9,
+ 160,
+ 0,
+ 8,
+ 0,
+ 0,
+ 8,
+ 128,
+ 0,
+ 8,
+ 64,
+ 0,
+ 9,
+ 224,
+ 80,
+ 7,
+ 6,
+ 0,
+ 8,
+ 88,
+ 0,
+ 8,
+ 24,
+ 0,
+ 9,
+ 144,
+ 83,
+ 7,
+ 59,
+ 0,
+ 8,
+ 120,
+ 0,
+ 8,
+ 56,
+ 0,
+ 9,
+ 208,
+ 81,
+ 7,
+ 17,
+ 0,
+ 8,
+ 104,
+ 0,
+ 8,
+ 40,
+ 0,
+ 9,
+ 176,
+ 0,
+ 8,
+ 8,
+ 0,
+ 8,
+ 136,
+ 0,
+ 8,
+ 72,
+ 0,
+ 9,
+ 240,
+ 80,
+ 7,
+ 4,
+ 0,
+ 8,
+ 84,
+ 0,
+ 8,
+ 20,
+ 85,
+ 8,
+ 227,
+ 83,
+ 7,
+ 43,
+ 0,
+ 8,
+ 116,
+ 0,
+ 8,
+ 52,
+ 0,
+ 9,
+ 200,
+ 81,
+ 7,
+ 13,
+ 0,
+ 8,
+ 100,
+ 0,
+ 8,
+ 36,
+ 0,
+ 9,
+ 168,
+ 0,
+ 8,
+ 4,
+ 0,
+ 8,
+ 132,
+ 0,
+ 8,
+ 68,
+ 0,
+ 9,
+ 232,
+ 80,
+ 7,
+ 8,
+ 0,
+ 8,
+ 92,
+ 0,
+ 8,
+ 28,
+ 0,
+ 9,
+ 152,
+ 84,
+ 7,
+ 83,
+ 0,
+ 8,
+ 124,
+ 0,
+ 8,
+ 60,
+ 0,
+ 9,
+ 216,
+ 82,
+ 7,
+ 23,
+ 0,
+ 8,
+ 108,
+ 0,
+ 8,
+ 44,
+ 0,
+ 9,
+ 184,
+ 0,
+ 8,
+ 12,
+ 0,
+ 8,
+ 140,
+ 0,
+ 8,
+ 76,
+ 0,
+ 9,
+ 248,
+ 80,
+ 7,
+ 3,
+ 0,
+ 8,
+ 82,
+ 0,
+ 8,
+ 18,
+ 85,
+ 8,
+ 163,
+ 83,
+ 7,
+ 35,
+ 0,
+ 8,
+ 114,
+ 0,
+ 8,
+ 50,
+ 0,
+ 9,
+ 196,
+ 81,
+ 7,
+ 11,
+ 0,
+ 8,
+ 98,
+ 0,
+ 8,
+ 34,
+ 0,
+ 9,
+ 164,
+ 0,
+ 8,
+ 2,
+ 0,
+ 8,
+ 130,
+ 0,
+ 8,
+ 66,
+ 0,
+ 9,
+ 228,
+ 80,
+ 7,
+ 7,
+ 0,
+ 8,
+ 90,
+ 0,
+ 8,
+ 26,
+ 0,
+ 9,
+ 148,
+ 84,
+ 7,
+ 67,
+ 0,
+ 8,
+ 122,
+ 0,
+ 8,
+ 58,
+ 0,
+ 9,
+ 212,
+ 82,
+ 7,
+ 19,
+ 0,
+ 8,
+ 106,
+ 0,
+ 8,
+ 42,
+ 0,
+ 9,
+ 180,
+ 0,
+ 8,
+ 10,
+ 0,
+ 8,
+ 138,
+ 0,
+ 8,
+ 74,
+ 0,
+ 9,
+ 244,
+ 80,
+ 7,
+ 5,
+ 0,
+ 8,
+ 86,
+ 0,
+ 8,
+ 22,
+ 192,
+ 8,
+ 0,
+ 83,
+ 7,
+ 51,
+ 0,
+ 8,
+ 118,
+ 0,
+ 8,
+ 54,
+ 0,
+ 9,
+ 204,
+ 81,
+ 7,
+ 15,
+ 0,
+ 8,
+ 102,
+ 0,
+ 8,
+ 38,
+ 0,
+ 9,
+ 172,
+ 0,
+ 8,
+ 6,
+ 0,
+ 8,
+ 134,
+ 0,
+ 8,
+ 70,
+ 0,
+ 9,
+ 236,
+ 80,
+ 7,
+ 9,
+ 0,
+ 8,
+ 94,
+ 0,
+ 8,
+ 30,
+ 0,
+ 9,
+ 156,
+ 84,
+ 7,
+ 99,
+ 0,
+ 8,
+ 126,
+ 0,
+ 8,
+ 62,
+ 0,
+ 9,
+ 220,
+ 82,
+ 7,
+ 27,
+ 0,
+ 8,
+ 110,
+ 0,
+ 8,
+ 46,
+ 0,
+ 9,
+ 188,
+ 0,
+ 8,
+ 14,
+ 0,
+ 8,
+ 142,
+ 0,
+ 8,
+ 78,
+ 0,
+ 9,
+ 252,
+ 96,
+ 7,
+ 256,
+ 0,
+ 8,
+ 81,
+ 0,
+ 8,
+ 17,
+ 85,
+ 8,
+ 131,
+ 82,
+ 7,
+ 31,
+ 0,
+ 8,
+ 113,
+ 0,
+ 8,
+ 49,
+ 0,
+ 9,
+ 194,
+ 80,
+ 7,
+ 10,
+ 0,
+ 8,
+ 97,
+ 0,
+ 8,
+ 33,
+ 0,
+ 9,
+ 162,
+ 0,
+ 8,
+ 1,
+ 0,
+ 8,
+ 129,
+ 0,
+ 8,
+ 65,
+ 0,
+ 9,
+ 226,
+ 80,
+ 7,
+ 6,
+ 0,
+ 8,
+ 89,
+ 0,
+ 8,
+ 25,
+ 0,
+ 9,
+ 146,
+ 83,
+ 7,
+ 59,
+ 0,
+ 8,
+ 121,
+ 0,
+ 8,
+ 57,
+ 0,
+ 9,
+ 210,
+ 81,
+ 7,
+ 17,
+ 0,
+ 8,
+ 105,
+ 0,
+ 8,
+ 41,
+ 0,
+ 9,
+ 178,
+ 0,
+ 8,
+ 9,
+ 0,
+ 8,
+ 137,
+ 0,
+ 8,
+ 73,
+ 0,
+ 9,
+ 242,
+ 80,
+ 7,
+ 4,
+ 0,
+ 8,
+ 85,
+ 0,
+ 8,
+ 21,
+ 80,
+ 8,
+ 258,
+ 83,
+ 7,
+ 43,
+ 0,
+ 8,
+ 117,
+ 0,
+ 8,
+ 53,
+ 0,
+ 9,
+ 202,
+ 81,
+ 7,
+ 13,
+ 0,
+ 8,
+ 101,
+ 0,
+ 8,
+ 37,
+ 0,
+ 9,
+ 170,
+ 0,
+ 8,
+ 5,
+ 0,
+ 8,
+ 133,
+ 0,
+ 8,
+ 69,
+ 0,
+ 9,
+ 234,
+ 80,
+ 7,
+ 8,
+ 0,
+ 8,
+ 93,
+ 0,
+ 8,
+ 29,
+ 0,
+ 9,
+ 154,
+ 84,
+ 7,
+ 83,
+ 0,
+ 8,
+ 125,
+ 0,
+ 8,
+ 61,
+ 0,
+ 9,
+ 218,
+ 82,
+ 7,
+ 23,
+ 0,
+ 8,
+ 109,
+ 0,
+ 8,
+ 45,
+ 0,
+ 9,
+ 186,
+ 0,
+ 8,
+ 13,
+ 0,
+ 8,
+ 141,
+ 0,
+ 8,
+ 77,
+ 0,
+ 9,
+ 250,
+ 80,
+ 7,
+ 3,
+ 0,
+ 8,
+ 83,
+ 0,
+ 8,
+ 19,
+ 85,
+ 8,
+ 195,
+ 83,
+ 7,
+ 35,
+ 0,
+ 8,
+ 115,
+ 0,
+ 8,
+ 51,
+ 0,
+ 9,
+ 198,
+ 81,
+ 7,
+ 11,
+ 0,
+ 8,
+ 99,
+ 0,
+ 8,
+ 35,
+ 0,
+ 9,
+ 166,
+ 0,
+ 8,
+ 3,
+ 0,
+ 8,
+ 131,
+ 0,
+ 8,
+ 67,
+ 0,
+ 9,
+ 230,
+ 80,
+ 7,
+ 7,
+ 0,
+ 8,
+ 91,
+ 0,
+ 8,
+ 27,
+ 0,
+ 9,
+ 150,
+ 84,
+ 7,
+ 67,
+ 0,
+ 8,
+ 123,
+ 0,
+ 8,
+ 59,
+ 0,
+ 9,
+ 214,
+ 82,
+ 7,
+ 19,
+ 0,
+ 8,
+ 107,
+ 0,
+ 8,
+ 43,
+ 0,
+ 9,
+ 182,
+ 0,
+ 8,
+ 11,
+ 0,
+ 8,
+ 139,
+ 0,
+ 8,
+ 75,
+ 0,
+ 9,
+ 246,
+ 80,
+ 7,
+ 5,
+ 0,
+ 8,
+ 87,
+ 0,
+ 8,
+ 23,
+ 192,
+ 8,
+ 0,
+ 83,
+ 7,
+ 51,
+ 0,
+ 8,
+ 119,
+ 0,
+ 8,
+ 55,
+ 0,
+ 9,
+ 206,
+ 81,
+ 7,
+ 15,
+ 0,
+ 8,
+ 103,
+ 0,
+ 8,
+ 39,
+ 0,
+ 9,
+ 174,
+ 0,
+ 8,
+ 7,
+ 0,
+ 8,
+ 135,
+ 0,
+ 8,
+ 71,
+ 0,
+ 9,
+ 238,
+ 80,
+ 7,
+ 9,
+ 0,
+ 8,
+ 95,
+ 0,
+ 8,
+ 31,
+ 0,
+ 9,
+ 158,
+ 84,
+ 7,
+ 99,
+ 0,
+ 8,
+ 127,
+ 0,
+ 8,
+ 63,
+ 0,
+ 9,
+ 222,
+ 82,
+ 7,
+ 27,
+ 0,
+ 8,
+ 111,
+ 0,
+ 8,
+ 47,
+ 0,
+ 9,
+ 190,
+ 0,
+ 8,
+ 15,
+ 0,
+ 8,
+ 143,
+ 0,
+ 8,
+ 79,
+ 0,
+ 9,
+ 254,
+ 96,
+ 7,
+ 256,
+ 0,
+ 8,
+ 80,
+ 0,
+ 8,
+ 16,
+ 84,
+ 8,
+ 115,
+ 82,
+ 7,
+ 31,
+ 0,
+ 8,
+ 112,
+ 0,
+ 8,
+ 48,
+ 0,
+ 9,
+ 193,
+ 80,
+ 7,
+ 10,
+ 0,
+ 8,
+ 96,
+ 0,
+ 8,
+ 32,
+ 0,
+ 9,
+ 161,
+ 0,
+ 8,
+ 0,
+ 0,
+ 8,
+ 128,
+ 0,
+ 8,
+ 64,
+ 0,
+ 9,
+ 225,
+ 80,
+ 7,
+ 6,
+ 0,
+ 8,
+ 88,
+ 0,
+ 8,
+ 24,
+ 0,
+ 9,
+ 145,
+ 83,
+ 7,
+ 59,
+ 0,
+ 8,
+ 120,
+ 0,
+ 8,
+ 56,
+ 0,
+ 9,
+ 209,
+ 81,
+ 7,
+ 17,
+ 0,
+ 8,
+ 104,
+ 0,
+ 8,
+ 40,
+ 0,
+ 9,
+ 177,
+ 0,
+ 8,
+ 8,
+ 0,
+ 8,
+ 136,
+ 0,
+ 8,
+ 72,
+ 0,
+ 9,
+ 241,
+ 80,
+ 7,
+ 4,
+ 0,
+ 8,
+ 84,
+ 0,
+ 8,
+ 20,
+ 85,
+ 8,
+ 227,
+ 83,
+ 7,
+ 43,
+ 0,
+ 8,
+ 116,
+ 0,
+ 8,
+ 52,
+ 0,
+ 9,
+ 201,
+ 81,
+ 7,
+ 13,
+ 0,
+ 8,
+ 100,
+ 0,
+ 8,
+ 36,
+ 0,
+ 9,
+ 169,
+ 0,
+ 8,
+ 4,
+ 0,
+ 8,
+ 132,
+ 0,
+ 8,
+ 68,
+ 0,
+ 9,
+ 233,
+ 80,
+ 7,
+ 8,
+ 0,
+ 8,
+ 92,
+ 0,
+ 8,
+ 28,
+ 0,
+ 9,
+ 153,
+ 84,
+ 7,
+ 83,
+ 0,
+ 8,
+ 124,
+ 0,
+ 8,
+ 60,
+ 0,
+ 9,
+ 217,
+ 82,
+ 7,
+ 23,
+ 0,
+ 8,
+ 108,
+ 0,
+ 8,
+ 44,
+ 0,
+ 9,
+ 185,
+ 0,
+ 8,
+ 12,
+ 0,
+ 8,
+ 140,
+ 0,
+ 8,
+ 76,
+ 0,
+ 9,
+ 249,
+ 80,
+ 7,
+ 3,
+ 0,
+ 8,
+ 82,
+ 0,
+ 8,
+ 18,
+ 85,
+ 8,
+ 163,
+ 83,
+ 7,
+ 35,
+ 0,
+ 8,
+ 114,
+ 0,
+ 8,
+ 50,
+ 0,
+ 9,
+ 197,
+ 81,
+ 7,
+ 11,
+ 0,
+ 8,
+ 98,
+ 0,
+ 8,
+ 34,
+ 0,
+ 9,
+ 165,
+ 0,
+ 8,
+ 2,
+ 0,
+ 8,
+ 130,
+ 0,
+ 8,
+ 66,
+ 0,
+ 9,
+ 229,
+ 80,
+ 7,
+ 7,
+ 0,
+ 8,
+ 90,
+ 0,
+ 8,
+ 26,
+ 0,
+ 9,
+ 149,
+ 84,
+ 7,
+ 67,
+ 0,
+ 8,
+ 122,
+ 0,
+ 8,
+ 58,
+ 0,
+ 9,
+ 213,
+ 82,
+ 7,
+ 19,
+ 0,
+ 8,
+ 106,
+ 0,
+ 8,
+ 42,
+ 0,
+ 9,
+ 181,
+ 0,
+ 8,
+ 10,
+ 0,
+ 8,
+ 138,
+ 0,
+ 8,
+ 74,
+ 0,
+ 9,
+ 245,
+ 80,
+ 7,
+ 5,
+ 0,
+ 8,
+ 86,
+ 0,
+ 8,
+ 22,
+ 192,
+ 8,
+ 0,
+ 83,
+ 7,
+ 51,
+ 0,
+ 8,
+ 118,
+ 0,
+ 8,
+ 54,
+ 0,
+ 9,
+ 205,
+ 81,
+ 7,
+ 15,
+ 0,
+ 8,
+ 102,
+ 0,
+ 8,
+ 38,
+ 0,
+ 9,
+ 173,
+ 0,
+ 8,
+ 6,
+ 0,
+ 8,
+ 134,
+ 0,
+ 8,
+ 70,
+ 0,
+ 9,
+ 237,
+ 80,
+ 7,
+ 9,
+ 0,
+ 8,
+ 94,
+ 0,
+ 8,
+ 30,
+ 0,
+ 9,
+ 157,
+ 84,
+ 7,
+ 99,
+ 0,
+ 8,
+ 126,
+ 0,
+ 8,
+ 62,
+ 0,
+ 9,
+ 221,
+ 82,
+ 7,
+ 27,
+ 0,
+ 8,
+ 110,
+ 0,
+ 8,
+ 46,
+ 0,
+ 9,
+ 189,
+ 0,
+ 8,
+ 14,
+ 0,
+ 8,
+ 142,
+ 0,
+ 8,
+ 78,
+ 0,
+ 9,
+ 253,
+ 96,
+ 7,
+ 256,
+ 0,
+ 8,
+ 81,
+ 0,
+ 8,
+ 17,
+ 85,
+ 8,
+ 131,
+ 82,
+ 7,
+ 31,
+ 0,
+ 8,
+ 113,
+ 0,
+ 8,
+ 49,
+ 0,
+ 9,
+ 195,
+ 80,
+ 7,
+ 10,
+ 0,
+ 8,
+ 97,
+ 0,
+ 8,
+ 33,
+ 0,
+ 9,
+ 163,
+ 0,
+ 8,
+ 1,
+ 0,
+ 8,
+ 129,
+ 0,
+ 8,
+ 65,
+ 0,
+ 9,
+ 227,
+ 80,
+ 7,
+ 6,
+ 0,
+ 8,
+ 89,
+ 0,
+ 8,
+ 25,
+ 0,
+ 9,
+ 147,
+ 83,
+ 7,
+ 59,
+ 0,
+ 8,
+ 121,
+ 0,
+ 8,
+ 57,
+ 0,
+ 9,
+ 211,
+ 81,
+ 7,
+ 17,
+ 0,
+ 8,
+ 105,
+ 0,
+ 8,
+ 41,
+ 0,
+ 9,
+ 179,
+ 0,
+ 8,
+ 9,
+ 0,
+ 8,
+ 137,
+ 0,
+ 8,
+ 73,
+ 0,
+ 9,
+ 243,
+ 80,
+ 7,
+ 4,
+ 0,
+ 8,
+ 85,
+ 0,
+ 8,
+ 21,
+ 80,
+ 8,
+ 258,
+ 83,
+ 7,
+ 43,
+ 0,
+ 8,
+ 117,
+ 0,
+ 8,
+ 53,
+ 0,
+ 9,
+ 203,
+ 81,
+ 7,
+ 13,
+ 0,
+ 8,
+ 101,
+ 0,
+ 8,
+ 37,
+ 0,
+ 9,
+ 171,
+ 0,
+ 8,
+ 5,
+ 0,
+ 8,
+ 133,
+ 0,
+ 8,
+ 69,
+ 0,
+ 9,
+ 235,
+ 80,
+ 7,
+ 8,
+ 0,
+ 8,
+ 93,
+ 0,
+ 8,
+ 29,
+ 0,
+ 9,
+ 155,
+ 84,
+ 7,
+ 83,
+ 0,
+ 8,
+ 125,
+ 0,
+ 8,
+ 61,
+ 0,
+ 9,
+ 219,
+ 82,
+ 7,
+ 23,
+ 0,
+ 8,
+ 109,
+ 0,
+ 8,
+ 45,
+ 0,
+ 9,
+ 187,
+ 0,
+ 8,
+ 13,
+ 0,
+ 8,
+ 141,
+ 0,
+ 8,
+ 77,
+ 0,
+ 9,
+ 251,
+ 80,
+ 7,
+ 3,
+ 0,
+ 8,
+ 83,
+ 0,
+ 8,
+ 19,
+ 85,
+ 8,
+ 195,
+ 83,
+ 7,
+ 35,
+ 0,
+ 8,
+ 115,
+ 0,
+ 8,
+ 51,
+ 0,
+ 9,
+ 199,
+ 81,
+ 7,
+ 11,
+ 0,
+ 8,
+ 99,
+ 0,
+ 8,
+ 35,
+ 0,
+ 9,
+ 167,
+ 0,
+ 8,
+ 3,
+ 0,
+ 8,
+ 131,
+ 0,
+ 8,
+ 67,
+ 0,
+ 9,
+ 231,
+ 80,
+ 7,
+ 7,
+ 0,
+ 8,
+ 91,
+ 0,
+ 8,
+ 27,
+ 0,
+ 9,
+ 151,
+ 84,
+ 7,
+ 67,
+ 0,
+ 8,
+ 123,
+ 0,
+ 8,
+ 59,
+ 0,
+ 9,
+ 215,
+ 82,
+ 7,
+ 19,
+ 0,
+ 8,
+ 107,
+ 0,
+ 8,
+ 43,
+ 0,
+ 9,
+ 183,
+ 0,
+ 8,
+ 11,
+ 0,
+ 8,
+ 139,
+ 0,
+ 8,
+ 75,
+ 0,
+ 9,
+ 247,
+ 80,
+ 7,
+ 5,
+ 0,
+ 8,
+ 87,
+ 0,
+ 8,
+ 23,
+ 192,
+ 8,
+ 0,
+ 83,
+ 7,
+ 51,
+ 0,
+ 8,
+ 119,
+ 0,
+ 8,
+ 55,
+ 0,
+ 9,
+ 207,
+ 81,
+ 7,
+ 15,
+ 0,
+ 8,
+ 103,
+ 0,
+ 8,
+ 39,
+ 0,
+ 9,
+ 175,
+ 0,
+ 8,
+ 7,
+ 0,
+ 8,
+ 135,
+ 0,
+ 8,
+ 71,
+ 0,
+ 9,
+ 239,
+ 80,
+ 7,
+ 9,
+ 0,
+ 8,
+ 95,
+ 0,
+ 8,
+ 31,
+ 0,
+ 9,
+ 159,
+ 84,
+ 7,
+ 99,
+ 0,
+ 8,
+ 127,
+ 0,
+ 8,
+ 63,
+ 0,
+ 9,
+ 223,
+ 82,
+ 7,
+ 27,
+ 0,
+ 8,
+ 111,
+ 0,
+ 8,
+ 47,
+ 0,
+ 9,
+ 191,
+ 0,
+ 8,
+ 15,
+ 0,
+ 8,
+ 143,
+ 0,
+ 8,
+ 79,
+ 0,
+ 9,
+ 255
+ };
+
+ internal static readonly int[] fixed_td = new int[]
+ {
+ 80,
+ 5,
+ 1,
+ 87,
+ 5,
+ 257,
+ 83,
+ 5,
+ 17,
+ 91,
+ 5,
+ 4097,
+ 81,
+ 5,
+ 5,
+ 89,
+ 5,
+ 1025,
+ 85,
+ 5,
+ 65,
+ 93,
+ 5,
+ 16385,
+ 80,
+ 5,
+ 3,
+ 88,
+ 5,
+ 513,
+ 84,
+ 5,
+ 33,
+ 92,
+ 5,
+ 8193,
+ 82,
+ 5,
+ 9,
+ 90,
+ 5,
+ 2049,
+ 86,
+ 5,
+ 129,
+ 192,
+ 5,
+ 24577,
+ 80,
+ 5,
+ 2,
+ 87,
+ 5,
+ 385,
+ 83,
+ 5,
+ 25,
+ 91,
+ 5,
+ 6145,
+ 81,
+ 5,
+ 7,
+ 89,
+ 5,
+ 1537,
+ 85,
+ 5,
+ 97,
+ 93,
+ 5,
+ 24577,
+ 80,
+ 5,
+ 4,
+ 88,
+ 5,
+ 769,
+ 84,
+ 5,
+ 49,
+ 92,
+ 5,
+ 12289,
+ 82,
+ 5,
+ 13,
+ 90,
+ 5,
+ 3073,
+ 86,
+ 5,
+ 193,
+ 192,
+ 5,
+ 24577
+ };
+
+ internal static readonly int[] cplens = new int[]
+ {
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 13,
+ 15,
+ 17,
+ 19,
+ 23,
+ 27,
+ 31,
+ 35,
+ 43,
+ 51,
+ 59,
+ 67,
+ 83,
+ 99,
+ 115,
+ 131,
+ 163,
+ 195,
+ 227,
+ 258,
+ 0,
+ 0
+ };
+
+ internal static readonly int[] cplext = new int[]
+ {
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 1,
+ 1,
+ 1,
+ 2,
+ 2,
+ 2,
+ 2,
+ 3,
+ 3,
+ 3,
+ 3,
+ 4,
+ 4,
+ 4,
+ 4,
+ 5,
+ 5,
+ 5,
+ 5,
+ 0,
+ 112,
+ 112
+ };
+
+ internal static readonly int[] cpdist = new int[]
+ {
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 7,
+ 9,
+ 13,
+ 17,
+ 25,
+ 33,
+ 49,
+ 65,
+ 97,
+ 129,
+ 193,
+ 257,
+ 385,
+ 513,
+ 769,
+ 1025,
+ 1537,
+ 2049,
+ 3073,
+ 4097,
+ 6145,
+ 8193,
+ 12289,
+ 16385,
+ 24577
+ };
+
+ internal static readonly int[] cpdext = new int[]
+ {
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 1,
+ 2,
+ 2,
+ 3,
+ 3,
+ 4,
+ 4,
+ 5,
+ 5,
+ 6,
+ 6,
+ 7,
+ 7,
+ 8,
+ 8,
+ 9,
+ 9,
+ 10,
+ 10,
+ 11,
+ 11,
+ 12,
+ 12,
+ 13,
+ 13
+ };
+
+ internal const int BMAX = 15;
+
+ internal int[] hn = null;
+
+ internal int[] v = null;
+
+ internal int[] c = null;
+
+ internal int[] r = null;
+
+ internal int[] u = null;
+
+ internal int[] x = null;
+
+ private int huft_build(int[] b, int bindex, int n, int s, int[] d, int[] e, int[] t, int[] m, int[] hp, int[] hn, int[] v)
+ {
+ int num = 0;
+ int i = n;
+ do
+ {
+ this.c[b[bindex + num]]++;
+ num++;
+ i--;
+ }
+ while (i != 0);
+ bool flag = this.c[0] == n;
+ int result;
+ if (flag)
+ {
+ t[0] = -1;
+ m[0] = 0;
+ result = 0;
+ }
+ else
+ {
+ int num2 = m[0];
+ int j;
+ for (j = 1; j <= 15; j++)
+ {
+ bool flag2 = this.c[j] != 0;
+ if (flag2)
+ {
+ break;
+ }
+ }
+ int k = j;
+ bool flag3 = num2 < j;
+ if (flag3)
+ {
+ num2 = j;
+ }
+ for (i = 15; i != 0; i--)
+ {
+ bool flag4 = this.c[i] != 0;
+ if (flag4)
+ {
+ break;
+ }
+ }
+ int num3 = i;
+ bool flag5 = num2 > i;
+ if (flag5)
+ {
+ num2 = i;
+ }
+ m[0] = num2;
+ int num4 = 1 << j;
+ while (j < i)
+ {
+ bool flag6 = (num4 -= this.c[j]) < 0;
+ if (flag6)
+ {
+ return -3;
+ }
+ j++;
+ num4 <<= 1;
+ }
+ bool flag7 = (num4 -= this.c[i]) < 0;
+ if (flag7)
+ {
+ result = -3;
+ }
+ else
+ {
+ this.c[i] += num4;
+ j = (this.x[1] = 0);
+ num = 1;
+ int num5 = 2;
+ while (--i != 0)
+ {
+ j = (this.x[num5] = j + this.c[num]);
+ num5++;
+ num++;
+ }
+ i = 0;
+ num = 0;
+ do
+ {
+ bool flag8 = (j = b[bindex + num]) != 0;
+ if (flag8)
+ {
+ int[] array = this.x;
+ int num6 = j;
+ int num7 = array[num6];
+ array[num6] = num7 + 1;
+ v[num7] = i;
+ }
+ num++;
+ }
+ while (++i < n);
+ n = this.x[num3];
+ i = (this.x[0] = 0);
+ num = 0;
+ int num8 = -1;
+ int num9 = -num2;
+ this.u[0] = 0;
+ int num10 = 0;
+ int num11 = 0;
+ while (k <= num3)
+ {
+ int num12 = this.c[k];
+ while (num12-- != 0)
+ {
+ int num13;
+ while (k > num9 + num2)
+ {
+ num8++;
+ num9 += num2;
+ num11 = num3 - num9;
+ num11 = ((num11 > num2) ? num2 : num11);
+ bool flag9 = (num13 = 1 << ((j = k - num9) & 31)) > num12 + 1;
+ if (flag9)
+ {
+ num13 -= num12 + 1;
+ num5 = k;
+ bool flag10 = j < num11;
+ if (flag10)
+ {
+ while (++j < num11)
+ {
+ bool flag11 = (num13 <<= 1) <= this.c[++num5];
+ if (flag11)
+ {
+ break;
+ }
+ num13 -= this.c[num5];
+ }
+ }
+ }
+ num11 = 1 << j;
+ bool flag12 = hn[0] + num11 > 1440;
+ if (flag12)
+ {
+ return -3;
+ }
+ num10 = (this.u[num8] = hn[0]);
+ hn[0] += num11;
+ bool flag13 = num8 != 0;
+ if (flag13)
+ {
+ this.x[num8] = i;
+ this.r[0] = (int)((sbyte)j);
+ this.r[1] = (int)((sbyte)num2);
+ j = SharedUtils.URShift(i, num9 - num2);
+ this.r[2] = num10 - this.u[num8 - 1] - j;
+ Array.Copy(this.r, 0, hp, (this.u[num8 - 1] + j) * 3, 3);
+ }
+ else
+ {
+ t[0] = num10;
+ }
+ }
+ this.r[1] = (int)((sbyte)(k - num9));
+ bool flag14 = num >= n;
+ if (flag14)
+ {
+ this.r[0] = 192;
+ }
+ else
+ {
+ bool flag15 = v[num] < s;
+ if (flag15)
+ {
+ this.r[0] = (int)((v[num] < 256) ? 0 : 96);
+ this.r[2] = v[num++];
+ }
+ else
+ {
+ this.r[0] = (int)((sbyte)(e[v[num] - s] + 16 + 64));
+ this.r[2] = d[v[num++] - s];
+ }
+ }
+ num13 = 1 << k - num9;
+ for (j = SharedUtils.URShift(i, num9); j < num11; j += num13)
+ {
+ Array.Copy(this.r, 0, hp, (num10 + j) * 3, 3);
+ }
+ j = 1 << k - 1;
+ while ((i & j) != 0)
+ {
+ i ^= j;
+ j = SharedUtils.URShift(j, 1);
+ }
+ i ^= j;
+ int num14 = (1 << num9) - 1;
+ while ((i & num14) != this.x[num8])
+ {
+ num8--;
+ num9 -= num2;
+ num14 = (1 << num9) - 1;
+ }
+ }
+ k++;
+ }
+ result = ((num4 != 0 && num3 != 1) ? -5 : 0);
+ }
+ }
+ return result;
+ }
+
+ internal int inflate_trees_bits(int[] c, int[] bb, int[] tb, int[] hp, ZlibCodec z)
+ {
+ this.initWorkArea(19);
+ this.hn[0] = 0;
+ int num = this.huft_build(c, 0, 19, 19, null, null, tb, bb, hp, this.hn, this.v);
+ bool flag = num == -3;
+ if (flag)
+ {
+ z.Message = "oversubscribed dynamic bit lengths tree";
+ }
+ else
+ {
+ bool flag2 = num == -5 || bb[0] == 0;
+ if (flag2)
+ {
+ z.Message = "incomplete dynamic bit lengths tree";
+ num = -3;
+ }
+ }
+ return num;
+ }
+
+ internal int inflate_trees_dynamic(int nl, int nd, int[] c, int[] bl, int[] bd, int[] tl, int[] td, int[] hp, ZlibCodec z)
+ {
+ this.initWorkArea(288);
+ this.hn[0] = 0;
+ int num = this.huft_build(c, 0, nl, 257, InfTree.cplens, InfTree.cplext, tl, bl, hp, this.hn, this.v);
+ bool flag = num != 0 || bl[0] == 0;
+ int result;
+ if (flag)
+ {
+ bool flag2 = num == -3;
+ if (flag2)
+ {
+ z.Message = "oversubscribed literal/length tree";
+ }
+ else
+ {
+ bool flag3 = num != -4;
+ if (flag3)
+ {
+ z.Message = "incomplete literal/length tree";
+ num = -3;
+ }
+ }
+ result = num;
+ }
+ else
+ {
+ this.initWorkArea(288);
+ num = this.huft_build(c, nl, nd, 0, InfTree.cpdist, InfTree.cpdext, td, bd, hp, this.hn, this.v);
+ bool flag4 = num != 0 || (bd[0] == 0 && nl > 257);
+ if (flag4)
+ {
+ bool flag5 = num == -3;
+ if (flag5)
+ {
+ z.Message = "oversubscribed distance tree";
+ }
+ else
+ {
+ bool flag6 = num == -5;
+ if (flag6)
+ {
+ z.Message = "incomplete distance tree";
+ num = -3;
+ }
+ else
+ {
+ bool flag7 = num != -4;
+ if (flag7)
+ {
+ z.Message = "empty distance tree with lengths";
+ num = -3;
+ }
+ }
+ }
+ result = num;
+ }
+ else
+ {
+ result = 0;
+ }
+ }
+ return result;
+ }
+
+ internal static int inflate_trees_fixed(int[] bl, int[] bd, int[][] tl, int[][] td, ZlibCodec z)
+ {
+ bl[0] = 9;
+ bd[0] = 5;
+ tl[0] = InfTree.fixed_tl;
+ td[0] = InfTree.fixed_td;
+ return 0;
+ }
+
+ private void initWorkArea(int vsize)
+ {
+ bool flag = this.hn == null;
+ if (flag)
+ {
+ this.hn = new int[1];
+ this.v = new int[vsize];
+ this.c = new int[16];
+ this.r = new int[3];
+ this.u = new int[15];
+ this.x = new int[16];
+ }
+ else
+ {
+ bool flag2 = this.v.Length < vsize;
+ if (flag2)
+ {
+ this.v = new int[vsize];
+ }
+ Array.Clear(this.v, 0, vsize);
+ Array.Clear(this.c, 0, 16);
+ this.r[0] = 0;
+ this.r[1] = 0;
+ this.r[2] = 0;
+ Array.Clear(this.u, 0, 15);
+ Array.Clear(this.x, 0, 16);
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/InfTree.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/InfTree.cs.meta new file mode 100644 index 00000000..dbfe8274 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/InfTree.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a743f4b4ce524c6498d107954ee73f5e +timeCreated: 1611465737 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/InflateBlocks.cs b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/InflateBlocks.cs new file mode 100644 index 00000000..7945ea84 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/InflateBlocks.cs @@ -0,0 +1,740 @@ +using System;
+
+namespace Ionic.Zlib
+{
+ internal sealed class InflateBlocks
+ {
+ private const int MANY = 1440;
+
+ internal static readonly int[] border = new int[]
+ {
+ 16,
+ 17,
+ 18,
+ 0,
+ 8,
+ 7,
+ 9,
+ 6,
+ 10,
+ 5,
+ 11,
+ 4,
+ 12,
+ 3,
+ 13,
+ 2,
+ 14,
+ 1,
+ 15
+ };
+
+ private InflateBlocks.InflateBlockMode mode;
+
+ internal int left;
+
+ internal int table;
+
+ internal int index;
+
+ internal int[] blens;
+
+ internal int[] bb = new int[1];
+
+ internal int[] tb = new int[1];
+
+ internal InflateCodes codes = new InflateCodes();
+
+ internal int last;
+
+ internal ZlibCodec _codec;
+
+ internal int bitk;
+
+ internal int bitb;
+
+ internal int[] hufts;
+
+ internal byte[] window;
+
+ internal int end;
+
+ internal int readAt;
+
+ internal int writeAt;
+
+ internal object checkfn;
+
+ internal uint check;
+
+ internal InfTree inftree = new InfTree();
+
+ private enum InflateBlockMode
+ {
+ TYPE,
+ LENS,
+ STORED,
+ TABLE,
+ BTREE,
+ DTREE,
+ CODES,
+ DRY,
+ DONE,
+ BAD
+ }
+
+ internal InflateBlocks(ZlibCodec codec, object checkfn, int w)
+ {
+ this._codec = codec;
+ this.hufts = new int[4320];
+ this.window = new byte[w];
+ this.end = w;
+ this.checkfn = checkfn;
+ this.mode = InflateBlocks.InflateBlockMode.TYPE;
+ this.Reset();
+ }
+
+ internal uint Reset()
+ {
+ uint result = this.check;
+ this.mode = InflateBlocks.InflateBlockMode.TYPE;
+ this.bitk = 0;
+ this.bitb = 0;
+ this.readAt = (this.writeAt = 0);
+ bool flag = this.checkfn != null;
+ if (flag)
+ {
+ this._codec._Adler32 = (this.check = Adler.Adler32(0u, null, 0, 0));
+ }
+ return result;
+ }
+
+ internal int Process(int r)
+ {
+ int num = this._codec.NextIn;
+ int num2 = this._codec.AvailableBytesIn;
+ int num3 = this.bitb;
+ int i = this.bitk;
+ int num4 = this.writeAt;
+ int num5 = (num4 < this.readAt) ? (this.readAt - num4 - 1) : (this.end - num4);
+ int num6;
+ for (;;)
+ {
+ switch (this.mode)
+ {
+ case InflateBlocks.InflateBlockMode.TYPE:
+ while (i < 3)
+ {
+ bool flag = num2 != 0;
+ if (!flag)
+ {
+ goto IL_AC;
+ }
+ r = 0;
+ num2--;
+ num3 |= (int)(this._codec.InputBuffer[num++] & byte.MaxValue) << i;
+ i += 8;
+ }
+ num6 = (num3 & 7);
+ this.last = (num6 & 1);
+ switch ((uint)num6 >> 1)
+ {
+ case 0u:
+ num3 >>= 3;
+ i -= 3;
+ num6 = (i & 7);
+ num3 >>= num6;
+ i -= num6;
+ this.mode = InflateBlocks.InflateBlockMode.LENS;
+ break;
+ case 1u:
+ {
+ int[] array = new int[1];
+ int[] array2 = new int[1];
+ int[][] array3 = new int[1][];
+ int[][] array4 = new int[1][];
+ InfTree.inflate_trees_fixed(array, array2, array3, array4, this._codec);
+ this.codes.Init(array[0], array2[0], array3[0], 0, array4[0], 0);
+ num3 >>= 3;
+ i -= 3;
+ this.mode = InflateBlocks.InflateBlockMode.CODES;
+ break;
+ }
+ case 2u:
+ num3 >>= 3;
+ i -= 3;
+ this.mode = InflateBlocks.InflateBlockMode.TABLE;
+ break;
+ case 3u:
+ goto IL_20C;
+ }
+ continue;
+ case InflateBlocks.InflateBlockMode.LENS:
+ {
+ while (i < 32)
+ {
+ bool flag2 = num2 != 0;
+ if (!flag2)
+ {
+ goto IL_2AA;
+ }
+ r = 0;
+ num2--;
+ num3 |= (int)(this._codec.InputBuffer[num++] & byte.MaxValue) << i;
+ i += 8;
+ }
+ bool flag3 = (~num3 >> 16 & 65535) != (num3 & 65535);
+ if (flag3)
+ {
+ goto Block_8;
+ }
+ this.left = (num3 & 65535);
+ i = (num3 = 0);
+ this.mode = ((this.left != 0) ? InflateBlocks.InflateBlockMode.STORED : ((this.last != 0) ? InflateBlocks.InflateBlockMode.DRY : InflateBlocks.InflateBlockMode.TYPE));
+ continue;
+ }
+ case InflateBlocks.InflateBlockMode.STORED:
+ {
+ bool flag4 = num2 == 0;
+ if (flag4)
+ {
+ goto Block_11;
+ }
+ bool flag5 = num5 == 0;
+ if (flag5)
+ {
+ bool flag6 = num4 == this.end && this.readAt != 0;
+ if (flag6)
+ {
+ num4 = 0;
+ num5 = ((num4 < this.readAt) ? (this.readAt - num4 - 1) : (this.end - num4));
+ }
+ bool flag7 = num5 == 0;
+ if (flag7)
+ {
+ this.writeAt = num4;
+ r = this.Flush(r);
+ num4 = this.writeAt;
+ num5 = ((num4 < this.readAt) ? (this.readAt - num4 - 1) : (this.end - num4));
+ bool flag8 = num4 == this.end && this.readAt != 0;
+ if (flag8)
+ {
+ num4 = 0;
+ num5 = ((num4 < this.readAt) ? (this.readAt - num4 - 1) : (this.end - num4));
+ }
+ bool flag9 = num5 == 0;
+ if (flag9)
+ {
+ goto Block_21;
+ }
+ }
+ }
+ r = 0;
+ num6 = this.left;
+ bool flag10 = num6 > num2;
+ if (flag10)
+ {
+ num6 = num2;
+ }
+ bool flag11 = num6 > num5;
+ if (flag11)
+ {
+ num6 = num5;
+ }
+ Array.Copy(this._codec.InputBuffer, num, this.window, num4, num6);
+ num += num6;
+ num2 -= num6;
+ num4 += num6;
+ num5 -= num6;
+ bool flag12 = (this.left -= num6) != 0;
+ if (flag12)
+ {
+ continue;
+ }
+ this.mode = ((this.last != 0) ? InflateBlocks.InflateBlockMode.DRY : InflateBlocks.InflateBlockMode.TYPE);
+ continue;
+ }
+ case InflateBlocks.InflateBlockMode.TABLE:
+ {
+ while (i < 14)
+ {
+ bool flag13 = num2 != 0;
+ if (!flag13)
+ {
+ goto IL_665;
+ }
+ r = 0;
+ num2--;
+ num3 |= (int)(this._codec.InputBuffer[num++] & byte.MaxValue) << i;
+ i += 8;
+ }
+ num6 = (this.table = (num3 & 16383));
+ bool flag14 = (num6 & 31) > 29 || (num6 >> 5 & 31) > 29;
+ if (flag14)
+ {
+ goto Block_29;
+ }
+ num6 = 258 + (num6 & 31) + (num6 >> 5 & 31);
+ bool flag15 = this.blens == null || this.blens.Length < num6;
+ if (flag15)
+ {
+ this.blens = new int[num6];
+ }
+ else
+ {
+ Array.Clear(this.blens, 0, num6);
+ }
+ num3 >>= 14;
+ i -= 14;
+ this.index = 0;
+ this.mode = InflateBlocks.InflateBlockMode.BTREE;
+ goto IL_807;
+ }
+ case InflateBlocks.InflateBlockMode.BTREE:
+ goto IL_807;
+ case InflateBlocks.InflateBlockMode.DTREE:
+ goto IL_A03;
+ case InflateBlocks.InflateBlockMode.CODES:
+ goto IL_E92;
+ case InflateBlocks.InflateBlockMode.DRY:
+ goto IL_F85;
+ case InflateBlocks.InflateBlockMode.DONE:
+ goto IL_103E;
+ case InflateBlocks.InflateBlockMode.BAD:
+ goto IL_109E;
+ }
+ break;
+ continue;
+ IL_E92:
+ this.bitb = num3;
+ this.bitk = i;
+ this._codec.AvailableBytesIn = num2;
+ this._codec.TotalBytesIn += (long)(num - this._codec.NextIn);
+ this._codec.NextIn = num;
+ this.writeAt = num4;
+ r = this.codes.Process(this, r);
+ bool flag16 = r != 1;
+ if (flag16)
+ {
+ goto Block_53;
+ }
+ r = 0;
+ num = this._codec.NextIn;
+ num2 = this._codec.AvailableBytesIn;
+ num3 = this.bitb;
+ i = this.bitk;
+ num4 = this.writeAt;
+ num5 = ((num4 < this.readAt) ? (this.readAt - num4 - 1) : (this.end - num4));
+ bool flag17 = this.last == 0;
+ if (flag17)
+ {
+ this.mode = InflateBlocks.InflateBlockMode.TYPE;
+ continue;
+ }
+ goto IL_F7C;
+ IL_A03:
+ for (;;)
+ {
+ num6 = this.table;
+ bool flag18 = this.index >= 258 + (num6 & 31) + (num6 >> 5 & 31);
+ if (flag18)
+ {
+ break;
+ }
+ num6 = this.bb[0];
+ while (i < num6)
+ {
+ bool flag19 = num2 != 0;
+ if (!flag19)
+ {
+ goto IL_A59;
+ }
+ r = 0;
+ num2--;
+ num3 |= (int)(this._codec.InputBuffer[num++] & byte.MaxValue) << i;
+ i += 8;
+ }
+ num6 = this.hufts[(this.tb[0] + (num3 & InternalInflateConstants.InflateMask[num6])) * 3 + 1];
+ int num7 = this.hufts[(this.tb[0] + (num3 & InternalInflateConstants.InflateMask[num6])) * 3 + 2];
+ bool flag20 = num7 < 16;
+ if (flag20)
+ {
+ num3 >>= num6;
+ i -= num6;
+ int[] array5 = this.blens;
+ int num8 = this.index;
+ this.index = num8 + 1;
+ array5[num8] = num7;
+ }
+ else
+ {
+ int num9 = (num7 == 18) ? 7 : (num7 - 14);
+ int num10 = (num7 == 18) ? 11 : 3;
+ while (i < num6 + num9)
+ {
+ bool flag21 = num2 != 0;
+ if (!flag21)
+ {
+ goto IL_B9C;
+ }
+ r = 0;
+ num2--;
+ num3 |= (int)(this._codec.InputBuffer[num++] & byte.MaxValue) << i;
+ i += 8;
+ }
+ num3 >>= num6;
+ i -= num6;
+ num10 += (num3 & InternalInflateConstants.InflateMask[num9]);
+ num3 >>= num9;
+ i -= num9;
+ num9 = this.index;
+ num6 = this.table;
+ bool flag22 = num9 + num10 > 258 + (num6 & 31) + (num6 >> 5 & 31) || (num7 == 16 && num9 < 1);
+ if (flag22)
+ {
+ goto Block_48;
+ }
+ num7 = ((num7 == 16) ? this.blens[num9 - 1] : 0);
+ do
+ {
+ this.blens[num9++] = num7;
+ }
+ while (--num10 != 0);
+ this.index = num9;
+ }
+ }
+ this.tb[0] = -1;
+ int[] array6 = new int[]
+ {
+ 9
+ };
+ int[] array7 = new int[]
+ {
+ 6
+ };
+ int[] array8 = new int[1];
+ int[] array9 = new int[1];
+ num6 = this.table;
+ num6 = this.inftree.inflate_trees_dynamic(257 + (num6 & 31), 1 + (num6 >> 5 & 31), this.blens, array6, array7, array8, array9, this.hufts, this._codec);
+ bool flag23 = num6 != 0;
+ if (flag23)
+ {
+ goto Block_51;
+ }
+ this.codes.Init(array6[0], array7[0], this.hufts, array8[0], this.hufts, array9[0]);
+ this.mode = InflateBlocks.InflateBlockMode.CODES;
+ goto IL_E92;
+ IL_807:
+ while (this.index < 4 + (this.table >> 10))
+ {
+ while (i < 3)
+ {
+ bool flag24 = num2 != 0;
+ if (!flag24)
+ {
+ goto IL_825;
+ }
+ r = 0;
+ num2--;
+ num3 |= (int)(this._codec.InputBuffer[num++] & byte.MaxValue) << i;
+ i += 8;
+ }
+ int[] array10 = this.blens;
+ int[] array11 = InflateBlocks.border;
+ int num8 = this.index;
+ this.index = num8 + 1;
+ array10[array11[num8]] = (num3 & 7);
+ num3 >>= 3;
+ i -= 3;
+ }
+ while (this.index < 19)
+ {
+ int[] array12 = this.blens;
+ int[] array13 = InflateBlocks.border;
+ int num8 = this.index;
+ this.index = num8 + 1;
+ array12[array13[num8]] = 0;
+ }
+ this.bb[0] = 7;
+ num6 = this.inftree.inflate_trees_bits(this.blens, this.bb, this.tb, this.hufts, this._codec);
+ bool flag25 = num6 != 0;
+ if (flag25)
+ {
+ goto Block_36;
+ }
+ this.index = 0;
+ this.mode = InflateBlocks.InflateBlockMode.DTREE;
+ goto IL_A03;
+ }
+ r = -2;
+ this.bitb = num3;
+ this.bitk = i;
+ this._codec.AvailableBytesIn = num2;
+ this._codec.TotalBytesIn += (long)(num - this._codec.NextIn);
+ this._codec.NextIn = num;
+ this.writeAt = num4;
+ return this.Flush(r);
+ IL_AC:
+ this.bitb = num3;
+ this.bitk = i;
+ this._codec.AvailableBytesIn = num2;
+ this._codec.TotalBytesIn += (long)(num - this._codec.NextIn);
+ this._codec.NextIn = num;
+ this.writeAt = num4;
+ return this.Flush(r);
+ IL_20C:
+ num3 >>= 3;
+ i -= 3;
+ this.mode = InflateBlocks.InflateBlockMode.BAD;
+ this._codec.Message = "invalid block type";
+ r = -3;
+ this.bitb = num3;
+ this.bitk = i;
+ this._codec.AvailableBytesIn = num2;
+ this._codec.TotalBytesIn += (long)(num - this._codec.NextIn);
+ this._codec.NextIn = num;
+ this.writeAt = num4;
+ return this.Flush(r);
+ IL_2AA:
+ this.bitb = num3;
+ this.bitk = i;
+ this._codec.AvailableBytesIn = num2;
+ this._codec.TotalBytesIn += (long)(num - this._codec.NextIn);
+ this._codec.NextIn = num;
+ this.writeAt = num4;
+ return this.Flush(r);
+ Block_8:
+ this.mode = InflateBlocks.InflateBlockMode.BAD;
+ this._codec.Message = "invalid stored block lengths";
+ r = -3;
+ this.bitb = num3;
+ this.bitk = i;
+ this._codec.AvailableBytesIn = num2;
+ this._codec.TotalBytesIn += (long)(num - this._codec.NextIn);
+ this._codec.NextIn = num;
+ this.writeAt = num4;
+ return this.Flush(r);
+ Block_11:
+ this.bitb = num3;
+ this.bitk = i;
+ this._codec.AvailableBytesIn = num2;
+ this._codec.TotalBytesIn += (long)(num - this._codec.NextIn);
+ this._codec.NextIn = num;
+ this.writeAt = num4;
+ return this.Flush(r);
+ Block_21:
+ this.bitb = num3;
+ this.bitk = i;
+ this._codec.AvailableBytesIn = num2;
+ this._codec.TotalBytesIn += (long)(num - this._codec.NextIn);
+ this._codec.NextIn = num;
+ this.writeAt = num4;
+ return this.Flush(r);
+ IL_665:
+ this.bitb = num3;
+ this.bitk = i;
+ this._codec.AvailableBytesIn = num2;
+ this._codec.TotalBytesIn += (long)(num - this._codec.NextIn);
+ this._codec.NextIn = num;
+ this.writeAt = num4;
+ return this.Flush(r);
+ Block_29:
+ this.mode = InflateBlocks.InflateBlockMode.BAD;
+ this._codec.Message = "too many length or distance symbols";
+ r = -3;
+ this.bitb = num3;
+ this.bitk = i;
+ this._codec.AvailableBytesIn = num2;
+ this._codec.TotalBytesIn += (long)(num - this._codec.NextIn);
+ this._codec.NextIn = num;
+ this.writeAt = num4;
+ return this.Flush(r);
+ IL_825:
+ this.bitb = num3;
+ this.bitk = i;
+ this._codec.AvailableBytesIn = num2;
+ this._codec.TotalBytesIn += (long)(num - this._codec.NextIn);
+ this._codec.NextIn = num;
+ this.writeAt = num4;
+ return this.Flush(r);
+ Block_36:
+ r = num6;
+ bool flag26 = r == -3;
+ if (flag26)
+ {
+ this.blens = null;
+ this.mode = InflateBlocks.InflateBlockMode.BAD;
+ }
+ this.bitb = num3;
+ this.bitk = i;
+ this._codec.AvailableBytesIn = num2;
+ this._codec.TotalBytesIn += (long)(num - this._codec.NextIn);
+ this._codec.NextIn = num;
+ this.writeAt = num4;
+ return this.Flush(r);
+ IL_A59:
+ this.bitb = num3;
+ this.bitk = i;
+ this._codec.AvailableBytesIn = num2;
+ this._codec.TotalBytesIn += (long)(num - this._codec.NextIn);
+ this._codec.NextIn = num;
+ this.writeAt = num4;
+ return this.Flush(r);
+ IL_B9C:
+ this.bitb = num3;
+ this.bitk = i;
+ this._codec.AvailableBytesIn = num2;
+ this._codec.TotalBytesIn += (long)(num - this._codec.NextIn);
+ this._codec.NextIn = num;
+ this.writeAt = num4;
+ return this.Flush(r);
+ Block_48:
+ this.blens = null;
+ this.mode = InflateBlocks.InflateBlockMode.BAD;
+ this._codec.Message = "invalid bit length repeat";
+ r = -3;
+ this.bitb = num3;
+ this.bitk = i;
+ this._codec.AvailableBytesIn = num2;
+ this._codec.TotalBytesIn += (long)(num - this._codec.NextIn);
+ this._codec.NextIn = num;
+ this.writeAt = num4;
+ return this.Flush(r);
+ Block_51:
+ bool flag27 = num6 == -3;
+ if (flag27)
+ {
+ this.blens = null;
+ this.mode = InflateBlocks.InflateBlockMode.BAD;
+ }
+ r = num6;
+ this.bitb = num3;
+ this.bitk = i;
+ this._codec.AvailableBytesIn = num2;
+ this._codec.TotalBytesIn += (long)(num - this._codec.NextIn);
+ this._codec.NextIn = num;
+ this.writeAt = num4;
+ return this.Flush(r);
+ Block_53:
+ return this.Flush(r);
+ IL_F7C:
+ this.mode = InflateBlocks.InflateBlockMode.DRY;
+ IL_F85:
+ this.writeAt = num4;
+ r = this.Flush(r);
+ num4 = this.writeAt;
+ int num11 = (num4 < this.readAt) ? (this.readAt - num4 - 1) : (this.end - num4);
+ bool flag28 = this.readAt != this.writeAt;
+ if (flag28)
+ {
+ this.bitb = num3;
+ this.bitk = i;
+ this._codec.AvailableBytesIn = num2;
+ this._codec.TotalBytesIn += (long)(num - this._codec.NextIn);
+ this._codec.NextIn = num;
+ this.writeAt = num4;
+ return this.Flush(r);
+ }
+ this.mode = InflateBlocks.InflateBlockMode.DONE;
+ IL_103E:
+ r = 1;
+ this.bitb = num3;
+ this.bitk = i;
+ this._codec.AvailableBytesIn = num2;
+ this._codec.TotalBytesIn += (long)(num - this._codec.NextIn);
+ this._codec.NextIn = num;
+ this.writeAt = num4;
+ return this.Flush(r);
+ IL_109E:
+ r = -3;
+ this.bitb = num3;
+ this.bitk = i;
+ this._codec.AvailableBytesIn = num2;
+ this._codec.TotalBytesIn += (long)(num - this._codec.NextIn);
+ this._codec.NextIn = num;
+ this.writeAt = num4;
+ return this.Flush(r);
+ }
+
+ internal void Free()
+ {
+ this.Reset();
+ this.window = null;
+ this.hufts = null;
+ }
+
+ internal void SetDictionary(byte[] d, int start, int n)
+ {
+ Array.Copy(d, start, this.window, 0, n);
+ this.writeAt = n;
+ this.readAt = n;
+ }
+
+ internal int SyncPoint()
+ {
+ return (this.mode == InflateBlocks.InflateBlockMode.LENS) ? 1 : 0;
+ }
+
+ internal int Flush(int r)
+ {
+ for (int i = 0; i < 2; i++)
+ {
+ bool flag = i == 0;
+ int num;
+ if (flag)
+ {
+ num = ((this.readAt <= this.writeAt) ? this.writeAt : this.end) - this.readAt;
+ }
+ else
+ {
+ num = this.writeAt - this.readAt;
+ }
+ bool flag2 = num == 0;
+ if (flag2)
+ {
+ bool flag3 = r == -5;
+ if (flag3)
+ {
+ r = 0;
+ }
+ return r;
+ }
+ bool flag4 = num > this._codec.AvailableBytesOut;
+ if (flag4)
+ {
+ num = this._codec.AvailableBytesOut;
+ }
+ bool flag5 = num != 0 && r == -5;
+ if (flag5)
+ {
+ r = 0;
+ }
+ this._codec.AvailableBytesOut -= num;
+ this._codec.TotalBytesOut += (long)num;
+ bool flag6 = this.checkfn != null;
+ if (flag6)
+ {
+ this._codec._Adler32 = (this.check = Adler.Adler32(this.check, this.window, this.readAt, num));
+ }
+ Array.Copy(this.window, this.readAt, this._codec.OutputBuffer, this._codec.NextOut, num);
+ this._codec.NextOut += num;
+ this.readAt += num;
+ bool flag7 = this.readAt == this.end && i == 0;
+ if (flag7)
+ {
+ this.readAt = 0;
+ bool flag8 = this.writeAt == this.end;
+ if (flag8)
+ {
+ this.writeAt = 0;
+ }
+ }
+ else
+ {
+ i++;
+ }
+ }
+ return r;
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/InflateBlocks.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/InflateBlocks.cs.meta new file mode 100644 index 00000000..ddd00b95 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/InflateBlocks.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c47f2c3c076620d4e92b1d9eb79bcb84 +timeCreated: 1611465754 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/InflateCodes.cs b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/InflateCodes.cs new file mode 100644 index 00000000..0ff5ced7 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/InflateCodes.cs @@ -0,0 +1,696 @@ +using System;
+
+namespace Ionic.Zlib
+{
+ internal sealed class InflateCodes
+ {
+ private const int START = 0;
+
+ private const int LEN = 1;
+
+ private const int LENEXT = 2;
+
+ private const int DIST = 3;
+
+ private const int DISTEXT = 4;
+
+ private const int COPY = 5;
+
+ private const int LIT = 6;
+
+ private const int WASH = 7;
+
+ private const int END = 8;
+
+ private const int BADCODE = 9;
+
+ internal int mode;
+
+ internal int len;
+
+ internal int[] tree;
+
+ internal int tree_index = 0;
+
+ internal int need;
+
+ internal int lit;
+
+ internal int bitsToGet;
+
+ internal int dist;
+
+ internal byte lbits;
+
+ internal byte dbits;
+
+ internal int[] ltree;
+
+ internal int ltree_index;
+
+ internal int[] dtree;
+
+ internal int dtree_index;
+
+ internal InflateCodes()
+ {
+ }
+
+ internal void Init(int bl, int bd, int[] tl, int tl_index, int[] td, int td_index)
+ {
+ this.mode = 0;
+ this.lbits = (byte)bl;
+ this.dbits = (byte)bd;
+ this.ltree = tl;
+ this.ltree_index = tl_index;
+ this.dtree = td;
+ this.dtree_index = td_index;
+ this.tree = null;
+ }
+
+ internal int Process(InflateBlocks blocks, int r)
+ {
+ ZlibCodec codec = blocks._codec;
+ int num = codec.NextIn;
+ int num2 = codec.AvailableBytesIn;
+ int num3 = blocks.bitb;
+ int i = blocks.bitk;
+ int num4 = blocks.writeAt;
+ int num5 = (num4 < blocks.readAt) ? (blocks.readAt - num4 - 1) : (blocks.end - num4);
+ for (;;)
+ {
+ int num6;
+ switch (this.mode)
+ {
+ case 0:
+ {
+ bool flag = num5 >= 258 && num2 >= 10;
+ if (flag)
+ {
+ blocks.bitb = num3;
+ blocks.bitk = i;
+ codec.AvailableBytesIn = num2;
+ codec.TotalBytesIn += (long)(num - codec.NextIn);
+ codec.NextIn = num;
+ blocks.writeAt = num4;
+ r = this.InflateFast((int)this.lbits, (int)this.dbits, this.ltree, this.ltree_index, this.dtree, this.dtree_index, blocks, codec);
+ num = codec.NextIn;
+ num2 = codec.AvailableBytesIn;
+ num3 = blocks.bitb;
+ i = blocks.bitk;
+ num4 = blocks.writeAt;
+ num5 = ((num4 < blocks.readAt) ? (blocks.readAt - num4 - 1) : (blocks.end - num4));
+ bool flag2 = r != 0;
+ if (flag2)
+ {
+ this.mode = ((r == 1) ? 7 : 9);
+ continue;
+ }
+ }
+ this.need = (int)this.lbits;
+ this.tree = this.ltree;
+ this.tree_index = this.ltree_index;
+ this.mode = 1;
+ goto IL_1C6;
+ }
+ case 1:
+ goto IL_1C6;
+ case 2:
+ num6 = this.bitsToGet;
+ while (i < num6)
+ {
+ bool flag3 = num2 != 0;
+ if (!flag3)
+ {
+ goto IL_3D0;
+ }
+ r = 0;
+ num2--;
+ num3 |= (int)(codec.InputBuffer[num++] & byte.MaxValue) << i;
+ i += 8;
+ }
+ this.len += (num3 & InternalInflateConstants.InflateMask[num6]);
+ num3 >>= num6;
+ i -= num6;
+ this.need = (int)this.dbits;
+ this.tree = this.dtree;
+ this.tree_index = this.dtree_index;
+ this.mode = 3;
+ goto IL_4AA;
+ case 3:
+ goto IL_4AA;
+ case 4:
+ num6 = this.bitsToGet;
+ while (i < num6)
+ {
+ bool flag4 = num2 != 0;
+ if (!flag4)
+ {
+ goto IL_673;
+ }
+ r = 0;
+ num2--;
+ num3 |= (int)(codec.InputBuffer[num++] & byte.MaxValue) << i;
+ i += 8;
+ }
+ this.dist += (num3 & InternalInflateConstants.InflateMask[num6]);
+ num3 >>= num6;
+ i -= num6;
+ this.mode = 5;
+ goto IL_729;
+ case 5:
+ goto IL_729;
+ case 6:
+ {
+ bool flag5 = num5 == 0;
+ if (flag5)
+ {
+ bool flag6 = num4 == blocks.end && blocks.readAt != 0;
+ if (flag6)
+ {
+ num4 = 0;
+ num5 = ((num4 < blocks.readAt) ? (blocks.readAt - num4 - 1) : (blocks.end - num4));
+ }
+ bool flag7 = num5 == 0;
+ if (flag7)
+ {
+ blocks.writeAt = num4;
+ r = blocks.Flush(r);
+ num4 = blocks.writeAt;
+ num5 = ((num4 < blocks.readAt) ? (blocks.readAt - num4 - 1) : (blocks.end - num4));
+ bool flag8 = num4 == blocks.end && blocks.readAt != 0;
+ if (flag8)
+ {
+ num4 = 0;
+ num5 = ((num4 < blocks.readAt) ? (blocks.readAt - num4 - 1) : (blocks.end - num4));
+ }
+ bool flag9 = num5 == 0;
+ if (flag9)
+ {
+ goto Block_44;
+ }
+ }
+ }
+ r = 0;
+ blocks.window[num4++] = (byte)this.lit;
+ num5--;
+ this.mode = 0;
+ continue;
+ }
+ case 7:
+ goto IL_A5A;
+ case 8:
+ goto IL_B25;
+ case 9:
+ goto IL_B78;
+ }
+ break;
+ continue;
+ IL_1C6:
+ num6 = this.need;
+ while (i < num6)
+ {
+ bool flag10 = num2 != 0;
+ if (!flag10)
+ {
+ goto IL_1E3;
+ }
+ r = 0;
+ num2--;
+ num3 |= (int)(codec.InputBuffer[num++] & byte.MaxValue) << i;
+ i += 8;
+ }
+ int num7 = (this.tree_index + (num3 & InternalInflateConstants.InflateMask[num6])) * 3;
+ num3 >>= this.tree[num7 + 1];
+ i -= this.tree[num7 + 1];
+ int num8 = this.tree[num7];
+ bool flag11 = num8 == 0;
+ if (flag11)
+ {
+ this.lit = this.tree[num7 + 2];
+ this.mode = 6;
+ continue;
+ }
+ bool flag12 = (num8 & 16) != 0;
+ if (flag12)
+ {
+ this.bitsToGet = (num8 & 15);
+ this.len = this.tree[num7 + 2];
+ this.mode = 2;
+ continue;
+ }
+ bool flag13 = (num8 & 64) == 0;
+ if (flag13)
+ {
+ this.need = num8;
+ this.tree_index = num7 / 3 + this.tree[num7 + 2];
+ continue;
+ }
+ bool flag14 = (num8 & 32) != 0;
+ if (flag14)
+ {
+ this.mode = 7;
+ continue;
+ }
+ goto IL_34B;
+ IL_4AA:
+ num6 = this.need;
+ while (i < num6)
+ {
+ bool flag15 = num2 != 0;
+ if (!flag15)
+ {
+ goto IL_4C7;
+ }
+ r = 0;
+ num2--;
+ num3 |= (int)(codec.InputBuffer[num++] & byte.MaxValue) << i;
+ i += 8;
+ }
+ num7 = (this.tree_index + (num3 & InternalInflateConstants.InflateMask[num6])) * 3;
+ num3 >>= this.tree[num7 + 1];
+ i -= this.tree[num7 + 1];
+ num8 = this.tree[num7];
+ bool flag16 = (num8 & 16) != 0;
+ if (flag16)
+ {
+ this.bitsToGet = (num8 & 15);
+ this.dist = this.tree[num7 + 2];
+ this.mode = 4;
+ continue;
+ }
+ bool flag17 = (num8 & 64) == 0;
+ if (flag17)
+ {
+ this.need = num8;
+ this.tree_index = num7 / 3 + this.tree[num7 + 2];
+ continue;
+ }
+ goto IL_5EE;
+ IL_729:
+ int j;
+ for (j = num4 - this.dist; j < 0; j += blocks.end)
+ {
+ }
+ while (this.len != 0)
+ {
+ bool flag18 = num5 == 0;
+ if (flag18)
+ {
+ bool flag19 = num4 == blocks.end && blocks.readAt != 0;
+ if (flag19)
+ {
+ num4 = 0;
+ num5 = ((num4 < blocks.readAt) ? (blocks.readAt - num4 - 1) : (blocks.end - num4));
+ }
+ bool flag20 = num5 == 0;
+ if (flag20)
+ {
+ blocks.writeAt = num4;
+ r = blocks.Flush(r);
+ num4 = blocks.writeAt;
+ num5 = ((num4 < blocks.readAt) ? (blocks.readAt - num4 - 1) : (blocks.end - num4));
+ bool flag21 = num4 == blocks.end && blocks.readAt != 0;
+ if (flag21)
+ {
+ num4 = 0;
+ num5 = ((num4 < blocks.readAt) ? (blocks.readAt - num4 - 1) : (blocks.end - num4));
+ }
+ bool flag22 = num5 == 0;
+ if (flag22)
+ {
+ goto Block_32;
+ }
+ }
+ }
+ blocks.window[num4++] = blocks.window[j++];
+ num5--;
+ bool flag23 = j == blocks.end;
+ if (flag23)
+ {
+ j = 0;
+ }
+ this.len--;
+ }
+ this.mode = 0;
+ }
+ r = -2;
+ blocks.bitb = num3;
+ blocks.bitk = i;
+ codec.AvailableBytesIn = num2;
+ codec.TotalBytesIn += (long)(num - codec.NextIn);
+ codec.NextIn = num;
+ blocks.writeAt = num4;
+ return blocks.Flush(r);
+ IL_1E3:
+ blocks.bitb = num3;
+ blocks.bitk = i;
+ codec.AvailableBytesIn = num2;
+ codec.TotalBytesIn += (long)(num - codec.NextIn);
+ codec.NextIn = num;
+ blocks.writeAt = num4;
+ return blocks.Flush(r);
+ IL_34B:
+ this.mode = 9;
+ codec.Message = "invalid literal/length code";
+ r = -3;
+ blocks.bitb = num3;
+ blocks.bitk = i;
+ codec.AvailableBytesIn = num2;
+ codec.TotalBytesIn += (long)(num - codec.NextIn);
+ codec.NextIn = num;
+ blocks.writeAt = num4;
+ return blocks.Flush(r);
+ IL_3D0:
+ blocks.bitb = num3;
+ blocks.bitk = i;
+ codec.AvailableBytesIn = num2;
+ codec.TotalBytesIn += (long)(num - codec.NextIn);
+ codec.NextIn = num;
+ blocks.writeAt = num4;
+ return blocks.Flush(r);
+ IL_4C7:
+ blocks.bitb = num3;
+ blocks.bitk = i;
+ codec.AvailableBytesIn = num2;
+ codec.TotalBytesIn += (long)(num - codec.NextIn);
+ codec.NextIn = num;
+ blocks.writeAt = num4;
+ return blocks.Flush(r);
+ IL_5EE:
+ this.mode = 9;
+ codec.Message = "invalid distance code";
+ r = -3;
+ blocks.bitb = num3;
+ blocks.bitk = i;
+ codec.AvailableBytesIn = num2;
+ codec.TotalBytesIn += (long)(num - codec.NextIn);
+ codec.NextIn = num;
+ blocks.writeAt = num4;
+ return blocks.Flush(r);
+ IL_673:
+ blocks.bitb = num3;
+ blocks.bitk = i;
+ codec.AvailableBytesIn = num2;
+ codec.TotalBytesIn += (long)(num - codec.NextIn);
+ codec.NextIn = num;
+ blocks.writeAt = num4;
+ return blocks.Flush(r);
+ Block_32:
+ blocks.bitb = num3;
+ blocks.bitk = i;
+ codec.AvailableBytesIn = num2;
+ codec.TotalBytesIn += (long)(num - codec.NextIn);
+ codec.NextIn = num;
+ blocks.writeAt = num4;
+ return blocks.Flush(r);
+ Block_44:
+ blocks.bitb = num3;
+ blocks.bitk = i;
+ codec.AvailableBytesIn = num2;
+ codec.TotalBytesIn += (long)(num - codec.NextIn);
+ codec.NextIn = num;
+ blocks.writeAt = num4;
+ return blocks.Flush(r);
+ IL_A5A:
+ bool flag24 = i > 7;
+ if (flag24)
+ {
+ i -= 8;
+ num2++;
+ num--;
+ }
+ blocks.writeAt = num4;
+ r = blocks.Flush(r);
+ num4 = blocks.writeAt;
+ int num9 = (num4 < blocks.readAt) ? (blocks.readAt - num4 - 1) : (blocks.end - num4);
+ bool flag25 = blocks.readAt != blocks.writeAt;
+ if (flag25)
+ {
+ blocks.bitb = num3;
+ blocks.bitk = i;
+ codec.AvailableBytesIn = num2;
+ codec.TotalBytesIn += (long)(num - codec.NextIn);
+ codec.NextIn = num;
+ blocks.writeAt = num4;
+ return blocks.Flush(r);
+ }
+ this.mode = 8;
+ IL_B25:
+ r = 1;
+ blocks.bitb = num3;
+ blocks.bitk = i;
+ codec.AvailableBytesIn = num2;
+ codec.TotalBytesIn += (long)(num - codec.NextIn);
+ codec.NextIn = num;
+ blocks.writeAt = num4;
+ return blocks.Flush(r);
+ IL_B78:
+ r = -3;
+ blocks.bitb = num3;
+ blocks.bitk = i;
+ codec.AvailableBytesIn = num2;
+ codec.TotalBytesIn += (long)(num - codec.NextIn);
+ codec.NextIn = num;
+ blocks.writeAt = num4;
+ return blocks.Flush(r);
+ }
+
+ internal int InflateFast(int bl, int bd, int[] tl, int tl_index, int[] td, int td_index, InflateBlocks s, ZlibCodec z)
+ {
+ int num = z.NextIn;
+ int num2 = z.AvailableBytesIn;
+ int num3 = s.bitb;
+ int i = s.bitk;
+ int num4 = s.writeAt;
+ int num5 = (num4 < s.readAt) ? (s.readAt - num4 - 1) : (s.end - num4);
+ int num6 = InternalInflateConstants.InflateMask[bl];
+ int num7 = InternalInflateConstants.InflateMask[bd];
+ int num10;
+ int num11;
+ for (;;)
+ {
+ while (i < 20)
+ {
+ num2--;
+ num3 |= (int)(z.InputBuffer[num++] & byte.MaxValue) << i;
+ i += 8;
+ }
+ int num8 = num3 & num6;
+ int num9 = (tl_index + num8) * 3;
+ bool flag = (num10 = tl[num9]) == 0;
+ if (flag)
+ {
+ num3 >>= tl[num9 + 1];
+ i -= tl[num9 + 1];
+ s.window[num4++] = (byte)tl[num9 + 2];
+ num5--;
+ }
+ else
+ {
+ for (;;)
+ {
+ num3 >>= tl[num9 + 1];
+ i -= tl[num9 + 1];
+ bool flag2 = (num10 & 16) != 0;
+ if (flag2)
+ {
+ goto Block_4;
+ }
+ bool flag3 = (num10 & 64) == 0;
+ if (!flag3)
+ {
+ goto IL_56B;
+ }
+ num8 += tl[num9 + 2];
+ num8 += (num3 & InternalInflateConstants.InflateMask[num10]);
+ num9 = (tl_index + num8) * 3;
+ bool flag4 = (num10 = tl[num9]) == 0;
+ if (flag4)
+ {
+ goto Block_20;
+ }
+ }
+ IL_699:
+ goto IL_69A;
+ Block_20:
+ num3 >>= tl[num9 + 1];
+ i -= tl[num9 + 1];
+ s.window[num4++] = (byte)tl[num9 + 2];
+ num5--;
+ goto IL_699;
+ Block_4:
+ num10 &= 15;
+ num11 = tl[num9 + 2] + (num3 & InternalInflateConstants.InflateMask[num10]);
+ num3 >>= num10;
+ for (i -= num10; i < 15; i += 8)
+ {
+ num2--;
+ num3 |= (int)(z.InputBuffer[num++] & byte.MaxValue) << i;
+ }
+ num8 = (num3 & num7);
+ num9 = (td_index + num8) * 3;
+ num10 = td[num9];
+ for (;;)
+ {
+ num3 >>= td[num9 + 1];
+ i -= td[num9 + 1];
+ bool flag5 = (num10 & 16) != 0;
+ if (flag5)
+ {
+ break;
+ }
+ bool flag6 = (num10 & 64) == 0;
+ if (!flag6)
+ {
+ goto IL_451;
+ }
+ num8 += td[num9 + 2];
+ num8 += (num3 & InternalInflateConstants.InflateMask[num10]);
+ num9 = (td_index + num8) * 3;
+ num10 = td[num9];
+ }
+ num10 &= 15;
+ while (i < num10)
+ {
+ num2--;
+ num3 |= (int)(z.InputBuffer[num++] & byte.MaxValue) << i;
+ i += 8;
+ }
+ int num12 = td[num9 + 2] + (num3 & InternalInflateConstants.InflateMask[num10]);
+ num3 >>= num10;
+ i -= num10;
+ num5 -= num11;
+ bool flag7 = num4 >= num12;
+ int num13;
+ if (flag7)
+ {
+ num13 = num4 - num12;
+ bool flag8 = num4 - num13 > 0 && 2 > num4 - num13;
+ if (flag8)
+ {
+ s.window[num4++] = s.window[num13++];
+ s.window[num4++] = s.window[num13++];
+ num11 -= 2;
+ }
+ else
+ {
+ Array.Copy(s.window, num13, s.window, num4, 2);
+ num4 += 2;
+ num13 += 2;
+ num11 -= 2;
+ }
+ }
+ else
+ {
+ num13 = num4 - num12;
+ do
+ {
+ num13 += s.end;
+ }
+ while (num13 < 0);
+ num10 = s.end - num13;
+ bool flag9 = num11 > num10;
+ if (flag9)
+ {
+ num11 -= num10;
+ bool flag10 = num4 - num13 > 0 && num10 > num4 - num13;
+ if (flag10)
+ {
+ do
+ {
+ s.window[num4++] = s.window[num13++];
+ }
+ while (--num10 != 0);
+ }
+ else
+ {
+ Array.Copy(s.window, num13, s.window, num4, num10);
+ num4 += num10;
+ num13 += num10;
+ }
+ num13 = 0;
+ }
+ }
+ bool flag11 = num4 - num13 > 0 && num11 > num4 - num13;
+ if (flag11)
+ {
+ do
+ {
+ s.window[num4++] = s.window[num13++];
+ }
+ while (--num11 != 0);
+ }
+ else
+ {
+ Array.Copy(s.window, num13, s.window, num4, num11);
+ num4 += num11;
+ num13 += num11;
+ }
+ }
+ IL_69A:
+ if (num5 < 258 || num2 < 10)
+ {
+ goto Block_25;
+ }
+ }
+ IL_451:
+ z.Message = "invalid distance code";
+ num11 = z.AvailableBytesIn - num2;
+ num11 = ((i >> 3 < num11) ? (i >> 3) : num11);
+ num2 += num11;
+ num -= num11;
+ i -= num11 << 3;
+ s.bitb = num3;
+ s.bitk = i;
+ z.AvailableBytesIn = num2;
+ z.TotalBytesIn += (long)(num - z.NextIn);
+ z.NextIn = num;
+ s.writeAt = num4;
+ return -3;
+ IL_56B:
+ bool flag12 = (num10 & 32) != 0;
+ if (flag12)
+ {
+ num11 = z.AvailableBytesIn - num2;
+ num11 = ((i >> 3 < num11) ? (i >> 3) : num11);
+ num2 += num11;
+ num -= num11;
+ i -= num11 << 3;
+ s.bitb = num3;
+ s.bitk = i;
+ z.AvailableBytesIn = num2;
+ z.TotalBytesIn += (long)(num - z.NextIn);
+ z.NextIn = num;
+ s.writeAt = num4;
+ return 1;
+ }
+ z.Message = "invalid literal/length code";
+ num11 = z.AvailableBytesIn - num2;
+ num11 = ((i >> 3 < num11) ? (i >> 3) : num11);
+ num2 += num11;
+ num -= num11;
+ i -= num11 << 3;
+ s.bitb = num3;
+ s.bitk = i;
+ z.AvailableBytesIn = num2;
+ z.TotalBytesIn += (long)(num - z.NextIn);
+ z.NextIn = num;
+ s.writeAt = num4;
+ return -3;
+ Block_25:
+ num11 = z.AvailableBytesIn - num2;
+ num11 = ((i >> 3 < num11) ? (i >> 3) : num11);
+ num2 += num11;
+ num -= num11;
+ i -= num11 << 3;
+ s.bitb = num3;
+ s.bitk = i;
+ z.AvailableBytesIn = num2;
+ z.TotalBytesIn += (long)(num - z.NextIn);
+ z.NextIn = num;
+ s.writeAt = num4;
+ return 0;
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/InflateCodes.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/InflateCodes.cs.meta new file mode 100644 index 00000000..ae1072d6 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/InflateCodes.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 7146d212caa78a24bbd76178120abbec +timeCreated: 1611465687 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/InflateManager.cs b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/InflateManager.cs new file mode 100644 index 00000000..e3dc05d5 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/InflateManager.cs @@ -0,0 +1,523 @@ +using System;
+
+namespace Ionic.Zlib
+{
+ internal sealed class InflateManager
+ {
+ internal bool HandleRfc1950HeaderBytes
+ {
+ get
+ {
+ return this._handleRfc1950HeaderBytes;
+ }
+ set
+ {
+ this._handleRfc1950HeaderBytes = value;
+ }
+ }
+
+ private const int PRESET_DICT = 32;
+
+ private const int Z_DEFLATED = 8;
+
+ private InflateManager.InflateManagerMode mode;
+
+ internal ZlibCodec _codec;
+
+ internal int method;
+
+ internal uint computedCheck;
+
+ internal uint expectedCheck;
+
+ internal int marker;
+
+ private bool _handleRfc1950HeaderBytes = true;
+
+ internal int wbits;
+
+ internal InflateBlocks blocks;
+
+ private static readonly byte[] mark = new byte[]
+ {
+ 0,
+ 0,
+ byte.MaxValue,
+ byte.MaxValue
+ };
+
+ private enum InflateManagerMode
+ {
+ METHOD,
+ FLAG,
+ DICT4,
+ DICT3,
+ DICT2,
+ DICT1,
+ DICT0,
+ BLOCKS,
+ CHECK4,
+ CHECK3,
+ CHECK2,
+ CHECK1,
+ DONE,
+ BAD
+ }
+
+ public InflateManager()
+ {
+ }
+
+ public InflateManager(bool expectRfc1950HeaderBytes)
+ {
+ this._handleRfc1950HeaderBytes = expectRfc1950HeaderBytes;
+ }
+
+ public int Reset()
+ {
+ this._codec.TotalBytesIn = (this._codec.TotalBytesOut = 0L);
+ this._codec.Message = null;
+ this.mode = (this.HandleRfc1950HeaderBytes ? InflateManager.InflateManagerMode.METHOD : InflateManager.InflateManagerMode.BLOCKS);
+ this.blocks.Reset();
+ return 0;
+ }
+
+ internal int End()
+ {
+ bool flag = this.blocks != null;
+ if (flag)
+ {
+ this.blocks.Free();
+ }
+ this.blocks = null;
+ return 0;
+ }
+
+ internal int Initialize(ZlibCodec codec, int w)
+ {
+ this._codec = codec;
+ this._codec.Message = null;
+ this.blocks = null;
+ bool flag = w < 8 || w > 15;
+ if (flag)
+ {
+ this.End();
+ throw new ZlibException("Bad window size.");
+ }
+ this.wbits = w;
+ this.blocks = new InflateBlocks(codec, this.HandleRfc1950HeaderBytes ? this : null, 1 << w);
+ this.Reset();
+ return 0;
+ }
+
+ internal int Inflate(FlushType flush)
+ {
+ bool flag = this._codec.InputBuffer == null;
+ if (flag)
+ {
+ throw new ZlibException("InputBuffer is null. ");
+ }
+ int num = 0;
+ int num2 = -5;
+ int nextIn;
+ for (;;)
+ {
+ switch (this.mode)
+ {
+ case InflateManager.InflateManagerMode.METHOD:
+ {
+ bool flag2 = this._codec.AvailableBytesIn == 0;
+ if (flag2)
+ {
+ goto Block_3;
+ }
+ num2 = num;
+ this._codec.AvailableBytesIn--;
+ this._codec.TotalBytesIn += 1L;
+ byte[] inputBuffer = this._codec.InputBuffer;
+ ZlibCodec codec = this._codec;
+ nextIn = codec.NextIn;
+ codec.NextIn = nextIn + 1;
+ bool flag3 = ((this.method = inputBuffer[nextIn]) & 15) != 8;
+ if (flag3)
+ {
+ this.mode = InflateManager.InflateManagerMode.BAD;
+ this._codec.Message = string.Format("unknown compression method (0x{0:X2})", this.method);
+ this.marker = 5;
+ continue;
+ }
+ bool flag4 = (this.method >> 4) + 8 > this.wbits;
+ if (flag4)
+ {
+ this.mode = InflateManager.InflateManagerMode.BAD;
+ this._codec.Message = string.Format("invalid window size ({0})", (this.method >> 4) + 8);
+ this.marker = 5;
+ continue;
+ }
+ this.mode = InflateManager.InflateManagerMode.FLAG;
+ continue;
+ }
+ case InflateManager.InflateManagerMode.FLAG:
+ {
+ bool flag5 = this._codec.AvailableBytesIn == 0;
+ if (flag5)
+ {
+ goto Block_6;
+ }
+ num2 = num;
+ this._codec.AvailableBytesIn--;
+ this._codec.TotalBytesIn += 1L;
+ byte[] inputBuffer2 = this._codec.InputBuffer;
+ ZlibCodec codec2 = this._codec;
+ nextIn = codec2.NextIn;
+ codec2.NextIn = nextIn + 1;
+ int num3 = inputBuffer2[nextIn] & 255;
+ bool flag6 = ((this.method << 8) + num3) % 31 != 0;
+ if (flag6)
+ {
+ this.mode = InflateManager.InflateManagerMode.BAD;
+ this._codec.Message = "incorrect header check";
+ this.marker = 5;
+ continue;
+ }
+ this.mode = (((num3 & 32) == 0) ? InflateManager.InflateManagerMode.BLOCKS : InflateManager.InflateManagerMode.DICT4);
+ continue;
+ }
+ case InflateManager.InflateManagerMode.DICT4:
+ {
+ bool flag7 = this._codec.AvailableBytesIn == 0;
+ if (flag7)
+ {
+ goto Block_9;
+ }
+ num2 = num;
+ this._codec.AvailableBytesIn--;
+ this._codec.TotalBytesIn += 1L;
+ byte[] inputBuffer3 = this._codec.InputBuffer;
+ ZlibCodec codec3 = this._codec;
+ nextIn = codec3.NextIn;
+ codec3.NextIn = nextIn + 1;
+ //!
+ this.expectedCheck = (uint)(inputBuffer3[nextIn] << 24 & (long)(/*(ulong)*/-16777216));
+ this.mode = InflateManager.InflateManagerMode.DICT3;
+ continue;
+ }
+ case InflateManager.InflateManagerMode.DICT3:
+ {
+ bool flag8 = this._codec.AvailableBytesIn == 0;
+ if (flag8)
+ {
+ goto Block_10;
+ }
+ num2 = num;
+ this._codec.AvailableBytesIn--;
+ this._codec.TotalBytesIn += 1L;
+ uint num4 = this.expectedCheck;
+ byte[] inputBuffer4 = this._codec.InputBuffer;
+ ZlibCodec codec4 = this._codec;
+ nextIn = codec4.NextIn;
+ codec4.NextIn = nextIn + 1;
+ //!
+ this.expectedCheck = (uint) ( num4 + (inputBuffer4[nextIn] << 16 & 16711680u));
+ this.mode = InflateManager.InflateManagerMode.DICT2;
+ continue;
+ }
+ case InflateManager.InflateManagerMode.DICT2:
+ {
+ bool flag9 = this._codec.AvailableBytesIn == 0;
+ if (flag9)
+ {
+ goto Block_11;
+ }
+ num2 = num;
+ this._codec.AvailableBytesIn--;
+ this._codec.TotalBytesIn += 1L;
+ uint num5 = this.expectedCheck;
+ byte[] inputBuffer5 = this._codec.InputBuffer;
+ ZlibCodec codec5 = this._codec;
+ nextIn = codec5.NextIn;
+ codec5.NextIn = nextIn + 1;
+ this.expectedCheck = (uint) (num5 + (inputBuffer5[nextIn] << 8 & 65280u)); //!
+ this.mode = InflateManager.InflateManagerMode.DICT1;
+ continue;
+ }
+ case InflateManager.InflateManagerMode.DICT1:
+ goto IL_3EB;
+ case InflateManager.InflateManagerMode.DICT0:
+ goto IL_488;
+ case InflateManager.InflateManagerMode.BLOCKS:
+ {
+ num2 = this.blocks.Process(num2);
+ bool flag10 = num2 == -3;
+ if (flag10)
+ {
+ this.mode = InflateManager.InflateManagerMode.BAD;
+ this.marker = 0;
+ continue;
+ }
+ bool flag11 = num2 == 0;
+ if (flag11)
+ {
+ num2 = num;
+ }
+ bool flag12 = num2 != 1;
+ if (flag12)
+ {
+ goto Block_15;
+ }
+ num2 = num;
+ this.computedCheck = this.blocks.Reset();
+ bool flag13 = !this.HandleRfc1950HeaderBytes;
+ if (flag13)
+ {
+ goto Block_16;
+ }
+ this.mode = InflateManager.InflateManagerMode.CHECK4;
+ continue;
+ }
+ case InflateManager.InflateManagerMode.CHECK4:
+ {
+ bool flag14 = this._codec.AvailableBytesIn == 0;
+ if (flag14)
+ {
+ goto Block_17;
+ }
+ num2 = num;
+ this._codec.AvailableBytesIn--;
+ this._codec.TotalBytesIn += 1L;
+ byte[] inputBuffer6 = this._codec.InputBuffer;
+ ZlibCodec codec6 = this._codec;
+ nextIn = codec6.NextIn;
+ codec6.NextIn = nextIn + 1;
+ //!
+ this.expectedCheck = (uint)(inputBuffer6[nextIn] << 24 & (long)(-16777216));
+ this.mode = InflateManager.InflateManagerMode.CHECK3;
+ continue;
+ }
+ case InflateManager.InflateManagerMode.CHECK3:
+ {
+ bool flag15 = this._codec.AvailableBytesIn == 0;
+ if (flag15)
+ {
+ goto Block_18;
+ }
+ num2 = num;
+ this._codec.AvailableBytesIn--;
+ this._codec.TotalBytesIn += 1L;
+ uint num6 = this.expectedCheck;
+ byte[] inputBuffer7 = this._codec.InputBuffer;
+ ZlibCodec codec7 = this._codec;
+ nextIn = codec7.NextIn;
+ codec7.NextIn = nextIn + 1;
+ this.expectedCheck = (uint) (num6 + (inputBuffer7[nextIn] << 16 & 16711680u)); //!
+ this.mode = InflateManager.InflateManagerMode.CHECK2;
+ continue;
+ }
+ case InflateManager.InflateManagerMode.CHECK2:
+ {
+ bool flag16 = this._codec.AvailableBytesIn == 0;
+ if (flag16)
+ {
+ goto Block_19;
+ }
+ num2 = num;
+ this._codec.AvailableBytesIn--;
+ this._codec.TotalBytesIn += 1L;
+ uint num7 = this.expectedCheck;
+ byte[] inputBuffer8 = this._codec.InputBuffer;
+ ZlibCodec codec8 = this._codec;
+ nextIn = codec8.NextIn;
+ codec8.NextIn = nextIn + 1;
+ this.expectedCheck = (uint) ( num7 + (inputBuffer8[nextIn] << 8 & 65280u) );
+ this.mode = InflateManager.InflateManagerMode.CHECK1;
+ continue;
+ }
+ case InflateManager.InflateManagerMode.CHECK1:
+ {
+ bool flag17 = this._codec.AvailableBytesIn == 0;
+ if (flag17)
+ {
+ goto Block_20;
+ }
+ num2 = num;
+ this._codec.AvailableBytesIn--;
+ this._codec.TotalBytesIn += 1L;
+ uint num8 = this.expectedCheck;
+ byte[] inputBuffer9 = this._codec.InputBuffer;
+ ZlibCodec codec9 = this._codec;
+ nextIn = codec9.NextIn;
+ codec9.NextIn = nextIn + 1;
+ this.expectedCheck = num8 + (inputBuffer9[nextIn] & 255u);
+ bool flag18 = this.computedCheck != this.expectedCheck;
+ if (flag18)
+ {
+ this.mode = InflateManager.InflateManagerMode.BAD;
+ this._codec.Message = "incorrect data check";
+ this.marker = 5;
+ continue;
+ }
+ goto IL_795;
+ }
+ case InflateManager.InflateManagerMode.DONE:
+ goto IL_7A2;
+ case InflateManager.InflateManagerMode.BAD:
+ goto IL_7A7;
+ }
+ break;
+ }
+ throw new ZlibException("Stream error.");
+ Block_3:
+ return num2;
+ Block_6:
+ return num2;
+ Block_9:
+ return num2;
+ Block_10:
+ return num2;
+ Block_11:
+ return num2;
+ IL_3EB:
+ bool flag19 = this._codec.AvailableBytesIn == 0;
+ if (flag19)
+ {
+ return num2;
+ }
+ this._codec.AvailableBytesIn--;
+ this._codec.TotalBytesIn += 1L;
+ uint num9 = this.expectedCheck;
+ byte[] inputBuffer10 = this._codec.InputBuffer;
+ ZlibCodec codec10 = this._codec;
+ nextIn = codec10.NextIn;
+ codec10.NextIn = nextIn + 1;
+ this.expectedCheck = num9 + (inputBuffer10[nextIn] & 255u);
+ this._codec._Adler32 = this.expectedCheck;
+ this.mode = InflateManager.InflateManagerMode.DICT0;
+ return 2;
+ IL_488:
+ this.mode = InflateManager.InflateManagerMode.BAD;
+ this._codec.Message = "need dictionary";
+ this.marker = 0;
+ return -2;
+ Block_15:
+ return num2;
+ Block_16:
+ this.mode = InflateManager.InflateManagerMode.DONE;
+ return 1;
+ Block_17:
+ return num2;
+ Block_18:
+ return num2;
+ Block_19:
+ return num2;
+ Block_20:
+ return num2;
+ IL_795:
+ this.mode = InflateManager.InflateManagerMode.DONE;
+ return 1;
+ IL_7A2:
+ return 1;
+ IL_7A7:
+ throw new ZlibException(string.Format("Bad state ({0})", this._codec.Message));
+ }
+
+ internal int SetDictionary(byte[] dictionary)
+ {
+ int start = 0;
+ int num = dictionary.Length;
+ bool flag = this.mode != InflateManager.InflateManagerMode.DICT0;
+ if (flag)
+ {
+ throw new ZlibException("Stream error.");
+ }
+ bool flag2 = Adler.Adler32(1u, dictionary, 0, dictionary.Length) != this._codec._Adler32;
+ int result;
+ if (flag2)
+ {
+ result = -3;
+ }
+ else
+ {
+ this._codec._Adler32 = Adler.Adler32(0u, null, 0, 0);
+ bool flag3 = num >= 1 << this.wbits;
+ if (flag3)
+ {
+ num = (1 << this.wbits) - 1;
+ start = dictionary.Length - num;
+ }
+ this.blocks.SetDictionary(dictionary, start, num);
+ this.mode = InflateManager.InflateManagerMode.BLOCKS;
+ result = 0;
+ }
+ return result;
+ }
+
+ internal int Sync()
+ {
+ bool flag = this.mode != InflateManager.InflateManagerMode.BAD;
+ if (flag)
+ {
+ this.mode = InflateManager.InflateManagerMode.BAD;
+ this.marker = 0;
+ }
+ int num;
+ bool flag2 = (num = this._codec.AvailableBytesIn) == 0;
+ int result;
+ if (flag2)
+ {
+ result = -5;
+ }
+ else
+ {
+ int num2 = this._codec.NextIn;
+ int num3 = this.marker;
+ while (num != 0 && num3 < 4)
+ {
+ bool flag3 = this._codec.InputBuffer[num2] == InflateManager.mark[num3];
+ if (flag3)
+ {
+ num3++;
+ }
+ else
+ {
+ bool flag4 = this._codec.InputBuffer[num2] > 0;
+ if (flag4)
+ {
+ num3 = 0;
+ }
+ else
+ {
+ num3 = 4 - num3;
+ }
+ }
+ num2++;
+ num--;
+ }
+ this._codec.TotalBytesIn += (long)(num2 - this._codec.NextIn);
+ this._codec.NextIn = num2;
+ this._codec.AvailableBytesIn = num;
+ this.marker = num3;
+ bool flag5 = num3 != 4;
+ if (flag5)
+ {
+ result = -3;
+ }
+ else
+ {
+ long totalBytesIn = this._codec.TotalBytesIn;
+ long totalBytesOut = this._codec.TotalBytesOut;
+ this.Reset();
+ this._codec.TotalBytesIn = totalBytesIn;
+ this._codec.TotalBytesOut = totalBytesOut;
+ this.mode = InflateManager.InflateManagerMode.BLOCKS;
+ result = 0;
+ }
+ }
+ return result;
+ }
+
+ internal int SyncPoint(ZlibCodec z)
+ {
+ return this.blocks.SyncPoint();
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/InflateManager.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/InflateManager.cs.meta new file mode 100644 index 00000000..d0c021f6 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/InflateManager.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 067f6f4507768274b962d8b6ecf1a9b5 +timeCreated: 1611465286 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/InternalConstants.cs b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/InternalConstants.cs new file mode 100644 index 00000000..7eb8f69e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/InternalConstants.cs @@ -0,0 +1,27 @@ +using System;
+
+namespace Ionic.Zlib
+{
+ internal static class InternalConstants
+ {
+ internal static readonly int MAX_BITS = 15;
+
+ internal static readonly int BL_CODES = 19;
+
+ internal static readonly int D_CODES = 30;
+
+ internal static readonly int LITERALS = 256;
+
+ internal static readonly int LENGTH_CODES = 29;
+
+ internal static readonly int L_CODES = InternalConstants.LITERALS + 1 + InternalConstants.LENGTH_CODES;
+
+ internal static readonly int MAX_BL_BITS = 7;
+
+ internal static readonly int REP_3_6 = 16;
+
+ internal static readonly int REPZ_3_10 = 17;
+
+ internal static readonly int REPZ_11_138 = 18;
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/InternalConstants.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/InternalConstants.cs.meta new file mode 100644 index 00000000..e2814867 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/InternalConstants.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a045e41eef9254546a865c9391b0e933 +timeCreated: 1611465711 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/InternalInflateConstants.cs b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/InternalInflateConstants.cs new file mode 100644 index 00000000..82fb9442 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/InternalInflateConstants.cs @@ -0,0 +1,28 @@ +using System;
+
+namespace Ionic.Zlib
+{
+ internal static class InternalInflateConstants
+ {
+ internal static readonly int[] InflateMask = new int[]
+ {
+ 0,
+ 1,
+ 3,
+ 7,
+ 15,
+ 31,
+ 63,
+ 127,
+ 255,
+ 511,
+ 1023,
+ 2047,
+ 4095,
+ 8191,
+ 16383,
+ 32767,
+ 65535
+ };
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/InternalInflateConstants.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/InternalInflateConstants.cs.meta new file mode 100644 index 00000000..8fd090bf --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/InternalInflateConstants.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b7bb2a04b5a738b4587181846913dfbc +timeCreated: 1611465747 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/ParallelDeflateOutputStream.cs b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/ParallelDeflateOutputStream.cs new file mode 100644 index 00000000..eed1a9f3 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/ParallelDeflateOutputStream.cs @@ -0,0 +1,630 @@ +using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.IO;
+using System.Threading;
+using Ionic.Crc;
+
+namespace Ionic.Zlib
+{
+ public class ParallelDeflateOutputStream : Stream
+ {
+ public CompressionStrategy Strategy { get; private set; }
+
+ public int MaxBufferPairs
+ {
+ get
+ {
+ return this._maxBufferPairs;
+ }
+ set
+ {
+ bool flag = value < 4;
+ if (flag)
+ {
+ throw new ArgumentException("MaxBufferPairs", "Value must be 4 or greater.");
+ }
+ this._maxBufferPairs = value;
+ }
+ }
+
+ public int BufferSize
+ {
+ get
+ {
+ return this._bufferSize;
+ }
+ set
+ {
+ bool flag = value < 1024;
+ if (flag)
+ {
+ throw new ArgumentOutOfRangeException("BufferSize", "BufferSize must be greater than 1024 bytes");
+ }
+ this._bufferSize = value;
+ }
+ }
+
+ public int Crc32
+ {
+ get
+ {
+ return this._Crc32;
+ }
+ }
+
+ public long BytesProcessed
+ {
+ get
+ {
+ return this._totalBytesProcessed;
+ }
+ }
+
+ public override bool CanSeek
+ {
+ get
+ {
+ return false;
+ }
+ }
+
+ public override bool CanRead
+ {
+ get
+ {
+ return false;
+ }
+ }
+
+ public override bool CanWrite
+ {
+ get
+ {
+ return this._outStream.CanWrite;
+ }
+ }
+
+ public override long Length
+ {
+ get
+ {
+ throw new NotSupportedException();
+ }
+ }
+
+ public override long Position
+ {
+ get
+ {
+ return this._outStream.Position;
+ }
+ set
+ {
+ throw new NotSupportedException();
+ }
+ }
+
+ private static readonly int IO_BUFFER_SIZE_DEFAULT = 65536;
+
+ private static readonly int BufferPairsPerCore = 4;
+
+ private List<WorkItem> _pool;
+
+ private bool _leaveOpen;
+
+ private bool emitting;
+
+ private Stream _outStream;
+
+ private int _maxBufferPairs;
+
+ private int _bufferSize = ParallelDeflateOutputStream.IO_BUFFER_SIZE_DEFAULT;
+
+ private AutoResetEvent _newlyCompressedBlob;
+
+ private object _outputLock = new object();
+
+ private bool _isClosed;
+
+ private bool _firstWriteDone;
+
+ private int _currentlyFilling;
+
+ private int _lastFilled;
+
+ private int _lastWritten;
+
+ private int _latestCompressed;
+
+ private int _Crc32;
+
+ private CRC32 _runningCrc;
+
+ private object _latestLock = new object();
+
+ private Queue<int> _toWrite;
+
+ private Queue<int> _toFill;
+
+ private long _totalBytesProcessed;
+
+ private CompressionLevel _compressLevel;
+
+ private volatile Exception _pendingException;
+
+ private bool _handlingException;
+
+ private object _eLock = new object();
+
+ private ParallelDeflateOutputStream.TraceBits _DesiredTrace = ParallelDeflateOutputStream.TraceBits.EmitLock | ParallelDeflateOutputStream.TraceBits.EmitEnter | ParallelDeflateOutputStream.TraceBits.EmitBegin | ParallelDeflateOutputStream.TraceBits.EmitDone | ParallelDeflateOutputStream.TraceBits.EmitSkip | ParallelDeflateOutputStream.TraceBits.Session | ParallelDeflateOutputStream.TraceBits.Compress | ParallelDeflateOutputStream.TraceBits.WriteEnter | ParallelDeflateOutputStream.TraceBits.WriteTake;
+
+ [Flags]
+ private enum TraceBits : uint
+ {
+ None = 0u,
+ NotUsed1 = 1u,
+ EmitLock = 2u,
+ EmitEnter = 4u,
+ EmitBegin = 8u,
+ EmitDone = 16u,
+ EmitSkip = 32u,
+ EmitAll = 58u,
+ Flush = 64u,
+ Lifecycle = 128u,
+ Session = 256u,
+ Synch = 512u,
+ Instance = 1024u,
+ Compress = 2048u,
+ Write = 4096u,
+ WriteEnter = 8192u,
+ WriteTake = 16384u,
+ All = 4294967295u
+ }
+
+ public ParallelDeflateOutputStream(Stream stream) : this(stream, CompressionLevel.Default, CompressionStrategy.Default, false)
+ {
+ }
+
+ public ParallelDeflateOutputStream(Stream stream, CompressionLevel level) : this(stream, level, CompressionStrategy.Default, false)
+ {
+ }
+
+ public ParallelDeflateOutputStream(Stream stream, bool leaveOpen) : this(stream, CompressionLevel.Default, CompressionStrategy.Default, leaveOpen)
+ {
+ }
+
+ public ParallelDeflateOutputStream(Stream stream, CompressionLevel level, bool leaveOpen) : this(stream, CompressionLevel.Default, CompressionStrategy.Default, leaveOpen)
+ {
+ }
+
+ public ParallelDeflateOutputStream(Stream stream, CompressionLevel level, CompressionStrategy strategy, bool leaveOpen)
+ {
+ this._outStream = stream;
+ this._compressLevel = level;
+ this.Strategy = strategy;
+ this._leaveOpen = leaveOpen;
+ this.MaxBufferPairs = 16;
+ }
+
+ private void _InitializePoolOfWorkItems()
+ {
+ this._toWrite = new Queue<int>();
+ this._toFill = new Queue<int>();
+ this._pool = new List<WorkItem>();
+ int num = ParallelDeflateOutputStream.BufferPairsPerCore * Environment.ProcessorCount;
+ num = Math.Min(num, this._maxBufferPairs);
+ for (int i = 0; i < num; i++)
+ {
+ this._pool.Add(new WorkItem(this._bufferSize, this._compressLevel, this.Strategy, i));
+ this._toFill.Enqueue(i);
+ }
+ this._newlyCompressedBlob = new AutoResetEvent(false);
+ this._runningCrc = new CRC32();
+ this._currentlyFilling = -1;
+ this._lastFilled = -1;
+ this._lastWritten = -1;
+ this._latestCompressed = -1;
+ }
+
+ public override void Write(byte[] buffer, int offset, int count)
+ {
+ bool mustWait = false;
+ bool isClosed = this._isClosed;
+ if (isClosed)
+ {
+ throw new InvalidOperationException();
+ }
+ bool flag = this._pendingException != null;
+ if (flag)
+ {
+ this._handlingException = true;
+ Exception pendingException = this._pendingException;
+ this._pendingException = null;
+ throw pendingException;
+ }
+ bool flag2 = count == 0;
+ if (!flag2)
+ {
+ bool flag3 = !this._firstWriteDone;
+ if (flag3)
+ {
+ this._InitializePoolOfWorkItems();
+ this._firstWriteDone = true;
+ }
+ for (;;)
+ {
+ this.EmitPendingBuffers(false, mustWait);
+ mustWait = false;
+ bool flag4 = this._currentlyFilling >= 0;
+ int num;
+ if (flag4)
+ {
+ num = this._currentlyFilling;
+ goto IL_D2;
+ }
+ bool flag5 = this._toFill.Count == 0;
+ if (!flag5)
+ {
+ num = this._toFill.Dequeue();
+ this._lastFilled++;
+ goto IL_D2;
+ }
+ mustWait = true;
+ IL_1A9:
+ if (count <= 0)
+ {
+ return;
+ }
+ continue;
+ IL_D2:
+ WorkItem workItem = this._pool[num];
+ int num2 = (workItem.buffer.Length - workItem.inputBytesAvailable > count) ? count : (workItem.buffer.Length - workItem.inputBytesAvailable);
+ workItem.ordinal = this._lastFilled;
+ Buffer.BlockCopy(buffer, offset, workItem.buffer, workItem.inputBytesAvailable, num2);
+ count -= num2;
+ offset += num2;
+ workItem.inputBytesAvailable += num2;
+ bool flag6 = workItem.inputBytesAvailable == workItem.buffer.Length;
+ if (flag6)
+ {
+ bool flag7 = !ThreadPool.QueueUserWorkItem(new WaitCallback(this._DeflateOne), workItem);
+ if (flag7)
+ {
+ break;
+ }
+ this._currentlyFilling = -1;
+ }
+ else
+ {
+ this._currentlyFilling = num;
+ }
+ bool flag8 = count > 0;
+ if (flag8)
+ {
+ }
+ goto IL_1A9;
+ }
+ throw new Exception("Cannot enqueue workitem");
+ }
+ }
+
+ private void _FlushFinish()
+ {
+ byte[] array = new byte[128];
+ ZlibCodec zlibCodec = new ZlibCodec();
+ int num = zlibCodec.InitializeDeflate(this._compressLevel, false);
+ zlibCodec.InputBuffer = null;
+ zlibCodec.NextIn = 0;
+ zlibCodec.AvailableBytesIn = 0;
+ zlibCodec.OutputBuffer = array;
+ zlibCodec.NextOut = 0;
+ zlibCodec.AvailableBytesOut = array.Length;
+ num = zlibCodec.Deflate(FlushType.Finish);
+ bool flag = num != 1 && num != 0;
+ if (flag)
+ {
+ throw new Exception("deflating: " + zlibCodec.Message);
+ }
+ bool flag2 = array.Length - zlibCodec.AvailableBytesOut > 0;
+ if (flag2)
+ {
+ this._outStream.Write(array, 0, array.Length - zlibCodec.AvailableBytesOut);
+ }
+ zlibCodec.EndDeflate();
+ this._Crc32 = this._runningCrc.Crc32Result;
+ }
+
+ private void _Flush(bool lastInput)
+ {
+ bool isClosed = this._isClosed;
+ if (isClosed)
+ {
+ throw new InvalidOperationException();
+ }
+ bool flag = this.emitting;
+ if (!flag)
+ {
+ bool flag2 = this._currentlyFilling >= 0;
+ if (flag2)
+ {
+ WorkItem wi = this._pool[this._currentlyFilling];
+ this._DeflateOne(wi);
+ this._currentlyFilling = -1;
+ }
+ if (lastInput)
+ {
+ this.EmitPendingBuffers(true, false);
+ this._FlushFinish();
+ }
+ else
+ {
+ this.EmitPendingBuffers(false, false);
+ }
+ }
+ }
+
+ public override void Flush()
+ {
+ bool flag = this._pendingException != null;
+ if (flag)
+ {
+ this._handlingException = true;
+ Exception pendingException = this._pendingException;
+ this._pendingException = null;
+ throw pendingException;
+ }
+ bool handlingException = this._handlingException;
+ if (!handlingException)
+ {
+ this._Flush(false);
+ }
+ }
+
+ public override void Close()
+ {
+ bool flag = this._pendingException != null;
+ if (flag)
+ {
+ this._handlingException = true;
+ Exception pendingException = this._pendingException;
+ this._pendingException = null;
+ throw pendingException;
+ }
+ bool handlingException = this._handlingException;
+ if (!handlingException)
+ {
+ bool isClosed = this._isClosed;
+ if (!isClosed)
+ {
+ this._Flush(true);
+ bool flag2 = !this._leaveOpen;
+ if (flag2)
+ {
+ this._outStream.Close();
+ }
+ this._isClosed = true;
+ }
+ }
+ }
+
+ public new void Dispose()
+ {
+ this.Close();
+ this._pool = null;
+ this.Dispose(true);
+ }
+
+ protected override void Dispose(bool disposing)
+ {
+ base.Dispose(disposing);
+ }
+
+ public void Reset(Stream stream)
+ {
+ bool flag = !this._firstWriteDone;
+ if (!flag)
+ {
+ this._toWrite.Clear();
+ this._toFill.Clear();
+ foreach (WorkItem workItem in this._pool)
+ {
+ this._toFill.Enqueue(workItem.index);
+ workItem.ordinal = -1;
+ }
+ this._firstWriteDone = false;
+ this._totalBytesProcessed = 0L;
+ this._runningCrc = new CRC32();
+ this._isClosed = false;
+ this._currentlyFilling = -1;
+ this._lastFilled = -1;
+ this._lastWritten = -1;
+ this._latestCompressed = -1;
+ this._outStream = stream;
+ }
+ }
+
+ private void EmitPendingBuffers(bool doAll, bool mustWait)
+ {
+ bool flag = this.emitting;
+ if (!flag)
+ {
+ this.emitting = true;
+ bool flag2 = doAll || mustWait;
+ if (flag2)
+ {
+ this._newlyCompressedBlob.WaitOne();
+ }
+ do
+ {
+ int num = -1;
+ int num2 = doAll ? 200 : (mustWait ? -1 : 0);
+ int num3 = -1;
+ for (;;)
+ {
+ bool flag3 = Monitor.TryEnter(this._toWrite, num2);
+ if (flag3)
+ {
+ num3 = -1;
+ try
+ {
+ bool flag4 = this._toWrite.Count > 0;
+ if (flag4)
+ {
+ num3 = this._toWrite.Dequeue();
+ }
+ }
+ finally
+ {
+ Monitor.Exit(this._toWrite);
+ }
+ bool flag5 = num3 >= 0;
+ if (flag5)
+ {
+ WorkItem workItem = this._pool[num3];
+ bool flag6 = workItem.ordinal != this._lastWritten + 1;
+ if (flag6)
+ {
+ Queue<int> toWrite = this._toWrite;
+ lock (toWrite)
+ {
+ this._toWrite.Enqueue(num3);
+ }
+ bool flag7 = num == num3;
+ if (flag7)
+ {
+ this._newlyCompressedBlob.WaitOne();
+ num = -1;
+ }
+ else
+ {
+ bool flag8 = num == -1;
+ if (flag8)
+ {
+ num = num3;
+ }
+ }
+ }
+ else
+ {
+ num = -1;
+ this._outStream.Write(workItem.compressed, 0, workItem.compressedBytesAvailable);
+ this._runningCrc.Combine(workItem.crc, workItem.inputBytesAvailable);
+ this._totalBytesProcessed += (long)workItem.inputBytesAvailable;
+ workItem.inputBytesAvailable = 0;
+ this._lastWritten = workItem.ordinal;
+ this._toFill.Enqueue(workItem.index);
+ bool flag9 = num2 == -1;
+ if (flag9)
+ {
+ num2 = 0;
+ }
+ }
+ }
+ }
+ else
+ {
+ num3 = -1;
+ }
+ IL_1AE:
+ if (num3 < 0)
+ {
+ break;
+ }
+ continue;
+ goto IL_1AE;
+ }
+ }
+ while (doAll && this._lastWritten != this._latestCompressed);
+ this.emitting = false;
+ }
+ }
+
+ private void _DeflateOne(object wi)
+ {
+ WorkItem workItem = (WorkItem)wi;
+ try
+ {
+ int index = workItem.index;
+ CRC32 crc = new CRC32();
+ crc.SlurpBlock(workItem.buffer, 0, workItem.inputBytesAvailable);
+ this.DeflateOneSegment(workItem);
+ workItem.crc = crc.Crc32Result;
+ object latestLock = this._latestLock;
+ lock (latestLock)
+ {
+ bool flag = workItem.ordinal > this._latestCompressed;
+ if (flag)
+ {
+ this._latestCompressed = workItem.ordinal;
+ }
+ }
+ Queue<int> toWrite = this._toWrite;
+ lock (toWrite)
+ {
+ this._toWrite.Enqueue(workItem.index);
+ }
+ this._newlyCompressedBlob.Set();
+ }
+ catch (Exception pendingException)
+ {
+ object eLock = this._eLock;
+ lock (eLock)
+ {
+ bool flag2 = this._pendingException != null;
+ if (flag2)
+ {
+ this._pendingException = pendingException;
+ }
+ }
+ }
+ }
+
+ private bool DeflateOneSegment(WorkItem workitem)
+ {
+ ZlibCodec compressor = workitem.compressor;
+ compressor.ResetDeflate(true);
+ compressor.NextIn = 0;
+ compressor.AvailableBytesIn = workitem.inputBytesAvailable;
+ compressor.NextOut = 0;
+ compressor.AvailableBytesOut = workitem.compressed.Length;
+ do
+ {
+ compressor.Deflate(FlushType.None);
+ }
+ while (compressor.AvailableBytesIn > 0 || compressor.AvailableBytesOut == 0);
+ int num = compressor.Deflate(FlushType.Sync);
+ workitem.compressedBytesAvailable = (int)compressor.TotalBytesOut;
+ return true;
+ }
+
+ [Conditional("Trace")]
+ private void TraceOutput(ParallelDeflateOutputStream.TraceBits bits, string format, params object[] varParams)
+ {
+ bool flag = (bits & this._DesiredTrace) > ParallelDeflateOutputStream.TraceBits.None;
+ if (flag)
+ {
+ object outputLock = this._outputLock;
+ lock (outputLock)
+ {
+ int hashCode = Thread.CurrentThread.GetHashCode();
+ }
+ }
+ }
+
+ public override int Read(byte[] buffer, int offset, int count)
+ {
+ throw new NotSupportedException();
+ }
+
+ public override long Seek(long offset, SeekOrigin origin)
+ {
+ throw new NotSupportedException();
+ }
+
+ public override void SetLength(long value)
+ {
+ throw new NotSupportedException();
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/ParallelDeflateOutputStream.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/ParallelDeflateOutputStream.cs.meta new file mode 100644 index 00000000..569f26aa --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/ParallelDeflateOutputStream.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 624c5482b54eed04185749806883eb5f +timeCreated: 1611465653 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/SharedUtils.cs b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/SharedUtils.cs new file mode 100644 index 00000000..6ad43d38 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/SharedUtils.cs @@ -0,0 +1,53 @@ +using System;
+using System.IO;
+using System.Text;
+
+namespace Ionic.Zlib
+{
+ internal class SharedUtils
+ {
+ public static int URShift(int number, int bits)
+ {
+ return (int)((uint)number >> bits);
+ }
+
+ public static int ReadInput(TextReader sourceTextReader, byte[] target, int start, int count)
+ {
+ bool flag = target.Length == 0;
+ int result;
+ if (flag)
+ {
+ result = 0;
+ }
+ else
+ {
+ char[] array = new char[target.Length];
+ int num = sourceTextReader.Read(array, start, count);
+ bool flag2 = num == 0;
+ if (flag2)
+ {
+ result = -1;
+ }
+ else
+ {
+ for (int i = start; i < start + num; i++)
+ {
+ target[i] = (byte)array[i];
+ }
+ result = num;
+ }
+ }
+ return result;
+ }
+
+ internal static byte[] ToByteArray(string sourceString)
+ {
+ return Encoding.UTF8.GetBytes(sourceString);
+ }
+
+ internal static char[] ToCharArray(byte[] byteArray)
+ {
+ return Encoding.UTF8.GetChars(byteArray);
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/SharedUtils.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/SharedUtils.cs.meta new file mode 100644 index 00000000..aa3a40e8 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/SharedUtils.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 486d9679f2103ca48ae52263d256f3a6 +timeCreated: 1611465639 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/StaticTree.cs b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/StaticTree.cs new file mode 100644 index 00000000..e1511cbc --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/StaticTree.cs @@ -0,0 +1,676 @@ +using System;
+
+namespace Ionic.Zlib
+{
+ internal sealed class StaticTree
+ {
+ internal static readonly short[] lengthAndLiteralsTreeCodes = new short[]
+ {
+ 12,
+ 8,
+ 140,
+ 8,
+ 76,
+ 8,
+ 204,
+ 8,
+ 44,
+ 8,
+ 172,
+ 8,
+ 108,
+ 8,
+ 236,
+ 8,
+ 28,
+ 8,
+ 156,
+ 8,
+ 92,
+ 8,
+ 220,
+ 8,
+ 60,
+ 8,
+ 188,
+ 8,
+ 124,
+ 8,
+ 252,
+ 8,
+ 2,
+ 8,
+ 130,
+ 8,
+ 66,
+ 8,
+ 194,
+ 8,
+ 34,
+ 8,
+ 162,
+ 8,
+ 98,
+ 8,
+ 226,
+ 8,
+ 18,
+ 8,
+ 146,
+ 8,
+ 82,
+ 8,
+ 210,
+ 8,
+ 50,
+ 8,
+ 178,
+ 8,
+ 114,
+ 8,
+ 242,
+ 8,
+ 10,
+ 8,
+ 138,
+ 8,
+ 74,
+ 8,
+ 202,
+ 8,
+ 42,
+ 8,
+ 170,
+ 8,
+ 106,
+ 8,
+ 234,
+ 8,
+ 26,
+ 8,
+ 154,
+ 8,
+ 90,
+ 8,
+ 218,
+ 8,
+ 58,
+ 8,
+ 186,
+ 8,
+ 122,
+ 8,
+ 250,
+ 8,
+ 6,
+ 8,
+ 134,
+ 8,
+ 70,
+ 8,
+ 198,
+ 8,
+ 38,
+ 8,
+ 166,
+ 8,
+ 102,
+ 8,
+ 230,
+ 8,
+ 22,
+ 8,
+ 150,
+ 8,
+ 86,
+ 8,
+ 214,
+ 8,
+ 54,
+ 8,
+ 182,
+ 8,
+ 118,
+ 8,
+ 246,
+ 8,
+ 14,
+ 8,
+ 142,
+ 8,
+ 78,
+ 8,
+ 206,
+ 8,
+ 46,
+ 8,
+ 174,
+ 8,
+ 110,
+ 8,
+ 238,
+ 8,
+ 30,
+ 8,
+ 158,
+ 8,
+ 94,
+ 8,
+ 222,
+ 8,
+ 62,
+ 8,
+ 190,
+ 8,
+ 126,
+ 8,
+ 254,
+ 8,
+ 1,
+ 8,
+ 129,
+ 8,
+ 65,
+ 8,
+ 193,
+ 8,
+ 33,
+ 8,
+ 161,
+ 8,
+ 97,
+ 8,
+ 225,
+ 8,
+ 17,
+ 8,
+ 145,
+ 8,
+ 81,
+ 8,
+ 209,
+ 8,
+ 49,
+ 8,
+ 177,
+ 8,
+ 113,
+ 8,
+ 241,
+ 8,
+ 9,
+ 8,
+ 137,
+ 8,
+ 73,
+ 8,
+ 201,
+ 8,
+ 41,
+ 8,
+ 169,
+ 8,
+ 105,
+ 8,
+ 233,
+ 8,
+ 25,
+ 8,
+ 153,
+ 8,
+ 89,
+ 8,
+ 217,
+ 8,
+ 57,
+ 8,
+ 185,
+ 8,
+ 121,
+ 8,
+ 249,
+ 8,
+ 5,
+ 8,
+ 133,
+ 8,
+ 69,
+ 8,
+ 197,
+ 8,
+ 37,
+ 8,
+ 165,
+ 8,
+ 101,
+ 8,
+ 229,
+ 8,
+ 21,
+ 8,
+ 149,
+ 8,
+ 85,
+ 8,
+ 213,
+ 8,
+ 53,
+ 8,
+ 181,
+ 8,
+ 117,
+ 8,
+ 245,
+ 8,
+ 13,
+ 8,
+ 141,
+ 8,
+ 77,
+ 8,
+ 205,
+ 8,
+ 45,
+ 8,
+ 173,
+ 8,
+ 109,
+ 8,
+ 237,
+ 8,
+ 29,
+ 8,
+ 157,
+ 8,
+ 93,
+ 8,
+ 221,
+ 8,
+ 61,
+ 8,
+ 189,
+ 8,
+ 125,
+ 8,
+ 253,
+ 8,
+ 19,
+ 9,
+ 275,
+ 9,
+ 147,
+ 9,
+ 403,
+ 9,
+ 83,
+ 9,
+ 339,
+ 9,
+ 211,
+ 9,
+ 467,
+ 9,
+ 51,
+ 9,
+ 307,
+ 9,
+ 179,
+ 9,
+ 435,
+ 9,
+ 115,
+ 9,
+ 371,
+ 9,
+ 243,
+ 9,
+ 499,
+ 9,
+ 11,
+ 9,
+ 267,
+ 9,
+ 139,
+ 9,
+ 395,
+ 9,
+ 75,
+ 9,
+ 331,
+ 9,
+ 203,
+ 9,
+ 459,
+ 9,
+ 43,
+ 9,
+ 299,
+ 9,
+ 171,
+ 9,
+ 427,
+ 9,
+ 107,
+ 9,
+ 363,
+ 9,
+ 235,
+ 9,
+ 491,
+ 9,
+ 27,
+ 9,
+ 283,
+ 9,
+ 155,
+ 9,
+ 411,
+ 9,
+ 91,
+ 9,
+ 347,
+ 9,
+ 219,
+ 9,
+ 475,
+ 9,
+ 59,
+ 9,
+ 315,
+ 9,
+ 187,
+ 9,
+ 443,
+ 9,
+ 123,
+ 9,
+ 379,
+ 9,
+ 251,
+ 9,
+ 507,
+ 9,
+ 7,
+ 9,
+ 263,
+ 9,
+ 135,
+ 9,
+ 391,
+ 9,
+ 71,
+ 9,
+ 327,
+ 9,
+ 199,
+ 9,
+ 455,
+ 9,
+ 39,
+ 9,
+ 295,
+ 9,
+ 167,
+ 9,
+ 423,
+ 9,
+ 103,
+ 9,
+ 359,
+ 9,
+ 231,
+ 9,
+ 487,
+ 9,
+ 23,
+ 9,
+ 279,
+ 9,
+ 151,
+ 9,
+ 407,
+ 9,
+ 87,
+ 9,
+ 343,
+ 9,
+ 215,
+ 9,
+ 471,
+ 9,
+ 55,
+ 9,
+ 311,
+ 9,
+ 183,
+ 9,
+ 439,
+ 9,
+ 119,
+ 9,
+ 375,
+ 9,
+ 247,
+ 9,
+ 503,
+ 9,
+ 15,
+ 9,
+ 271,
+ 9,
+ 143,
+ 9,
+ 399,
+ 9,
+ 79,
+ 9,
+ 335,
+ 9,
+ 207,
+ 9,
+ 463,
+ 9,
+ 47,
+ 9,
+ 303,
+ 9,
+ 175,
+ 9,
+ 431,
+ 9,
+ 111,
+ 9,
+ 367,
+ 9,
+ 239,
+ 9,
+ 495,
+ 9,
+ 31,
+ 9,
+ 287,
+ 9,
+ 159,
+ 9,
+ 415,
+ 9,
+ 95,
+ 9,
+ 351,
+ 9,
+ 223,
+ 9,
+ 479,
+ 9,
+ 63,
+ 9,
+ 319,
+ 9,
+ 191,
+ 9,
+ 447,
+ 9,
+ 127,
+ 9,
+ 383,
+ 9,
+ 255,
+ 9,
+ 511,
+ 9,
+ 0,
+ 7,
+ 64,
+ 7,
+ 32,
+ 7,
+ 96,
+ 7,
+ 16,
+ 7,
+ 80,
+ 7,
+ 48,
+ 7,
+ 112,
+ 7,
+ 8,
+ 7,
+ 72,
+ 7,
+ 40,
+ 7,
+ 104,
+ 7,
+ 24,
+ 7,
+ 88,
+ 7,
+ 56,
+ 7,
+ 120,
+ 7,
+ 4,
+ 7,
+ 68,
+ 7,
+ 36,
+ 7,
+ 100,
+ 7,
+ 20,
+ 7,
+ 84,
+ 7,
+ 52,
+ 7,
+ 116,
+ 7,
+ 3,
+ 8,
+ 131,
+ 8,
+ 67,
+ 8,
+ 195,
+ 8,
+ 35,
+ 8,
+ 163,
+ 8,
+ 99,
+ 8,
+ 227,
+ 8
+ };
+
+ internal static readonly short[] distTreeCodes = new short[]
+ {
+ 0,
+ 5,
+ 16,
+ 5,
+ 8,
+ 5,
+ 24,
+ 5,
+ 4,
+ 5,
+ 20,
+ 5,
+ 12,
+ 5,
+ 28,
+ 5,
+ 2,
+ 5,
+ 18,
+ 5,
+ 10,
+ 5,
+ 26,
+ 5,
+ 6,
+ 5,
+ 22,
+ 5,
+ 14,
+ 5,
+ 30,
+ 5,
+ 1,
+ 5,
+ 17,
+ 5,
+ 9,
+ 5,
+ 25,
+ 5,
+ 5,
+ 5,
+ 21,
+ 5,
+ 13,
+ 5,
+ 29,
+ 5,
+ 3,
+ 5,
+ 19,
+ 5,
+ 11,
+ 5,
+ 27,
+ 5,
+ 7,
+ 5,
+ 23,
+ 5
+ };
+
+ internal static readonly StaticTree Literals = new StaticTree(StaticTree.lengthAndLiteralsTreeCodes, Tree.ExtraLengthBits, InternalConstants.LITERALS + 1, InternalConstants.L_CODES, InternalConstants.MAX_BITS);
+
+ internal static readonly StaticTree Distances = new StaticTree(StaticTree.distTreeCodes, Tree.ExtraDistanceBits, 0, InternalConstants.D_CODES, InternalConstants.MAX_BITS);
+
+ internal static readonly StaticTree BitLengths = new StaticTree(null, Tree.extra_blbits, 0, InternalConstants.BL_CODES, InternalConstants.MAX_BL_BITS);
+
+ internal short[] treeCodes;
+
+ internal int[] extraBits;
+
+ internal int extraBase;
+
+ internal int elems;
+
+ internal int maxLength;
+
+ private StaticTree(short[] treeCodes, int[] extraBits, int extraBase, int elems, int maxLength)
+ {
+ this.treeCodes = treeCodes;
+ this.extraBits = extraBits;
+ this.extraBase = extraBase;
+ this.elems = elems;
+ this.maxLength = maxLength;
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/StaticTree.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/StaticTree.cs.meta new file mode 100644 index 00000000..b2d37050 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/StaticTree.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: dcac8c430eedb60499be0d97dc3228f1 +timeCreated: 1611465796 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/Tree.cs b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/Tree.cs new file mode 100644 index 00000000..5f250c1b --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/Tree.cs @@ -0,0 +1,1184 @@ +using System;
+
+namespace Ionic.Zlib
+{
+ internal sealed class Tree
+ {
+ private static readonly int HEAP_SIZE = 2 * InternalConstants.L_CODES + 1;
+
+ internal static readonly int[] ExtraLengthBits = new int[]
+ {
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 1,
+ 1,
+ 1,
+ 2,
+ 2,
+ 2,
+ 2,
+ 3,
+ 3,
+ 3,
+ 3,
+ 4,
+ 4,
+ 4,
+ 4,
+ 5,
+ 5,
+ 5,
+ 5,
+ 0
+ };
+
+ internal static readonly int[] ExtraDistanceBits = new int[]
+ {
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 1,
+ 2,
+ 2,
+ 3,
+ 3,
+ 4,
+ 4,
+ 5,
+ 5,
+ 6,
+ 6,
+ 7,
+ 7,
+ 8,
+ 8,
+ 9,
+ 9,
+ 10,
+ 10,
+ 11,
+ 11,
+ 12,
+ 12,
+ 13,
+ 13
+ };
+
+ internal static readonly int[] extra_blbits = new int[]
+ {
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 2,
+ 3,
+ 7
+ };
+
+ internal static readonly sbyte[] bl_order = new sbyte[]
+ {
+ 16,
+ 17,
+ 18,
+ 0,
+ 8,
+ 7,
+ 9,
+ 6,
+ 10,
+ 5,
+ 11,
+ 4,
+ 12,
+ 3,
+ 13,
+ 2,
+ 14,
+ 1,
+ 15
+ };
+
+ internal const int Buf_size = 16;
+
+ private static readonly sbyte[] _dist_code = new sbyte[]
+ {
+ 0,
+ 1,
+ 2,
+ 3,
+ 4,
+ 4,
+ 5,
+ 5,
+ 6,
+ 6,
+ 6,
+ 6,
+ 7,
+ 7,
+ 7,
+ 7,
+ 8,
+ 8,
+ 8,
+ 8,
+ 8,
+ 8,
+ 8,
+ 8,
+ 9,
+ 9,
+ 9,
+ 9,
+ 9,
+ 9,
+ 9,
+ 9,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 10,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 11,
+ 12,
+ 12,
+ 12,
+ 12,
+ 12,
+ 12,
+ 12,
+ 12,
+ 12,
+ 12,
+ 12,
+ 12,
+ 12,
+ 12,
+ 12,
+ 12,
+ 12,
+ 12,
+ 12,
+ 12,
+ 12,
+ 12,
+ 12,
+ 12,
+ 12,
+ 12,
+ 12,
+ 12,
+ 12,
+ 12,
+ 12,
+ 12,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 13,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 14,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 15,
+ 0,
+ 0,
+ 16,
+ 17,
+ 18,
+ 18,
+ 19,
+ 19,
+ 20,
+ 20,
+ 20,
+ 20,
+ 21,
+ 21,
+ 21,
+ 21,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 25,
+ 25,
+ 25,
+ 25,
+ 25,
+ 25,
+ 25,
+ 25,
+ 25,
+ 25,
+ 25,
+ 25,
+ 25,
+ 25,
+ 25,
+ 25,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 28,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29,
+ 29
+ };
+
+ internal static readonly sbyte[] LengthCode = new sbyte[]
+ {
+ 0,
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 8,
+ 9,
+ 9,
+ 10,
+ 10,
+ 11,
+ 11,
+ 12,
+ 12,
+ 12,
+ 12,
+ 13,
+ 13,
+ 13,
+ 13,
+ 14,
+ 14,
+ 14,
+ 14,
+ 15,
+ 15,
+ 15,
+ 15,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 16,
+ 17,
+ 17,
+ 17,
+ 17,
+ 17,
+ 17,
+ 17,
+ 17,
+ 18,
+ 18,
+ 18,
+ 18,
+ 18,
+ 18,
+ 18,
+ 18,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 19,
+ 20,
+ 20,
+ 20,
+ 20,
+ 20,
+ 20,
+ 20,
+ 20,
+ 20,
+ 20,
+ 20,
+ 20,
+ 20,
+ 20,
+ 20,
+ 20,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 21,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 22,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 23,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 24,
+ 25,
+ 25,
+ 25,
+ 25,
+ 25,
+ 25,
+ 25,
+ 25,
+ 25,
+ 25,
+ 25,
+ 25,
+ 25,
+ 25,
+ 25,
+ 25,
+ 25,
+ 25,
+ 25,
+ 25,
+ 25,
+ 25,
+ 25,
+ 25,
+ 25,
+ 25,
+ 25,
+ 25,
+ 25,
+ 25,
+ 25,
+ 25,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 26,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 27,
+ 28
+ };
+
+ internal static readonly int[] LengthBase = new int[]
+ {
+ 0,
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 10,
+ 12,
+ 14,
+ 16,
+ 20,
+ 24,
+ 28,
+ 32,
+ 40,
+ 48,
+ 56,
+ 64,
+ 80,
+ 96,
+ 112,
+ 128,
+ 160,
+ 192,
+ 224,
+ 0
+ };
+
+ internal static readonly int[] DistanceBase = new int[]
+ {
+ 0,
+ 1,
+ 2,
+ 3,
+ 4,
+ 6,
+ 8,
+ 12,
+ 16,
+ 24,
+ 32,
+ 48,
+ 64,
+ 96,
+ 128,
+ 192,
+ 256,
+ 384,
+ 512,
+ 768,
+ 1024,
+ 1536,
+ 2048,
+ 3072,
+ 4096,
+ 6144,
+ 8192,
+ 12288,
+ 16384,
+ 24576
+ };
+
+ internal short[] dyn_tree;
+
+ internal int max_code;
+
+ internal StaticTree staticTree;
+
+ internal static int DistanceCode(int dist)
+ {
+ return (int)((dist < 256) ? Tree._dist_code[dist] : Tree._dist_code[256 + SharedUtils.URShift(dist, 7)]);
+ }
+
+ internal void gen_bitlen(DeflateManager s)
+ {
+ short[] array = this.dyn_tree;
+ short[] treeCodes = this.staticTree.treeCodes;
+ int[] extraBits = this.staticTree.extraBits;
+ int extraBase = this.staticTree.extraBase;
+ int maxLength = this.staticTree.maxLength;
+ int num = 0;
+ for (int i = 0; i <= InternalConstants.MAX_BITS; i++)
+ {
+ s.bl_count[i] = 0;
+ }
+ array[s.heap[s.heap_max] * 2 + 1] = 0;
+ int j;
+ for (j = s.heap_max + 1; j < Tree.HEAP_SIZE; j++)
+ {
+ int k = s.heap[j];
+ int i = (int)(array[(int)(array[k * 2 + 1] * 2 + 1)] + 1);
+ bool flag = i > maxLength;
+ if (flag)
+ {
+ i = maxLength;
+ num++;
+ }
+ array[k * 2 + 1] = (short)i;
+ bool flag2 = k > this.max_code;
+ if (!flag2)
+ {
+ short[] bl_count = s.bl_count;
+ int num2 = i;
+ bl_count[num2] += 1;
+ int num3 = 0;
+ bool flag3 = k >= extraBase;
+ if (flag3)
+ {
+ num3 = extraBits[k - extraBase];
+ }
+ short num4 = array[k * 2];
+ s.opt_len += (int)num4 * (i + num3);
+ bool flag4 = treeCodes != null;
+ if (flag4)
+ {
+ s.static_len += (int)num4 * ((int)treeCodes[k * 2 + 1] + num3);
+ }
+ }
+ }
+ bool flag5 = num == 0;
+ if (!flag5)
+ {
+ do
+ {
+ int i = maxLength - 1;
+ while (s.bl_count[i] == 0)
+ {
+ i--;
+ }
+ short[] bl_count2 = s.bl_count;
+ int num5 = i;
+ bl_count2[num5] -= 1;
+ s.bl_count[i + 1] = (short) ( s.bl_count[i + 1] + 2 );
+ short[] bl_count3 = s.bl_count;
+ int num6 = maxLength;
+ bl_count3[num6] -= 1;
+ num -= 2;
+ }
+ while (num > 0);
+ for (int i = maxLength; i != 0; i--)
+ {
+ int k = (int)s.bl_count[i];
+ while (k != 0)
+ {
+ int num7 = s.heap[--j];
+ bool flag6 = num7 > this.max_code;
+ if (!flag6)
+ {
+ bool flag7 = (int)array[num7 * 2 + 1] != i;
+ if (flag7)
+ {
+ s.opt_len = (int)((long)s.opt_len + ((long)i - (long)array[num7 * 2 + 1]) * (long)array[num7 * 2]);
+ array[num7 * 2 + 1] = (short)i;
+ }
+ k--;
+ }
+ }
+ }
+ }
+ }
+
+ internal void build_tree(DeflateManager s)
+ {
+ short[] array = this.dyn_tree;
+ short[] treeCodes = this.staticTree.treeCodes;
+ int elems = this.staticTree.elems;
+ int num = -1;
+ s.heap_len = 0;
+ s.heap_max = Tree.HEAP_SIZE;
+ int num2;
+ for (int i = 0; i < elems; i++)
+ {
+ bool flag = array[i * 2] != 0;
+ if (flag)
+ {
+ int[] heap = s.heap;
+ num2 = s.heap_len + 1;
+ s.heap_len = num2;
+ num = (heap[num2] = i);
+ s.depth[i] = 0;
+ }
+ else
+ {
+ array[i * 2 + 1] = 0;
+ }
+ }
+ int num3;
+ while (s.heap_len < 2)
+ {
+ int[] heap2 = s.heap;
+ num2 = s.heap_len + 1;
+ s.heap_len = num2;
+ num3 = (heap2[num2] = ((num < 2) ? (++num) : 0));
+ array[num3 * 2] = 1;
+ s.depth[num3] = 0;
+ s.opt_len--;
+ bool flag2 = treeCodes != null;
+ if (flag2)
+ {
+ s.static_len -= (int)treeCodes[num3 * 2 + 1];
+ }
+ }
+ this.max_code = num;
+ for (int i = s.heap_len / 2; i >= 1; i--)
+ {
+ s.pqdownheap(array, i);
+ }
+ num3 = elems;
+ do
+ {
+ int i = s.heap[1];
+ int[] heap3 = s.heap;
+ int num4 = 1;
+ int[] heap4 = s.heap;
+ num2 = s.heap_len;
+ s.heap_len = num2 - 1;
+ heap3[num4] = heap4[num2];
+ s.pqdownheap(array, 1);
+ int num5 = s.heap[1];
+ int[] heap5 = s.heap;
+ num2 = s.heap_max - 1;
+ s.heap_max = num2;
+ heap5[num2] = i;
+ int[] heap6 = s.heap;
+ num2 = s.heap_max - 1;
+ s.heap_max = num2;
+ heap6[num2] = num5;
+ array[num3 * 2] = (short) ( array[i * 2] + array[num5 * 2] );
+ s.depth[num3] = (sbyte)(Math.Max((byte)s.depth[i], (byte)s.depth[num5]) + 1);
+ array[i * 2 + 1] = (array[num5 * 2 + 1] = (short)num3);
+ s.heap[1] = num3++;
+ s.pqdownheap(array, 1);
+ }
+ while (s.heap_len >= 2);
+ int[] heap7 = s.heap;
+ num2 = s.heap_max - 1;
+ s.heap_max = num2;
+ heap7[num2] = s.heap[1];
+ this.gen_bitlen(s);
+ Tree.gen_codes(array, num, s.bl_count);
+ }
+
+ internal static void gen_codes(short[] tree, int max_code, short[] bl_count)
+ {
+ short[] array = new short[InternalConstants.MAX_BITS + 1];
+ short num = 0;
+ for (int i = 1; i <= InternalConstants.MAX_BITS; i++)
+ {
+ num = (array[i] = (short)(num + bl_count[i - 1] << 1));
+ }
+ for (int j = 0; j <= max_code; j++)
+ {
+ int num2 = (int)tree[j * 2 + 1];
+ bool flag = num2 == 0;
+ if (!flag)
+ {
+ int num3 = j * 2;
+ short[] array2 = array;
+ int num4 = num2;
+ short num5 = array2[num4];
+ array2[num4] = (short) ( num5 + 1 );
+ tree[num3] = (short)Tree.bi_reverse((int)num5, num2);
+ }
+ }
+ }
+
+ internal static int bi_reverse(int code, int len)
+ {
+ int num = 0;
+ do
+ {
+ num |= (code & 1);
+ code >>= 1;
+ num <<= 1;
+ }
+ while (--len > 0);
+ return num >> 1;
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/Tree.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/Tree.cs.meta new file mode 100644 index 00000000..68f72769 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/Tree.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 82ccf969c9ce78c49974c4eecebda087 +timeCreated: 1611465694 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/WorkItem.cs b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/WorkItem.cs new file mode 100644 index 00000000..ba802f8e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/WorkItem.cs @@ -0,0 +1,35 @@ +using System;
+
+namespace Ionic.Zlib
+{
+ internal class WorkItem
+ {
+ public byte[] buffer;
+
+ public byte[] compressed;
+
+ public int crc;
+
+ public int index;
+
+ public int ordinal;
+
+ public int inputBytesAvailable;
+
+ public int compressedBytesAvailable;
+
+ public ZlibCodec compressor;
+
+ public WorkItem(int size, CompressionLevel compressLevel, CompressionStrategy strategy, int ix)
+ {
+ this.buffer = new byte[size];
+ int num = size + (size / 32768 + 1) * 5 * 2;
+ this.compressed = new byte[num];
+ this.compressor = new ZlibCodec();
+ this.compressor.InitializeDeflate(compressLevel, false);
+ this.compressor.OutputBuffer = this.compressed;
+ this.compressor.InputBuffer = this.buffer;
+ this.index = ix;
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/WorkItem.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/WorkItem.cs.meta new file mode 100644 index 00000000..d059e3ff --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/WorkItem.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 23c52360d96dd6049935c0bd40dbba80 +timeCreated: 1611465300 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/ZlibBaseStream.cs b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/ZlibBaseStream.cs new file mode 100644 index 00000000..18a76dca --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/ZlibBaseStream.cs @@ -0,0 +1,718 @@ +using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Text;
+using Ionic.Crc;
+
+namespace Ionic.Zlib
+{
+ internal class ZlibBaseStream : Stream
+ {
+ internal int Crc32
+ {
+ get
+ {
+ bool flag = this.crc == null;
+ int result;
+ if (flag)
+ {
+ result = 0;
+ }
+ else
+ {
+ result = this.crc.Crc32Result;
+ }
+ return result;
+ }
+ }
+
+ protected internal bool _wantCompress
+ {
+ get
+ {
+ return this._compressionMode == CompressionMode.Compress;
+ }
+ }
+
+ private ZlibCodec z
+ {
+ get
+ {
+ bool flag = this._z == null;
+ if (flag)
+ {
+ bool flag2 = this._flavor == ZlibStreamFlavor.ZLIB;
+ this._z = new ZlibCodec();
+ bool flag3 = this._compressionMode == CompressionMode.Decompress;
+ if (flag3)
+ {
+ this._z.InitializeInflate(flag2);
+ }
+ else
+ {
+ this._z.Strategy = this.Strategy;
+ this._z.InitializeDeflate(this._level, flag2);
+ }
+ }
+ return this._z;
+ }
+ }
+
+ private byte[] workingBuffer
+ {
+ get
+ {
+ bool flag = this._workingBuffer == null;
+ if (flag)
+ {
+ this._workingBuffer = new byte[this._bufferSize];
+ }
+ return this._workingBuffer;
+ }
+ }
+
+ public override bool CanRead
+ {
+ get
+ {
+ return this._stream.CanRead;
+ }
+ }
+
+ public override bool CanSeek
+ {
+ get
+ {
+ return this._stream.CanSeek;
+ }
+ }
+
+ public override bool CanWrite
+ {
+ get
+ {
+ return this._stream.CanWrite;
+ }
+ }
+
+ public override long Length
+ {
+ get
+ {
+ return this._stream.Length;
+ }
+ }
+
+ public override long Position
+ {
+ get
+ {
+ throw new NotImplementedException();
+ }
+ set
+ {
+ throw new NotImplementedException();
+ }
+ }
+
+ protected internal ZlibCodec _z = null;
+
+ protected internal ZlibBaseStream.StreamMode _streamMode = ZlibBaseStream.StreamMode.Undefined;
+
+ protected internal FlushType _flushMode;
+
+ protected internal ZlibStreamFlavor _flavor;
+
+ protected internal CompressionMode _compressionMode;
+
+ protected internal CompressionLevel _level;
+
+ protected internal bool _leaveOpen;
+
+ protected internal byte[] _workingBuffer;
+
+ protected internal int _bufferSize = 16384;
+
+ protected internal byte[] _buf1 = new byte[1];
+
+ protected internal Stream _stream;
+
+ protected internal CompressionStrategy Strategy = CompressionStrategy.Default;
+
+ private CRC32 crc;
+
+ protected internal string _GzipFileName;
+
+ protected internal string _GzipComment;
+
+ protected internal DateTime _GzipMtime;
+
+ protected internal int _gzipHeaderByteCount;
+
+ private bool nomoreinput = false;
+
+ internal enum StreamMode
+ {
+ Writer,
+ Reader,
+ Undefined
+ }
+
+ public ZlibBaseStream(Stream stream, CompressionMode compressionMode, CompressionLevel level, ZlibStreamFlavor flavor, bool leaveOpen)
+ {
+ this._flushMode = FlushType.None;
+ this._stream = stream;
+ this._leaveOpen = leaveOpen;
+ this._compressionMode = compressionMode;
+ this._flavor = flavor;
+ this._level = level;
+ bool flag = flavor == ZlibStreamFlavor.GZIP;
+ if (flag)
+ {
+ this.crc = new CRC32();
+ }
+ }
+
+ public override void Write(byte[] buffer, int offset, int count)
+ {
+ bool flag = this.crc != null;
+ if (flag)
+ {
+ this.crc.SlurpBlock(buffer, offset, count);
+ }
+ bool flag2 = this._streamMode == ZlibBaseStream.StreamMode.Undefined;
+ if (flag2)
+ {
+ this._streamMode = ZlibBaseStream.StreamMode.Writer;
+ }
+ else
+ {
+ bool flag3 = this._streamMode > ZlibBaseStream.StreamMode.Writer;
+ if (flag3)
+ {
+ throw new ZlibException("Cannot Write after Reading.");
+ }
+ }
+ bool flag4 = count == 0;
+ if (!flag4)
+ {
+ this.z.InputBuffer = buffer;
+ this._z.Reset();
+ this._z.NextIn = offset;
+ this._z.AvailableBytesIn = count;
+ for (;;)
+ {
+ this._z.OutputBuffer = this.workingBuffer;
+ this._z.NextOut = 0;
+ this._z.AvailableBytesOut = this._workingBuffer.Length;
+ int num = this._wantCompress ? this._z.Deflate(this._flushMode) : this._z.Inflate(this._flushMode);
+ bool flag5 = num != 0 && num != 1;
+ if (flag5)
+ {
+ break;
+ }
+ this._stream.Write(this._workingBuffer, 0, this._workingBuffer.Length - this._z.AvailableBytesOut);
+ bool flag6 = this._z.AvailableBytesIn == 0 && this._z.AvailableBytesOut != 0;
+ bool flag7 = this._flavor == ZlibStreamFlavor.GZIP && !this._wantCompress;
+ if (flag7)
+ {
+ flag6 = (this._z.AvailableBytesIn == 8 && this._z.AvailableBytesOut != 0);
+ }
+ if (flag6)
+ {
+ return;
+ }
+ }
+ throw new ZlibException((this._wantCompress ? "de" : "in") + "flating: " + this._z.Message);
+ }
+ }
+
+ private void finish()
+ {
+ bool flag = this._z == null;
+ if (!flag)
+ {
+ bool flag2 = this._streamMode == ZlibBaseStream.StreamMode.Writer;
+ if (flag2)
+ {
+ int num;
+ for (;;)
+ {
+ this._z.OutputBuffer = this.workingBuffer;
+ this._z.NextOut = 0;
+ this._z.AvailableBytesOut = this._workingBuffer.Length;
+ num = (this._wantCompress ? this._z.Deflate(FlushType.Finish) : this._z.Inflate(FlushType.Finish));
+ bool flag3 = num != 1 && num != 0;
+ if (flag3)
+ {
+ break;
+ }
+ bool flag4 = this._workingBuffer.Length - this._z.AvailableBytesOut > 0;
+ if (flag4)
+ {
+ this._stream.Write(this._workingBuffer, 0, this._workingBuffer.Length - this._z.AvailableBytesOut);
+ }
+ bool flag5 = this._z.AvailableBytesIn == 0 && this._z.AvailableBytesOut != 0;
+ bool flag6 = this._flavor == ZlibStreamFlavor.GZIP && !this._wantCompress;
+ if (flag6)
+ {
+ flag5 = (this._z.AvailableBytesIn == 8 && this._z.AvailableBytesOut != 0);
+ }
+ if (flag5)
+ {
+ goto Block_12;
+ }
+ }
+ string text = (this._wantCompress ? "de" : "in") + "flating";
+ bool flag7 = this._z.Message == null;
+ if (flag7)
+ {
+ throw new ZlibException(string.Format("{0}: (rc = {1})", text, num));
+ }
+ throw new ZlibException(text + ": " + this._z.Message);
+ Block_12:
+ this.Flush();
+ bool flag8 = this._flavor == ZlibStreamFlavor.GZIP;
+ if (flag8)
+ {
+ bool wantCompress = this._wantCompress;
+ if (!wantCompress)
+ {
+ throw new ZlibException("Writing with decompression is not supported.");
+ }
+ int crc32Result = this.crc.Crc32Result;
+ this._stream.Write(BitConverter.GetBytes(crc32Result), 0, 4);
+ int value = (int)(this.crc.TotalBytesRead & (long)(-1)); //!
+ this._stream.Write(BitConverter.GetBytes(value), 0, 4);
+ }
+ }
+ else
+ {
+ bool flag9 = this._streamMode == ZlibBaseStream.StreamMode.Reader;
+ if (flag9)
+ {
+ bool flag10 = this._flavor == ZlibStreamFlavor.GZIP;
+ if (flag10)
+ {
+ bool flag11 = !this._wantCompress;
+ if (!flag11)
+ {
+ throw new ZlibException("Reading with compression is not supported.");
+ }
+ bool flag12 = this._z.TotalBytesOut == 0L;
+ if (!flag12)
+ {
+ byte[] array = new byte[8];
+ bool flag13 = this._z.AvailableBytesIn < 8;
+ if (flag13)
+ {
+ Array.Copy(this._z.InputBuffer, this._z.NextIn, array, 0, this._z.AvailableBytesIn);
+ int num2 = 8 - this._z.AvailableBytesIn;
+ int num3 = this._stream.Read(array, this._z.AvailableBytesIn, num2);
+ bool flag14 = num2 != num3;
+ if (flag14)
+ {
+ throw new ZlibException(string.Format("Missing or incomplete GZIP trailer. Expected 8 bytes, got {0}.", this._z.AvailableBytesIn + num3));
+ }
+ }
+ else
+ {
+ Array.Copy(this._z.InputBuffer, this._z.NextIn, array, 0, array.Length);
+ }
+ int num4 = BitConverter.ToInt32(array, 0);
+ int crc32Result2 = this.crc.Crc32Result;
+ int num5 = BitConverter.ToInt32(array, 4);
+ int num6 = (int)(this._z.TotalBytesOut & (long)(-1)); //!
+ bool flag15 = crc32Result2 != num4;
+ if (flag15)
+ {
+ throw new ZlibException(string.Format("Bad CRC32 in GZIP trailer. (actual({0:X8})!=expected({1:X8}))", crc32Result2, num4));
+ }
+ bool flag16 = num6 != num5;
+ if (flag16)
+ {
+ throw new ZlibException(string.Format("Bad size in GZIP trailer. (actual({0})!=expected({1}))", num6, num5));
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ private void end()
+ {
+ bool flag = this.z == null;
+ if (!flag)
+ {
+ bool wantCompress = this._wantCompress;
+ if (wantCompress)
+ {
+ this._z.EndDeflate();
+ }
+ else
+ {
+ this._z.EndInflate();
+ }
+ this._z = null;
+ }
+ }
+
+ public override void Close()
+ {
+ bool flag = this._stream == null;
+ if (!flag)
+ {
+ try
+ {
+ this.finish();
+ }
+ finally
+ {
+ this.end();
+ bool flag2 = !this._leaveOpen;
+ if (flag2)
+ {
+ this._stream.Close();
+ }
+ this._stream = null;
+ }
+ }
+ }
+
+ public override void Flush()
+ {
+ this._stream.Flush();
+ }
+
+ public override long Seek(long offset, SeekOrigin origin)
+ {
+ return this._stream.Seek(offset, origin);
+ }
+
+ public override void SetLength(long value)
+ {
+ this._stream.SetLength(value);
+ }
+
+ private string ReadZeroTerminatedString()
+ {
+ List<byte> list = new List<byte>();
+ bool flag = false;
+ for (;;)
+ {
+ int num = this._stream.Read(this._buf1, 0, 1);
+ bool flag2 = num != 1;
+ if (flag2)
+ {
+ break;
+ }
+ bool flag3 = this._buf1[0] == 0;
+ if (flag3)
+ {
+ flag = true;
+ }
+ else
+ {
+ list.Add(this._buf1[0]);
+ }
+ if (flag)
+ {
+ goto Block_3;
+ }
+ }
+ throw new ZlibException("Unexpected EOF reading GZIP header.");
+ Block_3:
+ byte[] array = list.ToArray();
+ return GZipStream.iso8859dash1.GetString(array, 0, array.Length);
+ }
+
+ private int _ReadAndValidateGzipHeader()
+ {
+ int num = 0;
+ byte[] array = new byte[10];
+ int num2 = this._stream.Read(array, 0, array.Length);
+ bool flag = num2 == 0;
+ int result;
+ if (flag)
+ {
+ result = 0;
+ }
+ else
+ {
+ bool flag2 = num2 != 10;
+ if (flag2)
+ {
+ throw new ZlibException("Not a valid GZIP stream.");
+ }
+ bool flag3 = array[0] != 31 || array[1] != 139 || array[2] != 8;
+ if (flag3)
+ {
+ throw new ZlibException("Bad GZIP header.");
+ }
+ int num3 = BitConverter.ToInt32(array, 4);
+ this._GzipMtime = GZipStream._unixEpoch.AddSeconds((double)num3);
+ num += num2;
+ bool flag4 = (array[3] & 4) == 4;
+ if (flag4)
+ {
+ num2 = this._stream.Read(array, 0, 2);
+ num += num2;
+ short num4 = (short)((int)array[0] + (int)array[1] * 256);
+ byte[] array2 = new byte[(int)num4];
+ num2 = this._stream.Read(array2, 0, array2.Length);
+ bool flag5 = num2 != (int)num4;
+ if (flag5)
+ {
+ throw new ZlibException("Unexpected end-of-file reading GZIP header.");
+ }
+ num += num2;
+ }
+ bool flag6 = (array[3] & 8) == 8;
+ if (flag6)
+ {
+ this._GzipFileName = this.ReadZeroTerminatedString();
+ }
+ bool flag7 = (array[3] & 16) == 16;
+ if (flag7)
+ {
+ this._GzipComment = this.ReadZeroTerminatedString();
+ }
+ bool flag8 = (array[3] & 2) == 2;
+ if (flag8)
+ {
+ this.Read(this._buf1, 0, 1);
+ }
+ result = num;
+ }
+ return result;
+ }
+
+ public override int Read(byte[] buffer, int offset, int count)
+ {
+ bool flag = this._streamMode == ZlibBaseStream.StreamMode.Undefined;
+ if (flag)
+ {
+ bool flag2 = !this._stream.CanRead;
+ if (flag2)
+ {
+ throw new ZlibException("The stream is not readable.");
+ }
+ this._streamMode = ZlibBaseStream.StreamMode.Reader;
+ this.z.AvailableBytesIn = 0;
+ bool flag3 = this._flavor == ZlibStreamFlavor.GZIP;
+ if (flag3)
+ {
+ this._gzipHeaderByteCount = this._ReadAndValidateGzipHeader();
+ bool flag4 = this._gzipHeaderByteCount == 0;
+ if (flag4)
+ {
+ return 0;
+ }
+ }
+ }
+ bool flag5 = this._streamMode != ZlibBaseStream.StreamMode.Reader;
+ if (flag5)
+ {
+ throw new ZlibException("Cannot Read after Writing.");
+ }
+ bool flag6 = count == 0;
+ int result = 0;
+ if (flag6)
+ {
+ result = 0;
+ }
+ else
+ {
+ bool flag7 = this.nomoreinput && this._wantCompress;
+ if (flag7)
+ {
+ result = 0;
+ }
+ else
+ {
+ bool flag8 = buffer == null;
+ if (flag8)
+ {
+ throw new ArgumentNullException("buffer");
+ }
+ bool flag9 = count < 0;
+ if (flag9)
+ {
+ throw new ArgumentOutOfRangeException("count");
+ }
+ bool flag10 = offset < buffer.GetLowerBound(0);
+ if (flag10)
+ {
+ throw new ArgumentOutOfRangeException("offset");
+ }
+ bool flag11 = offset + count > buffer.GetLength(0);
+ if (flag11)
+ {
+ throw new ArgumentOutOfRangeException("count");
+ }
+ this._z.OutputBuffer = buffer;
+ this._z.NextOut = offset;
+ this._z.AvailableBytesOut = count;
+ this._z.InputBuffer = this.workingBuffer;
+ int num;
+ for (;;)
+ {
+ bool flag12 = this._z.AvailableBytesIn == 0 && !this.nomoreinput;
+ if (flag12)
+ {
+ this._z.NextIn = 0;
+ this._z.AvailableBytesIn = this._stream.Read(this._workingBuffer, 0, this._workingBuffer.Length);
+ bool flag13 = this._z.AvailableBytesIn == 0;
+ if (flag13)
+ {
+ this.nomoreinput = true;
+ }
+ }
+ num = (this._wantCompress ? this._z.Deflate(this._flushMode) : this._z.Inflate(this._flushMode));
+ bool flag14 = this.nomoreinput && num == -5;
+ if (flag14)
+ {
+ break;
+ }
+ bool flag15 = num != 0 && num != 1;
+ if (flag15)
+ {
+ goto Block_20;
+ }
+ bool flag16 = (this.nomoreinput || num == 1) && this._z.AvailableBytesOut == count;
+ if (flag16)
+ {
+ goto Block_23;
+ }
+ if (this._z.AvailableBytesOut <= 0 || this.nomoreinput || num != 0)
+ {
+ goto IL_2AA;
+ }
+ }
+ return 0;
+ Block_20:
+ throw new ZlibException(string.Format("{0}flating: rc={1} msg={2}", this._wantCompress ? "de" : "in", num, this._z.Message));
+ Block_23:
+ IL_2AA:
+ bool flag17 = this._z.AvailableBytesOut > 0;
+ if (flag17)
+ {
+ bool flag18 = num == 0 && this._z.AvailableBytesIn == 0;
+ if (flag18)
+ {
+ }
+ bool flag19 = this.nomoreinput;
+ if (flag19)
+ {
+ bool wantCompress = this._wantCompress;
+ if (wantCompress)
+ {
+ num = this._z.Deflate(FlushType.Finish);
+ bool flag20 = num != 0 && num != 1;
+ if (flag20)
+ {
+ throw new ZlibException(string.Format("Deflating: rc={0} msg={1}", num, this._z.Message));
+ }
+ }
+ }
+ }
+ num = count - this._z.AvailableBytesOut;
+ bool flag21 = this.crc != null;
+ if (flag21)
+ {
+ this.crc.SlurpBlock(buffer, offset, num);
+ }
+ result = num;
+ }
+ }
+ return result;
+ }
+
+ public static void CompressString(string s, Stream compressor)
+ {
+ byte[] bytes = Encoding.UTF8.GetBytes(s);
+ try
+ {
+ compressor.Write(bytes, 0, bytes.Length);
+ }
+ finally
+ {
+ if (compressor != null)
+ {
+ ((IDisposable)compressor).Dispose();
+ }
+ }
+ }
+
+ public static void CompressBuffer(byte[] b, Stream compressor)
+ {
+ try
+ {
+ compressor.Write(b, 0, b.Length);
+ }
+ finally
+ {
+ if (compressor != null)
+ {
+ ((IDisposable)compressor).Dispose();
+ }
+ }
+ }
+
+ public static string UncompressString(byte[] compressed, Stream decompressor)
+ {
+ byte[] array = new byte[1024];
+ Encoding utf = Encoding.UTF8;
+ string result;
+ using (MemoryStream memoryStream = new MemoryStream())
+ {
+ try
+ {
+ int count;
+ while ((count = decompressor.Read(array, 0, array.Length)) != 0)
+ {
+ memoryStream.Write(array, 0, count);
+ }
+ }
+ finally
+ {
+ if (decompressor != null)
+ {
+ ((IDisposable)decompressor).Dispose();
+ }
+ }
+ memoryStream.Seek(0L, SeekOrigin.Begin);
+ StreamReader streamReader = new StreamReader(memoryStream, utf);
+ result = streamReader.ReadToEnd();
+ }
+ return result;
+ }
+
+ public static byte[] UncompressBuffer(byte[] compressed, Stream decompressor)
+ {
+ byte[] array = new byte[1024];
+ byte[] result;
+ using (MemoryStream memoryStream = new MemoryStream())
+ {
+ try
+ {
+ int count;
+ while ((count = decompressor.Read(array, 0, array.Length)) != 0)
+ {
+ memoryStream.Write(array, 0, count);
+ }
+ }
+ finally
+ {
+ if (decompressor != null)
+ {
+ ((IDisposable)decompressor).Dispose();
+ }
+ }
+ result = memoryStream.ToArray();
+ }
+ return result;
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/ZlibBaseStream.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/ZlibBaseStream.cs.meta new file mode 100644 index 00000000..c6027272 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/ZlibBaseStream.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ea148a1efaffee94ba8043fda34961dc +timeCreated: 1611465804 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/ZlibCodec.cs b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/ZlibCodec.cs new file mode 100644 index 00000000..397d505e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/ZlibCodec.cs @@ -0,0 +1,315 @@ +using System;
+using System.Runtime.InteropServices;
+
+namespace Ionic.Zlib
+{
+ [Guid("ebc25cf6-9120-4283-b972-0e5520d0000D")]
+ [ComVisible(true)]
+ [ClassInterface(ClassInterfaceType.AutoDispatch)]
+ public sealed class ZlibCodec
+ {
+ public int Adler32
+ {
+ get
+ {
+ return (int)this._Adler32;
+ }
+ }
+
+ public byte[] InputBuffer;
+
+ public int NextIn;
+
+ public int AvailableBytesIn;
+
+ public long TotalBytesIn;
+
+ public byte[] OutputBuffer;
+
+ public int NextOut;
+
+ public int AvailableBytesOut;
+
+ public long TotalBytesOut;
+
+ public string Message;
+
+ internal DeflateManager dstate;
+
+ internal InflateManager istate;
+
+ internal uint _Adler32;
+
+ public CompressionLevel CompressLevel = CompressionLevel.Default;
+
+ public int WindowBits = 15;
+
+ public CompressionStrategy Strategy = CompressionStrategy.Default;
+
+ public ZlibCodec()
+ {
+ }
+
+ public ZlibCodec(CompressionMode mode)
+ {
+ bool flag = mode == CompressionMode.Compress;
+ if (flag)
+ {
+ int num = this.InitializeDeflate();
+ bool flag2 = num != 0;
+ if (flag2)
+ {
+ throw new ZlibException("Cannot initialize for deflate.");
+ }
+ }
+ else
+ {
+ bool flag3 = mode == CompressionMode.Decompress;
+ if (!flag3)
+ {
+ throw new ZlibException("Invalid ZlibStreamFlavor.");
+ }
+ int num2 = this.InitializeInflate();
+ bool flag4 = num2 != 0;
+ if (flag4)
+ {
+ throw new ZlibException("Cannot initialize for inflate.");
+ }
+ }
+ }
+
+ public int InitializeInflate()
+ {
+ return this.InitializeInflate(this.WindowBits);
+ }
+
+ public int InitializeInflate(bool expectRfc1950Header)
+ {
+ return this.InitializeInflate(this.WindowBits, expectRfc1950Header);
+ }
+
+ public int InitializeInflate(int windowBits)
+ {
+ this.WindowBits = windowBits;
+ return this.InitializeInflate(windowBits, true);
+ }
+
+ public int InitializeInflate(int windowBits, bool expectRfc1950Header)
+ {
+ this.WindowBits = windowBits;
+ bool flag = this.dstate != null;
+ if (flag)
+ {
+ throw new ZlibException("You may not call InitializeInflate() after calling InitializeDeflate().");
+ }
+ this.istate = new InflateManager(expectRfc1950Header);
+ return this.istate.Initialize(this, windowBits);
+ }
+
+ public int Inflate(FlushType flush)
+ {
+ bool flag = this.istate == null;
+ if (flag)
+ {
+ throw new ZlibException("No Inflate State!");
+ }
+ return this.istate.Inflate(flush);
+ }
+
+ public void Reset()
+ {
+ bool flag = this.istate == null;
+ if (flag)
+ {
+ throw new ZlibException("No Inflate State!");
+ }
+ this.istate.Reset();
+ }
+
+ public int EndInflate()
+ {
+ bool flag = this.istate == null;
+ if (flag)
+ {
+ throw new ZlibException("No Inflate State!");
+ }
+ int result = this.istate.End();
+ this.istate = null;
+ return result;
+ }
+
+ public int SyncInflate()
+ {
+ bool flag = this.istate == null;
+ if (flag)
+ {
+ throw new ZlibException("No Inflate State!");
+ }
+ return this.istate.Sync();
+ }
+
+ public int InitializeDeflate()
+ {
+ return this._InternalInitializeDeflate(true);
+ }
+
+ public int InitializeDeflate(CompressionLevel level)
+ {
+ this.CompressLevel = level;
+ return this._InternalInitializeDeflate(true);
+ }
+
+ public int InitializeDeflate(CompressionLevel level, bool wantRfc1950Header)
+ {
+ this.CompressLevel = level;
+ return this._InternalInitializeDeflate(wantRfc1950Header);
+ }
+
+ public int InitializeDeflate(CompressionLevel level, int bits)
+ {
+ this.CompressLevel = level;
+ this.WindowBits = bits;
+ return this._InternalInitializeDeflate(true);
+ }
+
+ public int InitializeDeflate(CompressionLevel level, int bits, bool wantRfc1950Header)
+ {
+ this.CompressLevel = level;
+ this.WindowBits = bits;
+ return this._InternalInitializeDeflate(wantRfc1950Header);
+ }
+
+ private int _InternalInitializeDeflate(bool wantRfc1950Header)
+ {
+ bool flag = this.istate != null;
+ if (flag)
+ {
+ throw new ZlibException("You may not call InitializeDeflate() after calling InitializeInflate().");
+ }
+ this.dstate = new DeflateManager();
+ this.dstate.WantRfc1950HeaderBytes = wantRfc1950Header;
+ return this.dstate.Initialize(this, this.CompressLevel, this.WindowBits, this.Strategy);
+ }
+
+ public int Deflate(FlushType flush)
+ {
+ bool flag = this.dstate == null;
+ if (flag)
+ {
+ throw new ZlibException("No Deflate State!");
+ }
+ return this.dstate.Deflate(flush);
+ }
+
+ public int EndDeflate()
+ {
+ bool flag = this.dstate == null;
+ if (flag)
+ {
+ throw new ZlibException("No Deflate State!");
+ }
+ this.dstate = null;
+ return 0;
+ }
+
+ public void ResetDeflate(bool setDeflater)
+ {
+ bool flag = this.dstate == null;
+ if (flag)
+ {
+ throw new ZlibException("No Deflate State!");
+ }
+ this.dstate.Reset(setDeflater);
+ }
+
+ public int SetDeflateParams(CompressionLevel level, CompressionStrategy strategy)
+ {
+ bool flag = this.dstate == null;
+ if (flag)
+ {
+ throw new ZlibException("No Deflate State!");
+ }
+ return this.dstate.SetParams(level, strategy);
+ }
+
+ public int SetDictionary(byte[] dictionary)
+ {
+ bool flag = this.istate != null;
+ int result;
+ if (flag)
+ {
+ result = this.istate.SetDictionary(dictionary);
+ }
+ else
+ {
+ bool flag2 = this.dstate != null;
+ if (!flag2)
+ {
+ throw new ZlibException("No Inflate or Deflate state!");
+ }
+ result = this.dstate.SetDictionary(dictionary);
+ }
+ return result;
+ }
+
+ internal void flush_pending()
+ {
+ int num = this.dstate.pendingCount;
+ bool flag = num > this.AvailableBytesOut;
+ if (flag)
+ {
+ num = this.AvailableBytesOut;
+ }
+ bool flag2 = num == 0;
+ if (!flag2)
+ {
+ bool flag3 = this.dstate.pending.Length <= this.dstate.nextPending || this.OutputBuffer.Length <= this.NextOut || this.dstate.pending.Length < this.dstate.nextPending + num || this.OutputBuffer.Length < this.NextOut + num;
+ if (flag3)
+ {
+ throw new ZlibException(string.Format("Invalid State. (pending.Length={0}, pendingCount={1})", this.dstate.pending.Length, this.dstate.pendingCount));
+ }
+ Array.Copy(this.dstate.pending, this.dstate.nextPending, this.OutputBuffer, this.NextOut, num);
+ this.NextOut += num;
+ this.dstate.nextPending += num;
+ this.TotalBytesOut += (long)num;
+ this.AvailableBytesOut -= num;
+ this.dstate.pendingCount -= num;
+ bool flag4 = this.dstate.pendingCount == 0;
+ if (flag4)
+ {
+ this.dstate.nextPending = 0;
+ }
+ }
+ }
+
+ internal int read_buf(byte[] buf, int start, int size)
+ {
+ int num = this.AvailableBytesIn;
+ bool flag = num > size;
+ if (flag)
+ {
+ num = size;
+ }
+ bool flag2 = num == 0;
+ int result;
+ if (flag2)
+ {
+ result = 0;
+ }
+ else
+ {
+ this.AvailableBytesIn -= num;
+ bool wantRfc1950HeaderBytes = this.dstate.WantRfc1950HeaderBytes;
+ if (wantRfc1950HeaderBytes)
+ {
+ this._Adler32 = Adler.Adler32(this._Adler32, this.InputBuffer, this.NextIn, num);
+ }
+ Array.Copy(this.InputBuffer, this.NextIn, buf, start, num);
+ this.NextIn += num;
+ this.TotalBytesIn += (long)num;
+ result = num;
+ }
+ return result;
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/ZlibCodec.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/ZlibCodec.cs.meta new file mode 100644 index 00000000..639608e1 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/ZlibCodec.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 84107389f7258db47818e7391949c909 +timeCreated: 1611465695 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/ZlibConstants.cs b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/ZlibConstants.cs new file mode 100644 index 00000000..e3c12391 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/ZlibConstants.cs @@ -0,0 +1,27 @@ +using System;
+
+namespace Ionic.Zlib
+{
+ public static class ZlibConstants
+ {
+ public const int WindowBitsMax = 15;
+
+ public const int WindowBitsDefault = 15;
+
+ public const int Z_OK = 0;
+
+ public const int Z_STREAM_END = 1;
+
+ public const int Z_NEED_DICT = 2;
+
+ public const int Z_STREAM_ERROR = -2;
+
+ public const int Z_DATA_ERROR = -3;
+
+ public const int Z_BUF_ERROR = -5;
+
+ public const int WorkingBufferSizeDefault = 16384;
+
+ public const int WorkingBufferSizeMin = 1024;
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/ZlibConstants.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/ZlibConstants.cs.meta new file mode 100644 index 00000000..99fdf51b --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/ZlibConstants.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 3e9a7110134a02a4995d4a82c892bb90 +timeCreated: 1611465633 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/ZlibException.cs b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/ZlibException.cs new file mode 100644 index 00000000..4ee93238 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/ZlibException.cs @@ -0,0 +1,17 @@ +using System;
+using System.Runtime.InteropServices;
+
+namespace Ionic.Zlib
+{
+ [Guid("ebc25cf6-9120-4283-b972-0e5520d0000E")]
+ public class ZlibException : Exception
+ {
+ public ZlibException()
+ {
+ }
+
+ public ZlibException(string s) : base(s)
+ {
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/ZlibException.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/ZlibException.cs.meta new file mode 100644 index 00000000..34b64195 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/ZlibException.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d0ec851ab9fb6b74aa0f4fc8ab253579 +timeCreated: 1611465760 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/ZlibStream.cs b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/ZlibStream.cs new file mode 100644 index 00000000..83ca3ae8 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/ZlibStream.cs @@ -0,0 +1,278 @@ +using System;
+using System.IO;
+
+namespace Ionic.Zlib
+{
+ public class ZlibStream : Stream
+ {
+ public virtual FlushType FlushMode
+ {
+ get
+ {
+ return this._baseStream._flushMode;
+ }
+ set
+ {
+ bool disposed = this._disposed;
+ if (disposed)
+ {
+ throw new ObjectDisposedException("ZlibStream");
+ }
+ this._baseStream._flushMode = value;
+ }
+ }
+
+ public int BufferSize
+ {
+ get
+ {
+ return this._baseStream._bufferSize;
+ }
+ set
+ {
+ bool disposed = this._disposed;
+ if (disposed)
+ {
+ throw new ObjectDisposedException("ZlibStream");
+ }
+ bool flag = this._baseStream._workingBuffer != null;
+ if (flag)
+ {
+ throw new ZlibException("The working buffer is already set.");
+ }
+ bool flag2 = value < 1024;
+ if (flag2)
+ {
+ throw new ZlibException(string.Format("Don't be silly. {0} bytes?? Use a bigger buffer, at least {1}.", value, 1024));
+ }
+ this._baseStream._bufferSize = value;
+ }
+ }
+
+ public virtual long TotalIn
+ {
+ get
+ {
+ return this._baseStream._z.TotalBytesIn;
+ }
+ }
+
+ public virtual long TotalOut
+ {
+ get
+ {
+ return this._baseStream._z.TotalBytesOut;
+ }
+ }
+
+ public override bool CanRead
+ {
+ get
+ {
+ bool disposed = this._disposed;
+ if (disposed)
+ {
+ throw new ObjectDisposedException("ZlibStream");
+ }
+ return this._baseStream._stream.CanRead;
+ }
+ }
+
+ public override bool CanSeek
+ {
+ get
+ {
+ return false;
+ }
+ }
+
+ public override bool CanWrite
+ {
+ get
+ {
+ bool disposed = this._disposed;
+ if (disposed)
+ {
+ throw new ObjectDisposedException("ZlibStream");
+ }
+ return this._baseStream._stream.CanWrite;
+ }
+ }
+
+ public override long Length
+ {
+ get
+ {
+ throw new NotSupportedException();
+ }
+ }
+
+ public override long Position
+ {
+ get
+ {
+ bool flag = this._baseStream._streamMode == ZlibBaseStream.StreamMode.Writer;
+ long result;
+ if (flag)
+ {
+ result = this._baseStream._z.TotalBytesOut;
+ }
+ else
+ {
+ bool flag2 = this._baseStream._streamMode == ZlibBaseStream.StreamMode.Reader;
+ if (flag2)
+ {
+ result = this._baseStream._z.TotalBytesIn;
+ }
+ else
+ {
+ result = 0L;
+ }
+ }
+ return result;
+ }
+ set
+ {
+ throw new NotSupportedException();
+ }
+ }
+
+ internal ZlibBaseStream _baseStream;
+
+ private bool _disposed;
+
+ public ZlibStream(Stream stream, CompressionMode mode) : this(stream, mode, CompressionLevel.Default, false)
+ {
+ }
+
+ public ZlibStream(Stream stream, CompressionMode mode, CompressionLevel level) : this(stream, mode, level, false)
+ {
+ }
+
+ public ZlibStream(Stream stream, CompressionMode mode, bool leaveOpen) : this(stream, mode, CompressionLevel.Default, leaveOpen)
+ {
+ }
+
+ public ZlibStream(Stream stream, CompressionMode mode, CompressionLevel level, bool leaveOpen)
+ {
+ this._baseStream = new ZlibBaseStream(stream, mode, level, ZlibStreamFlavor.ZLIB, leaveOpen);
+ }
+
+ protected override void Dispose(bool disposing)
+ {
+ try
+ {
+ bool flag = !this._disposed;
+ if (flag)
+ {
+ bool flag2 = disposing && this._baseStream != null;
+ if (flag2)
+ {
+ this._baseStream.Close();
+ }
+ this._disposed = true;
+ }
+ }
+ finally
+ {
+ base.Dispose(disposing);
+ }
+ }
+
+ public override void Flush()
+ {
+ bool disposed = this._disposed;
+ if (disposed)
+ {
+ throw new ObjectDisposedException("ZlibStream");
+ }
+ this._baseStream.Flush();
+ }
+
+ public override int Read(byte[] buffer, int offset, int count)
+ {
+ bool disposed = this._disposed;
+ if (disposed)
+ {
+ throw new ObjectDisposedException("ZlibStream");
+ }
+ return this._baseStream.Read(buffer, offset, count);
+ }
+
+ public override long Seek(long offset, SeekOrigin origin)
+ {
+ bool disposed = this._disposed;
+ if (disposed)
+ {
+ throw new ObjectDisposedException("ZlibStream");
+ }
+ return this._baseStream.Seek(offset, origin);
+ }
+
+ public override void SetLength(long value)
+ {
+ bool disposed = this._disposed;
+ if (disposed)
+ {
+ throw new ObjectDisposedException("ZlibStream");
+ }
+ this._baseStream.SetLength(value);
+ }
+
+ public override void Write(byte[] buffer, int offset, int count)
+ {
+ bool disposed = this._disposed;
+ if (disposed)
+ {
+ throw new ObjectDisposedException("ZlibStream");
+ }
+ this._baseStream.Write(buffer, offset, count);
+ }
+
+ public static byte[] CompressString(string s)
+ {
+ byte[] result;
+ using (MemoryStream memoryStream = new MemoryStream())
+ {
+ Stream compressor = new ZlibStream(memoryStream, CompressionMode.Compress, CompressionLevel.BestCompression);
+ ZlibBaseStream.CompressString(s, compressor);
+ result = memoryStream.ToArray();
+ }
+ return result;
+ }
+
+ public static byte[] CompressBuffer(byte[] b)
+ {
+ byte[] result;
+ using (MemoryStream memoryStream = new MemoryStream())
+ {
+ Stream compressor = new ZlibStream(memoryStream, CompressionMode.Compress, CompressionLevel.BestCompression);
+ ZlibBaseStream.CompressBuffer(b, compressor);
+ result = memoryStream.ToArray();
+ }
+ return result;
+ }
+
+ public static string UncompressString(byte[] compressed)
+ {
+ string result;
+ using (MemoryStream memoryStream = new MemoryStream(compressed))
+ {
+ Stream decompressor = new ZlibStream(memoryStream, CompressionMode.Decompress);
+ result = ZlibBaseStream.UncompressString(compressed, decompressor);
+ }
+ return result;
+ }
+
+ public static byte[] UncompressBuffer(byte[] compressed)
+ {
+ byte[] result;
+ using (MemoryStream memoryStream = new MemoryStream(compressed))
+ {
+ Stream decompressor = new ZlibStream(memoryStream, CompressionMode.Decompress);
+ result = ZlibBaseStream.UncompressBuffer(compressed, decompressor);
+ }
+ return result;
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/ZlibStream.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/ZlibStream.cs.meta new file mode 100644 index 00000000..b0df5733 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/ZlibStream.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 436494bec9d2c4d4b818c8381eb96b76 +timeCreated: 1611465636 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/ZlibStreamFlavor.cs b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/ZlibStreamFlavor.cs new file mode 100644 index 00000000..15e26ff1 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/ZlibStreamFlavor.cs @@ -0,0 +1,11 @@ +using System;
+
+namespace Ionic.Zlib
+{
+ internal enum ZlibStreamFlavor
+ {
+ ZLIB = 1950,
+ DEFLATE,
+ GZIP
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/ZlibStreamFlavor.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/ZlibStreamFlavor.cs.meta new file mode 100644 index 00000000..3a7b453b --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Ionic/Zlib/ZlibStreamFlavor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 7702df6401ca07347999769e435fe3da +timeCreated: 1611465690 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ItemBackTable.cs b/Client/Assets/Scripts/XUtliPoolLib/ItemBackTable.cs new file mode 100644 index 00000000..6b3b07da --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ItemBackTable.cs @@ -0,0 +1,64 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class ItemBackTable : CVSReader
+ {
+ public ItemBackTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int ID;
+
+ public string SystemName;
+
+ public SeqListRef<int> ItemGold;
+
+ public SeqListRef<int> ItemDragonCoin;
+
+ public int count;
+
+ public string Desc;
+
+ public int FindBackDays;
+
+ public bool IsWeekBack;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ ItemBackTable.RowData rowData = new ItemBackTable.RowData();
+ base.Read<int>(reader, ref rowData.ID, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.SystemName, CVSReader.stringParse);
+ this.columnno = 2;
+ rowData.ItemGold.Read(reader, this.m_DataHandler);
+ this.columnno = 4;
+ rowData.ItemDragonCoin.Read(reader, this.m_DataHandler);
+ this.columnno = 6;
+ base.Read<int>(reader, ref rowData.count, CVSReader.intParse);
+ this.columnno = 7;
+ base.Read<string>(reader, ref rowData.Desc, CVSReader.stringParse);
+ this.columnno = 8;
+ base.Read<int>(reader, ref rowData.FindBackDays, CVSReader.intParse);
+ this.columnno = 10;
+ base.Read<bool>(reader, ref rowData.IsWeekBack, CVSReader.boolParse);
+ this.columnno = 11;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new ItemBackTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ItemBackTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ItemBackTable.cs.meta new file mode 100644 index 00000000..6fa3343a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ItemBackTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b8b9440533865c440883f747366c533e +timeCreated: 1611465748 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ItemBuffTable.cs b/Client/Assets/Scripts/XUtliPoolLib/ItemBuffTable.cs new file mode 100644 index 00000000..288b2139 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ItemBuffTable.cs @@ -0,0 +1,67 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class ItemBuffTable : CVSReader
+ {
+ public ItemBuffTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint ItemId;
+
+ public SeqListRef<uint> Buffs;
+
+ public string Name;
+ }
+
+ public ItemBuffTable.RowData GetByItemId(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ ItemBuffTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].ItemId == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ ItemBuffTable.RowData rowData = new ItemBuffTable.RowData();
+ base.Read<uint>(reader, ref rowData.ItemId, CVSReader.uintParse);
+ this.columnno = 0;
+ rowData.Buffs.Read(reader, this.m_DataHandler);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.Name, CVSReader.stringParse);
+ this.columnno = 2;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new ItemBuffTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ItemBuffTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ItemBuffTable.cs.meta new file mode 100644 index 00000000..98eec691 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ItemBuffTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a1c9e60ced977cc4eb0aebdc22cf8b6e +timeCreated: 1611465736 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ItemComposeTable.cs b/Client/Assets/Scripts/XUtliPoolLib/ItemComposeTable.cs new file mode 100644 index 00000000..c1d30c24 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ItemComposeTable.cs @@ -0,0 +1,145 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class ItemComposeTable : CVSReader
+ {
+ public ItemComposeTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int ItemID;
+
+ public SeqRef<int> SrcItem1;
+
+ public SeqRef<int> SrcItem2;
+
+ public SeqRef<int> SrcItem3;
+
+ public int ID;
+
+ public int Coin;
+
+ public int Level;
+
+ public bool IsBind;
+
+ public SeqRef<int> SrcItem4;
+
+ public int Type;
+ }
+
+ public ItemComposeTable.RowData GetByID(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ ItemComposeTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchID(key);
+ }
+ return result;
+ }
+
+ private ItemComposeTable.RowData BinarySearchID(int key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ ItemComposeTable.RowData rowData;
+ ItemComposeTable.RowData rowData2;
+ ItemComposeTable.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.ID == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.ID == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.ID.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.ID.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ ItemComposeTable.RowData rowData = new ItemComposeTable.RowData();
+ base.Read<int>(reader, ref rowData.ItemID, CVSReader.intParse);
+ this.columnno = 0;
+ rowData.SrcItem1.Read(reader, this.m_DataHandler);
+ this.columnno = 1;
+ rowData.SrcItem2.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ rowData.SrcItem3.Read(reader, this.m_DataHandler);
+ this.columnno = 3;
+ base.Read<int>(reader, ref rowData.ID, CVSReader.intParse);
+ this.columnno = 4;
+ base.Read<int>(reader, ref rowData.Coin, CVSReader.intParse);
+ this.columnno = 5;
+ base.Read<int>(reader, ref rowData.Level, CVSReader.intParse);
+ this.columnno = 6;
+ base.Read<bool>(reader, ref rowData.IsBind, CVSReader.boolParse);
+ this.columnno = 7;
+ rowData.SrcItem4.Read(reader, this.m_DataHandler);
+ this.columnno = 8;
+ base.Read<int>(reader, ref rowData.Type, CVSReader.intParse);
+ this.columnno = 9;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new ItemComposeTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ItemComposeTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ItemComposeTable.cs.meta new file mode 100644 index 00000000..549c33bd --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ItemComposeTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: fb67aad261ad78446877f6a8417ad23f +timeCreated: 1611465811 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ItemList.cs b/Client/Assets/Scripts/XUtliPoolLib/ItemList.cs new file mode 100644 index 00000000..d8ecab0b --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ItemList.cs @@ -0,0 +1,229 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class ItemList : CVSReader
+ {
+ public ItemList.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int ItemID;
+
+ public string[] ItemName;
+
+ public string ItemDescription;
+
+ public string[] ItemIcon;
+
+ public byte ItemType;
+
+ public byte ItemQuality;
+
+ public short ReqLevel;
+
+ public int SortID;
+
+ public string[] ItemAtlas;
+
+ public string DoodadFx;
+
+ public SeqListRef<int> Access;
+
+ public byte ShowTips;
+
+ public string[] ItemAtlas1;
+
+ public string[] ItemIcon1;
+
+ public bool CanTrade;
+
+ public byte[] AuctionType;
+
+ public int OverCnt;
+
+ public uint AuctPriceRecommend;
+
+ public byte Profession;
+
+ public string NumberName;
+
+ public uint TimeLimit;
+
+ public SeqListRef<uint> Decompose;
+
+ public string ItemEffect;
+
+ public byte AuctionGroup;
+
+ public byte IsNeedShowTipsPanel;
+
+ public float[] IconTransform;
+
+ public SeqRef<float> AuctionRange;
+
+ public byte IsCanRecycle;
+
+ public SeqRef<uint> Sell;
+
+ public byte BagType;
+
+ public short AuctionUpperLimit;
+ }
+
+ public ItemList.RowData GetByItemID(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ ItemList.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchItemID(key);
+ }
+ return result;
+ }
+
+ private ItemList.RowData BinarySearchItemID(int key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ ItemList.RowData rowData;
+ ItemList.RowData rowData2;
+ ItemList.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.ItemID == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.ItemID == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.ItemID.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.ItemID.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ ItemList.RowData rowData = new ItemList.RowData();
+ base.Read<int>(reader, ref rowData.ItemID, CVSReader.intParse);
+ this.columnno = 0;
+ base.ReadArray<string>(reader, ref rowData.ItemName, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.ItemDescription, CVSReader.stringParse);
+ this.columnno = 2;
+ base.ReadArray<string>(reader, ref rowData.ItemIcon, CVSReader.stringParse);
+ this.columnno = 3;
+ base.Read<byte>(reader, ref rowData.ItemType, CVSReader.byteParse);
+ this.columnno = 4;
+ base.Read<byte>(reader, ref rowData.ItemQuality, CVSReader.byteParse);
+ this.columnno = 5;
+ base.Read<short>(reader, ref rowData.ReqLevel, CVSReader.shortParse);
+ this.columnno = 6;
+ base.Read<int>(reader, ref rowData.SortID, CVSReader.intParse);
+ this.columnno = 8;
+ base.ReadArray<string>(reader, ref rowData.ItemAtlas, CVSReader.stringParse);
+ this.columnno = 9;
+ base.Read<string>(reader, ref rowData.DoodadFx, CVSReader.stringParse);
+ this.columnno = 10;
+ rowData.Access.Read(reader, this.m_DataHandler);
+ this.columnno = 11;
+ base.Read<byte>(reader, ref rowData.ShowTips, CVSReader.byteParse);
+ this.columnno = 12;
+ base.ReadArray<string>(reader, ref rowData.ItemAtlas1, CVSReader.stringParse);
+ this.columnno = 13;
+ base.ReadArray<string>(reader, ref rowData.ItemIcon1, CVSReader.stringParse);
+ this.columnno = 14;
+ base.Read<bool>(reader, ref rowData.CanTrade, CVSReader.boolParse);
+ this.columnno = 15;
+ base.ReadArray<byte>(reader, ref rowData.AuctionType, CVSReader.byteParse);
+ this.columnno = 16;
+ base.Read<int>(reader, ref rowData.OverCnt, CVSReader.intParse);
+ this.columnno = 17;
+ base.Read<uint>(reader, ref rowData.AuctPriceRecommend, CVSReader.uintParse);
+ this.columnno = 18;
+ base.Read<byte>(reader, ref rowData.Profession, CVSReader.byteParse);
+ this.columnno = 19;
+ base.Read<string>(reader, ref rowData.NumberName, CVSReader.stringParse);
+ this.columnno = 21;
+ base.Read<uint>(reader, ref rowData.TimeLimit, CVSReader.uintParse);
+ this.columnno = 22;
+ rowData.Decompose.Read(reader, this.m_DataHandler);
+ this.columnno = 23;
+ base.Read<string>(reader, ref rowData.ItemEffect, CVSReader.stringParse);
+ this.columnno = 24;
+ base.Read<byte>(reader, ref rowData.AuctionGroup, CVSReader.byteParse);
+ this.columnno = 26;
+ base.Read<byte>(reader, ref rowData.IsNeedShowTipsPanel, CVSReader.byteParse);
+ this.columnno = 27;
+ base.ReadArray<float>(reader, ref rowData.IconTransform, CVSReader.floatParse);
+ this.columnno = 28;
+ rowData.AuctionRange.Read(reader, this.m_DataHandler);
+ this.columnno = 29;
+ base.Read<byte>(reader, ref rowData.IsCanRecycle, CVSReader.byteParse);
+ this.columnno = 30;
+ rowData.Sell.Read(reader, this.m_DataHandler);
+ this.columnno = 31;
+ base.Read<byte>(reader, ref rowData.BagType, CVSReader.byteParse);
+ this.columnno = 32;
+ base.Read<short>(reader, ref rowData.AuctionUpperLimit, CVSReader.shortParse);
+ this.columnno = 33;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new ItemList.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ItemList.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ItemList.cs.meta new file mode 100644 index 00000000..b425c2de --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ItemList.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8fd685a941515ec429776b94391e1a08 +timeCreated: 1611465703 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ItemTransform.cs b/Client/Assets/Scripts/XUtliPoolLib/ItemTransform.cs new file mode 100644 index 00000000..9bd4fe5a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ItemTransform.cs @@ -0,0 +1,117 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class ItemTransform : CVSReader
+ {
+ public ItemTransform.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint itemid;
+
+ public uint type;
+
+ public string time;
+ }
+
+ public ItemTransform.RowData GetByitemid(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ ItemTransform.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchitemid(key);
+ }
+ return result;
+ }
+
+ private ItemTransform.RowData BinarySearchitemid(uint key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ ItemTransform.RowData rowData;
+ ItemTransform.RowData rowData2;
+ ItemTransform.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.itemid == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.itemid == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.itemid.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.itemid.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ ItemTransform.RowData rowData = new ItemTransform.RowData();
+ base.Read<uint>(reader, ref rowData.itemid, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.type, CVSReader.uintParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.time, CVSReader.stringParse);
+ this.columnno = 3;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new ItemTransform.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ItemTransform.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ItemTransform.cs.meta new file mode 100644 index 00000000..db881d9e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ItemTransform.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 271ded1146762d1468e8e0999da0efea +timeCreated: 1611465302 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ItemUseButtonList.cs b/Client/Assets/Scripts/XUtliPoolLib/ItemUseButtonList.cs new file mode 100644 index 00000000..49afac1a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ItemUseButtonList.cs @@ -0,0 +1,48 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class ItemUseButtonList : CVSReader
+ {
+ public ItemUseButtonList.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint ItemID;
+
+ public string ButtonName;
+
+ public uint SystemID;
+
+ public uint TypeID;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ ItemUseButtonList.RowData rowData = new ItemUseButtonList.RowData();
+ base.Read<uint>(reader, ref rowData.ItemID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.ButtonName, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<uint>(reader, ref rowData.SystemID, CVSReader.uintParse);
+ this.columnno = 3;
+ base.Read<uint>(reader, ref rowData.TypeID, CVSReader.uintParse);
+ this.columnno = 4;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new ItemUseButtonList.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ItemUseButtonList.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ItemUseButtonList.cs.meta new file mode 100644 index 00000000..1c6fb212 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ItemUseButtonList.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 832525e733c892d4eb37c232e88f6b4e +timeCreated: 1611465694 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/JadeGroupTable.cs b/Client/Assets/Scripts/XUtliPoolLib/JadeGroupTable.cs new file mode 100644 index 00000000..aac42b48 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/JadeGroupTable.cs @@ -0,0 +1,40 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class JadeGroupTable : CVSReader
+ {
+ public JadeGroupTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint JadeID;
+
+ public uint GroupID;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ JadeGroupTable.RowData rowData = new JadeGroupTable.RowData();
+ base.Read<uint>(reader, ref rowData.JadeID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.GroupID, CVSReader.uintParse);
+ this.columnno = 1;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new JadeGroupTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/JadeGroupTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/JadeGroupTable.cs.meta new file mode 100644 index 00000000..c761af80 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/JadeGroupTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 56df4d8516183ca428df4400c7d17fb0 +timeCreated: 1611465646 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/JadeSealTable.cs b/Client/Assets/Scripts/XUtliPoolLib/JadeSealTable.cs new file mode 100644 index 00000000..a7274063 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/JadeSealTable.cs @@ -0,0 +1,76 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class JadeSealTable : CVSReader
+ {
+ public JadeSealTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint SealID;
+
+ public uint[] SealJob;
+
+ public uint[] SealEquip;
+
+ public uint SealNum;
+
+ public string SealName;
+
+ public uint SealLevel;
+
+ public uint SealQuality;
+
+ public SeqListRef<uint> SealAttributes;
+
+ public uint[] SealSuit;
+
+ public uint SealWeight;
+
+ public SeqListRef<uint> SealBuff;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ JadeSealTable.RowData rowData = new JadeSealTable.RowData();
+ base.Read<uint>(reader, ref rowData.SealID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.ReadArray<uint>(reader, ref rowData.SealJob, CVSReader.uintParse);
+ this.columnno = 1;
+ base.ReadArray<uint>(reader, ref rowData.SealEquip, CVSReader.uintParse);
+ this.columnno = 2;
+ base.Read<uint>(reader, ref rowData.SealNum, CVSReader.uintParse);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.SealName, CVSReader.stringParse);
+ this.columnno = 4;
+ base.Read<uint>(reader, ref rowData.SealLevel, CVSReader.uintParse);
+ this.columnno = 5;
+ base.Read<uint>(reader, ref rowData.SealQuality, CVSReader.uintParse);
+ this.columnno = 6;
+ rowData.SealAttributes.Read(reader, this.m_DataHandler);
+ this.columnno = 7;
+ base.ReadArray<uint>(reader, ref rowData.SealSuit, CVSReader.uintParse);
+ this.columnno = 8;
+ base.Read<uint>(reader, ref rowData.SealWeight, CVSReader.uintParse);
+ this.columnno = 9;
+ rowData.SealBuff.Read(reader, this.m_DataHandler);
+ this.columnno = 10;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new JadeSealTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/JadeSealTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/JadeSealTable.cs.meta new file mode 100644 index 00000000..041ed763 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/JadeSealTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 072544ad2df029d47ab7b7b22cc573ac +timeCreated: 1611465286 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/JadeSlotTable.cs b/Client/Assets/Scripts/XUtliPoolLib/JadeSlotTable.cs new file mode 100644 index 00000000..3667980a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/JadeSlotTable.cs @@ -0,0 +1,63 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class JadeSlotTable : CVSReader
+ {
+ public JadeSlotTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public byte EquipSlot;
+
+ public SeqListRef<uint> JadeSlotAndLevel;
+ }
+
+ public JadeSlotTable.RowData GetByEquipSlot(byte key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ JadeSlotTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].EquipSlot == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ JadeSlotTable.RowData rowData = new JadeSlotTable.RowData();
+ base.Read<byte>(reader, ref rowData.EquipSlot, CVSReader.byteParse);
+ this.columnno = 0;
+ rowData.JadeSlotAndLevel.Read(reader, this.m_DataHandler);
+ this.columnno = 1;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new JadeSlotTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/JadeSlotTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/JadeSlotTable.cs.meta new file mode 100644 index 00000000..1f596c34 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/JadeSlotTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 91ce9ee6999f0ad46b17e179f40bbf16 +timeCreated: 1611465705 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/JadeTable.cs b/Client/Assets/Scripts/XUtliPoolLib/JadeTable.cs new file mode 100644 index 00000000..89d64f31 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/JadeTable.cs @@ -0,0 +1,129 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class JadeTable : CVSReader
+ {
+ public JadeTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint JadeID;
+
+ public uint JadeEquip;
+
+ public SeqListRef<uint> JadeAttributes;
+
+ public SeqRef<uint> JadeCompose;
+
+ public uint JadeLevel;
+
+ public string MosaicPlace;
+ }
+
+ public JadeTable.RowData GetByJadeID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ JadeTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchJadeID(key);
+ }
+ return result;
+ }
+
+ private JadeTable.RowData BinarySearchJadeID(uint key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ JadeTable.RowData rowData;
+ JadeTable.RowData rowData2;
+ JadeTable.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.JadeID == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.JadeID == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.JadeID.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.JadeID.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ JadeTable.RowData rowData = new JadeTable.RowData();
+ base.Read<uint>(reader, ref rowData.JadeID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.JadeEquip, CVSReader.uintParse);
+ this.columnno = 1;
+ rowData.JadeAttributes.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ rowData.JadeCompose.Read(reader, this.m_DataHandler);
+ this.columnno = 3;
+ base.Read<uint>(reader, ref rowData.JadeLevel, CVSReader.uintParse);
+ this.columnno = 4;
+ base.Read<string>(reader, ref rowData.MosaicPlace, CVSReader.stringParse);
+ this.columnno = 5;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new JadeTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/JadeTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/JadeTable.cs.meta new file mode 100644 index 00000000..daadf32d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/JadeTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 834c36f6b09426645aef35596ed86e5f +timeCreated: 1611465695 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/JsonUtil.cs b/Client/Assets/Scripts/XUtliPoolLib/JsonUtil.cs new file mode 100644 index 00000000..e940ea78 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/JsonUtil.cs @@ -0,0 +1,164 @@ +using System;
+using System.Collections.Generic;
+using XUtliPoolLib;
+
+public class JsonUtil
+{
+ public static float ParseFloat(object val, float defVal = 0f)
+ {
+ return (val == null) ? defVal : float.Parse(val.ToString());
+ }
+
+ public static int ParseInt(object val, int defVal = 0)
+ {
+ return (val == null) ? defVal : int.Parse(val.ToString());
+ }
+
+ public static bool ParseBool(object val, bool defVal = false)
+ {
+ bool flag = val == null;
+ bool result;
+ if (flag)
+ {
+ result = defVal;
+ }
+ else
+ {
+ try
+ {
+ result = (JsonUtil.ParseInt(val, defVal ? 1 : 0) != 0);
+ }
+ catch (Exception)
+ {
+ try
+ {
+ result = bool.Parse(val.ToString());
+ }
+ catch (Exception)
+ {
+ result = defVal;
+ }
+ }
+ }
+ return result;
+ }
+
+ public static DateTime ParseDateTime(object val)
+ {
+ return DateTime.Parse(val.ToString());
+ }
+
+ public static string ReadString(IDictionary<string, object> dic, string key, string defVal = "")
+ {
+ bool flag = dic != null && dic.ContainsKey(key);
+ string result;
+ if (flag)
+ {
+ result = ((dic[key] == null) ? defVal : dic[key].ToString());
+ }
+ else
+ {
+ result = defVal;
+ }
+ return result;
+ }
+
+ public static int ReadInt(IDictionary<string, object> dic, string key, int defVal = 0)
+ {
+ bool flag = dic != null && dic.ContainsKey(key);
+ int result;
+ if (flag)
+ {
+ result = JsonUtil.ParseInt(dic[key], defVal);
+ }
+ else
+ {
+ result = defVal;
+ }
+ return result;
+ }
+
+ public static bool ReadBool(IDictionary<string, object> dic, string key, bool defVal = false)
+ {
+ bool flag = dic != null && dic.ContainsKey(key);
+ bool result;
+ if (flag)
+ {
+ result = JsonUtil.ParseBool(dic[key], defVal);
+ }
+ else
+ {
+ result = defVal;
+ }
+ return result;
+ }
+
+ public static float ReadFloat(IDictionary<string, object> dic, string key, float defVal = 0f)
+ {
+ bool flag = dic != null && dic.ContainsKey(key);
+ float result;
+ if (flag)
+ {
+ result = JsonUtil.ParseFloat(dic[key], defVal);
+ }
+ else
+ {
+ result = defVal;
+ }
+ return result;
+ }
+
+ public static DateTime ReadDateTime(IDictionary<string, object> dic, string key)
+ {
+ return JsonUtil.ReadDateTime(dic, key, new DateTime(1, 1, 1, 0, 0, 0));
+ }
+
+ public static DateTime ReadDateTime(IDictionary<string, object> dic, string key, DateTime defVal)
+ {
+ bool flag = dic != null && dic.ContainsKey(key);
+ if (flag)
+ {
+ try
+ {
+ return JsonUtil.ParseDateTime(dic[key]);
+ }
+ catch (Exception ex)
+ {
+ XSingleton<XDebug>.singleton.AddErrorLog(ex.Message, null, null, null, null, null);
+ return defVal;
+ }
+ }
+ return defVal;
+ }
+
+ public static string ListToJsonStr(List<string> list)
+ {
+ bool flag = list == null || list.Count < 1;
+ string result;
+ if (flag)
+ {
+ result = "[]";
+ }
+ else
+ {
+ bool flag2 = true;
+ string text = "[";
+ foreach (string str in list)
+ {
+ bool flag3 = flag2;
+ if (flag3)
+ {
+ flag2 = false;
+ }
+ else
+ {
+ text += ",";
+ }
+ text += str;
+ }
+ text += "]";
+ result = text;
+ }
+ return result;
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/JsonUtil.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/JsonUtil.cs.meta new file mode 100644 index 00000000..8be4cbc6 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/JsonUtil.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 9caab0fbd1fb8fb498ca7937dfaf80c8 +timeCreated: 1611465711 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/LeagueRankReward.cs b/Client/Assets/Scripts/XUtliPoolLib/LeagueRankReward.cs new file mode 100644 index 00000000..7965e093 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/LeagueRankReward.cs @@ -0,0 +1,40 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class LeagueRankReward : CVSReader
+ {
+ public LeagueRankReward.RowData[] Table = null;
+
+ public class RowData
+ {
+ public SeqRef<uint> rank;
+
+ public SeqListRef<uint> reward;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ LeagueRankReward.RowData rowData = new LeagueRankReward.RowData();
+ rowData.rank.Read(reader, this.m_DataHandler);
+ this.columnno = 0;
+ rowData.reward.Read(reader, this.m_DataHandler);
+ this.columnno = 1;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new LeagueRankReward.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/LeagueRankReward.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/LeagueRankReward.cs.meta new file mode 100644 index 00000000..29a7082e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/LeagueRankReward.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 62827b45b9f2c3d44a73475f8f86e9d0 +timeCreated: 1611465653 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/LevelSealNewFunctionTable.cs b/Client/Assets/Scripts/XUtliPoolLib/LevelSealNewFunctionTable.cs new file mode 100644 index 00000000..926d05e8 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/LevelSealNewFunctionTable.cs @@ -0,0 +1,48 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class LevelSealNewFunctionTable : CVSReader
+ {
+ public LevelSealNewFunctionTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int Type;
+
+ public int OpenLevel;
+
+ public string Tag;
+
+ public string IconName;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ LevelSealNewFunctionTable.RowData rowData = new LevelSealNewFunctionTable.RowData();
+ base.Read<int>(reader, ref rowData.Type, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<int>(reader, ref rowData.OpenLevel, CVSReader.intParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.Tag, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.IconName, CVSReader.stringParse);
+ this.columnno = 3;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new LevelSealNewFunctionTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/LevelSealNewFunctionTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/LevelSealNewFunctionTable.cs.meta new file mode 100644 index 00000000..5d568e63 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/LevelSealNewFunctionTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 5134cd77f1d66e7468d5163cc0ad5cd4 +timeCreated: 1611465643 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/LevelSealTypeTable.cs b/Client/Assets/Scripts/XUtliPoolLib/LevelSealTypeTable.cs new file mode 100644 index 00000000..cfbd688d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/LevelSealTypeTable.cs @@ -0,0 +1,107 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class LevelSealTypeTable : CVSReader
+ {
+ public LevelSealTypeTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint Type;
+
+ public uint Level;
+
+ public uint Time;
+
+ public string UnlockBossName;
+
+ public uint UnlockBossCount;
+
+ public string NowSealImage;
+
+ public string NextSealImageL;
+
+ public string NextSealImageR;
+
+ public string NextSealImageBig;
+
+ public SeqRef<uint> ExchangeInfo;
+
+ public SeqListRef<uint> CollectAward;
+
+ public SeqListRef<uint> PlayerAward;
+
+ public int ApplyStudentLevel;
+ }
+
+ public LevelSealTypeTable.RowData GetByType(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ LevelSealTypeTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].Type == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ LevelSealTypeTable.RowData rowData = new LevelSealTypeTable.RowData();
+ base.Read<uint>(reader, ref rowData.Type, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.Level, CVSReader.uintParse);
+ this.columnno = 1;
+ base.Read<uint>(reader, ref rowData.Time, CVSReader.uintParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.UnlockBossName, CVSReader.stringParse);
+ this.columnno = 4;
+ base.Read<uint>(reader, ref rowData.UnlockBossCount, CVSReader.uintParse);
+ this.columnno = 5;
+ base.Read<string>(reader, ref rowData.NowSealImage, CVSReader.stringParse);
+ this.columnno = 6;
+ base.Read<string>(reader, ref rowData.NextSealImageL, CVSReader.stringParse);
+ this.columnno = 7;
+ base.Read<string>(reader, ref rowData.NextSealImageR, CVSReader.stringParse);
+ this.columnno = 8;
+ base.Read<string>(reader, ref rowData.NextSealImageBig, CVSReader.stringParse);
+ this.columnno = 9;
+ rowData.ExchangeInfo.Read(reader, this.m_DataHandler);
+ this.columnno = 13;
+ rowData.CollectAward.Read(reader, this.m_DataHandler);
+ this.columnno = 14;
+ rowData.PlayerAward.Read(reader, this.m_DataHandler);
+ this.columnno = 16;
+ base.Read<int>(reader, ref rowData.ApplyStudentLevel, CVSReader.intParse);
+ this.columnno = 19;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new LevelSealTypeTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/LevelSealTypeTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/LevelSealTypeTable.cs.meta new file mode 100644 index 00000000..d2c590c6 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/LevelSealTypeTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 93790e4811251f3409caa2e6894117a0 +timeCreated: 1611465707 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ListPool.cs b/Client/Assets/Scripts/XUtliPoolLib/ListPool.cs new file mode 100644 index 00000000..1abbc72f --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ListPool.cs @@ -0,0 +1,31 @@ +using System;
+using System.Collections.Generic;
+
+namespace XUtliPoolLib
+{
+ public class ListPool<T>
+ {
+ private static readonly ObjectPool<List<T>> s_Pool = new ObjectPool<List<T>>(new ObjectPool<List<T>>.CreateObj(ListPool<T>.Create), delegate(List<T> l)
+ {
+ l.Clear();
+ }, delegate(List<T> l)
+ {
+ l.Clear();
+ });
+
+ public static List<T> Create()
+ {
+ return new List<T>();
+ }
+
+ public static List<T> Get()
+ {
+ return ListPool<T>.s_Pool.Get();
+ }
+
+ public static void Release(List<T> toRelease)
+ {
+ ListPool<T>.s_Pool.Release(toRelease);
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ListPool.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ListPool.cs.meta new file mode 100644 index 00000000..6b9f2959 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ListPool.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: eb9a5367ef2844b41a8f7260093c719e +timeCreated: 1611465804 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/LiveTable.cs b/Client/Assets/Scripts/XUtliPoolLib/LiveTable.cs new file mode 100644 index 00000000..1c66d511 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/LiveTable.cs @@ -0,0 +1,71 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class LiveTable : CVSReader
+ {
+ public LiveTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int Type;
+
+ public int SceneType;
+
+ public int ShowWatch;
+
+ public int ShowPraise;
+ }
+
+ public LiveTable.RowData GetBySceneType(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ LiveTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].SceneType == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ LiveTable.RowData rowData = new LiveTable.RowData();
+ base.Read<int>(reader, ref rowData.Type, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<int>(reader, ref rowData.SceneType, CVSReader.intParse);
+ this.columnno = 3;
+ base.Read<int>(reader, ref rowData.ShowWatch, CVSReader.intParse);
+ this.columnno = 7;
+ base.Read<int>(reader, ref rowData.ShowPraise, CVSReader.intParse);
+ this.columnno = 8;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new LiveTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/LiveTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/LiveTable.cs.meta new file mode 100644 index 00000000..5a3b284a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/LiveTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 3f68a9d68d145584c894d3c41e53c7c1 +timeCreated: 1611465634 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/LoadAsyncTask.cs b/Client/Assets/Scripts/XUtliPoolLib/LoadAsyncTask.cs new file mode 100644 index 00000000..f728914b --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/LoadAsyncTask.cs @@ -0,0 +1,238 @@ +using System;
+using System.Collections.Generic;
+using UnityEngine;
+using XUpdater;
+
+namespace XUtliPoolLib
+{
+ public class LoadAsyncTask
+ {
+ public EAsyncLoadState loadState = EAsyncLoadState.EFree;
+
+ public Type loadType = null;
+
+ public uint hash = 0u;
+
+ public string location = "";
+
+ public string ext = "";
+
+ public bool isSharedRes = true;
+
+ public UnityEngine.Object asset = null;
+
+ public List<LoadInfo> loadCbList = new List<LoadInfo>();
+
+ private AssetBundleInfo assetBundleInfo = null;
+
+ public object cbObj = null;
+
+ public void Clear()
+ {
+ this.loadState = EAsyncLoadState.EFree;
+ this.location = "";
+ this.hash = 0u;
+ this.asset = null;
+ this.loadCbList.Clear();
+ this.loadType = null;
+ this.assetBundleInfo = null;
+ this.cbObj = null;
+ }
+
+ public bool Update()
+ {
+ bool result;
+ switch (this.loadState)
+ {
+ case EAsyncLoadState.EFree:
+ result = false;
+ break;
+ case EAsyncLoadState.EPreLoading:
+ {
+ bool flag = XSingleton<XUpdater.XUpdater>.singleton.ABManager != null;
+ if (flag)
+ {
+ this.assetBundleInfo = XSingleton<XUpdater.XUpdater>.singleton.ABManager.LoadImm(this.hash, this.location, this.ext, null);
+ }
+ bool flag2 = this.assetBundleInfo == null;
+ if (flag2)
+ {
+ this.asset = Resources.Load(this.location, this.loadType);
+ XResourceLoaderMgr.resourceLoadCount++;
+ }
+ else
+ {
+ int num = this.location.LastIndexOf("/");
+ bool flag3 = num > 0 && num + 1 < this.location.Length;
+ if (flag3)
+ {
+ string text = this.location.Substring(num + 1);
+ }
+ else
+ {
+ string text = this.location;
+ }
+ this.asset = this.assetBundleInfo.mainObject;
+ XResourceLoaderMgr.abLoadCount++;
+ }
+ this.loadState = EAsyncLoadState.ELoading;
+ result = false;
+ break;
+ }
+ case EAsyncLoadState.ELoading:
+ this.LoadComplete();
+ this.loadState = EAsyncLoadState.EFree;
+ result = true;
+ break;
+ case EAsyncLoadState.EInstance:
+ {
+ bool flag4 = this.asset != null;
+ if (flag4)
+ {
+ int i = 0;
+ int count = this.loadCbList.Count;
+ while (i < count)
+ {
+ LoadInfo loadInfo = this.loadCbList[i];
+ bool flag5 = loadInfo.loadCb != null;
+ if (flag5)
+ {
+ GameObject gameObject = XCommon.Instantiate<UnityEngine.Object>(this.asset) as GameObject;
+ XResourceLoaderMgr.instanceCount++;
+ XSingleton<XResourceLoaderMgr>.singleton.AssetsRefRetain(this.hash);
+ XSingleton<XResourceLoaderMgr>.singleton.LogReverseID(gameObject, this.hash);
+ loadInfo.loadCb(gameObject, this.cbObj);
+ }
+ i++;
+ }
+ this.loadCbList.Clear();
+ }
+ result = true;
+ break;
+ }
+ default:
+ result = false;
+ break;
+ }
+ return result;
+ }
+
+ public void CancelLoad(LoadCallBack cb)
+ {
+ int count = this.loadCbList.Count;
+ for (int i = count - 1; i >= 0; i--)
+ {
+ LoadInfo loadInfo = this.loadCbList[i];
+ bool flag = loadInfo.loadCb == cb;
+ if (flag)
+ {
+ this.loadCbList.RemoveAt(i);
+ }
+ }
+ }
+
+ private void ReturnNull()
+ {
+ int i = 0;
+ int count = this.loadCbList.Count;
+ while (i < count)
+ {
+ LoadInfo loadInfo = this.loadCbList[i];
+ bool flag = loadInfo.loadCb != null;
+ if (flag)
+ {
+ loadInfo.loadCb(null, this.cbObj);
+ }
+ i++;
+ }
+ this.loadCbList.Clear();
+ }
+
+ private void LoadComplete()
+ {
+ bool flag = this.asset == null;
+ if (flag)
+ {
+ XResourceLoaderMgr.LoadErrorLog(this.location);
+ this.ReturnNull();
+ }
+ else
+ {
+ bool useNewMgr = XSingleton<XResourceLoaderMgr>.singleton.useNewMgr;
+ if (useNewMgr)
+ {
+ XResourceLoaderMgr.UniteObjectInfo uniteObjectInfo;
+ bool uoiasync = XSingleton<XResourceLoaderMgr>.singleton.GetUOIAsync(this.location, this.hash, null, this.assetBundleInfo, this.isSharedRes, out uniteObjectInfo);
+ bool flag2 = uniteObjectInfo != null;
+ if (flag2)
+ {
+ int i = 0;
+ int count = this.loadCbList.Count;
+ while (i < count)
+ {
+ LoadInfo loadInfo = this.loadCbList[i];
+ bool flag3 = loadInfo.loadCb != null;
+ if (flag3)
+ {
+ UnityEngine.Object uoi = XSingleton<XResourceLoaderMgr>.singleton.GetUOI(uniteObjectInfo, this.isSharedRes, loadInfo.usePool);
+ loadInfo.loadCb(uoi, this.cbObj);
+ }
+ i++;
+ }
+ this.loadCbList.Clear();
+ }
+ }
+ else
+ {
+ XSingleton<XResourceLoaderMgr>.singleton.AddAssetInPool(this.asset, this.hash, this.assetBundleInfo);
+ int j = 0;
+ int count2 = this.loadCbList.Count;
+ while (j < count2)
+ {
+ LoadInfo loadInfo2 = this.loadCbList[j];
+ bool flag4 = loadInfo2.loadCb != null;
+ if (flag4)
+ {
+ bool flag5 = this.isSharedRes;
+ if (flag5)
+ {
+ this.GetSharedResourceCb(loadInfo2.loadCb, this.assetBundleInfo);
+ }
+ else
+ {
+ UnityEngine.Object obj = null;
+ bool flag6 = loadInfo2.usePool && XSingleton<XResourceLoaderMgr>.singleton.GetInObjectPool(ref obj, this.hash);
+ if (flag6)
+ {
+ loadInfo2.loadCb(obj, this.cbObj);
+ }
+ else
+ {
+ this.CreateFromPrefabCb(loadInfo2.loadCb, this.assetBundleInfo);
+ }
+ }
+ }
+ j++;
+ }
+ this.loadCbList.Clear();
+ }
+ }
+ }
+
+ private void GetSharedResourceCb(LoadCallBack loadCb, AssetBundleInfo info = null)
+ {
+ UnityEngine.Object assetInPool = XSingleton<XResourceLoaderMgr>.singleton.GetAssetInPool(this.hash);
+ XSingleton<XResourceLoaderMgr>.singleton.AssetsRefRetain(this.hash);
+ loadCb(assetInPool, this.cbObj);
+ }
+
+ private void CreateFromPrefabCb(LoadCallBack loadCb, AssetBundleInfo info = null)
+ {
+ UnityEngine.Object assetInPool = XSingleton<XResourceLoaderMgr>.singleton.GetAssetInPool(this.hash);
+ GameObject gameObject = XCommon.Instantiate<UnityEngine.Object>(assetInPool) as GameObject;
+ XSingleton<XResourceLoaderMgr>.singleton.AssetsRefRetain(this.hash);
+ XSingleton<XResourceLoaderMgr>.singleton.LogReverseID(gameObject, this.hash);
+ loadCb(gameObject, this.cbObj);
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/LoadAsyncTask.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/LoadAsyncTask.cs.meta new file mode 100644 index 00000000..2822b328 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/LoadAsyncTask.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c81890ae0532a8047bbfd1cc96755993 +timeCreated: 1611465756 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/LoadCallBack.cs b/Client/Assets/Scripts/XUtliPoolLib/LoadCallBack.cs new file mode 100644 index 00000000..1d7cdbc8 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/LoadCallBack.cs @@ -0,0 +1,7 @@ +using System;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public delegate void LoadCallBack(UnityEngine.Object obj, object cbOjb);
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/LoadCallBack.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/LoadCallBack.cs.meta new file mode 100644 index 00000000..7179ed4a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/LoadCallBack.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a66571d618b71b543aa951b94b01bd80 +timeCreated: 1611465736 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/LoadCallback.2.cs b/Client/Assets/Scripts/XUtliPoolLib/LoadCallback.2.cs new file mode 100644 index 00000000..466f26bc --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/LoadCallback.2.cs @@ -0,0 +1,6 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public delegate void LoadCallback(XGameObject gameObject);
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/LoadCallback.2.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/LoadCallback.2.cs.meta new file mode 100644 index 00000000..c188abcb --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/LoadCallback.2.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 014e333f994ae214aa24ee9e2c55a070 +timeCreated: 1611465284 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/LoadFrom.cs b/Client/Assets/Scripts/XUtliPoolLib/LoadFrom.cs new file mode 100644 index 00000000..2f63ba65 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/LoadFrom.cs @@ -0,0 +1,10 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public enum LoadFrom
+ {
+ Local,
+ AssetBundle
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/LoadFrom.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/LoadFrom.cs.meta new file mode 100644 index 00000000..89403fc7 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/LoadFrom.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 14930b8a80953074ab983ae0f2c548bf +timeCreated: 1611465293 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/LoadInfo.cs b/Client/Assets/Scripts/XUtliPoolLib/LoadInfo.cs new file mode 100644 index 00000000..4e8442d2 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/LoadInfo.cs @@ -0,0 +1,11 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public struct LoadInfo
+ {
+ public bool usePool;
+
+ public LoadCallBack loadCb;
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/LoadInfo.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/LoadInfo.cs.meta new file mode 100644 index 00000000..34e1388d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/LoadInfo.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 595d416c517ae1544b439ce4ac924faa +timeCreated: 1611465646 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/LoadState.cs b/Client/Assets/Scripts/XUtliPoolLib/LoadState.cs new file mode 100644 index 00000000..a2bb4351 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/LoadState.cs @@ -0,0 +1,13 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public enum LoadState
+ {
+ State_None,
+ State_LoadingAsync,
+ State_Loading,
+ State_Error,
+ State_Complete
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/LoadState.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/LoadState.cs.meta new file mode 100644 index 00000000..c7c8fc97 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/LoadState.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: eb0f430a10592254f91ba0a160f12902 +timeCreated: 1611465804 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/LoopItemData.cs b/Client/Assets/Scripts/XUtliPoolLib/LoopItemData.cs new file mode 100644 index 00000000..b68a3205 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/LoopItemData.cs @@ -0,0 +1,9 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class LoopItemData
+ {
+ public uint LoopID { get; set; }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/LoopItemData.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/LoopItemData.cs.meta new file mode 100644 index 00000000..c98daa68 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/LoopItemData.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 69e2686f91c72b44a815ea6953f2d43e +timeCreated: 1611465684 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/MarriageLevel.cs b/Client/Assets/Scripts/XUtliPoolLib/MarriageLevel.cs new file mode 100644 index 00000000..e4219661 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/MarriageLevel.cs @@ -0,0 +1,83 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class MarriageLevel : CVSReader
+ {
+ public MarriageLevel.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int Level;
+
+ public int NeedIntimacyValue;
+
+ public uint PrerogativeID;
+
+ public SeqRef<uint> PrerogativeItems;
+
+ public SeqRef<uint> PrivilegeBuffs;
+
+ public string BuffIcon;
+
+ public string Desc;
+ }
+
+ public MarriageLevel.RowData GetByLevel(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ MarriageLevel.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].Level == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ MarriageLevel.RowData rowData = new MarriageLevel.RowData();
+ base.Read<int>(reader, ref rowData.Level, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<int>(reader, ref rowData.NeedIntimacyValue, CVSReader.intParse);
+ this.columnno = 1;
+ base.Read<uint>(reader, ref rowData.PrerogativeID, CVSReader.uintParse);
+ this.columnno = 2;
+ rowData.PrerogativeItems.Read(reader, this.m_DataHandler);
+ this.columnno = 3;
+ rowData.PrivilegeBuffs.Read(reader, this.m_DataHandler);
+ this.columnno = 4;
+ base.Read<string>(reader, ref rowData.BuffIcon, CVSReader.stringParse);
+ this.columnno = 5;
+ base.Read<string>(reader, ref rowData.Desc, CVSReader.stringParse);
+ this.columnno = 6;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new MarriageLevel.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/MarriageLevel.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/MarriageLevel.cs.meta new file mode 100644 index 00000000..c2c4f49d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/MarriageLevel.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 01d3c4e7ec3dee74e9b7b705e307986c +timeCreated: 1611465285 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/MemoryPool.cs b/Client/Assets/Scripts/XUtliPoolLib/MemoryPool.cs new file mode 100644 index 00000000..a5aefc1a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/MemoryPool.cs @@ -0,0 +1,193 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class MemoryPool<T>
+ {
+ private short m_blockSize = 0;
+
+ private int m_chunkSize = 0;
+
+ private MemoryPool<T>.MemoryChunk m_root = null;
+
+ private MemoryPool<T>.MemoryChunk m_last = null;
+
+ private MemoryPool<T>.MemoryChunk m_lastFreeChunk = null;
+
+ private MemoryPool<T>.MemoryBlock m_freeMemBlock = null;
+
+ private MemoryPool<T>.AllocMemoryBlock m_freeAllocBlock = null;
+
+ public class MemoryChunk
+ {
+ public T[] mem = null;
+
+ public MemoryPool<T>.MemoryChunk next = null;
+
+ public uint blockBit = 0u;
+ }
+
+ public class MemoryBlock
+ {
+ public MemoryPool<T>.MemoryChunk chunk = null;
+
+ public short start = -1;
+
+ public MemoryPool<T>.MemoryBlock next = null;
+ }
+
+ public class AllocMemoryBlock
+ {
+ public MemoryPool<T>.MemoryBlock[] mem = new MemoryPool<T>.MemoryBlock[32];
+
+ public MemoryPool<T>.AllocMemoryBlock next = null;
+ }
+
+ private void Expand()
+ {
+ MemoryPool<T>.MemoryChunk memoryChunk = new MemoryPool<T>.MemoryChunk();
+ memoryChunk.mem = new T[this.m_chunkSize];
+ bool flag = this.m_root == null;
+ if (flag)
+ {
+ bool flag2 = this.m_last != null;
+ if (flag2)
+ {
+ XSingleton<XDebug>.singleton.AddErrorLog("root null but last not null!", null, null, null, null, null);
+ }
+ this.m_root = memoryChunk;
+ this.m_last = this.m_root;
+ }
+ else
+ {
+ this.m_last.next = memoryChunk;
+ this.m_last = memoryChunk;
+ }
+ }
+
+ private void IndexLastFreeChunk()
+ {
+ bool flag = this.m_lastFreeChunk == null;
+ if (flag)
+ {
+ this.Expand();
+ this.m_lastFreeChunk = this.m_last;
+ }
+ }
+
+ private MemoryPool<T>.MemoryBlock GetMemoryBlock()
+ {
+ bool flag = this.m_freeMemBlock == null;
+ MemoryPool<T>.MemoryBlock result;
+ if (flag)
+ {
+ result = new MemoryPool<T>.MemoryBlock();
+ }
+ else
+ {
+ MemoryPool<T>.MemoryBlock freeMemBlock = this.m_freeMemBlock;
+ this.m_freeMemBlock = this.m_freeMemBlock.next;
+ result = freeMemBlock;
+ }
+ return result;
+ }
+
+ public void Init(short blockSize, int initChunkCount)
+ {
+ this.m_blockSize = blockSize;
+ this.m_chunkSize = (int)(this.m_blockSize * 32);
+ for (int i = 0; i < initChunkCount; i++)
+ {
+ this.Expand();
+ }
+ this.m_lastFreeChunk = this.m_root;
+ }
+
+ public MemoryPool<T>.AllocMemoryBlock Alloc(int blockCount)
+ {
+ bool flag = this.m_freeAllocBlock == null;
+ MemoryPool<T>.AllocMemoryBlock allocMemoryBlock;
+ if (flag)
+ {
+ allocMemoryBlock = new MemoryPool<T>.AllocMemoryBlock();
+ }
+ else
+ {
+ allocMemoryBlock = this.m_freeAllocBlock;
+ this.m_freeAllocBlock = this.m_freeAllocBlock.next;
+ allocMemoryBlock.next = null;
+ }
+ this.IndexLastFreeChunk();
+ int num = 0;
+ do
+ {
+ uint num2 = 1u;
+ short num3 = 0;
+ while ((int)num3 < this.m_chunkSize && num < blockCount)
+ {
+ bool flag2 = (this.m_lastFreeChunk.blockBit & num2) == 0u;
+ if (flag2)
+ {
+ MemoryPool<T>.MemoryBlock memoryBlock = this.GetMemoryBlock();
+ memoryBlock.chunk = this.m_lastFreeChunk;
+ memoryBlock.start = num3;
+ memoryBlock.next = null;
+ allocMemoryBlock.mem[num] = memoryBlock;
+ this.m_lastFreeChunk.blockBit |= num2;
+ num++;
+ }
+ num2 <<= 1;
+ num3 += this.m_blockSize;
+ }
+ bool flag3 = num2 == uint.MaxValue;
+ if (flag3)
+ {
+ this.m_lastFreeChunk = this.m_lastFreeChunk.next;
+ }
+ this.IndexLastFreeChunk();
+ }
+ while (num < blockCount);
+ return allocMemoryBlock;
+ }
+
+ public void Dealloc(MemoryPool<T>.AllocMemoryBlock amb)
+ {
+ for (int i = 0; i < amb.mem.Length; i++)
+ {
+ MemoryPool<T>.MemoryBlock memoryBlock = amb.mem[i];
+ bool flag = memoryBlock != null;
+ if (flag)
+ {
+ MemoryPool<T>.MemoryChunk chunk = memoryBlock.chunk;
+ bool flag2 = chunk != null;
+ if (flag2)
+ {
+ uint num = 1u << (int)(memoryBlock.start / this.m_blockSize);
+ chunk.blockBit &= ~num;
+ }
+ amb.mem[i] = null;
+ bool flag3 = this.m_freeMemBlock == null;
+ if (flag3)
+ {
+ this.m_freeMemBlock = memoryBlock;
+ }
+ else
+ {
+ memoryBlock.next = this.m_freeMemBlock;
+ this.m_freeMemBlock = memoryBlock;
+ }
+ }
+ bool flag4 = this.m_freeAllocBlock == null;
+ if (flag4)
+ {
+ this.m_freeAllocBlock = amb;
+ }
+ else
+ {
+ amb.next = this.m_freeAllocBlock;
+ this.m_freeAllocBlock = amb;
+ }
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/MemoryPool.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/MemoryPool.cs.meta new file mode 100644 index 00000000..7ad36016 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/MemoryPool.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 9067cfdc66cd2b3468942077c18177e5 +timeCreated: 1611465704 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/MentorCompleteRewardTable.cs b/Client/Assets/Scripts/XUtliPoolLib/MentorCompleteRewardTable.cs new file mode 100644 index 00000000..a147d9b1 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/MentorCompleteRewardTable.cs @@ -0,0 +1,67 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class MentorCompleteRewardTable : CVSReader
+ {
+ public MentorCompleteRewardTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int Type;
+
+ public SeqListRef<int> MasterReward;
+
+ public SeqListRef<int> StudentReward;
+ }
+
+ public MentorCompleteRewardTable.RowData GetByType(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ MentorCompleteRewardTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].Type == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ MentorCompleteRewardTable.RowData rowData = new MentorCompleteRewardTable.RowData();
+ base.Read<int>(reader, ref rowData.Type, CVSReader.intParse);
+ this.columnno = 0;
+ rowData.MasterReward.Read(reader, this.m_DataHandler);
+ this.columnno = 1;
+ rowData.StudentReward.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new MentorCompleteRewardTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/MentorCompleteRewardTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/MentorCompleteRewardTable.cs.meta new file mode 100644 index 00000000..a62249e3 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/MentorCompleteRewardTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c8863f5b0df22d544ba847d6847ed81a +timeCreated: 1611465756 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/MentorTaskTable.cs b/Client/Assets/Scripts/XUtliPoolLib/MentorTaskTable.cs new file mode 100644 index 00000000..57bd3990 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/MentorTaskTable.cs @@ -0,0 +1,79 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class MentorTaskTable : CVSReader
+ {
+ public MentorTaskTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint TaskID;
+
+ public uint TaskType;
+
+ public string TaskName;
+
+ public SeqRef<int> TaskVar;
+
+ public SeqListRef<int> MasterReward;
+
+ public SeqListRef<int> StudentReward;
+ }
+
+ public MentorTaskTable.RowData GetByTaskID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ MentorTaskTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].TaskID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ MentorTaskTable.RowData rowData = new MentorTaskTable.RowData();
+ base.Read<uint>(reader, ref rowData.TaskID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.TaskType, CVSReader.uintParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.TaskName, CVSReader.stringParse);
+ this.columnno = 2;
+ rowData.TaskVar.Read(reader, this.m_DataHandler);
+ this.columnno = 3;
+ rowData.MasterReward.Read(reader, this.m_DataHandler);
+ this.columnno = 4;
+ rowData.StudentReward.Read(reader, this.m_DataHandler);
+ this.columnno = 5;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new MentorTaskTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/MentorTaskTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/MentorTaskTable.cs.meta new file mode 100644 index 00000000..db44f1b0 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/MentorTaskTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: aadf3796cd3517b409120203e39ae14e +timeCreated: 1611465741 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/MilitaryRankByExploit.cs b/Client/Assets/Scripts/XUtliPoolLib/MilitaryRankByExploit.cs new file mode 100644 index 00000000..50aa1e6e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/MilitaryRankByExploit.cs @@ -0,0 +1,83 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class MilitaryRankByExploit : CVSReader
+ {
+ public MilitaryRankByExploit.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint MilitaryRank;
+
+ public string Name;
+
+ public SeqRef<uint> MilitaryExploit;
+
+ public SeqListRef<uint> Reward;
+
+ public string Icon;
+
+ public string ShowRange;
+
+ public string RewardTips;
+ }
+
+ public MilitaryRankByExploit.RowData GetByMilitaryRank(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ MilitaryRankByExploit.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].MilitaryRank == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ MilitaryRankByExploit.RowData rowData = new MilitaryRankByExploit.RowData();
+ base.Read<uint>(reader, ref rowData.MilitaryRank, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.Name, CVSReader.stringParse);
+ this.columnno = 1;
+ rowData.MilitaryExploit.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ rowData.Reward.Read(reader, this.m_DataHandler);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.Icon, CVSReader.stringParse);
+ this.columnno = 4;
+ base.Read<string>(reader, ref rowData.ShowRange, CVSReader.stringParse);
+ this.columnno = 5;
+ base.Read<string>(reader, ref rowData.RewardTips, CVSReader.stringParse);
+ this.columnno = 6;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new MilitaryRankByExploit.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/MilitaryRankByExploit.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/MilitaryRankByExploit.cs.meta new file mode 100644 index 00000000..bf4a1209 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/MilitaryRankByExploit.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 45fe776593924dd4095e9b1a6e0c7e6d +timeCreated: 1611465638 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/MilitaryRankReward.cs b/Client/Assets/Scripts/XUtliPoolLib/MilitaryRankReward.cs new file mode 100644 index 00000000..13e48996 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/MilitaryRankReward.cs @@ -0,0 +1,40 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class MilitaryRankReward : CVSReader
+ {
+ public MilitaryRankReward.RowData[] Table = null;
+
+ public class RowData
+ {
+ public SeqRef<uint> Rank;
+
+ public SeqListRef<uint> Reward;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ MilitaryRankReward.RowData rowData = new MilitaryRankReward.RowData();
+ rowData.Rank.Read(reader, this.m_DataHandler);
+ this.columnno = 0;
+ rowData.Reward.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new MilitaryRankReward.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/MilitaryRankReward.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/MilitaryRankReward.cs.meta new file mode 100644 index 00000000..6391cbd9 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/MilitaryRankReward.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 90a6ccc67bc0b3342b7e63c81627d667 +timeCreated: 1611465704 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/MiniJSON.meta b/Client/Assets/Scripts/XUtliPoolLib/MiniJSON.meta new file mode 100644 index 00000000..df955d6c --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/MiniJSON.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 69eb1d33f8db4724f9b63092548ecbfc +folderAsset: yes +timeCreated: 1611465282 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/MiniJSON/Json.cs b/Client/Assets/Scripts/XUtliPoolLib/MiniJSON/Json.cs new file mode 100644 index 00000000..ac3e1d5e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/MiniJSON/Json.cs @@ -0,0 +1,638 @@ +using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.IO;
+using System.Text;
+
+namespace MiniJSON
+{
+ public static class Json
+ {
+ private sealed class Parser : IDisposable
+ {
+ private char PeekChar
+ {
+ get
+ {
+ return Convert.ToChar(this.json.Peek());
+ }
+ }
+
+ private char NextChar
+ {
+ get
+ {
+ return Convert.ToChar(this.json.Read());
+ }
+ }
+
+ private string NextWord
+ {
+ get
+ {
+ StringBuilder stringBuilder = new StringBuilder();
+ while (!Json.Parser.IsWordBreak(this.PeekChar))
+ {
+ stringBuilder.Append(this.NextChar);
+ bool flag = this.json.Peek() == -1;
+ if (flag)
+ {
+ break;
+ }
+ }
+ return stringBuilder.ToString();
+ }
+ }
+
+ private Json.Parser.TOKEN NextToken
+ {
+ get
+ {
+ this.EatWhitespace();
+ bool flag = this.json.Peek() == -1;
+ Json.Parser.TOKEN result;
+ if (flag)
+ {
+ result = Json.Parser.TOKEN.NONE;
+ }
+ else
+ {
+ char peekChar = this.PeekChar;
+ if (peekChar <= '[')
+ {
+ switch (peekChar)
+ {
+ case '"':
+ return Json.Parser.TOKEN.STRING;
+ case '#':
+ case '$':
+ case '%':
+ case '&':
+ case '\'':
+ case '(':
+ case ')':
+ case '*':
+ case '+':
+ case '.':
+ case '/':
+ break;
+ case ',':
+ this.json.Read();
+ return Json.Parser.TOKEN.COMMA;
+ case '-':
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9':
+ return Json.Parser.TOKEN.NUMBER;
+ case ':':
+ return Json.Parser.TOKEN.COLON;
+ default:
+ if (peekChar == '[')
+ {
+ return Json.Parser.TOKEN.SQUARED_OPEN;
+ }
+ break;
+ }
+ }
+ else
+ {
+ if (peekChar == ']')
+ {
+ this.json.Read();
+ return Json.Parser.TOKEN.SQUARED_CLOSE;
+ }
+ if (peekChar == '{')
+ {
+ return Json.Parser.TOKEN.CURLY_OPEN;
+ }
+ if (peekChar == '}')
+ {
+ this.json.Read();
+ return Json.Parser.TOKEN.CURLY_CLOSE;
+ }
+ }
+ string nextWord = this.NextWord;
+ if (!(nextWord == "false"))
+ {
+ if (!(nextWord == "true"))
+ {
+ if (!(nextWord == "null"))
+ {
+ result = Json.Parser.TOKEN.NONE;
+ }
+ else
+ {
+ result = Json.Parser.TOKEN.NULL;
+ }
+ }
+ else
+ {
+ result = Json.Parser.TOKEN.TRUE;
+ }
+ }
+ else
+ {
+ result = Json.Parser.TOKEN.FALSE;
+ }
+ }
+ return result;
+ }
+ }
+
+ private const string WORD_BREAK = "{}[],:\"";
+
+ private StringReader json;
+
+ private enum TOKEN
+ {
+ NONE,
+ CURLY_OPEN,
+ CURLY_CLOSE,
+ SQUARED_OPEN,
+ SQUARED_CLOSE,
+ COLON,
+ COMMA,
+ STRING,
+ NUMBER,
+ TRUE,
+ FALSE,
+ NULL
+ }
+
+ public static bool IsWordBreak(char c)
+ {
+ return char.IsWhiteSpace(c) || "{}[],:\"".IndexOf(c) != -1;
+ }
+
+ private Parser(string jsonString)
+ {
+ this.json = new StringReader(jsonString);
+ }
+
+ public static object Parse(string jsonString)
+ {
+ object result;
+ using (Json.Parser parser = new Json.Parser(jsonString))
+ {
+ result = parser.ParseValue();
+ }
+ return result;
+ }
+
+ public void Dispose()
+ {
+ this.json.Dispose();
+ this.json = null;
+ }
+
+ private Dictionary<string, object> ParseObject()
+ {
+ Dictionary<string, object> dictionary = new Dictionary<string, object>();
+ this.json.Read();
+ for (;;)
+ {
+ Json.Parser.TOKEN nextToken = this.NextToken;
+ if (nextToken == Json.Parser.TOKEN.NONE)
+ {
+ break;
+ }
+ if (nextToken == Json.Parser.TOKEN.CURLY_CLOSE)
+ {
+ goto IL_34;
+ }
+ if (nextToken != Json.Parser.TOKEN.COMMA)
+ {
+ string text = this.ParseString();
+ bool flag = text == null;
+ if (flag)
+ {
+ goto Block_4;
+ }
+ bool flag2 = this.NextToken != Json.Parser.TOKEN.COLON;
+ if (flag2)
+ {
+ goto Block_5;
+ }
+ this.json.Read();
+ dictionary[text] = this.ParseValue();
+ }
+ }
+ return null;
+ IL_34:
+ return dictionary;
+ Block_4:
+ return null;
+ Block_5:
+ return null;
+ }
+
+ private List<object> ParseArray()
+ {
+ List<object> list = new List<object>();
+ this.json.Read();
+ bool flag = true;
+ while (flag)
+ {
+ Json.Parser.TOKEN nextToken = this.NextToken;
+ Json.Parser.TOKEN token = nextToken;
+ if (token == Json.Parser.TOKEN.NONE)
+ {
+ return null;
+ }
+ if (token != Json.Parser.TOKEN.SQUARED_CLOSE)
+ {
+ if (token != Json.Parser.TOKEN.COMMA)
+ {
+ object item = this.ParseByToken(nextToken);
+ list.Add(item);
+ }
+ }
+ else
+ {
+ flag = false;
+ }
+ }
+ return list;
+ }
+
+ private object ParseValue()
+ {
+ Json.Parser.TOKEN nextToken = this.NextToken;
+ return this.ParseByToken(nextToken);
+ }
+
+ private object ParseByToken(Json.Parser.TOKEN token)
+ {
+ switch (token)
+ {
+ case Json.Parser.TOKEN.CURLY_OPEN:
+ return this.ParseObject();
+ case Json.Parser.TOKEN.SQUARED_OPEN:
+ return this.ParseArray();
+ case Json.Parser.TOKEN.STRING:
+ return this.ParseString();
+ case Json.Parser.TOKEN.NUMBER:
+ return this.ParseNumber();
+ case Json.Parser.TOKEN.TRUE:
+ return true;
+ case Json.Parser.TOKEN.FALSE:
+ return false;
+ case Json.Parser.TOKEN.NULL:
+ return null;
+ }
+ return null;
+ }
+
+ private string ParseString()
+ {
+ StringBuilder stringBuilder = new StringBuilder();
+ this.json.Read();
+ bool flag = true;
+ while (flag)
+ {
+ bool flag2 = this.json.Peek() == -1;
+ if (flag2)
+ {
+ break;
+ }
+ char nextChar = this.NextChar;
+ char c = nextChar;
+ if (c != '"')
+ {
+ if (c != '\\')
+ {
+ stringBuilder.Append(nextChar);
+ }
+ else
+ {
+ bool flag3 = this.json.Peek() == -1;
+ if (flag3)
+ {
+ flag = false;
+ }
+ else
+ {
+ nextChar = this.NextChar;
+ char c2 = nextChar;
+ if (c2 <= '\\')
+ {
+ if (c2 == '"' || c2 == '/' || c2 == '\\')
+ {
+ stringBuilder.Append(nextChar);
+ }
+ }
+ else if (c2 <= 'f')
+ {
+ if (c2 != 'b')
+ {
+ if (c2 == 'f')
+ {
+ stringBuilder.Append('\f');
+ }
+ }
+ else
+ {
+ stringBuilder.Append('\b');
+ }
+ }
+ else if (c2 != 'n')
+ {
+ switch (c2)
+ {
+ case 'r':
+ stringBuilder.Append('\r');
+ break;
+ case 't':
+ stringBuilder.Append('\t');
+ break;
+ case 'u':
+ {
+ char[] array = new char[4];
+ for (int i = 0; i < 4; i++)
+ {
+ array[i] = this.NextChar;
+ }
+ stringBuilder.Append((char)Convert.ToInt32(new string(array), 16));
+ break;
+ }
+ }
+ }
+ else
+ {
+ stringBuilder.Append('\n');
+ }
+ }
+ }
+ }
+ else
+ {
+ flag = false;
+ }
+ }
+ return stringBuilder.ToString();
+ }
+
+ private object ParseNumber()
+ {
+ string nextWord = this.NextWord;
+ bool flag = nextWord.IndexOf('.') == -1;
+ object result;
+ if (flag)
+ {
+ long num;
+ long.TryParse(nextWord, out num);
+ result = num;
+ }
+ else
+ {
+ double num2;
+ double.TryParse(nextWord, out num2);
+ result = num2;
+ }
+ return result;
+ }
+
+ private void EatWhitespace()
+ {
+ while (char.IsWhiteSpace(this.PeekChar))
+ {
+ this.json.Read();
+ bool flag = this.json.Peek() == -1;
+ if (flag)
+ {
+ break;
+ }
+ }
+ }
+ }
+
+ private sealed class Serializer
+ {
+ private StringBuilder builder;
+
+ private Serializer()
+ {
+ this.builder = new StringBuilder();
+ }
+
+ public static string Serialize(object obj)
+ {
+ Json.Serializer serializer = new Json.Serializer();
+ serializer.SerializeValue(obj);
+ return serializer.builder.ToString();
+ }
+
+ private void SerializeValue(object value)
+ {
+ bool flag = value == null;
+ if (flag)
+ {
+ this.builder.Append("null");
+ }
+ else
+ {
+ string str;
+ bool flag2 = (str = (value as string)) != null;
+ if (flag2)
+ {
+ this.SerializeString(str);
+ }
+ else
+ {
+ bool flag3 = value is bool;
+ if (flag3)
+ {
+ this.builder.Append(((bool)value) ? "true" : "false");
+ }
+ else
+ {
+ IList anArray;
+ bool flag4 = (anArray = (value as IList)) != null;
+ if (flag4)
+ {
+ this.SerializeArray(anArray);
+ }
+ else
+ {
+ IDictionary obj;
+ bool flag5 = (obj = (value as IDictionary)) != null;
+ if (flag5)
+ {
+ this.SerializeObject(obj);
+ }
+ else
+ {
+ bool flag6 = value is char;
+ if (flag6)
+ {
+ this.SerializeString(new string((char)value, 1));
+ }
+ else
+ {
+ this.SerializeOther(value);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ private void SerializeObject(IDictionary obj)
+ {
+ bool flag = true;
+ this.builder.Append('{');
+ foreach (object obj2 in obj.Keys)
+ {
+ bool flag2 = !flag;
+ if (flag2)
+ {
+ this.builder.Append(',');
+ }
+ this.SerializeString(obj2.ToString());
+ this.builder.Append(':');
+ this.SerializeValue(obj[obj2]);
+ flag = false;
+ }
+ this.builder.Append('}');
+ }
+
+ private void SerializeArray(IList anArray)
+ {
+ this.builder.Append('[');
+ bool flag = true;
+ foreach (object value in anArray)
+ {
+ bool flag2 = !flag;
+ if (flag2)
+ {
+ this.builder.Append(',');
+ }
+ this.SerializeValue(value);
+ flag = false;
+ }
+ this.builder.Append(']');
+ }
+
+ private void SerializeString(string str)
+ {
+ this.builder.Append('"');
+ char[] array = str.ToCharArray();
+ char[] array2 = array;
+ int i = 0;
+ while (i < array2.Length)
+ {
+ char c = array2[i];
+ char c2 = c;
+ switch (c2)
+ {
+ case '\b':
+ this.builder.Append("\\b");
+ break;
+ case '\t':
+ this.builder.Append("\\t");
+ break;
+ case '\n':
+ this.builder.Append("\\n");
+ break;
+ case '\v':
+ goto IL_F2;
+ case '\f':
+ this.builder.Append("\\f");
+ break;
+ case '\r':
+ this.builder.Append("\\r");
+ break;
+ default:
+ if (c2 != '"')
+ {
+ if (c2 != '\\')
+ {
+ goto IL_F2;
+ }
+ this.builder.Append("\\\\");
+ }
+ else
+ {
+ this.builder.Append("\\\"");
+ }
+ break;
+ }
+ IL_150:
+ i++;
+ continue;
+ IL_F2:
+ int num = Convert.ToInt32(c);
+ bool flag = num >= 32 && num <= 126;
+ if (flag)
+ {
+ this.builder.Append(c);
+ }
+ else
+ {
+ this.builder.Append("\\u");
+ this.builder.Append(num.ToString("x4"));
+ }
+ goto IL_150;
+ }
+ this.builder.Append('"');
+ }
+
+ private void SerializeOther(object value)
+ {
+ bool flag = value is float;
+ if (flag)
+ {
+ this.builder.Append(((float)value).ToString("R"));
+ }
+ else
+ {
+ bool flag2 = value is int || value is uint || value is long || value is sbyte || value is byte || value is short || value is ushort || value is ulong;
+ if (flag2)
+ {
+ this.builder.Append(value);
+ }
+ else
+ {
+ bool flag3 = value is double || value is decimal;
+ if (flag3)
+ {
+ this.builder.Append(Convert.ToDouble(value).ToString("R"));
+ }
+ else
+ {
+ this.SerializeString(value.ToString());
+ }
+ }
+ }
+ }
+ }
+
+ public static object Deserialize(string json)
+ {
+ bool flag = json == null;
+ object result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = Json.Parser.Parse(json);
+ }
+ return result;
+ }
+
+ public static string Serialize(object obj)
+ {
+ return Json.Serializer.Serialize(obj);
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/MiniJSON/Json.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/MiniJSON/Json.cs.meta new file mode 100644 index 00000000..9e25738a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/MiniJSON/Json.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f722e7fd0fb17de438933a6379c0e8cc +timeCreated: 1611465809 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/MobaLevel.cs b/Client/Assets/Scripts/XUtliPoolLib/MobaLevel.cs new file mode 100644 index 00000000..ebcc22aa --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/MobaLevel.cs @@ -0,0 +1,113 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class MobaLevel : CVSReader
+ {
+ public MobaLevel.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint Level;
+
+ public double Exp;
+ }
+
+ public MobaLevel.RowData GetByLevel(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ MobaLevel.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchLevel(key);
+ }
+ return result;
+ }
+
+ private MobaLevel.RowData BinarySearchLevel(uint key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ MobaLevel.RowData rowData;
+ MobaLevel.RowData rowData2;
+ MobaLevel.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.Level == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.Level == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.Level.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.Level.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ MobaLevel.RowData rowData = new MobaLevel.RowData();
+ base.Read<uint>(reader, ref rowData.Level, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<double>(reader, ref rowData.Exp, CVSReader.doubleParse);
+ this.columnno = 1;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new MobaLevel.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/MobaLevel.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/MobaLevel.cs.meta new file mode 100644 index 00000000..cda78cd7 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/MobaLevel.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 01a4792172557c84685474db1e1284cd +timeCreated: 1611465284 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/MobaMiniMap.cs b/Client/Assets/Scripts/XUtliPoolLib/MobaMiniMap.cs new file mode 100644 index 00000000..3f768530 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/MobaMiniMap.cs @@ -0,0 +1,117 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class MobaMiniMap : CVSReader
+ {
+ public MobaMiniMap.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint PosIndex;
+
+ public SeqRef<float> Position;
+
+ public string[] Icon;
+ }
+
+ public MobaMiniMap.RowData GetByPosIndex(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ MobaMiniMap.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchPosIndex(key);
+ }
+ return result;
+ }
+
+ private MobaMiniMap.RowData BinarySearchPosIndex(uint key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ MobaMiniMap.RowData rowData;
+ MobaMiniMap.RowData rowData2;
+ MobaMiniMap.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.PosIndex == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.PosIndex == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.PosIndex.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.PosIndex.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ MobaMiniMap.RowData rowData = new MobaMiniMap.RowData();
+ base.Read<uint>(reader, ref rowData.PosIndex, CVSReader.uintParse);
+ this.columnno = 0;
+ rowData.Position.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ base.ReadArray<string>(reader, ref rowData.Icon, CVSReader.stringParse);
+ this.columnno = 3;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new MobaMiniMap.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/MobaMiniMap.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/MobaMiniMap.cs.meta new file mode 100644 index 00000000..b1ac7616 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/MobaMiniMap.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 91e030555eaeb9747978ddd33ccd6bdf +timeCreated: 1611465706 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/MobaSignalTable.cs b/Client/Assets/Scripts/XUtliPoolLib/MobaSignalTable.cs new file mode 100644 index 00000000..04a11774 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/MobaSignalTable.cs @@ -0,0 +1,79 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class MobaSignalTable : CVSReader
+ {
+ public MobaSignalTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint ID;
+
+ public string Text;
+
+ public string Icon;
+
+ public string Effect;
+
+ public string Audio;
+
+ public int[] SceneType;
+ }
+
+ public MobaSignalTable.RowData GetByID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ MobaSignalTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].ID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ MobaSignalTable.RowData rowData = new MobaSignalTable.RowData();
+ base.Read<uint>(reader, ref rowData.ID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.Text, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.Icon, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.Effect, CVSReader.stringParse);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.Audio, CVSReader.stringParse);
+ this.columnno = 4;
+ base.ReadArray<int>(reader, ref rowData.SceneType, CVSReader.intParse);
+ this.columnno = 5;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new MobaSignalTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/MobaSignalTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/MobaSignalTable.cs.meta new file mode 100644 index 00000000..c4e20b45 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/MobaSignalTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d44a1decc57ae994892fed69d5e85f6c +timeCreated: 1611465762 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/MobaWeekReward.cs b/Client/Assets/Scripts/XUtliPoolLib/MobaWeekReward.cs new file mode 100644 index 00000000..e11a346d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/MobaWeekReward.cs @@ -0,0 +1,67 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class MobaWeekReward : CVSReader
+ {
+ public MobaWeekReward.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint id;
+
+ public uint winnum;
+
+ public uint[] reward;
+ }
+
+ public MobaWeekReward.RowData GetByid(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ MobaWeekReward.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].id == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ MobaWeekReward.RowData rowData = new MobaWeekReward.RowData();
+ base.Read<uint>(reader, ref rowData.id, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.winnum, CVSReader.uintParse);
+ this.columnno = 1;
+ base.ReadArray<uint>(reader, ref rowData.reward, CVSReader.uintParse);
+ this.columnno = 2;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new MobaWeekReward.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/MobaWeekReward.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/MobaWeekReward.cs.meta new file mode 100644 index 00000000..b3318962 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/MobaWeekReward.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0390f53bd68032143837d93515e40ab6 +timeCreated: 1611465285 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/MobileAssetBundleLoader.cs b/Client/Assets/Scripts/XUtliPoolLib/MobileAssetBundleLoader.cs new file mode 100644 index 00000000..7d264702 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/MobileAssetBundleLoader.cs @@ -0,0 +1,392 @@ +using System;
+using System.Collections;
+using System.IO;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public class MobileAssetBundleLoader : AssetBundleLoader
+ {
+ protected int _currentLoadingDepCount;
+
+ protected AssetBundle _bundle;
+
+ protected bool _hasError;
+
+ protected string _assetBundleCachedFile;
+
+ protected string _assetBundleSourceFile;
+
+ public override void Load()
+ {
+ bool hasError = this._hasError;
+ if (hasError)
+ {
+ this.state = LoadState.State_Error;
+ }
+ bool flag = this.state == LoadState.State_None;
+ if (flag)
+ {
+ this.state = LoadState.State_LoadingAsync;
+ this.LoadDepends();
+ }
+ else
+ {
+ bool flag2 = this.state == LoadState.State_Error;
+ if (flag2)
+ {
+ this.Error();
+ }
+ else
+ {
+ bool flag3 = this.state == LoadState.State_Complete;
+ if (flag3)
+ {
+ this.Complete();
+ }
+ }
+ }
+ }
+
+ public override void LoadImm()
+ {
+ bool hasError = this._hasError;
+ if (hasError)
+ {
+ this.state = LoadState.State_Error;
+ }
+ bool flag = this.state == LoadState.State_None || this.state == LoadState.State_LoadingAsync;
+ if (flag)
+ {
+ this.state = LoadState.State_Loading;
+ this.LoadDependsImm();
+ }
+ else
+ {
+ bool flag2 = this.state == LoadState.State_Error;
+ if (flag2)
+ {
+ this.Error();
+ }
+ else
+ {
+ bool flag3 = this.state == LoadState.State_Complete;
+ if (flag3)
+ {
+ this.Complete();
+ }
+ }
+ }
+ }
+
+ private void LoadDepends()
+ {
+ bool flag = this.depLoaders == null && this.bundleData.dependencies != null && this.bundleData.dependencies.Length != 0;
+ if (flag)
+ {
+ this.depLoaders = new AssetBundleLoader[this.bundleData.dependencies.Length];
+ for (int i = 0; i < this.bundleData.dependencies.Length; i++)
+ {
+ this.depLoaders[i] = this.bundleManager.CreateLoader(this.bundleData.dependencies[i], null, null, null);
+ }
+ }
+ this._currentLoadingDepCount = 0;
+ bool flag2 = this.depLoaders != null;
+ if (flag2)
+ {
+ for (int j = 0; j < this.depLoaders.Length; j++)
+ {
+ AssetBundleLoader assetBundleLoader = this.depLoaders[j];
+ bool flag3 = !assetBundleLoader.isComplete;
+ if (flag3)
+ {
+ this._currentLoadingDepCount++;
+ AssetBundleLoader assetBundleLoader2 = assetBundleLoader;
+ assetBundleLoader2.onComplete = (AssetBundleManager.LoadAssetCompleteHandler)Delegate.Combine(assetBundleLoader2.onComplete, new AssetBundleManager.LoadAssetCompleteHandler(this.OnDepComplete));
+ assetBundleLoader.Load();
+ }
+ }
+ }
+ this.CheckDepComplete();
+ }
+
+ private void LoadDependsImm()
+ {
+ bool flag = this.depLoaders == null && this.bundleData.dependencies != null && this.bundleData.dependencies.Length != 0;
+ if (flag)
+ {
+ this.depLoaders = new AssetBundleLoader[this.bundleData.dependencies.Length];
+ for (int i = 0; i < this.bundleData.dependencies.Length; i++)
+ {
+ this.depLoaders[i] = this.bundleManager.CreateLoader(this.bundleData.dependencies[i], null, null, null);
+ }
+ }
+ this._currentLoadingDepCount = 1;
+ bool flag2 = this.depLoaders != null;
+ if (flag2)
+ {
+ for (int j = 0; j < this.depLoaders.Length; j++)
+ {
+ AssetBundleLoader assetBundleLoader = this.depLoaders[j];
+ bool flag3 = assetBundleLoader.state != LoadState.State_Error && assetBundleLoader.state != LoadState.State_Complete;
+ if (flag3)
+ {
+ this._currentLoadingDepCount++;
+ AssetBundleLoader assetBundleLoader2 = assetBundleLoader;
+ assetBundleLoader2.onComplete = (AssetBundleManager.LoadAssetCompleteHandler)Delegate.Combine(assetBundleLoader2.onComplete, new AssetBundleManager.LoadAssetCompleteHandler(this.OnDepCompleteImm));
+ assetBundleLoader.LoadImm();
+ }
+ }
+ }
+ this._currentLoadingDepCount--;
+ this.CheckDepCompleteImm();
+ }
+
+ public override void LoadBundle()
+ {
+ string text = this.bundleName.ToString() + ".ab";
+ this._assetBundleCachedFile = Path.Combine(this.bundleManager.pathResolver.BundleCacheDir, text);
+ this._assetBundleSourceFile = this.bundleManager.pathResolver.GetBundleSourceFile(text, false);
+ bool flag = File.Exists(this._assetBundleCachedFile);
+ if (flag)
+ {
+ this.bundleManager.StartCoroutine(this.LoadFromCachedFile());
+ }
+ else
+ {
+ this.bundleManager.StartCoroutine(this.LoadFromPackage());
+ }
+ }
+
+ public override void LoadBundleImm()
+ {
+ string text = this.bundleName.ToString() + ".ab";
+ this._assetBundleCachedFile = Path.Combine(this.bundleManager.pathResolver.BundleCacheDir, text);
+ this._assetBundleSourceFile = this.bundleManager.pathResolver.GetBundleSourceFile(text, false);
+ bool flag = File.Exists(this._assetBundleCachedFile);
+ if (flag)
+ {
+ this.LoadFromCachedFileImm();
+ }
+ else
+ {
+ this.LoadFromPackageImm();
+ }
+ }
+
+ protected virtual IEnumerator LoadFromCachedFile()
+ {
+ bool flag = this.state == LoadState.State_Complete;
+ if (flag)
+ {
+ this.Complete();
+ }
+ else
+ {
+ bool flag2 = this.state != LoadState.State_Error;
+ if (flag2)
+ {
+ AssetBundleCreateRequest req = AssetBundle.LoadFromFileAsync(this._assetBundleCachedFile);
+ while (!req.isDone)
+ {
+ yield return null;
+ }
+ bool flag3 = this._bundle == null;
+ if (flag3)
+ {
+ this._bundle = req.assetBundle;
+ }
+ bool flag4 = this.state != LoadState.State_Complete && base.UnloadNotLoadingBundle(this._bundle);
+ if (flag4)
+ {
+ req = AssetBundle.LoadFromFileAsync(this._assetBundleCachedFile);
+ while (!req.isDone)
+ {
+ yield return null;
+ }
+ bool flag5 = this._bundle == null;
+ if (flag5)
+ {
+ this._bundle = req.assetBundle;
+ }
+ }
+ this.Complete();
+ req = null;
+ }
+ }
+ yield break;
+ }
+
+ protected virtual void LoadFromCachedFileImm()
+ {
+ bool flag = this.state == LoadState.State_Complete;
+ if (flag)
+ {
+ this.Complete();
+ }
+ else
+ {
+ bool flag2 = this.state != LoadState.State_Error;
+ if (flag2)
+ {
+ bool flag3 = this._bundle == null;
+ if (flag3)
+ {
+ this._bundle = AssetBundle.LoadFromFile(this._assetBundleCachedFile);
+ }
+ bool flag4 = this.state != LoadState.State_Complete && base.UnloadNotLoadingBundle(this._bundle);
+ if (flag4)
+ {
+ bool flag5 = this._bundle == null;
+ if (flag5)
+ {
+ this._bundle = AssetBundle.LoadFromFile(this._assetBundleCachedFile);
+ }
+ }
+ this.Complete();
+ }
+ }
+ }
+
+ protected virtual IEnumerator LoadFromPackage()
+ {
+ bool flag = this.state == LoadState.State_Complete;
+ if (flag)
+ {
+ this.Complete();
+ }
+ else
+ {
+ bool flag2 = this.state != LoadState.State_Error;
+ if (flag2)
+ {
+ AssetBundleCreateRequest req = AssetBundle.LoadFromFileAsync(this._assetBundleSourceFile);
+ while (!req.isDone)
+ {
+ yield return null;
+ }
+ bool flag3 = this._bundle == null;
+ if (flag3)
+ {
+ this._bundle = req.assetBundle;
+ }
+ bool flag4 = this.state != LoadState.State_Complete && base.UnloadNotLoadingBundle(this._bundle);
+ if (flag4)
+ {
+ req = AssetBundle.LoadFromFileAsync(this._assetBundleSourceFile);
+ while (!req.isDone)
+ {
+ yield return null;
+ }
+ bool flag5 = this._bundle == null;
+ if (flag5)
+ {
+ this._bundle = req.assetBundle;
+ }
+ }
+ this.Complete();
+ req = null;
+ }
+ }
+ yield break;
+ }
+
+ protected virtual void LoadFromPackageImm()
+ {
+ bool flag = this.state == LoadState.State_Complete;
+ if (flag)
+ {
+ this.Complete();
+ }
+ else
+ {
+ bool flag2 = this.state != LoadState.State_Error;
+ if (flag2)
+ {
+ bool flag3 = this._bundle == null;
+ if (flag3)
+ {
+ this._bundle = AssetBundle.LoadFromFile(this._assetBundleSourceFile);
+ }
+ bool flag4 = this.state != LoadState.State_Complete && base.UnloadNotLoadingBundle(this._bundle);
+ if (flag4)
+ {
+ bool flag5 = this._bundle == null;
+ if (flag5)
+ {
+ this._bundle = AssetBundle.LoadFromFile(this._assetBundleSourceFile);
+ }
+ }
+ this.Complete();
+ }
+ }
+ }
+
+ private void OnDepComplete(AssetBundleInfo abi, int handlerID)
+ {
+ this._currentLoadingDepCount--;
+ this.CheckDepComplete();
+ }
+
+ private void OnDepCompleteImm(AssetBundleInfo abi, int handlerID)
+ {
+ this._currentLoadingDepCount--;
+ this.CheckDepCompleteImm();
+ }
+
+ private void CheckDepComplete()
+ {
+ bool flag = this._currentLoadingDepCount == 0;
+ if (flag)
+ {
+ this.bundleManager.RequestLoadBundle(this);
+ }
+ }
+
+ private void CheckDepCompleteImm()
+ {
+ bool flag = this._currentLoadingDepCount == 0;
+ if (flag)
+ {
+ this.bundleManager.RequestLoadBundleImm(this);
+ }
+ }
+
+ protected override void Complete()
+ {
+ bool flag = this.bundleInfo == null && this.state != LoadState.State_Complete;
+ if (flag)
+ {
+ this.state = LoadState.State_Complete;
+ this.bundleInfo = this.bundleManager.CreateBundleInfo(this, null, this._bundle);
+ this.bundleInfo.isReady = true;
+ this.bundleInfo.onUnloaded = new AssetBundleInfo.OnUnloadedHandler(this.OnBundleUnload);
+ bool flag2 = this.depLoaders != null;
+ if (flag2)
+ {
+ for (int i = 0; i < this.depLoaders.Length; i++)
+ {
+ AssetBundleLoader assetBundleLoader = this.depLoaders[i];
+ this.bundleInfo.AddDependency(assetBundleLoader.bundleInfo);
+ }
+ }
+ this._bundle = null;
+ }
+ base.Complete();
+ }
+
+ private void OnBundleUnload(AssetBundleInfo abi)
+ {
+ this.bundleInfo = null;
+ this.state = LoadState.State_None;
+ }
+
+ protected override void Error()
+ {
+ this._hasError = true;
+ this.state = LoadState.State_Error;
+ this.bundleInfo = null;
+ base.Error();
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/MobileAssetBundleLoader.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/MobileAssetBundleLoader.cs.meta new file mode 100644 index 00000000..e660c0bd --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/MobileAssetBundleLoader.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f2261727f47e7ef48a3be15a59024796 +timeCreated: 1611465807 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/MultiActivityList.cs b/Client/Assets/Scripts/XUtliPoolLib/MultiActivityList.cs new file mode 100644 index 00000000..21814364 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/MultiActivityList.cs @@ -0,0 +1,111 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class MultiActivityList : CVSReader
+ {
+ public MultiActivityList.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int ID;
+
+ public string Name;
+
+ public SeqListRef<uint> OpenDayTime;
+
+ public uint GuildLevel;
+
+ public int DayCountMax;
+
+ public int SystemID;
+
+ public string RewardTips;
+
+ public string OpenDayTips;
+
+ public string Icon;
+
+ public bool NeedOpenAgain;
+
+ public uint OpenServerWeek;
+
+ public SeqListRef<uint> DropItems;
+
+ public bool HadShop;
+
+ public string AtlasPath;
+ }
+
+ public MultiActivityList.RowData GetByID(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ MultiActivityList.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].ID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ MultiActivityList.RowData rowData = new MultiActivityList.RowData();
+ base.Read<int>(reader, ref rowData.ID, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.Name, CVSReader.stringParse);
+ this.columnno = 1;
+ rowData.OpenDayTime.Read(reader, this.m_DataHandler);
+ this.columnno = 3;
+ base.Read<uint>(reader, ref rowData.GuildLevel, CVSReader.uintParse);
+ this.columnno = 4;
+ base.Read<int>(reader, ref rowData.DayCountMax, CVSReader.intParse);
+ this.columnno = 5;
+ base.Read<int>(reader, ref rowData.SystemID, CVSReader.intParse);
+ this.columnno = 6;
+ base.Read<string>(reader, ref rowData.RewardTips, CVSReader.stringParse);
+ this.columnno = 7;
+ base.Read<string>(reader, ref rowData.OpenDayTips, CVSReader.stringParse);
+ this.columnno = 8;
+ base.Read<string>(reader, ref rowData.Icon, CVSReader.stringParse);
+ this.columnno = 9;
+ base.Read<bool>(reader, ref rowData.NeedOpenAgain, CVSReader.boolParse);
+ this.columnno = 10;
+ base.Read<uint>(reader, ref rowData.OpenServerWeek, CVSReader.uintParse);
+ this.columnno = 12;
+ rowData.DropItems.Read(reader, this.m_DataHandler);
+ this.columnno = 14;
+ base.Read<bool>(reader, ref rowData.HadShop, CVSReader.boolParse);
+ this.columnno = 15;
+ base.Read<string>(reader, ref rowData.AtlasPath, CVSReader.stringParse);
+ this.columnno = 17;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new MultiActivityList.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/MultiActivityList.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/MultiActivityList.cs.meta new file mode 100644 index 00000000..6c481ea1 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/MultiActivityList.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 49c7cda12ab73a8409320f7b1c6dbecd +timeCreated: 1611465639 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/NestListTable.cs b/Client/Assets/Scripts/XUtliPoolLib/NestListTable.cs new file mode 100644 index 00000000..4b742485 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/NestListTable.cs @@ -0,0 +1,67 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class NestListTable : CVSReader
+ {
+ public NestListTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int NestID;
+
+ public int Type;
+
+ public int Difficulty;
+ }
+
+ public NestListTable.RowData GetByNestID(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ NestListTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].NestID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ NestListTable.RowData rowData = new NestListTable.RowData();
+ base.Read<int>(reader, ref rowData.NestID, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<int>(reader, ref rowData.Type, CVSReader.intParse);
+ this.columnno = 1;
+ base.Read<int>(reader, ref rowData.Difficulty, CVSReader.intParse);
+ this.columnno = 2;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new NestListTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/NestListTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/NestListTable.cs.meta new file mode 100644 index 00000000..b5ac055b --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/NestListTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b57e17c4f24a7f946bbd8d258e7607ab +timeCreated: 1611465746 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/NestStarReward.cs b/Client/Assets/Scripts/XUtliPoolLib/NestStarReward.cs new file mode 100644 index 00000000..7cb31f7b --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/NestStarReward.cs @@ -0,0 +1,52 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class NestStarReward : CVSReader
+ {
+ public NestStarReward.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint Type;
+
+ public uint Stars;
+
+ public uint IsHadTittle;
+
+ public string Tittle;
+
+ public SeqListRef<uint> Reward;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ NestStarReward.RowData rowData = new NestStarReward.RowData();
+ base.Read<uint>(reader, ref rowData.Type, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.Stars, CVSReader.uintParse);
+ this.columnno = 1;
+ base.Read<uint>(reader, ref rowData.IsHadTittle, CVSReader.uintParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.Tittle, CVSReader.stringParse);
+ this.columnno = 3;
+ rowData.Reward.Read(reader, this.m_DataHandler);
+ this.columnno = 4;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new NestStarReward.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/NestStarReward.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/NestStarReward.cs.meta new file mode 100644 index 00000000..2702cf97 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/NestStarReward.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 7bd488eae174546409ff3e61db13093f +timeCreated: 1611465692 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/NestTypeTable.cs b/Client/Assets/Scripts/XUtliPoolLib/NestTypeTable.cs new file mode 100644 index 00000000..e8d1b8e8 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/NestTypeTable.cs @@ -0,0 +1,75 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class NestTypeTable : CVSReader
+ {
+ public NestTypeTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int TypeID;
+
+ public string TypeName;
+
+ public string TypeBg;
+
+ public string TypeIcon;
+
+ public float[] TypeBgTransform;
+ }
+
+ public NestTypeTable.RowData GetByTypeID(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ NestTypeTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].TypeID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ NestTypeTable.RowData rowData = new NestTypeTable.RowData();
+ base.Read<int>(reader, ref rowData.TypeID, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.TypeName, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.TypeBg, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.TypeIcon, CVSReader.stringParse);
+ this.columnno = 3;
+ base.ReadArray<float>(reader, ref rowData.TypeBgTransform, CVSReader.floatParse);
+ this.columnno = 4;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new NestTypeTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/NestTypeTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/NestTypeTable.cs.meta new file mode 100644 index 00000000..59dce30d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/NestTypeTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: bc534ecc72cdcc440b7276917fc95406 +timeCreated: 1611465749 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/NoticeTable.cs b/Client/Assets/Scripts/XUtliPoolLib/NoticeTable.cs new file mode 100644 index 00000000..d42cebb8 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/NoticeTable.cs @@ -0,0 +1,125 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class NoticeTable : CVSReader
+ {
+ public NoticeTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint id;
+
+ public int channel;
+
+ public string info;
+
+ public uint linkparam;
+
+ public string linkcontent;
+ }
+
+ public NoticeTable.RowData GetByid(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ NoticeTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchid(key);
+ }
+ return result;
+ }
+
+ private NoticeTable.RowData BinarySearchid(uint key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ NoticeTable.RowData rowData;
+ NoticeTable.RowData rowData2;
+ NoticeTable.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.id == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.id == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.id.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.id.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ NoticeTable.RowData rowData = new NoticeTable.RowData();
+ base.Read<uint>(reader, ref rowData.id, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<int>(reader, ref rowData.channel, CVSReader.intParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.info, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<uint>(reader, ref rowData.linkparam, CVSReader.uintParse);
+ this.columnno = 7;
+ base.Read<string>(reader, ref rowData.linkcontent, CVSReader.stringParse);
+ this.columnno = 8;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new NoticeTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/NoticeTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/NoticeTable.cs.meta new file mode 100644 index 00000000..a5d95cd8 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/NoticeTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0fefee5b5302e15429843084eeb03d44 +timeCreated: 1611465290 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/NpcFeeling.cs b/Client/Assets/Scripts/XUtliPoolLib/NpcFeeling.cs new file mode 100644 index 00000000..800e1240 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/NpcFeeling.cs @@ -0,0 +1,124 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class NpcFeeling : CVSReader
+ {
+ public NpcFeeling.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint npcId;
+
+ public string name;
+
+ public string introduction;
+
+ public uint openLevel;
+
+ public SeqRef<uint> feelingLevel;
+
+ public SeqListRef<uint> likeItem;
+
+ public SeqListRef<uint> randomItem;
+
+ public SeqListRef<uint> favorItem;
+
+ public SeqListRef<uint> clientItem;
+
+ public SeqListRef<uint> exchangeGive;
+
+ public SeqListRef<uint> exchangeGet;
+
+ public SeqListRef<uint> npcReturn;
+
+ public string[] giveWords;
+
+ public string[] giveSuccessWords;
+
+ public string[] exchangeWords;
+
+ public string[] exchangeSuccessWords;
+
+ public uint npcReturnMailConf;
+
+ public string icon;
+
+ public uint unionId;
+
+ public string relicsName;
+
+ public string relicsIcon;
+
+ public string relicsDesc;
+
+ public uint xnpclistid;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ NpcFeeling.RowData rowData = new NpcFeeling.RowData();
+ base.Read<uint>(reader, ref rowData.npcId, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.name, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.introduction, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<uint>(reader, ref rowData.openLevel, CVSReader.uintParse);
+ this.columnno = 3;
+ rowData.feelingLevel.Read(reader, this.m_DataHandler);
+ this.columnno = 4;
+ rowData.likeItem.Read(reader, this.m_DataHandler);
+ this.columnno = 5;
+ rowData.randomItem.Read(reader, this.m_DataHandler);
+ this.columnno = 6;
+ rowData.favorItem.Read(reader, this.m_DataHandler);
+ this.columnno = 7;
+ rowData.clientItem.Read(reader, this.m_DataHandler);
+ this.columnno = 8;
+ rowData.exchangeGive.Read(reader, this.m_DataHandler);
+ this.columnno = 9;
+ rowData.exchangeGet.Read(reader, this.m_DataHandler);
+ this.columnno = 10;
+ rowData.npcReturn.Read(reader, this.m_DataHandler);
+ this.columnno = 11;
+ base.ReadArray<string>(reader, ref rowData.giveWords, CVSReader.stringParse);
+ this.columnno = 12;
+ base.ReadArray<string>(reader, ref rowData.giveSuccessWords, CVSReader.stringParse);
+ this.columnno = 13;
+ base.ReadArray<string>(reader, ref rowData.exchangeWords, CVSReader.stringParse);
+ this.columnno = 14;
+ base.ReadArray<string>(reader, ref rowData.exchangeSuccessWords, CVSReader.stringParse);
+ this.columnno = 15;
+ base.Read<uint>(reader, ref rowData.npcReturnMailConf, CVSReader.uintParse);
+ this.columnno = 16;
+ base.Read<string>(reader, ref rowData.icon, CVSReader.stringParse);
+ this.columnno = 17;
+ base.Read<uint>(reader, ref rowData.unionId, CVSReader.uintParse);
+ this.columnno = 18;
+ base.Read<string>(reader, ref rowData.relicsName, CVSReader.stringParse);
+ this.columnno = 19;
+ base.Read<string>(reader, ref rowData.relicsIcon, CVSReader.stringParse);
+ this.columnno = 20;
+ base.Read<string>(reader, ref rowData.relicsDesc, CVSReader.stringParse);
+ this.columnno = 21;
+ base.Read<uint>(reader, ref rowData.xnpclistid, CVSReader.uintParse);
+ this.columnno = 22;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new NpcFeeling.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/NpcFeeling.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/NpcFeeling.cs.meta new file mode 100644 index 00000000..ff1d6c99 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/NpcFeeling.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0bdf18a2fea1c8e47a5cad7820f8e156 +timeCreated: 1611465287 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/NpcFeelingAttr.cs b/Client/Assets/Scripts/XUtliPoolLib/NpcFeelingAttr.cs new file mode 100644 index 00000000..588cfd3c --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/NpcFeelingAttr.cs @@ -0,0 +1,52 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class NpcFeelingAttr : CVSReader
+ {
+ public NpcFeelingAttr.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint npcId;
+
+ public uint level;
+
+ public uint needExp;
+
+ public SeqListRef<uint> Attr;
+
+ public string RelicsDesc;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ NpcFeelingAttr.RowData rowData = new NpcFeelingAttr.RowData();
+ base.Read<uint>(reader, ref rowData.npcId, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.level, CVSReader.uintParse);
+ this.columnno = 1;
+ base.Read<uint>(reader, ref rowData.needExp, CVSReader.uintParse);
+ this.columnno = 2;
+ rowData.Attr.Read(reader, this.m_DataHandler);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.RelicsDesc, CVSReader.stringParse);
+ this.columnno = 4;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new NpcFeelingAttr.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/NpcFeelingAttr.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/NpcFeelingAttr.cs.meta new file mode 100644 index 00000000..846cba33 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/NpcFeelingAttr.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 33cf7f49fb7216247aba0acf33a13920 +timeCreated: 1611465311 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/NpcFeelingSpecial.cs b/Client/Assets/Scripts/XUtliPoolLib/NpcFeelingSpecial.cs new file mode 100644 index 00000000..7a149302 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/NpcFeelingSpecial.cs @@ -0,0 +1,40 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class NpcFeelingSpecial : CVSReader
+ {
+ public NpcFeelingSpecial.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint npcId;
+
+ public SeqListRef<uint> enhanceReduce;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ NpcFeelingSpecial.RowData rowData = new NpcFeelingSpecial.RowData();
+ base.Read<uint>(reader, ref rowData.npcId, CVSReader.uintParse);
+ this.columnno = 0;
+ rowData.enhanceReduce.Read(reader, this.m_DataHandler);
+ this.columnno = 1;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new NpcFeelingSpecial.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/NpcFeelingSpecial.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/NpcFeelingSpecial.cs.meta new file mode 100644 index 00000000..81c0e436 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/NpcFeelingSpecial.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 288aaadf744a63a498d99d000ae6fd6b +timeCreated: 1611465302 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/NpcUniteAttr.cs b/Client/Assets/Scripts/XUtliPoolLib/NpcUniteAttr.cs new file mode 100644 index 00000000..acfa5fd5 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/NpcUniteAttr.cs @@ -0,0 +1,56 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class NpcUniteAttr : CVSReader
+ {
+ public NpcUniteAttr.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint id;
+
+ public uint[] npcId;
+
+ public uint level;
+
+ public SeqListRef<uint> Attr;
+
+ public string Name;
+
+ public string Icon;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ NpcUniteAttr.RowData rowData = new NpcUniteAttr.RowData();
+ base.Read<uint>(reader, ref rowData.id, CVSReader.uintParse);
+ this.columnno = 0;
+ base.ReadArray<uint>(reader, ref rowData.npcId, CVSReader.uintParse);
+ this.columnno = 1;
+ base.Read<uint>(reader, ref rowData.level, CVSReader.uintParse);
+ this.columnno = 2;
+ rowData.Attr.Read(reader, this.m_DataHandler);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.Name, CVSReader.stringParse);
+ this.columnno = 4;
+ base.Read<string>(reader, ref rowData.Icon, CVSReader.stringParse);
+ this.columnno = 5;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new NpcUniteAttr.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/NpcUniteAttr.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/NpcUniteAttr.cs.meta new file mode 100644 index 00000000..037d6fa5 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/NpcUniteAttr.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 78b16fa8b0762444586943f07734e6b2 +timeCreated: 1611465691 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ObjectPool.cs b/Client/Assets/Scripts/XUtliPoolLib/ObjectPool.cs new file mode 100644 index 00000000..e4a7931b --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ObjectPool.cs @@ -0,0 +1,81 @@ +using System;
+using System.Collections.Generic;
+using UnityEngine.Events;
+
+namespace XUtliPoolLib
+{
+ public class ObjectPool<T> : IObjectPool
+ {
+ public int countAll { get; private set; }
+
+ public int countActive
+ {
+ get
+ {
+ return this.countAll - this.countInactive;
+ }
+ }
+
+ public int countInactive
+ {
+ get
+ {
+ return this.m_Stack.Count;
+ }
+ }
+
+ private readonly Stack<T> m_Stack = new Stack<T>();
+
+ private readonly UnityAction<T> m_ActionOnGet;
+
+ private readonly UnityAction<T> m_ActionOnRelease;
+
+ private ObjectPool<T>.CreateObj m_objCreator = null;
+
+ public delegate T CreateObj();
+
+ public ObjectPool(ObjectPool<T>.CreateObj creator, UnityAction<T> actionOnGet, UnityAction<T> actionOnRelease)
+ {
+ this.m_objCreator = creator;
+ this.m_ActionOnGet = actionOnGet;
+ this.m_ActionOnRelease = actionOnRelease;
+ ObjectPoolCache.s_AllPool.Add(this);
+ }
+
+ public T Get()
+ {
+ bool flag = this.m_Stack.Count == 0;
+ T t;
+ if (flag)
+ {
+ t = this.m_objCreator();
+ int countAll = this.countAll;
+ this.countAll = countAll + 1;
+ }
+ else
+ {
+ t = this.m_Stack.Pop();
+ }
+ bool flag2 = this.m_ActionOnGet != null;
+ if (flag2)
+ {
+ this.m_ActionOnGet.Invoke(t);
+ }
+ return t;
+ }
+
+ public void Release(T element)
+ {
+ bool flag = element != null;
+ if (flag)
+ {
+ bool flag2 = this.m_ActionOnRelease != null;
+ if (flag2)
+ {
+ this.m_ActionOnRelease.Invoke(element);
+ }
+ this.m_Stack.Push(element);
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ObjectPool.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ObjectPool.cs.meta new file mode 100644 index 00000000..4cda5538 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ObjectPool.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 873295f2d9375a74b9f05dab6ac4a459 +timeCreated: 1611465696 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ObjectPoolCache.cs b/Client/Assets/Scripts/XUtliPoolLib/ObjectPoolCache.cs new file mode 100644 index 00000000..535922e5 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ObjectPoolCache.cs @@ -0,0 +1,15 @@ +using System;
+using System.Collections.Generic;
+
+namespace XUtliPoolLib
+{
+ public class ObjectPoolCache
+ {
+ public static readonly List<IObjectPool> s_AllPool = new List<IObjectPool>();
+
+ public static void Clear()
+ {
+ ObjectPoolCache.s_AllPool.Clear();
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ObjectPoolCache.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ObjectPoolCache.cs.meta new file mode 100644 index 00000000..17406e48 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ObjectPoolCache.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1ed875c2e03fe814cae7084e6c6c1802 +timeCreated: 1611465299 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/OnFxDestroyed.cs b/Client/Assets/Scripts/XUtliPoolLib/OnFxDestroyed.cs new file mode 100644 index 00000000..41ab1455 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/OnFxDestroyed.cs @@ -0,0 +1,6 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public delegate void OnFxDestroyed(XFx fx);
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/OnFxDestroyed.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/OnFxDestroyed.cs.meta new file mode 100644 index 00000000..8fd20f58 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/OnFxDestroyed.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 15268214f9939c244974d13fdaf24dc9 +timeCreated: 1611465294 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/OnLoadedCallback.cs b/Client/Assets/Scripts/XUtliPoolLib/OnLoadedCallback.cs new file mode 100644 index 00000000..e871d268 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/OnLoadedCallback.cs @@ -0,0 +1,6 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public delegate void OnLoadedCallback();
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/OnLoadedCallback.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/OnLoadedCallback.cs.meta new file mode 100644 index 00000000..41fc28b6 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/OnLoadedCallback.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d7bb93b837fbe4546af4332c8a14af9a +timeCreated: 1611465764 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/OnlineRewardTable.cs b/Client/Assets/Scripts/XUtliPoolLib/OnlineRewardTable.cs new file mode 100644 index 00000000..50661437 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/OnlineRewardTable.cs @@ -0,0 +1,67 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class OnlineRewardTable : CVSReader
+ {
+ public OnlineRewardTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint time;
+
+ public SeqListRef<uint> reward;
+
+ public string RewardTip;
+ }
+
+ public OnlineRewardTable.RowData GetBytime(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ OnlineRewardTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].time == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ OnlineRewardTable.RowData rowData = new OnlineRewardTable.RowData();
+ base.Read<uint>(reader, ref rowData.time, CVSReader.uintParse);
+ this.columnno = 0;
+ rowData.reward.Read(reader, this.m_DataHandler);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.RewardTip, CVSReader.stringParse);
+ this.columnno = 2;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new OnlineRewardTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/OnlineRewardTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/OnlineRewardTable.cs.meta new file mode 100644 index 00000000..ebe4a63d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/OnlineRewardTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 86bb010f5c1c3244db48188db68e4117 +timeCreated: 1611465696 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/OpenServerActivity.cs b/Client/Assets/Scripts/XUtliPoolLib/OpenServerActivity.cs new file mode 100644 index 00000000..1e222f6f --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/OpenServerActivity.cs @@ -0,0 +1,113 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class OpenServerActivity : CVSReader
+ {
+ public OpenServerActivity.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint ServerLevel;
+
+ public uint[] TaskIDs;
+ }
+
+ public OpenServerActivity.RowData GetByServerLevel(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ OpenServerActivity.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchServerLevel(key);
+ }
+ return result;
+ }
+
+ private OpenServerActivity.RowData BinarySearchServerLevel(uint key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ OpenServerActivity.RowData rowData;
+ OpenServerActivity.RowData rowData2;
+ OpenServerActivity.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.ServerLevel == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.ServerLevel == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.ServerLevel.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.ServerLevel.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ OpenServerActivity.RowData rowData = new OpenServerActivity.RowData();
+ base.Read<uint>(reader, ref rowData.ServerLevel, CVSReader.uintParse);
+ this.columnno = 0;
+ base.ReadArray<uint>(reader, ref rowData.TaskIDs, CVSReader.uintParse);
+ this.columnno = 1;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new OpenServerActivity.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/OpenServerActivity.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/OpenServerActivity.cs.meta new file mode 100644 index 00000000..5dd29c34 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/OpenServerActivity.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d1e645a71437c8747b18c55d90cfe52c +timeCreated: 1611465761 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/OpenSystemTable.cs b/Client/Assets/Scripts/XUtliPoolLib/OpenSystemTable.cs new file mode 100644 index 00000000..61e05744 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/OpenSystemTable.cs @@ -0,0 +1,157 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class OpenSystemTable : CVSReader
+ {
+ public OpenSystemTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int PlayerLevel;
+
+ public int SystemID;
+
+ public string SystemDescription;
+
+ public string Icon;
+
+ public int Priority;
+
+ public int[] TitanItems;
+
+ public uint[] NoRedPointLevel;
+
+ public uint OpenDay;
+
+ public SeqListRef<uint> BackServerOpenDay;
+
+ public bool InNotice;
+
+ public SeqListRef<string> NoticeText;
+
+ public SeqListRef<string> NoticeIcon;
+
+ public string[] NoticeEffect;
+ }
+
+ public OpenSystemTable.RowData GetBySystemID(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ OpenSystemTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchSystemID(key);
+ }
+ return result;
+ }
+
+ private OpenSystemTable.RowData BinarySearchSystemID(int key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ OpenSystemTable.RowData rowData;
+ OpenSystemTable.RowData rowData2;
+ OpenSystemTable.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.SystemID == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.SystemID == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.SystemID.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.SystemID.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ OpenSystemTable.RowData rowData = new OpenSystemTable.RowData();
+ base.Read<int>(reader, ref rowData.PlayerLevel, CVSReader.intParse);
+ this.columnno = 1;
+ base.Read<int>(reader, ref rowData.SystemID, CVSReader.intParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.SystemDescription, CVSReader.stringParse);
+ this.columnno = 4;
+ base.Read<string>(reader, ref rowData.Icon, CVSReader.stringParse);
+ this.columnno = 5;
+ base.Read<int>(reader, ref rowData.Priority, CVSReader.intParse);
+ this.columnno = 6;
+ base.ReadArray<int>(reader, ref rowData.TitanItems, CVSReader.intParse);
+ this.columnno = 7;
+ base.ReadArray<uint>(reader, ref rowData.NoRedPointLevel, CVSReader.uintParse);
+ this.columnno = 8;
+ base.Read<uint>(reader, ref rowData.OpenDay, CVSReader.uintParse);
+ this.columnno = 11;
+ rowData.BackServerOpenDay.Read(reader, this.m_DataHandler);
+ this.columnno = 13;
+ base.Read<bool>(reader, ref rowData.InNotice, CVSReader.boolParse);
+ this.columnno = 14;
+ rowData.NoticeText.Read(reader, this.m_DataHandler);
+ this.columnno = 15;
+ rowData.NoticeIcon.Read(reader, this.m_DataHandler);
+ this.columnno = 16;
+ base.ReadArray<string>(reader, ref rowData.NoticeEffect, CVSReader.stringParse);
+ this.columnno = 17;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new OpenSystemTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/OpenSystemTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/OpenSystemTable.cs.meta new file mode 100644 index 00000000..2143d1d0 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/OpenSystemTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ac22931dc6c39c64782949360fbf7a4f +timeCreated: 1611465741 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/OperatingActivity.cs b/Client/Assets/Scripts/XUtliPoolLib/OperatingActivity.cs new file mode 100644 index 00000000..4910a537 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/OperatingActivity.cs @@ -0,0 +1,64 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class OperatingActivity : CVSReader
+ {
+ public OperatingActivity.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint OrderId;
+
+ public string SysEnum;
+
+ public uint SysID;
+
+ public string TabName;
+
+ public string TabIcon;
+
+ public bool IsPandoraTab;
+
+ public string[] OpenTime;
+
+ public uint Level;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ OperatingActivity.RowData rowData = new OperatingActivity.RowData();
+ base.Read<uint>(reader, ref rowData.OrderId, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.SysEnum, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<uint>(reader, ref rowData.SysID, CVSReader.uintParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.TabName, CVSReader.stringParse);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.TabIcon, CVSReader.stringParse);
+ this.columnno = 4;
+ base.Read<bool>(reader, ref rowData.IsPandoraTab, CVSReader.boolParse);
+ this.columnno = 5;
+ base.ReadArray<string>(reader, ref rowData.OpenTime, CVSReader.stringParse);
+ this.columnno = 6;
+ base.Read<uint>(reader, ref rowData.Level, CVSReader.uintParse);
+ this.columnno = 7;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new OperatingActivity.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/OperatingActivity.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/OperatingActivity.cs.meta new file mode 100644 index 00000000..2d799010 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/OperatingActivity.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ba1b7fc3ab8b57842b4e9c3c529a3b30 +timeCreated: 1611465748 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/OperationRecord.cs b/Client/Assets/Scripts/XUtliPoolLib/OperationRecord.cs new file mode 100644 index 00000000..20f90577 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/OperationRecord.cs @@ -0,0 +1,40 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class OperationRecord : CVSReader
+ {
+ public OperationRecord.RowData[] Table = null;
+
+ public class RowData
+ {
+ public string WindowName;
+
+ public uint RecordID;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ OperationRecord.RowData rowData = new OperationRecord.RowData();
+ base.Read<string>(reader, ref rowData.WindowName, CVSReader.stringParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.RecordID, CVSReader.uintParse);
+ this.columnno = 1;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new OperationRecord.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/OperationRecord.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/OperationRecord.cs.meta new file mode 100644 index 00000000..e4dc2d1f --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/OperationRecord.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: af5400af10accfc4b82948fcff23fe04 +timeCreated: 1611465743 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/OverWatchTable.cs b/Client/Assets/Scripts/XUtliPoolLib/OverWatchTable.cs new file mode 100644 index 00000000..fa077c32 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/OverWatchTable.cs @@ -0,0 +1,123 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class OverWatchTable : CVSReader
+ {
+ public OverWatchTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint HeroID;
+
+ public uint[] StatisticsID;
+
+ public SeqRef<uint> Price;
+
+ public string Name;
+
+ public string Icon;
+
+ public string Description;
+
+ public string CutSceneAniamtion;
+
+ public string CutSceneIdleAni;
+
+ public int SortID;
+
+ public string Motto;
+
+ public string MiniMapIcon;
+
+ public float[] MobaAttributes;
+
+ public string SelectAnim;
+
+ public string[] SelectFx;
+
+ public string HeroUseTips;
+
+ public string MobaUseTips;
+
+ public string IconAtlas;
+ }
+
+ public OverWatchTable.RowData GetByHeroID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ OverWatchTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].HeroID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ OverWatchTable.RowData rowData = new OverWatchTable.RowData();
+ base.Read<uint>(reader, ref rowData.HeroID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.ReadArray<uint>(reader, ref rowData.StatisticsID, CVSReader.uintParse);
+ this.columnno = 1;
+ rowData.Price.Read(reader, this.m_DataHandler);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.Name, CVSReader.stringParse);
+ this.columnno = 4;
+ base.Read<string>(reader, ref rowData.Icon, CVSReader.stringParse);
+ this.columnno = 5;
+ base.Read<string>(reader, ref rowData.Description, CVSReader.stringParse);
+ this.columnno = 6;
+ base.Read<string>(reader, ref rowData.CutSceneAniamtion, CVSReader.stringParse);
+ this.columnno = 7;
+ base.Read<string>(reader, ref rowData.CutSceneIdleAni, CVSReader.stringParse);
+ this.columnno = 8;
+ base.Read<int>(reader, ref rowData.SortID, CVSReader.intParse);
+ this.columnno = 10;
+ base.Read<string>(reader, ref rowData.Motto, CVSReader.stringParse);
+ this.columnno = 11;
+ base.Read<string>(reader, ref rowData.MiniMapIcon, CVSReader.stringParse);
+ this.columnno = 12;
+ base.ReadArray<float>(reader, ref rowData.MobaAttributes, CVSReader.floatParse);
+ this.columnno = 13;
+ base.Read<string>(reader, ref rowData.SelectAnim, CVSReader.stringParse);
+ this.columnno = 14;
+ base.ReadArray<string>(reader, ref rowData.SelectFx, CVSReader.stringParse);
+ this.columnno = 15;
+ base.Read<string>(reader, ref rowData.HeroUseTips, CVSReader.stringParse);
+ this.columnno = 16;
+ base.Read<string>(reader, ref rowData.MobaUseTips, CVSReader.stringParse);
+ this.columnno = 17;
+ base.Read<string>(reader, ref rowData.IconAtlas, CVSReader.stringParse);
+ this.columnno = 18;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new OverWatchTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/OverWatchTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/OverWatchTable.cs.meta new file mode 100644 index 00000000..9c575115 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/OverWatchTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 134d2b878c28fb74188536417ac18632 +timeCreated: 1611465292 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/OverrideAnimCallback.cs b/Client/Assets/Scripts/XUtliPoolLib/OverrideAnimCallback.cs new file mode 100644 index 00000000..bf5471c4 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/OverrideAnimCallback.cs @@ -0,0 +1,6 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public delegate void OverrideAnimCallback(XAnimationClip clip);
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/OverrideAnimCallback.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/OverrideAnimCallback.cs.meta new file mode 100644 index 00000000..ffcb75b7 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/OverrideAnimCallback.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 5880a69d0700ef348954e2b3ea0fe7eb +timeCreated: 1611465646 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/PDatabase.cs b/Client/Assets/Scripts/XUtliPoolLib/PDatabase.cs new file mode 100644 index 00000000..bb88b9d9 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PDatabase.cs @@ -0,0 +1,486 @@ +using System;
+using System.Collections.Generic;
+using MiniJSON;
+
+namespace XUtliPoolLib
+{
+ public class PDatabase : XSingleton<PDatabase>
+ {
+ public PlayerInfo playerInfo;
+
+ public FriendInfo friendsInfo;
+
+ public WXGroupInfo wxGroupInfo;
+
+ public ShareCallBackType shareCallbackType = ShareCallBackType.Normal;
+
+ public WXGroupCallBackType wxGroupCallbackType = WXGroupCallBackType.Guild;
+
+ public void HandleExData(string msg)
+ {
+ XSingleton<XDebug>.singleton.AddLog("[PDatabase]HandleExData msg" + msg, null, null, null, null, null, XDebugColor.XDebug_None);
+ switch (this.GetApiId(msg))
+ {
+ case 1:
+ this.SerialPlayerInfo(msg);
+ break;
+ case 2:
+ this.SerialFriendsInfo(msg);
+ break;
+ case 6:
+ this.SerialGuildGroupResult(msg);
+ break;
+ case 7:
+ this.SerialGuildGroupInfo(msg);
+ break;
+ case 8:
+ this.SerialGuildGroupResult(msg);
+ break;
+ case 9:
+ this.SerialShareResult(msg);
+ break;
+ case 12:
+ this.SerialHandleReplay(msg);
+ break;
+ case 16:
+ this.SerialQQVipPayInfo(msg);
+ break;
+ case 17:
+ this.SerialPaySubscribeInfo(msg);
+ break;
+ case 18:
+ this.SerialMarketingInfo(msg);
+ break;
+ case 19:
+ this.SerialGameCenterLaunch(msg);
+ break;
+ case 20:
+ this.SerialHandle3DTouch(msg);
+ break;
+ case 21:
+ this.SerialHandleScreenLock(msg);
+ break;
+ case 22:
+ this.SerialBuyGoodsInfo(msg);
+ break;
+ case 23:
+ this.SerialPandoraSDKBuyGoodsInfo(msg);
+ break;
+ }
+ }
+
+ private int GetApiId(string msg)
+ {
+ Dictionary<string, object> dictionary = Json.Deserialize(msg) as Dictionary<string, object>;
+ int result = 1;
+ int.TryParse(dictionary["apiId"].ToString(), out result);
+ return result;
+ }
+
+ public void SerialPlayerInfo(string msg)
+ {
+ this.playerInfo = XSingleton<PUtil>.singleton.Deserialize<PlayerInfo>(msg);
+ }
+
+ public void SerialFriendsInfo(string msg)
+ {
+ this.friendsInfo = XSingleton<PUtil>.singleton.Deserialize<FriendInfo>(msg);
+ IUiUtility @interface = XSingleton<XInterfaceMgr>.singleton.GetInterface<IUiUtility>(XSingleton<XCommon>.singleton.XHash("IUiUtility"));
+ bool flag = @interface == null;
+ if (flag)
+ {
+ XSingleton<XDebug>.singleton.AddLog("[PDatabase]SerialFriendsInfo entrance == null", null, null, null, null, null, XDebugColor.XDebug_None);
+ }
+ else
+ {
+ @interface.OnGetPlatFriendsInfo();
+ }
+ }
+
+ public void SerialGuildGroupResult(string msg)
+ {
+ XSingleton<XDebug>.singleton.AddLog("[PDatabase]SerialGuildGroupResult msg" + msg, null, null, null, null, null, XDebugColor.XDebug_None);
+ WXGroupResult wxgroupResult = XSingleton<PUtil>.singleton.Deserialize<WXGroupResult>(msg);
+ bool flag = wxgroupResult == null;
+ if (flag)
+ {
+ XSingleton<XDebug>.singleton.AddLog("[PDatabase]SerialGuildGroupResult wxGroupResult == null", null, null, null, null, null, XDebugColor.XDebug_None);
+ }
+ else
+ {
+ IUiUtility @interface = XSingleton<XInterfaceMgr>.singleton.GetInterface<IUiUtility>(XSingleton<XCommon>.singleton.XHash("IUiUtility"));
+ bool flag2 = @interface == null;
+ if (flag2)
+ {
+ XSingleton<XDebug>.singleton.AddLog("[PDatabase]SerialGuildGroupResult entrance == null", null, null, null, null, null, XDebugColor.XDebug_None);
+ }
+ else
+ {
+ @interface.OnWXGroupResult(wxgroupResult.apiId.ToString(), wxgroupResult.data.flag, wxgroupResult.data.errorCode, this.wxGroupCallbackType);
+ }
+ }
+ }
+
+ public void SerialGuildGroupInfo(string msg)
+ {
+ XSingleton<XDebug>.singleton.AddLog("[PDatabase]SerialGuildGroupInfo msg" + msg, null, null, null, null, null, XDebugColor.XDebug_None);
+ this.wxGroupInfo = XSingleton<PUtil>.singleton.Deserialize<WXGroupInfo>(msg);
+ bool flag = this.wxGroupInfo == null;
+ if (flag)
+ {
+ XSingleton<XDebug>.singleton.AddLog("[PDatabase]SerialGuildGroupInfo wxGroupInfo == null", null, null, null, null, null, XDebugColor.XDebug_None);
+ }
+ else
+ {
+ IUiUtility @interface = XSingleton<XInterfaceMgr>.singleton.GetInterface<IUiUtility>(XSingleton<XCommon>.singleton.XHash("IUiUtility"));
+ bool flag2 = @interface == null;
+ if (flag2)
+ {
+ XSingleton<XDebug>.singleton.AddLog("[PDatabase]SerialGuildGroupInfo entrance == null", null, null, null, null, null, XDebugColor.XDebug_None);
+ }
+ else
+ {
+ @interface.RefreshWXGroupBtn(this.wxGroupCallbackType);
+ }
+ }
+ }
+
+ public void SerialShareResult(string msg)
+ {
+ XSingleton<XDebug>.singleton.AddLog("[PDatabase]SerialShareResult msg" + msg, null, null, null, null, null, XDebugColor.XDebug_None);
+ Dictionary<string, object> dictionary = Json.Deserialize(msg) as Dictionary<string, object>;
+ bool flag = dictionary == null;
+ if (flag)
+ {
+ XSingleton<XDebug>.singleton.AddLog("[PDatabase]SerialShareResult dict == null", null, null, null, null, null, XDebugColor.XDebug_None);
+ }
+ else
+ {
+ object obj = null;
+ bool flag2 = dictionary.TryGetValue("data", out obj);
+ if (flag2)
+ {
+ IUiUtility @interface = XSingleton<XInterfaceMgr>.singleton.GetInterface<IUiUtility>(XSingleton<XCommon>.singleton.XHash("IUiUtility"));
+ bool flag3 = @interface != null;
+ if (flag3)
+ {
+ @interface.NoticeShareResult(obj.ToString(), this.shareCallbackType);
+ }
+ }
+ this.shareCallbackType = ShareCallBackType.Normal;
+ }
+ }
+
+ public void SerialQQVipPayInfo(string msg)
+ {
+ XSingleton<XDebug>.singleton.AddLog("[PDatabase]SerialQQVipPayInfo msg" + msg, null, null, null, null, null, XDebugColor.XDebug_None);
+ Dictionary<string, object> dictionary = Json.Deserialize(msg) as Dictionary<string, object>;
+ bool flag = dictionary == null;
+ if (flag)
+ {
+ XSingleton<XDebug>.singleton.AddLog("[PDatabase]SerialQQVipPayInfo dict == null", null, null, null, null, null, XDebugColor.XDebug_None);
+ }
+ else
+ {
+ IUiUtility @interface = XSingleton<XInterfaceMgr>.singleton.GetInterface<IUiUtility>(XSingleton<XCommon>.singleton.XHash("IUiUtility"));
+ object obj;
+ bool flag2 = dictionary.TryGetValue("data", out obj);
+ if (flag2)
+ {
+ Dictionary<string, object> dictionary2 = obj as Dictionary<string, object>;
+ object obj2;
+ bool flag3 = dictionary2.TryGetValue("flag", out obj2);
+ if (flag3)
+ {
+ bool flag4 = @interface != null;
+ if (flag4)
+ {
+ XSingleton<XDebug>.singleton.AddLog("[PDatabase]SerialQQVipPayInfo result =" + obj2.ToString(), null, null, null, null, null, XDebugColor.XDebug_None);
+ @interface.OnQQVipPayCallback(obj2.ToString());
+ }
+ }
+ }
+ }
+ }
+
+ private void SerialGameCenterLaunch(string msg)
+ {
+ XSingleton<XDebug>.singleton.AddLog("[PDatabase]SerialGameCenterLaunch msg" + msg, null, null, null, null, null, XDebugColor.XDebug_None);
+ Dictionary<string, object> dictionary = Json.Deserialize(msg) as Dictionary<string, object>;
+ bool flag = dictionary == null;
+ if (flag)
+ {
+ XSingleton<XDebug>.singleton.AddLog("[PDatabase]SerialGameCenterLaunch dict == null", null, null, null, null, null, XDebugColor.XDebug_None);
+ }
+ else
+ {
+ IUiUtility @interface = XSingleton<XInterfaceMgr>.singleton.GetInterface<IUiUtility>(XSingleton<XCommon>.singleton.XHash("IUiUtility"));
+ object obj;
+ bool flag2 = dictionary.TryGetValue("data", out obj) && @interface != null;
+ if (flag2)
+ {
+ Dictionary<string, object> dictionary2 = obj as Dictionary<string, object>;
+ object obj2 = null;
+ bool flag3 = dictionary2 != null && dictionary2.TryGetValue("wakeup_platform", out obj2);
+ if (flag3)
+ {
+ XSingleton<XDebug>.singleton.AddLog("[SerialGameCenterLaunch] platform: " + obj2.ToString(), null, null, null, null, null, XDebugColor.XDebug_None);
+ bool flag4 = (long)obj2 == 1L;
+ if (flag4)
+ {
+ XSingleton<XDebug>.singleton.AddLog("[SerialGameCenterLaunch] platform == 1", null, null, null, null, null, XDebugColor.XDebug_None);
+ object obj3 = null;
+ bool flag5 = dictionary2.TryGetValue("wakeup_wx_extInfo", out obj3);
+ if (flag5)
+ {
+ bool flag6 = obj3.ToString() == "WX_GameCenter";
+ if (flag6)
+ {
+ @interface.OnGameCenterWakeUp(3);
+ XSingleton<XDebug>.singleton.AddLog("[SerialGameCenterLaunch] StartUpType.StartUp_WX", null, null, null, null, null, XDebugColor.XDebug_None);
+ }
+ }
+ }
+ else
+ {
+ bool flag7 = (long)obj2 == 2L;
+ if (flag7)
+ {
+ XSingleton<XDebug>.singleton.AddLog("[SerialGameCenterLaunch] platform == 2", null, null, null, null, null, XDebugColor.XDebug_None);
+ object obj4 = null;
+ bool flag8 = dictionary2.TryGetValue("wakeup_qq_extInfo", out obj4);
+ if (flag8)
+ {
+ bool flag9 = obj4.ToString() == "sq_gamecenter";
+ if (flag9)
+ {
+ @interface.OnGameCenterWakeUp(2);
+ XSingleton<XDebug>.singleton.AddLog("[SerialGameCenterLaunch] StartUpType.StartUp_QQ", null, null, null, null, null, XDebugColor.XDebug_None);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ private void SerialHandle3DTouch(string msg)
+ {
+ IUiUtility @interface = XSingleton<XInterfaceMgr>.singleton.GetInterface<IUiUtility>(XSingleton<XCommon>.singleton.XHash("IUiUtility"));
+ bool flag = @interface != null;
+ if (flag)
+ {
+ @interface.SerialHandle3DTouch(msg);
+ }
+ }
+
+ private void SerialHandleScreenLock(string msg)
+ {
+ IUiUtility @interface = XSingleton<XInterfaceMgr>.singleton.GetInterface<IUiUtility>(XSingleton<XCommon>.singleton.XHash("IUiUtility"));
+ bool flag = @interface != null;
+ if (flag)
+ {
+ @interface.SerialHandleScreenLock(msg);
+ }
+ }
+
+ private void SerialMarketingInfo(string msg)
+ {
+ XSingleton<XDebug>.singleton.AddLog("[PDatabase]SerialMarketingInfo msg" + msg, null, null, null, null, null, XDebugColor.XDebug_None);
+ Dictionary<string, object> dictionary = Json.Deserialize(msg) as Dictionary<string, object>;
+ bool flag = dictionary == null;
+ if (flag)
+ {
+ XSingleton<XDebug>.singleton.AddLog("[PDatabase]SerialMarketingInfo dict == null", null, null, null, null, null, XDebugColor.XDebug_None);
+ }
+ else
+ {
+ IUiUtility @interface = XSingleton<XInterfaceMgr>.singleton.GetInterface<IUiUtility>(XSingleton<XCommon>.singleton.XHash("IUiUtility"));
+ object obj;
+ bool flag2 = dictionary.TryGetValue("data", out obj) && @interface != null;
+ if (flag2)
+ {
+ XSingleton<XDebug>.singleton.AddLog("[PDatabase]SerialMarketingInfo data", null, null, null, null, null, XDebugColor.XDebug_None);
+ Dictionary<string, object> dictionary2 = obj as Dictionary<string, object>;
+ object obj2 = null;
+ bool flag3 = dictionary2 != null && dictionary2.TryGetValue("flag", out obj2);
+ if (flag3)
+ {
+ XSingleton<XDebug>.singleton.AddLog("[PDatabase]SerialMarketingInfo flag", null, null, null, null, null, XDebugColor.XDebug_None);
+ bool flag4 = obj2.ToString() == "Success";
+ if (flag4)
+ {
+ object obj3 = null;
+ bool flag5 = dictionary2 != null && dictionary2.TryGetValue("mpinfo", out obj3);
+ if (flag5)
+ {
+ XSingleton<XDebug>.singleton.AddLog("[PDatabase]SerialMarketingInfo mpinfo", null, null, null, null, null, XDebugColor.XDebug_None);
+ List<object> list = obj3 as List<object>;
+ bool flag6 = list != null;
+ if (flag6)
+ {
+ XSingleton<XDebug>.singleton.AddLog("[PDatabase]SerialMarketingInfo array != null", null, null, null, null, null, XDebugColor.XDebug_None);
+ List<PayMarketingInfo> list2 = new List<PayMarketingInfo>();
+ for (int i = 0; i < list.Count; i++)
+ {
+ object obj4 = list[i];
+ Dictionary<string, object> dictionary3 = obj4 as Dictionary<string, object>;
+ PayMarketingInfo payMarketingInfo = new PayMarketingInfo();
+ object obj5 = null;
+ bool flag7 = dictionary3 != null && dictionary3.TryGetValue("num", out obj5);
+ if (flag7)
+ {
+ XSingleton<XDebug>.singleton.AddLog("[PDatabase]SerialMarketingInfo num = " + obj5.ToString(), null, null, null, null, null, XDebugColor.XDebug_None);
+ payMarketingInfo.diamondCount = int.Parse(obj5.ToString());
+ }
+ object obj6 = null;
+ bool flag8 = dictionary3 != null && dictionary3.TryGetValue("send_num", out obj6);
+ if (flag8)
+ {
+ XSingleton<XDebug>.singleton.AddLog("[PDatabase]SerialMarketingInfo send_num = " + obj6.ToString(), null, null, null, null, null, XDebugColor.XDebug_None);
+ payMarketingInfo.sendCount = int.Parse(obj6.ToString());
+ }
+ object obj7 = null;
+ bool flag9 = dictionary3 != null && dictionary3.TryGetValue("send_ext", out obj7);
+ if (flag9)
+ {
+ XSingleton<XDebug>.singleton.AddLog("[PDatabase]SerialMarketingInfo send_ext = " + obj7.ToString(), null, null, null, null, null, XDebugColor.XDebug_None);
+ payMarketingInfo.sendExt = obj7.ToString();
+ }
+ list2.Add(payMarketingInfo);
+ }
+ @interface.OnPayMarketingInfo(list2);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ private void SerialPaySubscribeInfo(string msg)
+ {
+ XSingleton<XDebug>.singleton.AddLog("[PDatabase]SerialPaySubscribeInfo msg" + msg, null, null, null, null, null, XDebugColor.XDebug_None);
+ Dictionary<string, object> dictionary = Json.Deserialize(msg) as Dictionary<string, object>;
+ bool flag = dictionary == null;
+ if (flag)
+ {
+ XSingleton<XDebug>.singleton.AddLog("[PDatabase]SerialPaySubscribeInfo dict == null", null, null, null, null, null, XDebugColor.XDebug_None);
+ }
+ else
+ {
+ IUiUtility @interface = XSingleton<XInterfaceMgr>.singleton.GetInterface<IUiUtility>(XSingleton<XCommon>.singleton.XHash("IUiUtility"));
+ object obj;
+ bool flag2 = dictionary.TryGetValue("data", out obj);
+ if (flag2)
+ {
+ Dictionary<string, object> dictionary2 = obj as Dictionary<string, object>;
+ object obj2 = null;
+ bool flag3 = dictionary2 != null && dictionary2.TryGetValue("flag", out obj2);
+ if (flag3)
+ {
+ bool flag4 = @interface != null;
+ if (flag4)
+ {
+ XSingleton<XDebug>.singleton.AddLog("[PDatabase]SerialPaySubscribeInfo result =" + obj2.ToString(), null, null, null, null, null, XDebugColor.XDebug_None);
+ @interface.OnPayCallback(obj2.ToString());
+ return;
+ }
+ }
+ }
+ bool flag5 = @interface != null;
+ if (flag5)
+ {
+ @interface.OnPayCallback("Failure");
+ }
+ }
+ }
+
+ private void SerialBuyGoodsInfo(string msg)
+ {
+ XSingleton<XDebug>.singleton.AddLog("[PDatabase]SerialBuyGoodsInfo msg" + msg, null, null, null, null, null, XDebugColor.XDebug_None);
+ Dictionary<string, object> dictionary = Json.Deserialize(msg) as Dictionary<string, object>;
+ bool flag = dictionary == null;
+ if (flag)
+ {
+ XSingleton<XDebug>.singleton.AddLog("[PDatabase]SerialBuyGoodsInfo dict == null", null, null, null, null, null, XDebugColor.XDebug_None);
+ }
+ else
+ {
+ IUiUtility @interface = XSingleton<XInterfaceMgr>.singleton.GetInterface<IUiUtility>(XSingleton<XCommon>.singleton.XHash("IUiUtility"));
+ object obj;
+ bool flag2 = dictionary.TryGetValue("data", out obj);
+ if (flag2)
+ {
+ Dictionary<string, object> dictionary2 = obj as Dictionary<string, object>;
+ object obj2 = null;
+ bool flag3 = dictionary2 != null && dictionary2.TryGetValue("flag", out obj2);
+ if (flag3)
+ {
+ bool flag4 = @interface != null;
+ if (flag4)
+ {
+ XSingleton<XDebug>.singleton.AddLog("[PDatabase]SerialBuyGoodsInfo result =" + obj2.ToString(), null, null, null, null, null, XDebugColor.XDebug_None);
+ @interface.OnPayCallback(obj2.ToString());
+ return;
+ }
+ }
+ }
+ bool flag5 = @interface != null;
+ if (flag5)
+ {
+ @interface.OnPayCallback("Failure");
+ }
+ }
+ }
+
+ private void SerialPandoraSDKBuyGoodsInfo(string msg)
+ {
+ XSingleton<XDebug>.singleton.AddLog("[PDatabase]SerialPandoraSDKBuyGoodsInfo msg" + msg, null, null, null, null, null, XDebugColor.XDebug_None);
+ Dictionary<string, object> dictionary = Json.Deserialize(msg) as Dictionary<string, object>;
+ bool flag = dictionary == null;
+ if (flag)
+ {
+ XSingleton<XDebug>.singleton.AddLog("[PDatabase]SerialPandoraSDKBuyGoodsInfo dict == null", null, null, null, null, null, XDebugColor.XDebug_None);
+ }
+ else
+ {
+ IUiUtility @interface = XSingleton<XInterfaceMgr>.singleton.GetInterface<IUiUtility>(XSingleton<XCommon>.singleton.XHash("IUiUtility"));
+ object obj;
+ bool flag2 = dictionary.TryGetValue("data", out obj);
+ if (flag2)
+ {
+ Dictionary<string, object> dictionary2 = obj as Dictionary<string, object>;
+ object obj2 = null;
+ bool flag3 = dictionary2 != null && dictionary2.TryGetValue("flag", out obj2);
+ if (flag3)
+ {
+ bool flag4 = @interface != null;
+ if (flag4)
+ {
+ XSingleton<XDebug>.singleton.AddLog("[PDatabase]SerialBuyGoodsInfo result =" + obj2.ToString(), null, null, null, null, null, XDebugColor.XDebug_None);
+ @interface.OnPayCallback(obj2.ToString());
+ return;
+ }
+ }
+ }
+ bool flag5 = @interface != null;
+ if (flag5)
+ {
+ @interface.OnPayCallback("Failure");
+ }
+ }
+ }
+
+ private void SerialHandleReplay(string msg)
+ {
+ IUiUtility @interface = XSingleton<XInterfaceMgr>.singleton.GetInterface<IUiUtility>(XSingleton<XCommon>.singleton.XHash("IUiUtility"));
+ bool flag = @interface != null;
+ if (flag)
+ {
+ @interface.OnReplayStart();
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/PDatabase.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/PDatabase.cs.meta new file mode 100644 index 00000000..6adc21ca --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PDatabase.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2ef717fd4ce59044689548b3a2691e04 +timeCreated: 1611465306 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/PInfo.cs b/Client/Assets/Scripts/XUtliPoolLib/PInfo.cs new file mode 100644 index 00000000..f9672137 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PInfo.cs @@ -0,0 +1,11 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class PInfo
+ {
+ public int apiId;
+
+ public object data;
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/PInfo.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/PInfo.cs.meta new file mode 100644 index 00000000..4cb60cf0 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PInfo.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 76afc9a2cc527064dbd927c3b73eeb6c +timeCreated: 1611465690 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/PUtil.cs b/Client/Assets/Scripts/XUtliPoolLib/PUtil.cs new file mode 100644 index 00000000..20ad4d6a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PUtil.cs @@ -0,0 +1,58 @@ +using System;
+using System.Collections;
+using System.Text;
+using DeJson;
+
+namespace XUtliPoolLib
+{
+ public class PUtil : XSingleton<PUtil>
+ {
+ public Deserializer deserial
+ {
+ get
+ {
+ bool flag = this._deserial == null;
+ if (flag)
+ {
+ this._deserial = new Deserializer();
+ }
+ return this._deserial;
+ }
+ }
+
+ private Deserializer _deserial;
+
+ public T Deserialize<T>(string str)
+ {
+ return this.deserial.Deserialize<T>(str);
+ }
+
+ public T Deserialize<T>(object o)
+ {
+ return this.deserial.Deserialize<T>(o);
+ }
+
+ public string SerializeArray(IList array)
+ {
+ StringBuilder stringBuilder = new StringBuilder();
+ stringBuilder.Append('[');
+ int num = 0;
+ foreach (object value in array)
+ {
+ num++;
+ bool flag = num < array.Count;
+ if (flag)
+ {
+ stringBuilder.Append(value);
+ stringBuilder.Append(',');
+ }
+ else
+ {
+ stringBuilder.Append(value);
+ }
+ }
+ stringBuilder.Append(']');
+ return stringBuilder.ToString();
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/PUtil.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/PUtil.cs.meta new file mode 100644 index 00000000..b230e79a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PUtil.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 537c785ba30f7fc419d081ddc41c1f6c +timeCreated: 1611465644 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/PVEAttrModify.cs b/Client/Assets/Scripts/XUtliPoolLib/PVEAttrModify.cs new file mode 100644 index 00000000..f5fd8612 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PVEAttrModify.cs @@ -0,0 +1,109 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class PVEAttrModify : CVSReader
+ {
+ public PVEAttrModify.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint SceneID;
+ }
+
+ public PVEAttrModify.RowData GetBySceneID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ PVEAttrModify.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchSceneID(key);
+ }
+ return result;
+ }
+
+ private PVEAttrModify.RowData BinarySearchSceneID(uint key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ PVEAttrModify.RowData rowData;
+ PVEAttrModify.RowData rowData2;
+ PVEAttrModify.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.SceneID == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.SceneID == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.SceneID.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.SceneID.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ PVEAttrModify.RowData rowData = new PVEAttrModify.RowData();
+ base.Read<uint>(reader, ref rowData.SceneID, CVSReader.uintParse);
+ this.columnno = 0;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new PVEAttrModify.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/PVEAttrModify.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/PVEAttrModify.cs.meta new file mode 100644 index 00000000..1194fb13 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PVEAttrModify.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 888216d7f256c8549a7c4db7c28f24bc +timeCreated: 1611465698 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/PVPActivityList.cs b/Client/Assets/Scripts/XUtliPoolLib/PVPActivityList.cs new file mode 100644 index 00000000..7b72b9fa --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PVPActivityList.cs @@ -0,0 +1,67 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class PVPActivityList : CVSReader
+ {
+ public PVPActivityList.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint SysID;
+
+ public string Description;
+
+ public string Icon;
+ }
+
+ public PVPActivityList.RowData GetBySysID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ PVPActivityList.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].SysID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ PVPActivityList.RowData rowData = new PVPActivityList.RowData();
+ base.Read<uint>(reader, ref rowData.SysID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.Description, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.Icon, CVSReader.stringParse);
+ this.columnno = 3;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new PVPActivityList.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/PVPActivityList.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/PVPActivityList.cs.meta new file mode 100644 index 00000000..dbe905c2 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PVPActivityList.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8a8400263d6451646a94eb61b604ed03 +timeCreated: 1611465700 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/PandoraHeart.cs b/Client/Assets/Scripts/XUtliPoolLib/PandoraHeart.cs new file mode 100644 index 00000000..f4964957 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PandoraHeart.cs @@ -0,0 +1,80 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class PandoraHeart : CVSReader
+ {
+ public PandoraHeart.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint PandoraID;
+
+ public uint ProfID;
+
+ public uint FireID;
+
+ public uint[] DisplaySlot0;
+
+ public uint[] DisplayAngle0;
+
+ public uint[] DisplaySlot1;
+
+ public uint[] DisplayAngle1;
+
+ public uint[] DisplaySlot2;
+
+ public uint[] DisplayAngle2;
+
+ public string DisplayName0;
+
+ public string DisplayName1;
+
+ public string DisplayName2;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ PandoraHeart.RowData rowData = new PandoraHeart.RowData();
+ base.Read<uint>(reader, ref rowData.PandoraID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.ProfID, CVSReader.uintParse);
+ this.columnno = 1;
+ base.Read<uint>(reader, ref rowData.FireID, CVSReader.uintParse);
+ this.columnno = 2;
+ base.ReadArray<uint>(reader, ref rowData.DisplaySlot0, CVSReader.uintParse);
+ this.columnno = 4;
+ base.ReadArray<uint>(reader, ref rowData.DisplayAngle0, CVSReader.uintParse);
+ this.columnno = 5;
+ base.ReadArray<uint>(reader, ref rowData.DisplaySlot1, CVSReader.uintParse);
+ this.columnno = 6;
+ base.ReadArray<uint>(reader, ref rowData.DisplayAngle1, CVSReader.uintParse);
+ this.columnno = 7;
+ base.ReadArray<uint>(reader, ref rowData.DisplaySlot2, CVSReader.uintParse);
+ this.columnno = 8;
+ base.ReadArray<uint>(reader, ref rowData.DisplayAngle2, CVSReader.uintParse);
+ this.columnno = 9;
+ base.Read<string>(reader, ref rowData.DisplayName0, CVSReader.stringParse);
+ this.columnno = 10;
+ base.Read<string>(reader, ref rowData.DisplayName1, CVSReader.stringParse);
+ this.columnno = 11;
+ base.Read<string>(reader, ref rowData.DisplayName2, CVSReader.stringParse);
+ this.columnno = 12;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new PandoraHeart.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/PandoraHeart.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/PandoraHeart.cs.meta new file mode 100644 index 00000000..930d1b61 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PandoraHeart.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2faea046626789b4a87a30065d69a6da +timeCreated: 1611465308 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/PandoraHeartReward.cs b/Client/Assets/Scripts/XUtliPoolLib/PandoraHeartReward.cs new file mode 100644 index 00000000..fc24eca9 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PandoraHeartReward.cs @@ -0,0 +1,44 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class PandoraHeartReward : CVSReader
+ {
+ public PandoraHeartReward.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint pandoraid;
+
+ public uint itemid;
+
+ public SeqRef<uint> showlevel;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ PandoraHeartReward.RowData rowData = new PandoraHeartReward.RowData();
+ base.Read<uint>(reader, ref rowData.pandoraid, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.itemid, CVSReader.uintParse);
+ this.columnno = 1;
+ rowData.showlevel.Read(reader, this.m_DataHandler);
+ this.columnno = 7;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new PandoraHeartReward.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/PandoraHeartReward.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/PandoraHeartReward.cs.meta new file mode 100644 index 00000000..7c8418f7 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PandoraHeartReward.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 31dc5a6fb394f07458e7b8dd3e369914 +timeCreated: 1611465309 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/PartnerLivenessTable.cs b/Client/Assets/Scripts/XUtliPoolLib/PartnerLivenessTable.cs new file mode 100644 index 00000000..b025df8c --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PartnerLivenessTable.cs @@ -0,0 +1,52 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class PartnerLivenessTable : CVSReader
+ {
+ public PartnerLivenessTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint liveness;
+
+ public SeqRef<uint> level;
+
+ public SeqListRef<uint> viewabledrop;
+
+ public uint index;
+
+ public string boxPic;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ PartnerLivenessTable.RowData rowData = new PartnerLivenessTable.RowData();
+ base.Read<uint>(reader, ref rowData.liveness, CVSReader.uintParse);
+ this.columnno = 0;
+ rowData.level.Read(reader, this.m_DataHandler);
+ this.columnno = 1;
+ rowData.viewabledrop.Read(reader, this.m_DataHandler);
+ this.columnno = 4;
+ base.Read<uint>(reader, ref rowData.index, CVSReader.uintParse);
+ this.columnno = 5;
+ base.Read<string>(reader, ref rowData.boxPic, CVSReader.stringParse);
+ this.columnno = 6;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new PartnerLivenessTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/PartnerLivenessTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/PartnerLivenessTable.cs.meta new file mode 100644 index 00000000..20a80aae --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PartnerLivenessTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: e91796653e6300f4d8dbad80e5a454e5 +timeCreated: 1611465803 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/PartnerTable.cs b/Client/Assets/Scripts/XUtliPoolLib/PartnerTable.cs new file mode 100644 index 00000000..274b5294 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PartnerTable.cs @@ -0,0 +1,67 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class PartnerTable : CVSReader
+ {
+ public PartnerTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint level;
+
+ public uint degree;
+
+ public SeqRef<int> buf;
+ }
+
+ public PartnerTable.RowData GetBylevel(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ PartnerTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].level == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ PartnerTable.RowData rowData = new PartnerTable.RowData();
+ base.Read<uint>(reader, ref rowData.level, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.degree, CVSReader.uintParse);
+ this.columnno = 1;
+ rowData.buf.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new PartnerTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/PartnerTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/PartnerTable.cs.meta new file mode 100644 index 00000000..c0e771d4 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PartnerTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8beca387e64d71246b8b46e5439e871f +timeCreated: 1611465700 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/PartnerWelfare.cs b/Client/Assets/Scripts/XUtliPoolLib/PartnerWelfare.cs new file mode 100644 index 00000000..67e3ca2e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PartnerWelfare.cs @@ -0,0 +1,63 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class PartnerWelfare : CVSReader
+ {
+ public PartnerWelfare.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint Id;
+
+ public string ContentTxt;
+ }
+
+ public PartnerWelfare.RowData GetById(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ PartnerWelfare.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].Id == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ PartnerWelfare.RowData rowData = new PartnerWelfare.RowData();
+ base.Read<uint>(reader, ref rowData.Id, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.ContentTxt, CVSReader.stringParse);
+ this.columnno = 2;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new PartnerWelfare.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/PartnerWelfare.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/PartnerWelfare.cs.meta new file mode 100644 index 00000000..b344163d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PartnerWelfare.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c5945ec98493421478d412900f39d5d6 +timeCreated: 1611465755 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/PayAileenTable.cs b/Client/Assets/Scripts/XUtliPoolLib/PayAileenTable.cs new file mode 100644 index 00000000..291f6736 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PayAileenTable.cs @@ -0,0 +1,68 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class PayAileenTable : CVSReader
+ {
+ public PayAileenTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public string ParamID;
+
+ public int Days;
+
+ public int Price;
+
+ public int VipLimit;
+
+ public string Name;
+
+ public string Desc;
+
+ public int[] LevelSealGiftID;
+
+ public int MemberLimit;
+
+ public string ServiceCode;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ PayAileenTable.RowData rowData = new PayAileenTable.RowData();
+ base.Read<string>(reader, ref rowData.ParamID, CVSReader.stringParse);
+ this.columnno = 0;
+ base.Read<int>(reader, ref rowData.Days, CVSReader.intParse);
+ this.columnno = 1;
+ base.Read<int>(reader, ref rowData.Price, CVSReader.intParse);
+ this.columnno = 2;
+ base.Read<int>(reader, ref rowData.VipLimit, CVSReader.intParse);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.Name, CVSReader.stringParse);
+ this.columnno = 4;
+ base.Read<string>(reader, ref rowData.Desc, CVSReader.stringParse);
+ this.columnno = 6;
+ base.ReadArray<int>(reader, ref rowData.LevelSealGiftID, CVSReader.intParse);
+ this.columnno = 8;
+ base.Read<int>(reader, ref rowData.MemberLimit, CVSReader.intParse);
+ this.columnno = 9;
+ base.Read<string>(reader, ref rowData.ServiceCode, CVSReader.stringParse);
+ this.columnno = 10;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new PayAileenTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/PayAileenTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/PayAileenTable.cs.meta new file mode 100644 index 00000000..750f8682 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PayAileenTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 31dff2d559d9e624d863cd8651e51c00 +timeCreated: 1611465309 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/PayCardTable.cs b/Client/Assets/Scripts/XUtliPoolLib/PayCardTable.cs new file mode 100644 index 00000000..07b93222 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PayCardTable.cs @@ -0,0 +1,64 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class PayCardTable : CVSReader
+ {
+ public PayCardTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public string ParamID;
+
+ public int Price;
+
+ public int Diamond;
+
+ public int Type;
+
+ public int DayAward;
+
+ public string Name;
+
+ public string Icon;
+
+ public string ServiceCode;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ PayCardTable.RowData rowData = new PayCardTable.RowData();
+ base.Read<string>(reader, ref rowData.ParamID, CVSReader.stringParse);
+ this.columnno = 0;
+ base.Read<int>(reader, ref rowData.Price, CVSReader.intParse);
+ this.columnno = 1;
+ base.Read<int>(reader, ref rowData.Diamond, CVSReader.intParse);
+ this.columnno = 2;
+ base.Read<int>(reader, ref rowData.Type, CVSReader.intParse);
+ this.columnno = 3;
+ base.Read<int>(reader, ref rowData.DayAward, CVSReader.intParse);
+ this.columnno = 4;
+ base.Read<string>(reader, ref rowData.Name, CVSReader.stringParse);
+ this.columnno = 5;
+ base.Read<string>(reader, ref rowData.Icon, CVSReader.stringParse);
+ this.columnno = 6;
+ base.Read<string>(reader, ref rowData.ServiceCode, CVSReader.stringParse);
+ this.columnno = 9;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new PayCardTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/PayCardTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/PayCardTable.cs.meta new file mode 100644 index 00000000..e2556a6a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PayCardTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 6f2fd8552bc6c9e46adf78d40de177a7 +timeCreated: 1611465686 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/PayFirst.cs b/Client/Assets/Scripts/XUtliPoolLib/PayFirst.cs new file mode 100644 index 00000000..75f8db7e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PayFirst.cs @@ -0,0 +1,44 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class PayFirst : CVSReader
+ {
+ public PayFirst.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int Money;
+
+ public int Award;
+
+ public int SystemID;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ PayFirst.RowData rowData = new PayFirst.RowData();
+ base.Read<int>(reader, ref rowData.Money, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<int>(reader, ref rowData.Award, CVSReader.intParse);
+ this.columnno = 1;
+ base.Read<int>(reader, ref rowData.SystemID, CVSReader.intParse);
+ this.columnno = 2;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new PayFirst.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/PayFirst.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/PayFirst.cs.meta new file mode 100644 index 00000000..deb9de10 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PayFirst.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: dc3cb8517db29a74487f8c26f80cb672 +timeCreated: 1611465796 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/PayGiftTable.cs b/Client/Assets/Scripts/XUtliPoolLib/PayGiftTable.cs new file mode 100644 index 00000000..ac74b589 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PayGiftTable.cs @@ -0,0 +1,60 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class PayGiftTable : CVSReader
+ {
+ public PayGiftTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint ID;
+
+ public string ParamID;
+
+ public uint ItemID;
+
+ public uint LimitCount;
+
+ public uint Price;
+
+ public string Name;
+
+ public string Desc;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ PayGiftTable.RowData rowData = new PayGiftTable.RowData();
+ base.Read<uint>(reader, ref rowData.ID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.ParamID, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<uint>(reader, ref rowData.ItemID, CVSReader.uintParse);
+ this.columnno = 2;
+ base.Read<uint>(reader, ref rowData.LimitCount, CVSReader.uintParse);
+ this.columnno = 3;
+ base.Read<uint>(reader, ref rowData.Price, CVSReader.uintParse);
+ this.columnno = 4;
+ base.Read<string>(reader, ref rowData.Name, CVSReader.stringParse);
+ this.columnno = 5;
+ base.Read<string>(reader, ref rowData.Desc, CVSReader.stringParse);
+ this.columnno = 6;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new PayGiftTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/PayGiftTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/PayGiftTable.cs.meta new file mode 100644 index 00000000..bc0dd4b1 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PayGiftTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0787343ab3952694bb07d30c2173cab1 +timeCreated: 1611465286 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/PayListTable.cs b/Client/Assets/Scripts/XUtliPoolLib/PayListTable.cs new file mode 100644 index 00000000..0a3d1277 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PayListTable.cs @@ -0,0 +1,83 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class PayListTable : CVSReader
+ {
+ public PayListTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public string ParamID;
+
+ public int Price;
+
+ public int Diamond;
+
+ public string Name;
+
+ public string Icon;
+
+ public string Effect;
+
+ public string Effect2;
+ }
+
+ public PayListTable.RowData GetByParamID(string key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ PayListTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].ParamID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ PayListTable.RowData rowData = new PayListTable.RowData();
+ base.Read<string>(reader, ref rowData.ParamID, CVSReader.stringParse);
+ this.columnno = 0;
+ base.Read<int>(reader, ref rowData.Price, CVSReader.intParse);
+ this.columnno = 1;
+ base.Read<int>(reader, ref rowData.Diamond, CVSReader.intParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.Name, CVSReader.stringParse);
+ this.columnno = 4;
+ base.Read<string>(reader, ref rowData.Icon, CVSReader.stringParse);
+ this.columnno = 5;
+ base.Read<string>(reader, ref rowData.Effect, CVSReader.stringParse);
+ this.columnno = 6;
+ base.Read<string>(reader, ref rowData.Effect2, CVSReader.stringParse);
+ this.columnno = 7;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new PayListTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/PayListTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/PayListTable.cs.meta new file mode 100644 index 00000000..0dffd7e4 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PayListTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: aeb72cea6acb9184592097c68f70cf01 +timeCreated: 1611465742 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/PayMarketingInfo.cs b/Client/Assets/Scripts/XUtliPoolLib/PayMarketingInfo.cs new file mode 100644 index 00000000..f76bf27e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PayMarketingInfo.cs @@ -0,0 +1,13 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class PayMarketingInfo
+ {
+ public int diamondCount;
+
+ public int sendCount;
+
+ public string sendExt;
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/PayMarketingInfo.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/PayMarketingInfo.cs.meta new file mode 100644 index 00000000..a5104cc4 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PayMarketingInfo.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b707c68407ac8144c9562a6ff6a71ce2 +timeCreated: 1611465746 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/PayMemberTable.cs b/Client/Assets/Scripts/XUtliPoolLib/PayMemberTable.cs new file mode 100644 index 00000000..4c9460a4 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PayMemberTable.cs @@ -0,0 +1,144 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class PayMemberTable : CVSReader
+ {
+ public PayMemberTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public string ParamID;
+
+ public int ID;
+
+ public string Name;
+
+ public int Price;
+
+ public int Days;
+
+ public int ChatCount;
+
+ public int FatigueLimit;
+
+ public int AbyssCount;
+
+ public int ReviveCount;
+
+ public int BossRushCount;
+
+ public int BuyGreenAgateLimit;
+
+ public int[] CheckinDoubleDays;
+
+ public int SuperRiskCount;
+
+ public int SystemID;
+
+ public string Icon;
+
+ public string Desc;
+
+ public string Tip;
+
+ public string Detail;
+
+ public string BuyNtf;
+
+ public int[] CheckinDoubleEvenDays;
+
+ public string ServiceCode;
+
+ public SeqRef<uint> Value;
+
+ public int AuctionCount;
+
+ public SeqRef<uint> worldBossbuffid;
+
+ public SeqRef<uint> guildBossBuffid;
+
+ public int HeroBattleFree;
+
+ public uint NpcFeeling;
+
+ public int ShopRefresh;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ PayMemberTable.RowData rowData = new PayMemberTable.RowData();
+ base.Read<string>(reader, ref rowData.ParamID, CVSReader.stringParse);
+ this.columnno = 0;
+ base.Read<int>(reader, ref rowData.ID, CVSReader.intParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.Name, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<int>(reader, ref rowData.Price, CVSReader.intParse);
+ this.columnno = 3;
+ base.Read<int>(reader, ref rowData.Days, CVSReader.intParse);
+ this.columnno = 4;
+ base.Read<int>(reader, ref rowData.ChatCount, CVSReader.intParse);
+ this.columnno = 7;
+ base.Read<int>(reader, ref rowData.FatigueLimit, CVSReader.intParse);
+ this.columnno = 8;
+ base.Read<int>(reader, ref rowData.AbyssCount, CVSReader.intParse);
+ this.columnno = 9;
+ base.Read<int>(reader, ref rowData.ReviveCount, CVSReader.intParse);
+ this.columnno = 10;
+ base.Read<int>(reader, ref rowData.BossRushCount, CVSReader.intParse);
+ this.columnno = 12;
+ base.Read<int>(reader, ref rowData.BuyGreenAgateLimit, CVSReader.intParse);
+ this.columnno = 13;
+ base.ReadArray<int>(reader, ref rowData.CheckinDoubleDays, CVSReader.intParse);
+ this.columnno = 14;
+ base.Read<int>(reader, ref rowData.SuperRiskCount, CVSReader.intParse);
+ this.columnno = 16;
+ base.Read<int>(reader, ref rowData.SystemID, CVSReader.intParse);
+ this.columnno = 17;
+ base.Read<string>(reader, ref rowData.Icon, CVSReader.stringParse);
+ this.columnno = 18;
+ base.Read<string>(reader, ref rowData.Desc, CVSReader.stringParse);
+ this.columnno = 19;
+ base.Read<string>(reader, ref rowData.Tip, CVSReader.stringParse);
+ this.columnno = 20;
+ base.Read<string>(reader, ref rowData.Detail, CVSReader.stringParse);
+ this.columnno = 22;
+ base.Read<string>(reader, ref rowData.BuyNtf, CVSReader.stringParse);
+ this.columnno = 23;
+ base.ReadArray<int>(reader, ref rowData.CheckinDoubleEvenDays, CVSReader.intParse);
+ this.columnno = 24;
+ base.Read<string>(reader, ref rowData.ServiceCode, CVSReader.stringParse);
+ this.columnno = 25;
+ rowData.Value.Read(reader, this.m_DataHandler);
+ this.columnno = 26;
+ base.Read<int>(reader, ref rowData.AuctionCount, CVSReader.intParse);
+ this.columnno = 28;
+ rowData.worldBossbuffid.Read(reader, this.m_DataHandler);
+ this.columnno = 29;
+ rowData.guildBossBuffid.Read(reader, this.m_DataHandler);
+ this.columnno = 30;
+ base.Read<int>(reader, ref rowData.HeroBattleFree, CVSReader.intParse);
+ this.columnno = 31;
+ base.Read<uint>(reader, ref rowData.NpcFeeling, CVSReader.uintParse);
+ this.columnno = 32;
+ base.Read<int>(reader, ref rowData.ShopRefresh, CVSReader.intParse);
+ this.columnno = 33;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new PayMemberTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/PayMemberTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/PayMemberTable.cs.meta new file mode 100644 index 00000000..49a6b8cd --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PayMemberTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 71c1ef7f110e12f47b43344ceeb3e3b5 +timeCreated: 1611465688 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/PayWelfareTable.cs b/Client/Assets/Scripts/XUtliPoolLib/PayWelfareTable.cs new file mode 100644 index 00000000..00a78d1b --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PayWelfareTable.cs @@ -0,0 +1,44 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class PayWelfareTable : CVSReader
+ {
+ public PayWelfareTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int SysID;
+
+ public string TabName;
+
+ public string TabIcon;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ PayWelfareTable.RowData rowData = new PayWelfareTable.RowData();
+ base.Read<int>(reader, ref rowData.SysID, CVSReader.intParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.TabName, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.TabIcon, CVSReader.stringParse);
+ this.columnno = 3;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new PayWelfareTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/PayWelfareTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/PayWelfareTable.cs.meta new file mode 100644 index 00000000..5d813339 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PayWelfareTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 619c1d4780ede14488e2e4fddc4b8d17 +timeCreated: 1611465653 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/PetBubble.cs b/Client/Assets/Scripts/XUtliPoolLib/PetBubble.cs new file mode 100644 index 00000000..8a18e2c7 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PetBubble.cs @@ -0,0 +1,60 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class PetBubble : CVSReader
+ {
+ public PetBubble.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint id;
+
+ public uint ActionID;
+
+ public string ActionFile;
+
+ public string[] Bubble;
+
+ public float BubbleTime;
+
+ public uint Weights;
+
+ public string SEFile;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ PetBubble.RowData rowData = new PetBubble.RowData();
+ base.Read<uint>(reader, ref rowData.id, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.ActionID, CVSReader.uintParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.ActionFile, CVSReader.stringParse);
+ this.columnno = 2;
+ base.ReadArray<string>(reader, ref rowData.Bubble, CVSReader.stringParse);
+ this.columnno = 4;
+ base.Read<float>(reader, ref rowData.BubbleTime, CVSReader.floatParse);
+ this.columnno = 5;
+ base.Read<uint>(reader, ref rowData.Weights, CVSReader.uintParse);
+ this.columnno = 6;
+ base.Read<string>(reader, ref rowData.SEFile, CVSReader.stringParse);
+ this.columnno = 7;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new PetBubble.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/PetBubble.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/PetBubble.cs.meta new file mode 100644 index 00000000..44738abc --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PetBubble.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8261a840b9086ac4ba2ce69fd61eb6b1 +timeCreated: 1611465694 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/PetFoodTable.cs b/Client/Assets/Scripts/XUtliPoolLib/PetFoodTable.cs new file mode 100644 index 00000000..9a3c117a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PetFoodTable.cs @@ -0,0 +1,71 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class PetFoodTable : CVSReader
+ {
+ public PetFoodTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint itemid;
+
+ public uint exp;
+
+ public string description;
+
+ public uint hungry;
+ }
+
+ public PetFoodTable.RowData GetByitemid(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ PetFoodTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].itemid == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ PetFoodTable.RowData rowData = new PetFoodTable.RowData();
+ base.Read<uint>(reader, ref rowData.itemid, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.exp, CVSReader.uintParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.description, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<uint>(reader, ref rowData.hungry, CVSReader.uintParse);
+ this.columnno = 3;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new PetFoodTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/PetFoodTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/PetFoodTable.cs.meta new file mode 100644 index 00000000..8c7fd97c --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PetFoodTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 6518bdb382af5294d9cddb94b5f702e4 +timeCreated: 1611465682 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/PetInfoTable.cs b/Client/Assets/Scripts/XUtliPoolLib/PetInfoTable.cs new file mode 100644 index 00000000..cf3cf55a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PetInfoTable.cs @@ -0,0 +1,115 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class PetInfoTable : CVSReader
+ {
+ public PetInfoTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint id;
+
+ public string name;
+
+ public uint quality;
+
+ public uint[] LvRequire;
+
+ public SeqListRef<uint> skill1;
+
+ public SeqListRef<uint> skill2;
+
+ public SeqListRef<uint> skill3;
+
+ public uint SpeedBuff;
+
+ public string icon;
+
+ public uint randSkillMax;
+
+ public uint maxHungry;
+
+ public uint presentID;
+
+ public uint PetType;
+
+ public uint WithWings;
+
+ public string Atlas;
+ }
+
+ public PetInfoTable.RowData GetByid(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ PetInfoTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].id == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ PetInfoTable.RowData rowData = new PetInfoTable.RowData();
+ base.Read<uint>(reader, ref rowData.id, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.name, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<uint>(reader, ref rowData.quality, CVSReader.uintParse);
+ this.columnno = 2;
+ base.ReadArray<uint>(reader, ref rowData.LvRequire, CVSReader.uintParse);
+ this.columnno = 10;
+ rowData.skill1.Read(reader, this.m_DataHandler);
+ this.columnno = 11;
+ rowData.skill2.Read(reader, this.m_DataHandler);
+ this.columnno = 12;
+ rowData.skill3.Read(reader, this.m_DataHandler);
+ this.columnno = 13;
+ base.Read<uint>(reader, ref rowData.SpeedBuff, CVSReader.uintParse);
+ this.columnno = 16;
+ base.Read<string>(reader, ref rowData.icon, CVSReader.stringParse);
+ this.columnno = 18;
+ base.Read<uint>(reader, ref rowData.randSkillMax, CVSReader.uintParse);
+ this.columnno = 19;
+ base.Read<uint>(reader, ref rowData.maxHungry, CVSReader.uintParse);
+ this.columnno = 21;
+ base.Read<uint>(reader, ref rowData.presentID, CVSReader.uintParse);
+ this.columnno = 24;
+ base.Read<uint>(reader, ref rowData.PetType, CVSReader.uintParse);
+ this.columnno = 28;
+ base.Read<uint>(reader, ref rowData.WithWings, CVSReader.uintParse);
+ this.columnno = 29;
+ base.Read<string>(reader, ref rowData.Atlas, CVSReader.stringParse);
+ this.columnno = 30;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new PetInfoTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/PetInfoTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/PetInfoTable.cs.meta new file mode 100644 index 00000000..519ffaac --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PetInfoTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a0fc55d8b0932a34c8868c0f1df6d343 +timeCreated: 1611465712 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/PetItemTable.cs b/Client/Assets/Scripts/XUtliPoolLib/PetItemTable.cs new file mode 100644 index 00000000..0bdcc94c --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PetItemTable.cs @@ -0,0 +1,63 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class PetItemTable : CVSReader
+ {
+ public PetItemTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint itemid;
+
+ public uint petid;
+ }
+
+ public PetItemTable.RowData GetByitemid(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ PetItemTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].itemid == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ PetItemTable.RowData rowData = new PetItemTable.RowData();
+ base.Read<uint>(reader, ref rowData.itemid, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.petid, CVSReader.uintParse);
+ this.columnno = 1;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new PetItemTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/PetItemTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/PetItemTable.cs.meta new file mode 100644 index 00000000..6644b122 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PetItemTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 903fb8b3d47e6594695fcb9dad3e5e26 +timeCreated: 1611465703 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/PetLevelTable.cs b/Client/Assets/Scripts/XUtliPoolLib/PetLevelTable.cs new file mode 100644 index 00000000..e72a16c2 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PetLevelTable.cs @@ -0,0 +1,48 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class PetLevelTable : CVSReader
+ {
+ public PetLevelTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint PetsID;
+
+ public uint level;
+
+ public uint exp;
+
+ public SeqListRef<uint> PetsAttributes;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ PetLevelTable.RowData rowData = new PetLevelTable.RowData();
+ base.Read<uint>(reader, ref rowData.PetsID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.level, CVSReader.uintParse);
+ this.columnno = 1;
+ base.Read<uint>(reader, ref rowData.exp, CVSReader.uintParse);
+ this.columnno = 2;
+ rowData.PetsAttributes.Read(reader, this.m_DataHandler);
+ this.columnno = 3;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new PetLevelTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/PetLevelTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/PetLevelTable.cs.meta new file mode 100644 index 00000000..5f60970a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PetLevelTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8143d22306a6f424bba4b30ce830c920 +timeCreated: 1611465694 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/PetMoodTipsTable.cs b/Client/Assets/Scripts/XUtliPoolLib/PetMoodTipsTable.cs new file mode 100644 index 00000000..52ebb28a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PetMoodTipsTable.cs @@ -0,0 +1,48 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class PetMoodTipsTable : CVSReader
+ {
+ public PetMoodTipsTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int value;
+
+ public string tip;
+
+ public string icon;
+
+ public string tips;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ PetMoodTipsTable.RowData rowData = new PetMoodTipsTable.RowData();
+ base.Read<int>(reader, ref rowData.value, CVSReader.intParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.tip, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.icon, CVSReader.stringParse);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.tips, CVSReader.stringParse);
+ this.columnno = 6;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new PetMoodTipsTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/PetMoodTipsTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/PetMoodTipsTable.cs.meta new file mode 100644 index 00000000..e87d6836 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PetMoodTipsTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0de32e1af8318ab4fa7842e2d02f4ee4 +timeCreated: 1611465289 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/PetPassiveSkillTable.cs b/Client/Assets/Scripts/XUtliPoolLib/PetPassiveSkillTable.cs new file mode 100644 index 00000000..8f991ee3 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PetPassiveSkillTable.cs @@ -0,0 +1,75 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class PetPassiveSkillTable : CVSReader
+ {
+ public PetPassiveSkillTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint id;
+
+ public string name;
+
+ public uint quality;
+
+ public string Icon;
+
+ public string Detail;
+ }
+
+ public PetPassiveSkillTable.RowData GetByid(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ PetPassiveSkillTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].id == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ PetPassiveSkillTable.RowData rowData = new PetPassiveSkillTable.RowData();
+ base.Read<uint>(reader, ref rowData.id, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.name, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<uint>(reader, ref rowData.quality, CVSReader.uintParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.Icon, CVSReader.stringParse);
+ this.columnno = 6;
+ base.Read<string>(reader, ref rowData.Detail, CVSReader.stringParse);
+ this.columnno = 7;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new PetPassiveSkillTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/PetPassiveSkillTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/PetPassiveSkillTable.cs.meta new file mode 100644 index 00000000..6e31d58a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PetPassiveSkillTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0c77bf644e0309f44aa3aa7230e91aca +timeCreated: 1611465288 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/PetSkillBook.cs b/Client/Assets/Scripts/XUtliPoolLib/PetSkillBook.cs new file mode 100644 index 00000000..64d7302d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PetSkillBook.cs @@ -0,0 +1,63 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class PetSkillBook : CVSReader
+ {
+ public PetSkillBook.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint itemid;
+
+ public string Description;
+ }
+
+ public PetSkillBook.RowData GetByitemid(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ PetSkillBook.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].itemid == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ PetSkillBook.RowData rowData = new PetSkillBook.RowData();
+ base.Read<uint>(reader, ref rowData.itemid, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.Description, CVSReader.stringParse);
+ this.columnno = 3;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new PetSkillBook.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/PetSkillBook.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/PetSkillBook.cs.meta new file mode 100644 index 00000000..487cbf4e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PetSkillBook.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 98ef2a92ed5bbf446851ab780131066d +timeCreated: 1611465709 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/PhotographEffectCfg.cs b/Client/Assets/Scripts/XUtliPoolLib/PhotographEffectCfg.cs new file mode 100644 index 00000000..7f9cfcf0 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PhotographEffectCfg.cs @@ -0,0 +1,60 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class PhotographEffectCfg : CVSReader
+ {
+ public PhotographEffectCfg.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint EffectID;
+
+ public SeqListRef<uint> Condition;
+
+ public string EffectName;
+
+ public string EffectRoute;
+
+ public string ConditionDesc;
+
+ public string desc;
+
+ public uint SystemID;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ PhotographEffectCfg.RowData rowData = new PhotographEffectCfg.RowData();
+ base.Read<uint>(reader, ref rowData.EffectID, CVSReader.uintParse);
+ this.columnno = 0;
+ rowData.Condition.Read(reader, this.m_DataHandler);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.EffectName, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.EffectRoute, CVSReader.stringParse);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.ConditionDesc, CVSReader.stringParse);
+ this.columnno = 4;
+ base.Read<string>(reader, ref rowData.desc, CVSReader.stringParse);
+ this.columnno = 5;
+ base.Read<uint>(reader, ref rowData.SystemID, CVSReader.uintParse);
+ this.columnno = 6;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new PhotographEffectCfg.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/PhotographEffectCfg.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/PhotographEffectCfg.cs.meta new file mode 100644 index 00000000..718909d1 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PhotographEffectCfg.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 6547ccbad38e07549aa73cc371774e43 +timeCreated: 1611465683 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/PkPointTable.cs b/Client/Assets/Scripts/XUtliPoolLib/PkPointTable.cs new file mode 100644 index 00000000..c030d726 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PkPointTable.cs @@ -0,0 +1,44 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class PkPointTable : CVSReader
+ {
+ public PkPointTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint point;
+
+ public SeqListRef<uint> reward;
+
+ public int IconIndex;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ PkPointTable.RowData rowData = new PkPointTable.RowData();
+ base.Read<uint>(reader, ref rowData.point, CVSReader.uintParse);
+ this.columnno = 0;
+ rowData.reward.Read(reader, this.m_DataHandler);
+ this.columnno = 1;
+ base.Read<int>(reader, ref rowData.IconIndex, CVSReader.intParse);
+ this.columnno = 3;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new PkPointTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/PkPointTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/PkPointTable.cs.meta new file mode 100644 index 00000000..c474ebcd --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PkPointTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: bdbc77a6d3ee7ad418ecbc34d5013a7f +timeCreated: 1611465750 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/PkProfessionTable.cs b/Client/Assets/Scripts/XUtliPoolLib/PkProfessionTable.cs new file mode 100644 index 00000000..fef09287 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PkProfessionTable.cs @@ -0,0 +1,36 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class PkProfessionTable : CVSReader
+ {
+ public PkProfessionTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public byte[] SceneType;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ PkProfessionTable.RowData rowData = new PkProfessionTable.RowData();
+ base.ReadArray<byte>(reader, ref rowData.SceneType, CVSReader.byteParse);
+ this.columnno = 13;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new PkProfessionTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/PkProfessionTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/PkProfessionTable.cs.meta new file mode 100644 index 00000000..3c034ecc --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PkProfessionTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0deafab2f894cf24f9514cac531b3838 +timeCreated: 1611465289 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/PkRankTable.cs b/Client/Assets/Scripts/XUtliPoolLib/PkRankTable.cs new file mode 100644 index 00000000..42bb7739 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PkRankTable.cs @@ -0,0 +1,40 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class PkRankTable : CVSReader
+ {
+ public PkRankTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public SeqRef<uint> rank;
+
+ public SeqListRef<uint> reward;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ PkRankTable.RowData rowData = new PkRankTable.RowData();
+ rowData.rank.Read(reader, this.m_DataHandler);
+ this.columnno = 0;
+ rowData.reward.Read(reader, this.m_DataHandler);
+ this.columnno = 1;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new PkRankTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/PkRankTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/PkRankTable.cs.meta new file mode 100644 index 00000000..652587eb --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PkRankTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 24697a3d086d7ee49b307e45f590676e +timeCreated: 1611465300 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/PlantSeed.cs b/Client/Assets/Scripts/XUtliPoolLib/PlantSeed.cs new file mode 100644 index 00000000..eadbad89 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PlantSeed.cs @@ -0,0 +1,119 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class PlantSeed : CVSReader
+ {
+ public PlantSeed.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint SeedID;
+
+ public string SeedName;
+
+ public SeqRef<int> PlantID;
+
+ public string PlantName;
+
+ public uint GrowUpAmount;
+
+ public uint GrowUpAmountPerMinute;
+
+ public uint PredictGrowUpTime;
+
+ public SeqRef<uint> HarvestPlant;
+
+ public SeqRef<uint> ExtraDropItem;
+
+ public uint IncreaseGrowUpRate;
+
+ public uint ReduceGrowUpRate;
+
+ public uint PlantStateCD;
+
+ public uint BadStateGrowUpRate;
+
+ public SeqRef<int> StealAward;
+
+ public uint CanStealMaxTimes;
+
+ public uint InitUpAmount;
+ }
+
+ public PlantSeed.RowData GetBySeedID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ PlantSeed.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].SeedID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ PlantSeed.RowData rowData = new PlantSeed.RowData();
+ base.Read<uint>(reader, ref rowData.SeedID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.SeedName, CVSReader.stringParse);
+ this.columnno = 1;
+ rowData.PlantID.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.PlantName, CVSReader.stringParse);
+ this.columnno = 3;
+ base.Read<uint>(reader, ref rowData.GrowUpAmount, CVSReader.uintParse);
+ this.columnno = 8;
+ base.Read<uint>(reader, ref rowData.GrowUpAmountPerMinute, CVSReader.uintParse);
+ this.columnno = 9;
+ base.Read<uint>(reader, ref rowData.PredictGrowUpTime, CVSReader.uintParse);
+ this.columnno = 10;
+ rowData.HarvestPlant.Read(reader, this.m_DataHandler);
+ this.columnno = 12;
+ rowData.ExtraDropItem.Read(reader, this.m_DataHandler);
+ this.columnno = 15;
+ base.Read<uint>(reader, ref rowData.IncreaseGrowUpRate, CVSReader.uintParse);
+ this.columnno = 17;
+ base.Read<uint>(reader, ref rowData.ReduceGrowUpRate, CVSReader.uintParse);
+ this.columnno = 18;
+ base.Read<uint>(reader, ref rowData.PlantStateCD, CVSReader.uintParse);
+ this.columnno = 19;
+ base.Read<uint>(reader, ref rowData.BadStateGrowUpRate, CVSReader.uintParse);
+ this.columnno = 21;
+ rowData.StealAward.Read(reader, this.m_DataHandler);
+ this.columnno = 22;
+ base.Read<uint>(reader, ref rowData.CanStealMaxTimes, CVSReader.uintParse);
+ this.columnno = 27;
+ base.Read<uint>(reader, ref rowData.InitUpAmount, CVSReader.uintParse);
+ this.columnno = 28;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new PlantSeed.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/PlantSeed.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/PlantSeed.cs.meta new file mode 100644 index 00000000..a2f20536 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PlantSeed.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: dfc754c3bc676d6479ef3da5274df27e +timeCreated: 1611465799 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/PlantSprite.cs b/Client/Assets/Scripts/XUtliPoolLib/PlantSprite.cs new file mode 100644 index 00000000..58b112d0 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PlantSprite.cs @@ -0,0 +1,71 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class PlantSprite : CVSReader
+ {
+ public PlantSprite.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint SpriteID;
+
+ public uint ReduceGrowth;
+
+ public uint EffectGrowRate;
+
+ public string[] Dialogues;
+ }
+
+ public PlantSprite.RowData GetBySpriteID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ PlantSprite.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].SpriteID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ PlantSprite.RowData rowData = new PlantSprite.RowData();
+ base.Read<uint>(reader, ref rowData.SpriteID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.ReduceGrowth, CVSReader.uintParse);
+ this.columnno = 2;
+ base.Read<uint>(reader, ref rowData.EffectGrowRate, CVSReader.uintParse);
+ this.columnno = 3;
+ base.ReadArray<string>(reader, ref rowData.Dialogues, CVSReader.stringParse);
+ this.columnno = 7;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new PlantSprite.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/PlantSprite.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/PlantSprite.cs.meta new file mode 100644 index 00000000..8e7b57b2 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PlantSprite.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c194d517453271d4d9e028983890033c +timeCreated: 1611465753 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/PlayerInfo.cs b/Client/Assets/Scripts/XUtliPoolLib/PlayerInfo.cs new file mode 100644 index 00000000..c5187229 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PlayerInfo.cs @@ -0,0 +1,30 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class PlayerInfo
+ {
+ public int apiId;
+
+ public PlayerInfo.Data data;
+
+ public struct Data
+ {
+ public string nickName;
+
+ public string openId;
+
+ public string gender;
+
+ public string pictureSmall;
+
+ public string pictureMiddle;
+
+ public string pictureLarge;
+
+ public string provice;
+
+ public string city;
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/PlayerInfo.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/PlayerInfo.cs.meta new file mode 100644 index 00000000..7d62886c --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PlayerInfo.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d5967c07eddbc6b49a0ae35ea1eb9910 +timeCreated: 1611465763 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/PlayerLevelTable.cs b/Client/Assets/Scripts/XUtliPoolLib/PlayerLevelTable.cs new file mode 100644 index 00000000..ed203a08 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PlayerLevelTable.cs @@ -0,0 +1,125 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class PlayerLevelTable : CVSReader
+ {
+ public PlayerLevelTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int Level;
+
+ public long Exp;
+
+ public int AddSkillPoint;
+
+ public double ExpAddition;
+
+ public uint MaxEnhanceLevel;
+ }
+
+ public PlayerLevelTable.RowData GetByLevel(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ PlayerLevelTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchLevel(key);
+ }
+ return result;
+ }
+
+ private PlayerLevelTable.RowData BinarySearchLevel(int key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ PlayerLevelTable.RowData rowData;
+ PlayerLevelTable.RowData rowData2;
+ PlayerLevelTable.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.Level == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.Level == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.Level.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.Level.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ PlayerLevelTable.RowData rowData = new PlayerLevelTable.RowData();
+ base.Read<int>(reader, ref rowData.Level, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<long>(reader, ref rowData.Exp, CVSReader.longParse);
+ this.columnno = 1;
+ base.Read<int>(reader, ref rowData.AddSkillPoint, CVSReader.intParse);
+ this.columnno = 10;
+ base.Read<double>(reader, ref rowData.ExpAddition, CVSReader.doubleParse);
+ this.columnno = 11;
+ base.Read<uint>(reader, ref rowData.MaxEnhanceLevel, CVSReader.uintParse);
+ this.columnno = 12;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new PlayerLevelTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/PlayerLevelTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/PlayerLevelTable.cs.meta new file mode 100644 index 00000000..0ca3a097 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PlayerLevelTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 99b2a7fbc3719b743be288cd9cfee765 +timeCreated: 1611465710 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/PokerTournamentReward.cs b/Client/Assets/Scripts/XUtliPoolLib/PokerTournamentReward.cs new file mode 100644 index 00000000..ddc07de4 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PokerTournamentReward.cs @@ -0,0 +1,40 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class PokerTournamentReward : CVSReader
+ {
+ public PokerTournamentReward.RowData[] Table = null;
+
+ public class RowData
+ {
+ public SeqRef<uint> Rank;
+
+ public SeqListRef<uint> Reward;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ PokerTournamentReward.RowData rowData = new PokerTournamentReward.RowData();
+ rowData.Rank.Read(reader, this.m_DataHandler);
+ this.columnno = 0;
+ rowData.Reward.Read(reader, this.m_DataHandler);
+ this.columnno = 1;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new PokerTournamentReward.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/PokerTournamentReward.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/PokerTournamentReward.cs.meta new file mode 100644 index 00000000..c3fc2b83 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PokerTournamentReward.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 5050360e9c2f242418b0dff42002ed78 +timeCreated: 1611465643 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/PowerPointCoeffTable.cs b/Client/Assets/Scripts/XUtliPoolLib/PowerPointCoeffTable.cs new file mode 100644 index 00000000..34373766 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PowerPointCoeffTable.cs @@ -0,0 +1,44 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class PowerPointCoeffTable : CVSReader
+ {
+ public PowerPointCoeffTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int AttributeID;
+
+ public uint Profession;
+
+ public double Weight;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ PowerPointCoeffTable.RowData rowData = new PowerPointCoeffTable.RowData();
+ base.Read<int>(reader, ref rowData.AttributeID, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.Profession, CVSReader.uintParse);
+ this.columnno = 1;
+ base.Read<double>(reader, ref rowData.Weight, CVSReader.doubleParse);
+ this.columnno = 2;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new PowerPointCoeffTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/PowerPointCoeffTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/PowerPointCoeffTable.cs.meta new file mode 100644 index 00000000..fffda4d3 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PowerPointCoeffTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1113c2c5c0c5238428c0a0e104f2a4f1 +timeCreated: 1611465291 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/PreloadAnimationList.cs b/Client/Assets/Scripts/XUtliPoolLib/PreloadAnimationList.cs new file mode 100644 index 00000000..da6d4b0c --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PreloadAnimationList.cs @@ -0,0 +1,40 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class PreloadAnimationList : CVSReader
+ {
+ public PreloadAnimationList.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int SceneID;
+
+ public string AnimName;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ PreloadAnimationList.RowData rowData = new PreloadAnimationList.RowData();
+ base.Read<int>(reader, ref rowData.SceneID, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.AnimName, CVSReader.stringParse);
+ this.columnno = 1;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new PreloadAnimationList.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/PreloadAnimationList.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/PreloadAnimationList.cs.meta new file mode 100644 index 00000000..963de5fc --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PreloadAnimationList.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a9e75503ce6391246a77b62e18951c85 +timeCreated: 1611465740 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/Prerogative.cs b/Client/Assets/Scripts/XUtliPoolLib/Prerogative.cs new file mode 100644 index 00000000..0c441ff3 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Prerogative.cs @@ -0,0 +1,129 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class Prerogative : CVSReader
+ {
+ public Prerogative.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint Level;
+
+ public uint MinDiamond;
+
+ public uint MinScore;
+
+ public string PreSprite;
+
+ public uint[] PreAuthor;
+
+ public SeqRef<string> PreIcon;
+ }
+
+ public Prerogative.RowData GetByLevel(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ Prerogative.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchLevel(key);
+ }
+ return result;
+ }
+
+ private Prerogative.RowData BinarySearchLevel(uint key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ Prerogative.RowData rowData;
+ Prerogative.RowData rowData2;
+ Prerogative.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.Level == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.Level == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.Level.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.Level.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ Prerogative.RowData rowData = new Prerogative.RowData();
+ base.Read<uint>(reader, ref rowData.Level, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.MinDiamond, CVSReader.uintParse);
+ this.columnno = 1;
+ base.Read<uint>(reader, ref rowData.MinScore, CVSReader.uintParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.PreSprite, CVSReader.stringParse);
+ this.columnno = 3;
+ base.ReadArray<uint>(reader, ref rowData.PreAuthor, CVSReader.uintParse);
+ this.columnno = 4;
+ rowData.PreIcon.Read(reader, this.m_DataHandler);
+ this.columnno = 5;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new Prerogative.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/Prerogative.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/Prerogative.cs.meta new file mode 100644 index 00000000..5b6bc5f7 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Prerogative.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: bbd4f2ccaccb5ae4da977047c75e0af2 +timeCreated: 1611465749 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/PrerogativeContent.cs b/Client/Assets/Scripts/XUtliPoolLib/PrerogativeContent.cs new file mode 100644 index 00000000..9f86005c --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PrerogativeContent.cs @@ -0,0 +1,137 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class PrerogativeContent : CVSReader
+ {
+ public PrerogativeContent.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint ID;
+
+ public uint Type;
+
+ public string Content;
+
+ public uint Normal;
+
+ public string Icon;
+
+ public SeqRef<uint> Item;
+
+ public string Name;
+
+ public uint HintID;
+ }
+
+ public PrerogativeContent.RowData GetByID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ PrerogativeContent.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchID(key);
+ }
+ return result;
+ }
+
+ private PrerogativeContent.RowData BinarySearchID(uint key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ PrerogativeContent.RowData rowData;
+ PrerogativeContent.RowData rowData2;
+ PrerogativeContent.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.ID == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.ID == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.ID.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.ID.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ PrerogativeContent.RowData rowData = new PrerogativeContent.RowData();
+ base.Read<uint>(reader, ref rowData.ID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.Type, CVSReader.uintParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.Content, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<uint>(reader, ref rowData.Normal, CVSReader.uintParse);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.Icon, CVSReader.stringParse);
+ this.columnno = 4;
+ rowData.Item.Read(reader, this.m_DataHandler);
+ this.columnno = 5;
+ base.Read<string>(reader, ref rowData.Name, CVSReader.stringParse);
+ this.columnno = 6;
+ base.Read<uint>(reader, ref rowData.HintID, CVSReader.uintParse);
+ this.columnno = 7;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new PrerogativeContent.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/PrerogativeContent.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/PrerogativeContent.cs.meta new file mode 100644 index 00000000..9d2ad7c1 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PrerogativeContent.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a99dc0936a6ae6a47843488bc8954f2d +timeCreated: 1611465739 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ProfSkillTable.cs b/Client/Assets/Scripts/XUtliPoolLib/ProfSkillTable.cs new file mode 100644 index 00000000..c9b83fc9 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ProfSkillTable.cs @@ -0,0 +1,139 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class ProfSkillTable : CVSReader
+ {
+ public ProfSkillTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int ProfID;
+
+ public string ProfName;
+
+ public string Skill1;
+
+ public string Skill2;
+
+ public string Skill3;
+
+ public string Skill4;
+
+ public string ProfIcon;
+
+ public string ProfPic;
+
+ public string ProfHeadIcon;
+
+ public string ProfHeadIcon2;
+
+ public float FixedEnmity;
+
+ public float EnmityCoefficient;
+
+ public string Description;
+
+ public uint PromoteExperienceID;
+
+ public uint OperateLevel;
+
+ public bool PromoteLR;
+
+ public string ProfNameIcon;
+
+ public string ProfIntro;
+
+ public string ProfTypeIntro;
+
+ public string ProfWord1;
+
+ public string ProfWord2;
+ }
+
+ public ProfSkillTable.RowData GetByProfID(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ ProfSkillTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].ProfID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ ProfSkillTable.RowData rowData = new ProfSkillTable.RowData();
+ base.Read<int>(reader, ref rowData.ProfID, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.ProfName, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.Skill1, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.Skill2, CVSReader.stringParse);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.Skill3, CVSReader.stringParse);
+ this.columnno = 4;
+ base.Read<string>(reader, ref rowData.Skill4, CVSReader.stringParse);
+ this.columnno = 5;
+ base.Read<string>(reader, ref rowData.ProfIcon, CVSReader.stringParse);
+ this.columnno = 6;
+ base.Read<string>(reader, ref rowData.ProfPic, CVSReader.stringParse);
+ this.columnno = 7;
+ base.Read<string>(reader, ref rowData.ProfHeadIcon, CVSReader.stringParse);
+ this.columnno = 8;
+ base.Read<string>(reader, ref rowData.ProfHeadIcon2, CVSReader.stringParse);
+ this.columnno = 9;
+ base.Read<float>(reader, ref rowData.FixedEnmity, CVSReader.floatParse);
+ this.columnno = 10;
+ base.Read<float>(reader, ref rowData.EnmityCoefficient, CVSReader.floatParse);
+ this.columnno = 11;
+ base.Read<string>(reader, ref rowData.Description, CVSReader.stringParse);
+ this.columnno = 12;
+ base.Read<uint>(reader, ref rowData.PromoteExperienceID, CVSReader.uintParse);
+ this.columnno = 13;
+ base.Read<uint>(reader, ref rowData.OperateLevel, CVSReader.uintParse);
+ this.columnno = 14;
+ base.Read<bool>(reader, ref rowData.PromoteLR, CVSReader.boolParse);
+ this.columnno = 15;
+ base.Read<string>(reader, ref rowData.ProfNameIcon, CVSReader.stringParse);
+ this.columnno = 16;
+ base.Read<string>(reader, ref rowData.ProfIntro, CVSReader.stringParse);
+ this.columnno = 17;
+ base.Read<string>(reader, ref rowData.ProfTypeIntro, CVSReader.stringParse);
+ this.columnno = 18;
+ base.Read<string>(reader, ref rowData.ProfWord1, CVSReader.stringParse);
+ this.columnno = 19;
+ base.Read<string>(reader, ref rowData.ProfWord2, CVSReader.stringParse);
+ this.columnno = 20;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new ProfSkillTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ProfSkillTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ProfSkillTable.cs.meta new file mode 100644 index 00000000..9c422ca9 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ProfSkillTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 339ad1055582e5040b50b26f144f800a +timeCreated: 1611465310 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ProfessionConvertTable.cs b/Client/Assets/Scripts/XUtliPoolLib/ProfessionConvertTable.cs new file mode 100644 index 00000000..ce23e61d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ProfessionConvertTable.cs @@ -0,0 +1,76 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class ProfessionConvertTable : CVSReader
+ {
+ public ProfessionConvertTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int ProfessionID;
+
+ public int AttributeID;
+
+ public double PhysicalAtk;
+
+ public double PhysicalDef;
+
+ public double MagicAtk;
+
+ public double MagicDef;
+
+ public double Critical;
+
+ public double CritResist;
+
+ public double MaxHP;
+
+ public double MaxMP;
+
+ public double CritDamage;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ ProfessionConvertTable.RowData rowData = new ProfessionConvertTable.RowData();
+ base.Read<int>(reader, ref rowData.ProfessionID, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<int>(reader, ref rowData.AttributeID, CVSReader.intParse);
+ this.columnno = 1;
+ base.Read<double>(reader, ref rowData.PhysicalAtk, CVSReader.doubleParse);
+ this.columnno = 2;
+ base.Read<double>(reader, ref rowData.PhysicalDef, CVSReader.doubleParse);
+ this.columnno = 3;
+ base.Read<double>(reader, ref rowData.MagicAtk, CVSReader.doubleParse);
+ this.columnno = 4;
+ base.Read<double>(reader, ref rowData.MagicDef, CVSReader.doubleParse);
+ this.columnno = 5;
+ base.Read<double>(reader, ref rowData.Critical, CVSReader.doubleParse);
+ this.columnno = 6;
+ base.Read<double>(reader, ref rowData.CritResist, CVSReader.doubleParse);
+ this.columnno = 7;
+ base.Read<double>(reader, ref rowData.MaxHP, CVSReader.doubleParse);
+ this.columnno = 12;
+ base.Read<double>(reader, ref rowData.MaxMP, CVSReader.doubleParse);
+ this.columnno = 13;
+ base.Read<double>(reader, ref rowData.CritDamage, CVSReader.doubleParse);
+ this.columnno = 15;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new ProfessionConvertTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ProfessionConvertTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ProfessionConvertTable.cs.meta new file mode 100644 index 00000000..ec3767d8 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ProfessionConvertTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d7807ff8a87e1b340beb33382225fdce +timeCreated: 1611465764 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ProfessionTable.cs b/Client/Assets/Scripts/XUtliPoolLib/ProfessionTable.cs new file mode 100644 index 00000000..e8627785 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ProfessionTable.cs @@ -0,0 +1,71 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class ProfessionTable : CVSReader
+ {
+ public ProfessionTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint ID;
+
+ public uint PresentID;
+
+ public uint AttackType;
+
+ public uint AwakeHair;
+ }
+
+ public ProfessionTable.RowData GetByProfID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ ProfessionTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].ID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ ProfessionTable.RowData rowData = new ProfessionTable.RowData();
+ base.Read<uint>(reader, ref rowData.ID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.PresentID, CVSReader.uintParse);
+ this.columnno = 3;
+ base.Read<uint>(reader, ref rowData.AttackType, CVSReader.uintParse);
+ this.columnno = 6;
+ base.Read<uint>(reader, ref rowData.AwakeHair, CVSReader.uintParse);
+ this.columnno = 8;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new ProfessionTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ProfessionTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ProfessionTable.cs.meta new file mode 100644 index 00000000..50e5e650 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ProfessionTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 82ff2448977168442ac2a516e6c5071e +timeCreated: 1611465694 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/PushMessageTable.cs b/Client/Assets/Scripts/XUtliPoolLib/PushMessageTable.cs new file mode 100644 index 00000000..bbf2b5d9 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PushMessageTable.cs @@ -0,0 +1,56 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class PushMessageTable : CVSReader
+ {
+ public PushMessageTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint Type;
+
+ public string Title;
+
+ public string Content;
+
+ public uint IsCommonGlobal;
+
+ public uint[] Time;
+
+ public uint[] WeekDay;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ PushMessageTable.RowData rowData = new PushMessageTable.RowData();
+ base.Read<uint>(reader, ref rowData.Type, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.Title, CVSReader.stringParse);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.Content, CVSReader.stringParse);
+ this.columnno = 4;
+ base.Read<uint>(reader, ref rowData.IsCommonGlobal, CVSReader.uintParse);
+ this.columnno = 5;
+ base.ReadArray<uint>(reader, ref rowData.Time, CVSReader.uintParse);
+ this.columnno = 6;
+ base.ReadArray<uint>(reader, ref rowData.WeekDay, CVSReader.uintParse);
+ this.columnno = 8;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new PushMessageTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/PushMessageTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/PushMessageTable.cs.meta new file mode 100644 index 00000000..0690995a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PushMessageTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 70c722f3fb5797d44ae0e5943f58fe45 +timeCreated: 1611465687 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/PushSetting.cs b/Client/Assets/Scripts/XUtliPoolLib/PushSetting.cs new file mode 100644 index 00000000..96bb7fb1 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PushSetting.cs @@ -0,0 +1,56 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class PushSetting : CVSReader
+ {
+ public PushSetting.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint Type;
+
+ public string ConfigName;
+
+ public uint TimeOrSystem;
+
+ public string Time;
+
+ public string WeekDay;
+
+ public string ConfigKey;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ PushSetting.RowData rowData = new PushSetting.RowData();
+ base.Read<uint>(reader, ref rowData.Type, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.ConfigName, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<uint>(reader, ref rowData.TimeOrSystem, CVSReader.uintParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.Time, CVSReader.stringParse);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.WeekDay, CVSReader.stringParse);
+ this.columnno = 4;
+ base.Read<string>(reader, ref rowData.ConfigKey, CVSReader.stringParse);
+ this.columnno = 5;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new PushSetting.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/PushSetting.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/PushSetting.cs.meta new file mode 100644 index 00000000..013cb09c --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PushSetting.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 813bcf01851af5d48aa08621b856e338 +timeCreated: 1611465693 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/PushSubscribeTable.cs b/Client/Assets/Scripts/XUtliPoolLib/PushSubscribeTable.cs new file mode 100644 index 00000000..bfa3ff11 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PushSubscribeTable.cs @@ -0,0 +1,71 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class PushSubscribeTable : CVSReader
+ {
+ public PushSubscribeTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint MsgId;
+
+ public bool IsShow;
+
+ public string SubscribeDescription;
+
+ public string CancelDescription;
+ }
+
+ public PushSubscribeTable.RowData GetByMsgId(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ PushSubscribeTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].MsgId == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ PushSubscribeTable.RowData rowData = new PushSubscribeTable.RowData();
+ base.Read<uint>(reader, ref rowData.MsgId, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<bool>(reader, ref rowData.IsShow, CVSReader.boolParse);
+ this.columnno = 4;
+ base.Read<string>(reader, ref rowData.SubscribeDescription, CVSReader.stringParse);
+ this.columnno = 5;
+ base.Read<string>(reader, ref rowData.CancelDescription, CVSReader.stringParse);
+ this.columnno = 6;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new PushSubscribeTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/PushSubscribeTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/PushSubscribeTable.cs.meta new file mode 100644 index 00000000..fe09db38 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PushSubscribeTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4b25098b593b18a4d978624b28b81fdb +timeCreated: 1611465640 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/PveProfessionTable.cs b/Client/Assets/Scripts/XUtliPoolLib/PveProfessionTable.cs new file mode 100644 index 00000000..c1a5f09b --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PveProfessionTable.cs @@ -0,0 +1,40 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class PveProfessionTable : CVSReader
+ {
+ public PveProfessionTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint SceneID;
+
+ public short ProfessionID;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ PveProfessionTable.RowData rowData = new PveProfessionTable.RowData();
+ base.Read<uint>(reader, ref rowData.SceneID, CVSReader.uintParse);
+ this.columnno = 1;
+ base.Read<short>(reader, ref rowData.ProfessionID, CVSReader.shortParse);
+ this.columnno = 14;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new PveProfessionTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/PveProfessionTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/PveProfessionTable.cs.meta new file mode 100644 index 00000000..a375a9d0 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/PveProfessionTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: e834cc6e7cc15e0479e4b18889a34617 +timeCreated: 1611465802 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/QAConditionTable.cs b/Client/Assets/Scripts/XUtliPoolLib/QAConditionTable.cs new file mode 100644 index 00000000..4f092a91 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/QAConditionTable.cs @@ -0,0 +1,63 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class QAConditionTable : CVSReader
+ {
+ public QAConditionTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int QAType;
+
+ public SeqListRef<uint> LevelSection;
+ }
+
+ public QAConditionTable.RowData GetByQAType(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ QAConditionTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].QAType == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ QAConditionTable.RowData rowData = new QAConditionTable.RowData();
+ base.Read<int>(reader, ref rowData.QAType, CVSReader.intParse);
+ this.columnno = 0;
+ rowData.LevelSection.Read(reader, this.m_DataHandler);
+ this.columnno = 10;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new QAConditionTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/QAConditionTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/QAConditionTable.cs.meta new file mode 100644 index 00000000..d627dbe2 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/QAConditionTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 560defc3b5baa7b4a817f93abcdf2aed +timeCreated: 1611465645 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/QALevelRewardTable.cs b/Client/Assets/Scripts/XUtliPoolLib/QALevelRewardTable.cs new file mode 100644 index 00000000..63088e18 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/QALevelRewardTable.cs @@ -0,0 +1,79 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class QALevelRewardTable : CVSReader
+ {
+ public QALevelRewardTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint ID;
+
+ public uint QAType;
+
+ public uint MinLevel;
+
+ public uint MaxLevel;
+
+ public SeqListRef<uint> Reward;
+
+ public SeqListRef<uint> ExtraReward;
+ }
+
+ public QALevelRewardTable.RowData GetByID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ QALevelRewardTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].ID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ QALevelRewardTable.RowData rowData = new QALevelRewardTable.RowData();
+ base.Read<uint>(reader, ref rowData.ID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.QAType, CVSReader.uintParse);
+ this.columnno = 1;
+ base.Read<uint>(reader, ref rowData.MinLevel, CVSReader.uintParse);
+ this.columnno = 2;
+ base.Read<uint>(reader, ref rowData.MaxLevel, CVSReader.uintParse);
+ this.columnno = 3;
+ rowData.Reward.Read(reader, this.m_DataHandler);
+ this.columnno = 4;
+ rowData.ExtraReward.Read(reader, this.m_DataHandler);
+ this.columnno = 5;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new QALevelRewardTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/QALevelRewardTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/QALevelRewardTable.cs.meta new file mode 100644 index 00000000..180105da --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/QALevelRewardTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 9701c3b848b60614e9950bd200599858 +timeCreated: 1611465708 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/QuestionLibraryTable.cs b/Client/Assets/Scripts/XUtliPoolLib/QuestionLibraryTable.cs new file mode 100644 index 00000000..587e04e1 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/QuestionLibraryTable.cs @@ -0,0 +1,121 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class QuestionLibraryTable : CVSReader
+ {
+ public QuestionLibraryTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int ID;
+
+ public string Question;
+
+ public int TimeLimit;
+
+ public uint Week;
+ }
+
+ public QuestionLibraryTable.RowData GetByID(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ QuestionLibraryTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchID(key);
+ }
+ return result;
+ }
+
+ private QuestionLibraryTable.RowData BinarySearchID(int key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ QuestionLibraryTable.RowData rowData;
+ QuestionLibraryTable.RowData rowData2;
+ QuestionLibraryTable.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.ID == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.ID == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.ID.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.ID.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ QuestionLibraryTable.RowData rowData = new QuestionLibraryTable.RowData();
+ base.Read<int>(reader, ref rowData.ID, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.Question, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<int>(reader, ref rowData.TimeLimit, CVSReader.intParse);
+ this.columnno = 4;
+ base.Read<uint>(reader, ref rowData.Week, CVSReader.uintParse);
+ this.columnno = 7;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new QuestionLibraryTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/QuestionLibraryTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/QuestionLibraryTable.cs.meta new file mode 100644 index 00000000..91faacfd --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/QuestionLibraryTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f275f66d89c705948be3f46a7ff2d72a +timeCreated: 1611465807 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/QueuePool.cs b/Client/Assets/Scripts/XUtliPoolLib/QueuePool.cs new file mode 100644 index 00000000..397c6010 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/QueuePool.cs @@ -0,0 +1,31 @@ +using System;
+using System.Collections.Generic;
+
+namespace XUtliPoolLib
+{
+ public class QueuePool<T>
+ {
+ private static readonly ObjectPool<Queue<T>> s_Pool = new ObjectPool<Queue<T>>(new ObjectPool<Queue<T>>.CreateObj(QueuePool<T>.Create), delegate(Queue<T> l)
+ {
+ l.Clear();
+ }, delegate(Queue<T> l)
+ {
+ l.Clear();
+ });
+
+ public static Queue<T> Create()
+ {
+ return new Queue<T>();
+ }
+
+ public static Queue<T> Get()
+ {
+ return QueuePool<T>.s_Pool.Get();
+ }
+
+ public static void Release(Queue<T> toRelease)
+ {
+ QueuePool<T>.s_Pool.Release(toRelease);
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/QueuePool.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/QueuePool.cs.meta new file mode 100644 index 00000000..4a9486eb --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/QueuePool.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1797fa325921ba14d9d660217412d38f +timeCreated: 1611465295 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/QuickReplyTable.cs b/Client/Assets/Scripts/XUtliPoolLib/QuickReplyTable.cs new file mode 100644 index 00000000..f18941e7 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/QuickReplyTable.cs @@ -0,0 +1,67 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class QuickReplyTable : CVSReader
+ {
+ public QuickReplyTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int ID;
+
+ public int Type;
+
+ public string Content;
+ }
+
+ public QuickReplyTable.RowData GetByID(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ QuickReplyTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].ID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ QuickReplyTable.RowData rowData = new QuickReplyTable.RowData();
+ base.Read<int>(reader, ref rowData.ID, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<int>(reader, ref rowData.Type, CVSReader.intParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.Content, CVSReader.stringParse);
+ this.columnno = 2;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new QuickReplyTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/QuickReplyTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/QuickReplyTable.cs.meta new file mode 100644 index 00000000..a4708a56 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/QuickReplyTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8ea8cfe3283a07b4ebc690dddb08c866 +timeCreated: 1611465703 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/RandomAttributes.cs b/Client/Assets/Scripts/XUtliPoolLib/RandomAttributes.cs new file mode 100644 index 00000000..f4a48a67 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/RandomAttributes.cs @@ -0,0 +1,56 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class RandomAttributes : CVSReader
+ {
+ public RandomAttributes.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint EquipID;
+
+ public byte Slot;
+
+ public byte AttrID;
+
+ public byte Prob;
+
+ public SeqRef<uint> Range;
+
+ public byte CanSmelt;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ RandomAttributes.RowData rowData = new RandomAttributes.RowData();
+ base.Read<uint>(reader, ref rowData.EquipID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<byte>(reader, ref rowData.Slot, CVSReader.byteParse);
+ this.columnno = 1;
+ base.Read<byte>(reader, ref rowData.AttrID, CVSReader.byteParse);
+ this.columnno = 2;
+ base.Read<byte>(reader, ref rowData.Prob, CVSReader.byteParse);
+ this.columnno = 3;
+ rowData.Range.Read(reader, this.m_DataHandler);
+ this.columnno = 5;
+ base.Read<byte>(reader, ref rowData.CanSmelt, CVSReader.byteParse);
+ this.columnno = 10;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new RandomAttributes.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/RandomAttributes.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/RandomAttributes.cs.meta new file mode 100644 index 00000000..1c4eeaab --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/RandomAttributes.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 3b22fcc1fca66e44d9f165616251c867 +timeCreated: 1611465632 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/RandomBossTable.cs b/Client/Assets/Scripts/XUtliPoolLib/RandomBossTable.cs new file mode 100644 index 00000000..22dec19c --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/RandomBossTable.cs @@ -0,0 +1,40 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class RandomBossTable : CVSReader
+ {
+ public RandomBossTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int RandomID;
+
+ public int EntityID;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ RandomBossTable.RowData rowData = new RandomBossTable.RowData();
+ base.Read<int>(reader, ref rowData.RandomID, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<int>(reader, ref rowData.EntityID, CVSReader.intParse);
+ this.columnno = 1;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new RandomBossTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/RandomBossTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/RandomBossTable.cs.meta new file mode 100644 index 00000000..9a71b811 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/RandomBossTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 871b6c7a37aec7146ab5beb2b4b272be +timeCreated: 1611465696 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/RandomName.cs b/Client/Assets/Scripts/XUtliPoolLib/RandomName.cs new file mode 100644 index 00000000..889f28df --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/RandomName.cs @@ -0,0 +1,117 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class RandomName : CVSReader
+ {
+ public RandomName.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int ID;
+
+ public string FirstName;
+
+ public string LastName;
+ }
+
+ public RandomName.RowData GetByID(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ RandomName.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchID(key);
+ }
+ return result;
+ }
+
+ private RandomName.RowData BinarySearchID(int key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ RandomName.RowData rowData;
+ RandomName.RowData rowData2;
+ RandomName.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.ID == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.ID == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.ID.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.ID.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ RandomName.RowData rowData = new RandomName.RowData();
+ base.Read<int>(reader, ref rowData.ID, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.FirstName, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.LastName, CVSReader.stringParse);
+ this.columnno = 2;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new RandomName.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/RandomName.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/RandomName.cs.meta new file mode 100644 index 00000000..5eb339a0 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/RandomName.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 79c79458a3238c04d89361ffebf05fee +timeCreated: 1611465692 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/RandomSceneTable.cs b/Client/Assets/Scripts/XUtliPoolLib/RandomSceneTable.cs new file mode 100644 index 00000000..62619f35 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/RandomSceneTable.cs @@ -0,0 +1,40 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class RandomSceneTable : CVSReader
+ {
+ public RandomSceneTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint RandomID;
+
+ public uint SceneID;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ RandomSceneTable.RowData rowData = new RandomSceneTable.RowData();
+ base.Read<uint>(reader, ref rowData.RandomID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.SceneID, CVSReader.uintParse);
+ this.columnno = 1;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new RandomSceneTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/RandomSceneTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/RandomSceneTable.cs.meta new file mode 100644 index 00000000..777281a6 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/RandomSceneTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 79213f508b5ebd142ae90a1354b18006 +timeCreated: 1611465692 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/RandomTaskTable.cs b/Client/Assets/Scripts/XUtliPoolLib/RandomTaskTable.cs new file mode 100644 index 00000000..5286471d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/RandomTaskTable.cs @@ -0,0 +1,75 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class RandomTaskTable : CVSReader
+ {
+ public RandomTaskTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int TaskID;
+
+ public string TaskDescription;
+
+ public int TaskCondition;
+
+ public int TaskParam;
+
+ public SeqListRef<int> TaskReward;
+ }
+
+ public RandomTaskTable.RowData GetByTaskID(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ RandomTaskTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].TaskID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ RandomTaskTable.RowData rowData = new RandomTaskTable.RowData();
+ base.Read<int>(reader, ref rowData.TaskID, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.TaskDescription, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<int>(reader, ref rowData.TaskCondition, CVSReader.intParse);
+ this.columnno = 3;
+ base.Read<int>(reader, ref rowData.TaskParam, CVSReader.intParse);
+ this.columnno = 4;
+ rowData.TaskReward.Read(reader, this.m_DataHandler);
+ this.columnno = 5;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new RandomTaskTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/RandomTaskTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/RandomTaskTable.cs.meta new file mode 100644 index 00000000..93703d52 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/RandomTaskTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 6fffbab3e8f8bd64582e9ddc6742bfab +timeCreated: 1611465687 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/RechargeTable.cs b/Client/Assets/Scripts/XUtliPoolLib/RechargeTable.cs new file mode 100644 index 00000000..d5a40902 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/RechargeTable.cs @@ -0,0 +1,64 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class RechargeTable : CVSReader
+ {
+ public RechargeTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public string ParamID;
+
+ public int Price;
+
+ public int Diamond;
+
+ public SeqListRef<int> RoleLevels;
+
+ public SeqListRef<int> LoginDays;
+
+ public int SystemID;
+
+ public string Name;
+
+ public string ServiceCode;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ RechargeTable.RowData rowData = new RechargeTable.RowData();
+ base.Read<string>(reader, ref rowData.ParamID, CVSReader.stringParse);
+ this.columnno = 0;
+ base.Read<int>(reader, ref rowData.Price, CVSReader.intParse);
+ this.columnno = 1;
+ base.Read<int>(reader, ref rowData.Diamond, CVSReader.intParse);
+ this.columnno = 2;
+ rowData.RoleLevels.Read(reader, this.m_DataHandler);
+ this.columnno = 3;
+ rowData.LoginDays.Read(reader, this.m_DataHandler);
+ this.columnno = 4;
+ base.Read<int>(reader, ref rowData.SystemID, CVSReader.intParse);
+ this.columnno = 5;
+ base.Read<string>(reader, ref rowData.Name, CVSReader.stringParse);
+ this.columnno = 6;
+ base.Read<string>(reader, ref rowData.ServiceCode, CVSReader.stringParse);
+ this.columnno = 7;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new RechargeTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/RechargeTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/RechargeTable.cs.meta new file mode 100644 index 00000000..f17f6976 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/RechargeTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: dcca8c7e69ece064cb910996892f2b1e +timeCreated: 1611465796 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/RecommendFightNum.cs b/Client/Assets/Scripts/XUtliPoolLib/RecommendFightNum.cs new file mode 100644 index 00000000..3d112e9b --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/RecommendFightNum.cs @@ -0,0 +1,48 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class RecommendFightNum : CVSReader
+ {
+ public RecommendFightNum.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint Level;
+
+ public uint SystemID;
+
+ public uint Total;
+
+ public uint Point;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ RecommendFightNum.RowData rowData = new RecommendFightNum.RowData();
+ base.Read<uint>(reader, ref rowData.Level, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.SystemID, CVSReader.uintParse);
+ this.columnno = 1;
+ base.Read<uint>(reader, ref rowData.Total, CVSReader.uintParse);
+ this.columnno = 2;
+ base.Read<uint>(reader, ref rowData.Point, CVSReader.uintParse);
+ this.columnno = 3;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new RecommendFightNum.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/RecommendFightNum.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/RecommendFightNum.cs.meta new file mode 100644 index 00000000..5ec6646a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/RecommendFightNum.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 5573e272dcf9a9542a27011b56539e68 +timeCreated: 1611465645 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/RenameList.cs b/Client/Assets/Scripts/XUtliPoolLib/RenameList.cs new file mode 100644 index 00000000..6a06a9e6 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/RenameList.cs @@ -0,0 +1,63 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class RenameList : CVSReader
+ {
+ public RenameList.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int id;
+
+ public int cost;
+ }
+
+ public RenameList.RowData GetByid(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ RenameList.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].id == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ RenameList.RowData rowData = new RenameList.RowData();
+ base.Read<int>(reader, ref rowData.id, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<int>(reader, ref rowData.cost, CVSReader.intParse);
+ this.columnno = 1;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new RenameList.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/RenameList.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/RenameList.cs.meta new file mode 100644 index 00000000..e983ec18 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/RenameList.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4e206ada584e31549877df2d9bb69f6b +timeCreated: 1611465642 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ResetCallback.cs b/Client/Assets/Scripts/XUtliPoolLib/ResetCallback.cs new file mode 100644 index 00000000..c7e302db --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ResetCallback.cs @@ -0,0 +1,6 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public delegate void ResetCallback();
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ResetCallback.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ResetCallback.cs.meta new file mode 100644 index 00000000..2ce55e92 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ResetCallback.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4701ea3effa1db14094c7965db08d05a +timeCreated: 1611465638 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/Rift.cs b/Client/Assets/Scripts/XUtliPoolLib/Rift.cs new file mode 100644 index 00000000..d4fc422f --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Rift.cs @@ -0,0 +1,64 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class Rift : CVSReader
+ {
+ public Rift.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int id;
+
+ public int floor;
+
+ public int attack;
+
+ public int hp;
+
+ public SeqListRef<uint> weekfirstpass;
+
+ public SeqListRef<uint> weekcommonpass;
+
+ public int buffcounts;
+
+ public uint RecommendPower;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ Rift.RowData rowData = new Rift.RowData();
+ base.Read<int>(reader, ref rowData.id, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<int>(reader, ref rowData.floor, CVSReader.intParse);
+ this.columnno = 1;
+ base.Read<int>(reader, ref rowData.attack, CVSReader.intParse);
+ this.columnno = 2;
+ base.Read<int>(reader, ref rowData.hp, CVSReader.intParse);
+ this.columnno = 3;
+ rowData.weekfirstpass.Read(reader, this.m_DataHandler);
+ this.columnno = 4;
+ rowData.weekcommonpass.Read(reader, this.m_DataHandler);
+ this.columnno = 5;
+ base.Read<int>(reader, ref rowData.buffcounts, CVSReader.intParse);
+ this.columnno = 6;
+ base.Read<uint>(reader, ref rowData.RecommendPower, CVSReader.uintParse);
+ this.columnno = 7;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new Rift.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/Rift.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/Rift.cs.meta new file mode 100644 index 00000000..f8c018e1 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Rift.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 45f5f309c8d16c54d946ca80a801950a +timeCreated: 1611465638 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/RiftBuffSuitMonsterType.cs b/Client/Assets/Scripts/XUtliPoolLib/RiftBuffSuitMonsterType.cs new file mode 100644 index 00000000..62cb33fa --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/RiftBuffSuitMonsterType.cs @@ -0,0 +1,52 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class RiftBuffSuitMonsterType : CVSReader
+ {
+ public RiftBuffSuitMonsterType.RowData[] Table = null;
+
+ public class RowData
+ {
+ public SeqRef<uint> buff;
+
+ public uint[] suitmonstertype;
+
+ public string atlas;
+
+ public string icon;
+
+ public string scription;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ RiftBuffSuitMonsterType.RowData rowData = new RiftBuffSuitMonsterType.RowData();
+ rowData.buff.Read(reader, this.m_DataHandler);
+ this.columnno = 0;
+ base.ReadArray<uint>(reader, ref rowData.suitmonstertype, CVSReader.uintParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.atlas, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.icon, CVSReader.stringParse);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.scription, CVSReader.stringParse);
+ this.columnno = 4;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new RiftBuffSuitMonsterType.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/RiftBuffSuitMonsterType.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/RiftBuffSuitMonsterType.cs.meta new file mode 100644 index 00000000..2c542efb --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/RiftBuffSuitMonsterType.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4562985e3e4c706429d886fac83b92a9 +timeCreated: 1611465637 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/RiftRankReward.cs b/Client/Assets/Scripts/XUtliPoolLib/RiftRankReward.cs new file mode 100644 index 00000000..e7fce59d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/RiftRankReward.cs @@ -0,0 +1,44 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class RiftRankReward : CVSReader
+ {
+ public RiftRankReward.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int levelrange;
+
+ public SeqRef<uint> rank;
+
+ public SeqListRef<uint> reward;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ RiftRankReward.RowData rowData = new RiftRankReward.RowData();
+ base.Read<int>(reader, ref rowData.levelrange, CVSReader.intParse);
+ this.columnno = 0;
+ rowData.rank.Read(reader, this.m_DataHandler);
+ this.columnno = 1;
+ rowData.reward.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new RiftRankReward.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/RiftRankReward.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/RiftRankReward.cs.meta new file mode 100644 index 00000000..4edbc658 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/RiftRankReward.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: be03289f38fda3b4a957c6d773d47237 +timeCreated: 1611465751 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/RiftType.cs b/Client/Assets/Scripts/XUtliPoolLib/RiftType.cs new file mode 100644 index 00000000..0bbb4138 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/RiftType.cs @@ -0,0 +1,52 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class RiftType : CVSReader
+ {
+ public RiftType.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int id;
+
+ public int sceneid;
+
+ public int worldlevel;
+
+ public int bufflibrary;
+
+ public int buffcounts;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ RiftType.RowData rowData = new RiftType.RowData();
+ base.Read<int>(reader, ref rowData.id, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<int>(reader, ref rowData.sceneid, CVSReader.intParse);
+ this.columnno = 1;
+ base.Read<int>(reader, ref rowData.worldlevel, CVSReader.intParse);
+ this.columnno = 2;
+ base.Read<int>(reader, ref rowData.bufflibrary, CVSReader.intParse);
+ this.columnno = 3;
+ base.Read<int>(reader, ref rowData.buffcounts, CVSReader.intParse);
+ this.columnno = 4;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new RiftType.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/RiftType.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/RiftType.cs.meta new file mode 100644 index 00000000..d6548463 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/RiftType.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 92dd83962a5033c4a98bd5e8b957f44a +timeCreated: 1611465706 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/RiftWelfareReward.cs b/Client/Assets/Scripts/XUtliPoolLib/RiftWelfareReward.cs new file mode 100644 index 00000000..5cc0b425 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/RiftWelfareReward.cs @@ -0,0 +1,44 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class RiftWelfareReward : CVSReader
+ {
+ public RiftWelfareReward.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int levelrange;
+
+ public SeqRef<int> floor;
+
+ public SeqListRef<uint> reward;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ RiftWelfareReward.RowData rowData = new RiftWelfareReward.RowData();
+ base.Read<int>(reader, ref rowData.levelrange, CVSReader.intParse);
+ this.columnno = 0;
+ rowData.floor.Read(reader, this.m_DataHandler);
+ this.columnno = 1;
+ rowData.reward.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new RiftWelfareReward.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/RiftWelfareReward.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/RiftWelfareReward.cs.meta new file mode 100644 index 00000000..9723bcce --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/RiftWelfareReward.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 5967334a3f8ae0547b7e4046123bb33e +timeCreated: 1611465646 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/RiskMapFile.cs b/Client/Assets/Scripts/XUtliPoolLib/RiskMapFile.cs new file mode 100644 index 00000000..48f3ac67 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/RiskMapFile.cs @@ -0,0 +1,99 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class RiskMapFile : CVSReader
+ {
+ public RiskMapFile.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int MapID;
+
+ public int NeedLevel;
+
+ public string FileName;
+
+ public int StepSizeX;
+
+ public int StepSizeY;
+
+ public int StartUIX;
+
+ public int StartUIY;
+
+ public SeqListRef<int> BoxPreview;
+
+ public string MapBgName;
+
+ public string MapTittleName;
+
+ public string MapGridBg;
+ }
+
+ public RiskMapFile.RowData GetByMapID(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ RiskMapFile.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].MapID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ RiskMapFile.RowData rowData = new RiskMapFile.RowData();
+ base.Read<int>(reader, ref rowData.MapID, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<int>(reader, ref rowData.NeedLevel, CVSReader.intParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.FileName, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<int>(reader, ref rowData.StepSizeX, CVSReader.intParse);
+ this.columnno = 3;
+ base.Read<int>(reader, ref rowData.StepSizeY, CVSReader.intParse);
+ this.columnno = 4;
+ base.Read<int>(reader, ref rowData.StartUIX, CVSReader.intParse);
+ this.columnno = 5;
+ base.Read<int>(reader, ref rowData.StartUIY, CVSReader.intParse);
+ this.columnno = 6;
+ rowData.BoxPreview.Read(reader, this.m_DataHandler);
+ this.columnno = 7;
+ base.Read<string>(reader, ref rowData.MapBgName, CVSReader.stringParse);
+ this.columnno = 8;
+ base.Read<string>(reader, ref rowData.MapTittleName, CVSReader.stringParse);
+ this.columnno = 9;
+ base.Read<string>(reader, ref rowData.MapGridBg, CVSReader.stringParse);
+ this.columnno = 10;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new RiskMapFile.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/RiskMapFile.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/RiskMapFile.cs.meta new file mode 100644 index 00000000..d5079017 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/RiskMapFile.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 9769e39acc644fd47a1000a5f008fe39 +timeCreated: 1611465708 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/SceneTable.cs b/Client/Assets/Scripts/XUtliPoolLib/SceneTable.cs new file mode 100644 index 00000000..ca75a7ad --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SceneTable.cs @@ -0,0 +1,441 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class SceneTable : CVSReader
+ {
+ public SceneTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int id;
+
+ public byte type;
+
+ public string configFile;
+
+ public SeqListRef<float> StartPos;
+
+ public float[] StartRot;
+
+ public string sceneFile;
+
+ public byte syncMode;
+
+ public string BlockFilePath;
+
+ public short[] UIPos;
+
+ public int Exp;
+
+ public int Money;
+
+ public short Chapter;
+
+ public string Comment;
+
+ public int RecommendPower;
+
+ public byte RequiredLevel;
+
+ public int[] FirstDownDrop;
+
+ public int[] ViewableDropList;
+
+ public SeqListRef<int> FatigueCost;
+
+ public string EndCutScene;
+
+ public float EndCutSceneTime;
+
+ public SeqListRef<int> WinCondition;
+
+ public SeqListRef<int> LoseCondition;
+
+ public short DayLimit;
+
+ public bool CanDrawBox;
+
+ public bool HasFlyOut;
+
+ public uint DayLimitGroupID;
+
+ public string DynamicScene;
+
+ public bool CanPause;
+
+ public short[] OperationSettings;
+
+ public string BGM;
+
+ public bool ShowUp;
+
+ public SeqListRef<uint> FirstSSS;
+
+ public int[] PreScene;
+
+ public int SceneChest;
+
+ public short[] BoxUIPos;
+
+ public string[] LoadingTips;
+
+ public string[] LoadingPic;
+
+ public bool SceneCanNavi;
+
+ public float HurtCoef;
+
+ public string MiniMap;
+
+ public short[] MiniMapSize;
+
+ public short MiniMapRotation;
+
+ public short PreTask;
+
+ public bool SwitchToSelf;
+
+ public string SceneAI;
+
+ public bool ShowAutoFight;
+
+ public float GuildExpBounus;
+
+ public string FailText;
+
+ public string RecommendHint;
+
+ public byte TeamInfoDefaultTab;
+
+ public byte CombatType;
+
+ public int SweepNeedPPT;
+
+ public short ReviveNumb;
+
+ public SeqListRef<uint> ReviveCost;
+
+ public bool CanRevive;
+
+ public short[] TimeCounter;
+
+ public bool HasComboBuff;
+
+ public byte AutoReturn;
+
+ public uint StoryDriver;
+
+ public SeqListRef<uint> ReviveMoneyCost;
+
+ public string LeaveSceneTip;
+
+ public string ReviveBuffTip;
+
+ public bool ShowSkill;
+
+ public string WinConditionTips;
+
+ public float DelayTransfer;
+
+ public SeqRef<uint> DPS;
+
+ public bool IsCanQuit;
+
+ public byte CanVIPRevive;
+
+ public bool ShowNormalAttack;
+
+ public bool HideTeamIndicate;
+
+ public string BattleExplainTips;
+
+ public byte[] ShieldSight;
+
+ public string ScenePath;
+
+ public SeqListRef<int> EnvSet;
+
+ public float SpecifiedTargetLocatedRange;
+
+ public float[] StaticMiniMapCenter;
+
+ public byte VipReviveLimit;
+
+ public float[] MiniMapOutSize;
+
+ public bool ShowBattleStatistics;
+
+ public SeqRef<uint> PeerBox;
+
+ public SeqRef<uint> SelectBoxTime;
+
+ public uint[] SweepTicket;
+
+ public uint CycleLimitTime;
+
+ public SeqListRef<float> AwardRate;
+ }
+
+ public SceneTable.RowData GetBySceneID(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ SceneTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchSceneID(key);
+ }
+ return result;
+ }
+
+ private SceneTable.RowData BinarySearchSceneID(int key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ SceneTable.RowData rowData;
+ SceneTable.RowData rowData2;
+ SceneTable.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.id == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.id == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.id.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.id.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ SceneTable.RowData rowData = new SceneTable.RowData();
+ base.Read<int>(reader, ref rowData.id, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<byte>(reader, ref rowData.type, CVSReader.byteParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.configFile, CVSReader.stringParse);
+ this.columnno = 2;
+ rowData.StartPos.Read(reader, this.m_DataHandler);
+ this.columnno = 3;
+ base.ReadArray<float>(reader, ref rowData.StartRot, CVSReader.floatParse);
+ this.columnno = 4;
+ base.Read<string>(reader, ref rowData.sceneFile, CVSReader.stringParse);
+ this.columnno = 5;
+ base.Read<byte>(reader, ref rowData.syncMode, CVSReader.byteParse);
+ this.columnno = 6;
+ base.Read<string>(reader, ref rowData.BlockFilePath, CVSReader.stringParse);
+ this.columnno = 7;
+ base.ReadArray<short>(reader, ref rowData.UIPos, CVSReader.shortParse);
+ this.columnno = 8;
+ base.Read<int>(reader, ref rowData.Exp, CVSReader.intParse);
+ this.columnno = 9;
+ base.Read<int>(reader, ref rowData.Money, CVSReader.intParse);
+ this.columnno = 10;
+ base.Read<short>(reader, ref rowData.Chapter, CVSReader.shortParse);
+ this.columnno = 12;
+ base.Read<string>(reader, ref rowData.Comment, CVSReader.stringParse);
+ this.columnno = 13;
+ base.Read<int>(reader, ref rowData.RecommendPower, CVSReader.intParse);
+ this.columnno = 14;
+ base.Read<byte>(reader, ref rowData.RequiredLevel, CVSReader.byteParse);
+ this.columnno = 20;
+ base.ReadArray<int>(reader, ref rowData.FirstDownDrop, CVSReader.intParse);
+ this.columnno = 23;
+ base.ReadArray<int>(reader, ref rowData.ViewableDropList, CVSReader.intParse);
+ this.columnno = 25;
+ rowData.FatigueCost.Read(reader, this.m_DataHandler);
+ this.columnno = 27;
+ base.Read<string>(reader, ref rowData.EndCutScene, CVSReader.stringParse);
+ this.columnno = 28;
+ base.Read<float>(reader, ref rowData.EndCutSceneTime, CVSReader.floatParse);
+ this.columnno = 29;
+ rowData.WinCondition.Read(reader, this.m_DataHandler);
+ this.columnno = 33;
+ rowData.LoseCondition.Read(reader, this.m_DataHandler);
+ this.columnno = 34;
+ base.Read<short>(reader, ref rowData.DayLimit, CVSReader.shortParse);
+ this.columnno = 35;
+ base.Read<bool>(reader, ref rowData.CanDrawBox, CVSReader.boolParse);
+ this.columnno = 36;
+ base.Read<bool>(reader, ref rowData.HasFlyOut, CVSReader.boolParse);
+ this.columnno = 37;
+ base.Read<uint>(reader, ref rowData.DayLimitGroupID, CVSReader.uintParse);
+ this.columnno = 38;
+ base.Read<string>(reader, ref rowData.DynamicScene, CVSReader.stringParse);
+ this.columnno = 39;
+ base.Read<bool>(reader, ref rowData.CanPause, CVSReader.boolParse);
+ this.columnno = 42;
+ base.ReadArray<short>(reader, ref rowData.OperationSettings, CVSReader.shortParse);
+ this.columnno = 43;
+ base.Read<string>(reader, ref rowData.BGM, CVSReader.stringParse);
+ this.columnno = 46;
+ base.Read<bool>(reader, ref rowData.ShowUp, CVSReader.boolParse);
+ this.columnno = 47;
+ rowData.FirstSSS.Read(reader, this.m_DataHandler);
+ this.columnno = 48;
+ base.ReadArray<int>(reader, ref rowData.PreScene, CVSReader.intParse);
+ this.columnno = 49;
+ base.Read<int>(reader, ref rowData.SceneChest, CVSReader.intParse);
+ this.columnno = 50;
+ base.ReadArray<short>(reader, ref rowData.BoxUIPos, CVSReader.shortParse);
+ this.columnno = 51;
+ base.ReadArray<string>(reader, ref rowData.LoadingTips, CVSReader.stringParse);
+ this.columnno = 53;
+ base.ReadArray<string>(reader, ref rowData.LoadingPic, CVSReader.stringParse);
+ this.columnno = 54;
+ base.Read<bool>(reader, ref rowData.SceneCanNavi, CVSReader.boolParse);
+ this.columnno = 55;
+ base.Read<float>(reader, ref rowData.HurtCoef, CVSReader.floatParse);
+ this.columnno = 59;
+ base.Read<string>(reader, ref rowData.MiniMap, CVSReader.stringParse);
+ this.columnno = 60;
+ base.ReadArray<short>(reader, ref rowData.MiniMapSize, CVSReader.shortParse);
+ this.columnno = 61;
+ base.Read<short>(reader, ref rowData.MiniMapRotation, CVSReader.shortParse);
+ this.columnno = 62;
+ base.Read<short>(reader, ref rowData.PreTask, CVSReader.shortParse);
+ this.columnno = 63;
+ base.Read<bool>(reader, ref rowData.SwitchToSelf, CVSReader.boolParse);
+ this.columnno = 64;
+ base.Read<string>(reader, ref rowData.SceneAI, CVSReader.stringParse);
+ this.columnno = 65;
+ base.Read<bool>(reader, ref rowData.ShowAutoFight, CVSReader.boolParse);
+ this.columnno = 66;
+ base.Read<float>(reader, ref rowData.GuildExpBounus, CVSReader.floatParse);
+ this.columnno = 68;
+ base.Read<string>(reader, ref rowData.FailText, CVSReader.stringParse);
+ this.columnno = 69;
+ base.Read<string>(reader, ref rowData.RecommendHint, CVSReader.stringParse);
+ this.columnno = 71;
+ base.Read<byte>(reader, ref rowData.TeamInfoDefaultTab, CVSReader.byteParse);
+ this.columnno = 72;
+ base.Read<byte>(reader, ref rowData.CombatType, CVSReader.byteParse);
+ this.columnno = 73;
+ base.Read<int>(reader, ref rowData.SweepNeedPPT, CVSReader.intParse);
+ this.columnno = 74;
+ base.Read<short>(reader, ref rowData.ReviveNumb, CVSReader.shortParse);
+ this.columnno = 75;
+ rowData.ReviveCost.Read(reader, this.m_DataHandler);
+ this.columnno = 76;
+ base.Read<bool>(reader, ref rowData.CanRevive, CVSReader.boolParse);
+ this.columnno = 77;
+ base.ReadArray<short>(reader, ref rowData.TimeCounter, CVSReader.shortParse);
+ this.columnno = 82;
+ base.Read<bool>(reader, ref rowData.HasComboBuff, CVSReader.boolParse);
+ this.columnno = 83;
+ base.Read<byte>(reader, ref rowData.AutoReturn, CVSReader.byteParse);
+ this.columnno = 85;
+ base.Read<uint>(reader, ref rowData.StoryDriver, CVSReader.uintParse);
+ this.columnno = 86;
+ rowData.ReviveMoneyCost.Read(reader, this.m_DataHandler);
+ this.columnno = 88;
+ base.Read<string>(reader, ref rowData.LeaveSceneTip, CVSReader.stringParse);
+ this.columnno = 90;
+ base.Read<string>(reader, ref rowData.ReviveBuffTip, CVSReader.stringParse);
+ this.columnno = 91;
+ base.Read<bool>(reader, ref rowData.ShowSkill, CVSReader.boolParse);
+ this.columnno = 93;
+ base.Read<string>(reader, ref rowData.WinConditionTips, CVSReader.stringParse);
+ this.columnno = 94;
+ base.Read<float>(reader, ref rowData.DelayTransfer, CVSReader.floatParse);
+ this.columnno = 95;
+ rowData.DPS.Read(reader, this.m_DataHandler);
+ this.columnno = 97;
+ base.Read<bool>(reader, ref rowData.IsCanQuit, CVSReader.boolParse);
+ this.columnno = 99;
+ base.Read<byte>(reader, ref rowData.CanVIPRevive, CVSReader.byteParse);
+ this.columnno = 100;
+ base.Read<bool>(reader, ref rowData.ShowNormalAttack, CVSReader.boolParse);
+ this.columnno = 101;
+ base.Read<bool>(reader, ref rowData.HideTeamIndicate, CVSReader.boolParse);
+ this.columnno = 102;
+ base.Read<string>(reader, ref rowData.BattleExplainTips, CVSReader.stringParse);
+ this.columnno = 103;
+ base.ReadArray<byte>(reader, ref rowData.ShieldSight, CVSReader.byteParse);
+ this.columnno = 104;
+ base.Read<string>(reader, ref rowData.ScenePath, CVSReader.stringParse);
+ this.columnno = 105;
+ rowData.EnvSet.Read(reader, this.m_DataHandler);
+ this.columnno = 106;
+ base.Read<float>(reader, ref rowData.SpecifiedTargetLocatedRange, CVSReader.floatParse);
+ this.columnno = 107;
+ base.ReadArray<float>(reader, ref rowData.StaticMiniMapCenter, CVSReader.floatParse);
+ this.columnno = 110;
+ base.Read<byte>(reader, ref rowData.VipReviveLimit, CVSReader.byteParse);
+ this.columnno = 111;
+ base.ReadArray<float>(reader, ref rowData.MiniMapOutSize, CVSReader.floatParse);
+ this.columnno = 112;
+ base.Read<bool>(reader, ref rowData.ShowBattleStatistics, CVSReader.boolParse);
+ this.columnno = 115;
+ rowData.PeerBox.Read(reader, this.m_DataHandler);
+ this.columnno = 116;
+ rowData.SelectBoxTime.Read(reader, this.m_DataHandler);
+ this.columnno = 117;
+ base.ReadArray<uint>(reader, ref rowData.SweepTicket, CVSReader.uintParse);
+ this.columnno = 118;
+ base.Read<uint>(reader, ref rowData.CycleLimitTime, CVSReader.uintParse);
+ this.columnno = 119;
+ rowData.AwardRate.Read(reader, this.m_DataHandler);
+ this.columnno = 120;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new SceneTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/SceneTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/SceneTable.cs.meta new file mode 100644 index 00000000..104733ba --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SceneTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 137a6cb83e8e71c43b8f113a0f038a1b +timeCreated: 1611465293 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/Seq2.cs b/Client/Assets/Scripts/XUtliPoolLib/Seq2.cs new file mode 100644 index 00000000..6d37b109 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Seq2.cs @@ -0,0 +1,17 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public struct Seq2<T>
+ {
+ public T value0;
+
+ public T value1;
+
+ public Seq2(T v0, T v1)
+ {
+ this.value0 = v0;
+ this.value1 = v1;
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/Seq2.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/Seq2.cs.meta new file mode 100644 index 00000000..821e7f73 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/Seq2.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 65354200bbee9694cb31f6562902270a +timeCreated: 1611465682 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/SeqList.cs b/Client/Assets/Scripts/XUtliPoolLib/SeqList.cs new file mode 100644 index 00000000..d11c6018 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SeqList.cs @@ -0,0 +1,66 @@ +using System;
+using System.Collections.Generic;
+
+namespace XUtliPoolLib
+{
+ public class SeqList<T>
+ {
+ public short Count
+ {
+ get
+ {
+ return this.m_count;
+ }
+ }
+
+ public short Dim
+ {
+ get
+ {
+ return this.m_dim;
+ }
+ }
+
+ public T this[int index, int dim]
+ {
+ get
+ {
+ return this.buff[index * (int)this.m_dim + dim];
+ }
+ set
+ {
+ this.buff[index * (int)this.m_dim + dim] = value;
+ }
+ }
+
+ public List<T> buff;
+
+ private short m_dim = 2;
+
+ private short m_count = 1;
+
+ public SeqList()
+ {
+ this.buff = new List<T>();
+ this.Reset(2, 1);
+ }
+
+ public SeqList(short dim, short count)
+ {
+ this.buff = new List<T>();
+ this.Reset(dim, count);
+ }
+
+ public void Reset(short dim, short count)
+ {
+ this.m_dim = dim;
+ this.m_count = count;
+ this.buff.Clear();
+ this.buff.Capacity = (int)(this.m_dim * this.m_count);
+ for (int i = 0; i < this.buff.Capacity; i++)
+ {
+ this.buff.Add(default(T));
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/SeqList.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/SeqList.cs.meta new file mode 100644 index 00000000..0a3b4578 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SeqList.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 42a96b516a737a04cb8c360cc6f074cd +timeCreated: 1611465635 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/SeqListRef.cs b/Client/Assets/Scripts/XUtliPoolLib/SeqListRef.cs new file mode 100644 index 00000000..16140cb0 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SeqListRef.cs @@ -0,0 +1,65 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public struct SeqListRef<T> : ISeqListRef<T>, ISeqRef
+ {
+ public int Count
+ {
+ get
+ {
+ return (int)this.count;
+ }
+ }
+
+ public T this[int index, int key]
+ {
+ get
+ {
+ return this.dataHandler.ReadValue<T>(SeqListRef<T>.parser, this.allSameMask, this.startOffset, index, key);
+ }
+ }
+
+ public static CVSReader.ValueParse<T> parser;
+
+ public DataHandler dataHandler;
+
+ public byte count;
+
+ public byte allSameMask;
+
+ public ushort startOffset;
+
+ public void Read(XBinaryReader stream, DataHandler dh)
+ {
+ this.count = stream.ReadByte();
+ this.allSameMask = 1;
+ this.startOffset = 0;
+ bool flag = this.count > 0;
+ if (flag)
+ {
+ this.allSameMask = stream.ReadByte();
+ this.startOffset = stream.ReadUInt16();
+ }
+ this.dataHandler = dh;
+ }
+
+ public override string ToString()
+ {
+ string text = "";
+ for (int i = 0; i < (int)this.count; i++)
+ {
+ bool flag = i == (int)(this.count - 1);
+ if (flag)
+ {
+ text += string.Format("{0}={1}", this[i, 0], this[i, 1]);
+ }
+ else
+ {
+ text += string.Format("{0}={1}|", this[i, 0], this[i, 1]);
+ }
+ }
+ return text;
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/SeqListRef.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/SeqListRef.cs.meta new file mode 100644 index 00000000..2fc6c3ad --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SeqListRef.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c55e079344fa0cc409bc20674641a99d +timeCreated: 1611465755 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/SeqRef.cs b/Client/Assets/Scripts/XUtliPoolLib/SeqRef.cs new file mode 100644 index 00000000..582eebb6 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SeqRef.cs @@ -0,0 +1,39 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public struct SeqRef<T> : ISeqRef<T>, ISeqRef
+ {
+ public T this[int key]
+ {
+ get
+ {
+ return this.bufferRef[(int)this.startOffset + key];
+ }
+ }
+
+ public static CVSReader.ValueParse<T> parser;
+
+ public T[] bufferRef;
+
+ public ushort startOffset;
+
+ public SeqRef(T[] buffer)
+ {
+ this.bufferRef = buffer;
+ this.startOffset = 0;
+ }
+
+ public void Read(XBinaryReader stream, DataHandler dh)
+ {
+ ushort num = stream.ReadUInt16();
+ this.bufferRef = SeqRef<T>.parser.GetBuffer(dh);
+ this.startOffset = num;
+ }
+
+ public override string ToString()
+ {
+ return string.Format("{0}={1}", this[0], this[1]);
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/SeqRef.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/SeqRef.cs.meta new file mode 100644 index 00000000..915c7cf0 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SeqRef.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: daff2bdb33cb628488b55d209c0bb46f +timeCreated: 1611465794 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/SetRedpointUIHandler.cs b/Client/Assets/Scripts/XUtliPoolLib/SetRedpointUIHandler.cs new file mode 100644 index 00000000..386b590b --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SetRedpointUIHandler.cs @@ -0,0 +1,7 @@ +using System;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public delegate void SetRedpointUIHandler(GameObject go);
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/SetRedpointUIHandler.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/SetRedpointUIHandler.cs.meta new file mode 100644 index 00000000..e2a1a18a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SetRedpointUIHandler.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4d9bca7d7db8f2344bf4bcc0031e2eae +timeCreated: 1611465641 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/SevenImportTable.cs b/Client/Assets/Scripts/XUtliPoolLib/SevenImportTable.cs new file mode 100644 index 00000000..1f9f02f6 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SevenImportTable.cs @@ -0,0 +1,75 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class SevenImportTable : CVSReader
+ {
+ public SevenImportTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int ID;
+
+ public int ItemID;
+
+ public string SharedTexture;
+
+ public string SharedIcon;
+
+ public string DialogSharedTexture;
+ }
+
+ public SevenImportTable.RowData GetByID(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ SevenImportTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].ID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ SevenImportTable.RowData rowData = new SevenImportTable.RowData();
+ base.Read<int>(reader, ref rowData.ID, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<int>(reader, ref rowData.ItemID, CVSReader.intParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.SharedTexture, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.SharedIcon, CVSReader.stringParse);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.DialogSharedTexture, CVSReader.stringParse);
+ this.columnno = 4;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new SevenImportTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/SevenImportTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/SevenImportTable.cs.meta new file mode 100644 index 00000000..3758bd09 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SevenImportTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4a8401f0b24088b49a692d0f5615e79d +timeCreated: 1611465640 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ShaderManager.cs b/Client/Assets/Scripts/XUtliPoolLib/ShaderManager.cs new file mode 100644 index 00000000..17853dc0 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ShaderManager.cs @@ -0,0 +1,316 @@ +using System;
+using System.IO;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public sealed class ShaderManager : XSingleton<ShaderManager>
+ {
+ public static Shader _skin_effect
+ {
+ get
+ {
+ bool flag = ShaderManager.m_skin_effect == null;
+ if (flag)
+ {
+ ShaderManager.m_skin_effect = XSingleton<ShaderManager>.singleton.FindShader("Skin-Effect", "Custom/Skin/Effect");
+ }
+ return ShaderManager.m_skin_effect;
+ }
+ }
+
+ public static Shader _skin8
+ {
+ get
+ {
+ bool flag = ShaderManager.m_skin8 == null;
+ if (flag)
+ {
+ ShaderManager.m_skin8 = XSingleton<ShaderManager>.singleton.FindShader("Skin-RimLightBlend8", "Custom/Skin/RimlightBlend8");
+ }
+ return ShaderManager.m_skin8;
+ }
+ }
+
+ public static Shader _skin_blend
+ {
+ get
+ {
+ bool flag = ShaderManager.m_skin_blend == null;
+ if (flag)
+ {
+ ShaderManager.m_skin_blend = XSingleton<ShaderManager>.singleton.FindShader("Skin-RimLightBlend", "Custom/Skin/RimlightBlend");
+ }
+ return ShaderManager.m_skin_blend;
+ }
+ }
+
+ public static Shader _skin_cutout
+ {
+ get
+ {
+ bool flag = ShaderManager.m_skin_cutout == null;
+ if (flag)
+ {
+ ShaderManager.m_skin_cutout = XSingleton<ShaderManager>.singleton.FindShader("Skin-RimLightBlendCutout", "Custom/Skin/RimlightBlendCutout");
+ }
+ return ShaderManager.m_skin_cutout;
+ }
+ }
+
+ public static Shader _skin_cutout4
+ {
+ get
+ {
+ bool flag = ShaderManager.m_skin_cutout4 == null;
+ if (flag)
+ {
+ ShaderManager.m_skin_cutout4 = XSingleton<ShaderManager>.singleton.FindShader("Skin-RimLightBlendCutout4", "Custom/Skin/RimlightBlendCutout4");
+ }
+ return ShaderManager.m_skin_cutout4;
+ }
+ }
+
+ public static Shader _fade_maskR_noLight
+ {
+ get
+ {
+ bool flag = ShaderManager.m_fade_maskR_noLight == null;
+ if (flag)
+ {
+ ShaderManager.m_fade_maskR_noLight = XSingleton<ShaderManager>.singleton.FindShader("FadeMaskRNoLight", "Custom/Common/FadeMaskRNoLight");
+ }
+ return ShaderManager.m_fade_maskR_noLight;
+ }
+ }
+
+ public static Shader _transparentGrayMaskRNoLight
+ {
+ get
+ {
+ bool flag = ShaderManager.m_transparentGrayMaskRNoLight == null;
+ if (flag)
+ {
+ ShaderManager.m_transparentGrayMaskRNoLight = XSingleton<ShaderManager>.singleton.FindShader("TransparentGrayMaskRNoLight", "Custom/Common/TransparentGrayMaskRNoLight");
+ }
+ return ShaderManager.m_transparentGrayMaskRNoLight;
+ }
+ }
+
+ public static Shader _color
+ {
+ get
+ {
+ bool flag = ShaderManager.m_color == null;
+ if (flag)
+ {
+ ShaderManager.m_color = Shader.Find("Custom/Effect/Color");
+ }
+ return ShaderManager.m_color;
+ }
+ }
+
+ public static Shader _maskR
+ {
+ get
+ {
+ bool flag = ShaderManager.m_maskR == null;
+ if (flag)
+ {
+ ShaderManager.m_maskR = XSingleton<ShaderManager>.singleton.FindShader("CustomShadowR", "Custom/Scene/CustomShadowR");
+ }
+ return ShaderManager.m_maskR;
+ }
+ }
+
+ public static Shader _radialBlur
+ {
+ get
+ {
+ bool flag = ShaderManager.m_radialBlur == null;
+ if (flag)
+ {
+ ShaderManager.m_radialBlur = XSingleton<ShaderManager>.singleton.FindShader("RadialBlur", "Hidden/radialBlur");
+ }
+ return ShaderManager.m_radialBlur;
+ }
+ }
+
+ public static Shader _blackWhite
+ {
+ get
+ {
+ bool flag = ShaderManager.m_blackWhite == null;
+ if (flag)
+ {
+ ShaderManager.m_blackWhite = XSingleton<ShaderManager>.singleton.FindShader("BlackWhite", "Hidden/blackWhite");
+ }
+ return ShaderManager.m_blackWhite;
+ }
+ }
+
+ public static Shader _gausBlur
+ {
+ get
+ {
+ bool flag = ShaderManager.m_gausBlur == null;
+ if (flag)
+ {
+ ShaderManager.m_gausBlur = XSingleton<ShaderManager>.singleton.FindShader("BlurEffectConeTaps", "Hidden/BlurEffectConeTap");
+ }
+ return ShaderManager.m_gausBlur;
+ }
+ }
+
+ private static Shader m_skin_effect = null;
+
+ private static Shader m_skin8 = null;
+
+ private static Shader m_skin_blend = null;
+
+ private static Shader m_skin_cutout = null;
+
+ private static Shader m_skin_cutout4 = null;
+
+ private static Shader m_fade_maskR_noLight = null;
+
+ private static Shader m_transparentGrayMaskRNoLight = null;
+
+ private static Shader m_color = null;
+
+ private static Shader m_maskR = null;
+
+ public static Shader _maskG;
+
+ public static Shader _maskB;
+
+ public static Shader _maskA;
+
+ private static Shader m_radialBlur = null;
+
+ private static Shader m_blackWhite = null;
+
+ private static Shader m_gausBlur = null;
+
+ private AssetBundle m_ShaderAB = null;
+
+ public static int _ShaderKeyMainTex;
+
+ public static int _ShaderKeyMaskTex;
+
+ public static int _ShaderKeyIDColor0;
+
+ public static int _ShaderKeyIDHairColor;
+
+ public static int _ShaderKeyIDFace;
+
+ public static int _ShaderKeyIDHair;
+
+ public static int _ShaderKeyIDBody;
+
+ public static int _ShaderKeyIDAlpha;
+
+ public static int[] _ShaderKeyIDSkin = new int[8];
+
+ public bool Awake(RuntimePlatform editorPlatform)
+ {
+ ShaderManager._ShaderKeyMainTex = Shader.PropertyToID("_MainTex");
+ ShaderManager._ShaderKeyMaskTex = Shader.PropertyToID("_Mask");
+ ShaderManager._ShaderKeyIDColor0 = Shader.PropertyToID("_Color");
+ ShaderManager._ShaderKeyIDHairColor = Shader.PropertyToID("_HairColor");
+ ShaderManager._ShaderKeyIDFace = Shader.PropertyToID("_Face");
+ ShaderManager._ShaderKeyIDHair = Shader.PropertyToID("_Hair");
+ ShaderManager._ShaderKeyIDBody = Shader.PropertyToID("_Body");
+ ShaderManager._ShaderKeyIDAlpha = Shader.PropertyToID("_Alpha");
+ for (int i = 0; i < ShaderManager._ShaderKeyIDSkin.Length; i++)
+ {
+ ShaderManager._ShaderKeyIDSkin[i] = Shader.PropertyToID("_Tex" + i.ToString());
+ }
+ string text = null;
+ RuntimePlatform platform = Application.platform;
+ if ((int) platform != 8)
+ {
+ if ((int)platform != 11)
+ {
+ if ((int)editorPlatform != 2)
+ {
+ if ((int)editorPlatform != 8)
+ {
+ if ((int)editorPlatform == 11)
+ {
+ text = string.Format("{0}/update/Android/AssetBundles/shaders.ab", Application.streamingAssetsPath);
+ }
+ }
+ else
+ {
+ text = string.Format("{0}/update/iOS/AssetBundles/shaders.ab", Application.streamingAssetsPath);
+ }
+ }
+ else
+ {
+ text = string.Format("{0}/update/AssetBundles/shaders.ab", Application.streamingAssetsPath);
+ }
+ bool flag = !File.Exists(text);
+ if (flag)
+ {
+ text = null;
+ }
+ }
+ else
+ {
+ text = string.Format("{0}!assets/update/Android/AssetBundles/shaders.ab", Application.dataPath);
+ }
+ }
+ else
+ {
+ text = string.Format("{0}/Raw/update/iOS/AssetBundles/shaders.ab", Application.dataPath);
+ }
+ bool flag2 = !string.IsNullOrEmpty(text);
+ if (flag2)
+ {
+ this.m_ShaderAB = AssetBundle.LoadFromFile(text);
+ }
+ return true;
+ }
+
+ public Shader FindShader(string name0, string name1)
+ {
+ Shader shader = null;
+ bool flag = this.m_ShaderAB != null;
+ if (flag)
+ {
+ shader = this.m_ShaderAB.LoadAsset<Shader>(name0);
+ }
+ bool flag2 = shader == null;
+ if (flag2)
+ {
+ shader = Shader.Find(name1);
+ }
+ return shader;
+ }
+
+ public static void SetColor32(MaterialPropertyBlock mpb, Color32 color, int keyID)
+ {
+ mpb.SetColor(keyID, color);
+ }
+
+ public static void SetColor(MaterialPropertyBlock mpb, Color color, int keyID)
+ {
+ mpb.SetColor(keyID, color);
+ }
+
+ public static void SetTexture(MaterialPropertyBlock mpb, Texture tex, int keyID)
+ {
+ bool flag = tex != null;
+ if (flag)
+ {
+ mpb.SetTexture(keyID, tex);
+ }
+ }
+
+ public static void SetFloat(MaterialPropertyBlock mpb, float value, int keyID)
+ {
+ mpb.SetFloat(keyID, value);
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ShaderManager.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ShaderManager.cs.meta new file mode 100644 index 00000000..b12b0f08 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ShaderManager.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d802b7fd82fc21c4ebd05a2491457a59 +timeCreated: 1611465764 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ShadowCatReward.cs b/Client/Assets/Scripts/XUtliPoolLib/ShadowCatReward.cs new file mode 100644 index 00000000..0f8fe6da --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ShadowCatReward.cs @@ -0,0 +1,36 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class ShadowCatReward : CVSReader
+ {
+ public ShadowCatReward.RowData[] Table = null;
+
+ public class RowData
+ {
+ public SeqListRef<uint> Reward;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ ShadowCatReward.RowData rowData = new ShadowCatReward.RowData();
+ rowData.Reward.Read(reader, this.m_DataHandler);
+ this.columnno = 0;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new ShadowCatReward.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ShadowCatReward.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ShadowCatReward.cs.meta new file mode 100644 index 00000000..b59e2dea --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ShadowCatReward.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0cc3bfb5c291b7145a5bb113a697fdc2 +timeCreated: 1611465288 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ShareBgTexture.cs b/Client/Assets/Scripts/XUtliPoolLib/ShareBgTexture.cs new file mode 100644 index 00000000..67051751 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ShareBgTexture.cs @@ -0,0 +1,48 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class ShareBgTexture : CVSReader
+ {
+ public ShareBgTexture.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int ShareBgType;
+
+ public uint[] SubBgIDList;
+
+ public string[] TexturePathList;
+
+ public string[] Text;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ ShareBgTexture.RowData rowData = new ShareBgTexture.RowData();
+ base.Read<int>(reader, ref rowData.ShareBgType, CVSReader.intParse);
+ this.columnno = 0;
+ base.ReadArray<uint>(reader, ref rowData.SubBgIDList, CVSReader.uintParse);
+ this.columnno = 1;
+ base.ReadArray<string>(reader, ref rowData.TexturePathList, CVSReader.stringParse);
+ this.columnno = 2;
+ base.ReadArray<string>(reader, ref rowData.Text, CVSReader.stringParse);
+ this.columnno = 3;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new ShareBgTexture.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ShareBgTexture.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ShareBgTexture.cs.meta new file mode 100644 index 00000000..e45a897c --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ShareBgTexture.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4afe70aa2746b4b4dbe41604edef7c91 +timeCreated: 1611465640 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ShareCallBackType.cs b/Client/Assets/Scripts/XUtliPoolLib/ShareCallBackType.cs new file mode 100644 index 00000000..5b4d0c38 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ShareCallBackType.cs @@ -0,0 +1,13 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public enum ShareCallBackType
+ {
+ Normal,
+ GloryPic,
+ DungeonShare,
+ WeekShare,
+ AddQQFriend
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ShareCallBackType.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ShareCallBackType.cs.meta new file mode 100644 index 00000000..d8257350 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ShareCallBackType.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 32016ba74a3c63443b2a75c851a7726a +timeCreated: 1611465310 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ShareTable.cs b/Client/Assets/Scripts/XUtliPoolLib/ShareTable.cs new file mode 100644 index 00000000..1eb5a24f --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ShareTable.cs @@ -0,0 +1,79 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class ShareTable : CVSReader
+ {
+ public ShareTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int Condition;
+
+ public string Desc;
+
+ public string Title;
+
+ public string Icon;
+
+ public string Link;
+
+ public uint type;
+ }
+
+ public ShareTable.RowData GetByCondition(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ ShareTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].Condition == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ ShareTable.RowData rowData = new ShareTable.RowData();
+ base.Read<int>(reader, ref rowData.Condition, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.Desc, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.Title, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.Icon, CVSReader.stringParse);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.Link, CVSReader.stringParse);
+ this.columnno = 4;
+ base.Read<uint>(reader, ref rowData.type, CVSReader.uintParse);
+ this.columnno = 5;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new ShareTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ShareTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ShareTable.cs.meta new file mode 100644 index 00000000..2a40d704 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ShareTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a1ce1ec7ab0050a4f9b53b106b0cb2c2 +timeCreated: 1611465736 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ShopTable.cs b/Client/Assets/Scripts/XUtliPoolLib/ShopTable.cs new file mode 100644 index 00000000..91180eee --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ShopTable.cs @@ -0,0 +1,173 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class ShopTable : CVSReader
+ {
+ public ShopTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint ID;
+
+ public uint ItemId;
+
+ public SeqRef<uint> ConsumeItem;
+
+ public uint Type;
+
+ public byte LevelCondition;
+
+ public byte DailyCountCondition;
+
+ public uint CountCondition;
+
+ public SeqRef<uint> Benefit;
+
+ public SeqRef<uint> LevelShow;
+
+ public bool IsNotBind;
+
+ public byte CookLevel;
+
+ public byte ShopItemType;
+
+ public byte WeekCountCondition;
+
+ public uint ItemOverlap;
+
+ public bool IsPrecious;
+
+ public int PayLimit;
+
+ public uint ShopItemCategory;
+ }
+
+ public ShopTable.RowData GetByID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ ShopTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchID(key);
+ }
+ return result;
+ }
+
+ private ShopTable.RowData BinarySearchID(uint key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ ShopTable.RowData rowData;
+ ShopTable.RowData rowData2;
+ ShopTable.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.ID == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.ID == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.ID.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.ID.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ ShopTable.RowData rowData = new ShopTable.RowData();
+ base.Read<uint>(reader, ref rowData.ID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.ItemId, CVSReader.uintParse);
+ this.columnno = 1;
+ rowData.ConsumeItem.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ base.Read<uint>(reader, ref rowData.Type, CVSReader.uintParse);
+ this.columnno = 3;
+ base.Read<byte>(reader, ref rowData.LevelCondition, CVSReader.byteParse);
+ this.columnno = 4;
+ base.Read<byte>(reader, ref rowData.DailyCountCondition, CVSReader.byteParse);
+ this.columnno = 6;
+ base.Read<uint>(reader, ref rowData.CountCondition, CVSReader.uintParse);
+ this.columnno = 7;
+ rowData.Benefit.Read(reader, this.m_DataHandler);
+ this.columnno = 8;
+ rowData.LevelShow.Read(reader, this.m_DataHandler);
+ this.columnno = 10;
+ base.Read<bool>(reader, ref rowData.IsNotBind, CVSReader.boolParse);
+ this.columnno = 16;
+ base.Read<byte>(reader, ref rowData.CookLevel, CVSReader.byteParse);
+ this.columnno = 17;
+ base.Read<byte>(reader, ref rowData.ShopItemType, CVSReader.byteParse);
+ this.columnno = 18;
+ base.Read<byte>(reader, ref rowData.WeekCountCondition, CVSReader.byteParse);
+ this.columnno = 19;
+ base.Read<uint>(reader, ref rowData.ItemOverlap, CVSReader.uintParse);
+ this.columnno = 21;
+ base.Read<bool>(reader, ref rowData.IsPrecious, CVSReader.boolParse);
+ this.columnno = 22;
+ base.Read<int>(reader, ref rowData.PayLimit, CVSReader.intParse);
+ this.columnno = 23;
+ base.Read<uint>(reader, ref rowData.ShopItemCategory, CVSReader.uintParse);
+ this.columnno = 24;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new ShopTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ShopTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ShopTable.cs.meta new file mode 100644 index 00000000..50a5551e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ShopTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 6e03079ac84db194586d08017a3c7e76 +timeCreated: 1611465686 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ShopTypeTable.cs b/Client/Assets/Scripts/XUtliPoolLib/ShopTypeTable.cs new file mode 100644 index 00000000..04dbd091 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ShopTypeTable.cs @@ -0,0 +1,118 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class ShopTypeTable : CVSReader
+ {
+ public ShopTypeTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint ShopID;
+
+ public string ShopIcon;
+
+ public uint ShopLevel;
+
+ public SeqListRef<uint> RefreshCost;
+
+ public uint[] ShopCycle;
+
+ public SeqListRef<uint> ShopOpen;
+
+ public string ShopName;
+
+ public uint SystemId;
+
+ public int IsHasTab;
+
+ public SeqRef<uint> RefreshCount;
+ }
+
+ public ShopTypeTable.RowData GetByShopID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ ShopTypeTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].ShopID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ public ShopTypeTable.RowData GetBySystemId(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ ShopTypeTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].SystemId == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ ShopTypeTable.RowData rowData = new ShopTypeTable.RowData();
+ base.Read<uint>(reader, ref rowData.ShopID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.ShopIcon, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<uint>(reader, ref rowData.ShopLevel, CVSReader.uintParse);
+ this.columnno = 2;
+ rowData.RefreshCost.Read(reader, this.m_DataHandler);
+ this.columnno = 3;
+ base.ReadArray<uint>(reader, ref rowData.ShopCycle, CVSReader.uintParse);
+ this.columnno = 4;
+ rowData.ShopOpen.Read(reader, this.m_DataHandler);
+ this.columnno = 5;
+ base.Read<string>(reader, ref rowData.ShopName, CVSReader.stringParse);
+ this.columnno = 6;
+ base.Read<uint>(reader, ref rowData.SystemId, CVSReader.uintParse);
+ this.columnno = 7;
+ base.Read<int>(reader, ref rowData.IsHasTab, CVSReader.intParse);
+ this.columnno = 8;
+ rowData.RefreshCount.Read(reader, this.m_DataHandler);
+ this.columnno = 9;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new ShopTypeTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ShopTypeTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ShopTypeTable.cs.meta new file mode 100644 index 00000000..4af26dd8 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ShopTypeTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: defd3ea43930aa048973fd8d12376296 +timeCreated: 1611465798 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/SimpleQueue.cs b/Client/Assets/Scripts/XUtliPoolLib/SimpleQueue.cs new file mode 100644 index 00000000..8781c147 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SimpleQueue.cs @@ -0,0 +1,80 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class SimpleQueue
+ {
+ public bool HasData
+ {
+ get
+ {
+ return this.Root != null;
+ }
+ }
+
+ private IQueueObject Root = null;
+
+ private IQueueObject Last = null;
+
+ public void Clear()
+ {
+ IQueueObject next;
+ for (IQueueObject queueObject = this.Root; queueObject != null; queueObject = next)
+ {
+ next = queueObject.next;
+ queueObject.next = null;
+ }
+ this.Root = null;
+ this.Last = null;
+ }
+
+ public void Enqueue(IQueueObject obj)
+ {
+ bool flag = obj != null;
+ if (flag)
+ {
+ obj.next = null;
+ bool flag2 = this.Root == null;
+ if (flag2)
+ {
+ this.Root = obj;
+ this.Last = this.Root;
+ }
+ else
+ {
+ bool flag3 = this.Last != null;
+ if (flag3)
+ {
+ this.Last.next = obj;
+ this.Last = obj;
+ }
+ else
+ {
+ XSingleton<XDebug>.singleton.AddErrorLog("queue state error", null, null, null, null, null);
+ }
+ }
+ }
+ else
+ {
+ XSingleton<XDebug>.singleton.AddWarningLog("can not enqueue null object", null, null, null, null, null);
+ }
+ }
+
+ public T Dequeue<T>() where T : IQueueObject, new()
+ {
+ IQueueObject queueObject = null;
+ bool flag = this.Root != null;
+ if (flag)
+ {
+ queueObject = this.Root;
+ this.Root = this.Root.next;
+ }
+ bool flag2 = this.Root == null;
+ if (flag2)
+ {
+ this.Last = null;
+ }
+ return (T)((object)queueObject);
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/SimpleQueue.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/SimpleQueue.cs.meta new file mode 100644 index 00000000..9ea56843 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SimpleQueue.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d85668ff437879449876e7bee3616be6 +timeCreated: 1611465765 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/SkillCombo.cs b/Client/Assets/Scripts/XUtliPoolLib/SkillCombo.cs new file mode 100644 index 00000000..c8dcf621 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SkillCombo.cs @@ -0,0 +1,56 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class SkillCombo : CVSReader
+ {
+ public SkillCombo.RowData[] Table = null;
+
+ public class RowData
+ {
+ public string skillname;
+
+ public string nextskill0;
+
+ public string nextskill1;
+
+ public string nextskill2;
+
+ public string nextskill3;
+
+ public string nextskill4;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ SkillCombo.RowData rowData = new SkillCombo.RowData();
+ base.Read<string>(reader, ref rowData.skillname, CVSReader.stringParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.nextskill0, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.nextskill1, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.nextskill2, CVSReader.stringParse);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.nextskill3, CVSReader.stringParse);
+ this.columnno = 4;
+ base.Read<string>(reader, ref rowData.nextskill4, CVSReader.stringParse);
+ this.columnno = 5;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new SkillCombo.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/SkillCombo.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/SkillCombo.cs.meta new file mode 100644 index 00000000..d80d0e2c --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SkillCombo.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 7430173f40afa4c4db2bcae2857be229 +timeCreated: 1611465689 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/SkillEmblem.cs b/Client/Assets/Scripts/XUtliPoolLib/SkillEmblem.cs new file mode 100644 index 00000000..6890f54d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SkillEmblem.cs @@ -0,0 +1,137 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class SkillEmblem : CVSReader
+ {
+ public SkillEmblem.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint EmblemID;
+
+ public string SkillScript;
+
+ public byte SkillType;
+
+ public byte SkillPercent;
+
+ public string SkillName;
+
+ public uint SkillPPT;
+
+ public string ExSkillScript;
+
+ public string[] OtherSkillScripts;
+ }
+
+ public SkillEmblem.RowData GetByEmblemID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ SkillEmblem.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchEmblemID(key);
+ }
+ return result;
+ }
+
+ private SkillEmblem.RowData BinarySearchEmblemID(uint key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ SkillEmblem.RowData rowData;
+ SkillEmblem.RowData rowData2;
+ SkillEmblem.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.EmblemID == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.EmblemID == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.EmblemID.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.EmblemID.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ SkillEmblem.RowData rowData = new SkillEmblem.RowData();
+ base.Read<uint>(reader, ref rowData.EmblemID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.SkillScript, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<byte>(reader, ref rowData.SkillType, CVSReader.byteParse);
+ this.columnno = 2;
+ base.Read<byte>(reader, ref rowData.SkillPercent, CVSReader.byteParse);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.SkillName, CVSReader.stringParse);
+ this.columnno = 4;
+ base.Read<uint>(reader, ref rowData.SkillPPT, CVSReader.uintParse);
+ this.columnno = 5;
+ base.Read<string>(reader, ref rowData.ExSkillScript, CVSReader.stringParse);
+ this.columnno = 7;
+ base.ReadArray<string>(reader, ref rowData.OtherSkillScripts, CVSReader.stringParse);
+ this.columnno = 8;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new SkillEmblem.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/SkillEmblem.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/SkillEmblem.cs.meta new file mode 100644 index 00000000..fc794dde --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SkillEmblem.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 450f3edb463eb8f49a4abeb7b51b5cd3 +timeCreated: 1611465637 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/SkillFxType.cs b/Client/Assets/Scripts/XUtliPoolLib/SkillFxType.cs new file mode 100644 index 00000000..92725a80 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SkillFxType.cs @@ -0,0 +1,10 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public enum SkillFxType
+ {
+ FirerBased,
+ TargetBased
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/SkillFxType.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/SkillFxType.cs.meta new file mode 100644 index 00000000..788cf3f1 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SkillFxType.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: bf523d37bf785fc4d9c3c79aab690005 +timeCreated: 1611465752 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/SkillList.cs b/Client/Assets/Scripts/XUtliPoolLib/SkillList.cs new file mode 100644 index 00000000..d7f3eb19 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SkillList.cs @@ -0,0 +1,280 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class SkillList : CVSReader
+ {
+ public SkillList.RowData[] Table = null;
+
+ public class RowData
+ {
+ public string SkillScript;
+
+ public uint SkillScriptHash;
+
+ public byte SkillLevel;
+
+ public string ScriptName;
+
+ public SeqListRef<float> PhysicalRatio;
+
+ public SeqListRef<float> PhysicalFixed;
+
+ public byte[] AddBuffPoint;
+
+ public SeqListRef<int> BuffID;
+
+ public byte HpMaxLimit;
+
+ public byte[] LevelupCost;
+
+ public byte[] UpReqRoleLevel;
+
+ public string CurrentLevelDescription;
+
+ public string NextLevelDescription;
+
+ public string Icon;
+
+ public SeqListRef<float> MagicRatio;
+
+ public SeqListRef<float> MagicFixed;
+
+ public byte Element;
+
+ public int Profession;
+
+ public byte SkillType;
+
+ public int IncreaseSuperArmor;
+
+ public short[] DecreaseSuperArmor;
+
+ public byte IsBasicSkill;
+
+ public SeqRef<float> CostMP;
+
+ public SeqListRef<float> TipsRatio;
+
+ public SeqListRef<float> TipsFixed;
+
+ public string PreSkill;
+
+ public byte XPostion;
+
+ public short YPostion;
+
+ public SeqListRef<float> StartBuffID;
+
+ public SeqRef<int> AuraBuffID;
+
+ public byte HpMinLimit;
+
+ public SeqRef<float> CDRatio;
+
+ public SeqRef<float> PvPCDRatio;
+
+ public uint XEntityStatisticsID;
+
+ public int PvPIncreaseSuperArmor;
+
+ public float[] PvPDecreaseSuperArmor;
+
+ public SeqListRef<float> PvPRatio;
+
+ public SeqListRef<float> PvPFixed;
+
+ public float InitCD;
+
+ public float PvPInitCD;
+
+ public SeqListRef<float> PvPMagicRatio;
+
+ public SeqListRef<float> PvPMagicFixed;
+
+ public string PreviewScript;
+
+ public uint[] MobBuffs;
+
+ public string Atlas;
+
+ public short[] Flag;
+
+ public short PreSkillPoint;
+
+ public string SuperIndureAttack;
+
+ public string SuperIndureDefense;
+
+ public string ExSkillScript;
+
+ public byte UnchangableCD;
+
+ public float EnmityRatio;
+
+ public int EnmityExtValue;
+
+ public SeqListRef<float> PercentDamage;
+
+ public string LinkedSkill;
+
+ public byte LinkType;
+
+ public float RemainingCDNotify;
+
+ public int StrengthValue;
+
+ public byte UsageCount;
+
+ public byte[] ExclusiveMask;
+
+ public string BindSkill;
+
+ public bool IsAwake;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ SkillList.RowData rowData = new SkillList.RowData();
+ base.Read<string>(reader, ref rowData.SkillScript, CVSReader.stringParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.SkillScriptHash, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<byte>(reader, ref rowData.SkillLevel, CVSReader.byteParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.ScriptName, CVSReader.stringParse);
+ this.columnno = 2;
+ rowData.PhysicalRatio.Read(reader, this.m_DataHandler);
+ this.columnno = 3;
+ rowData.PhysicalFixed.Read(reader, this.m_DataHandler);
+ this.columnno = 4;
+ base.ReadArray<byte>(reader, ref rowData.AddBuffPoint, CVSReader.byteParse);
+ this.columnno = 6;
+ rowData.BuffID.Read(reader, this.m_DataHandler);
+ this.columnno = 7;
+ base.Read<byte>(reader, ref rowData.HpMaxLimit, CVSReader.byteParse);
+ this.columnno = 8;
+ base.ReadArray<byte>(reader, ref rowData.LevelupCost, CVSReader.byteParse);
+ this.columnno = 10;
+ base.ReadArray<byte>(reader, ref rowData.UpReqRoleLevel, CVSReader.byteParse);
+ this.columnno = 11;
+ base.Read<string>(reader, ref rowData.CurrentLevelDescription, CVSReader.stringParse);
+ this.columnno = 12;
+ base.Read<string>(reader, ref rowData.NextLevelDescription, CVSReader.stringParse);
+ this.columnno = 13;
+ base.Read<string>(reader, ref rowData.Icon, CVSReader.stringParse);
+ this.columnno = 14;
+ rowData.MagicRatio.Read(reader, this.m_DataHandler);
+ this.columnno = 15;
+ rowData.MagicFixed.Read(reader, this.m_DataHandler);
+ this.columnno = 16;
+ base.Read<byte>(reader, ref rowData.Element, CVSReader.byteParse);
+ this.columnno = 17;
+ base.Read<int>(reader, ref rowData.Profession, CVSReader.intParse);
+ this.columnno = 18;
+ base.Read<byte>(reader, ref rowData.SkillType, CVSReader.byteParse);
+ this.columnno = 19;
+ base.Read<int>(reader, ref rowData.IncreaseSuperArmor, CVSReader.intParse);
+ this.columnno = 20;
+ base.ReadArray<short>(reader, ref rowData.DecreaseSuperArmor, CVSReader.shortParse);
+ this.columnno = 21;
+ base.Read<byte>(reader, ref rowData.IsBasicSkill, CVSReader.byteParse);
+ this.columnno = 22;
+ rowData.CostMP.Read(reader, this.m_DataHandler);
+ this.columnno = 23;
+ rowData.TipsRatio.Read(reader, this.m_DataHandler);
+ this.columnno = 24;
+ rowData.TipsFixed.Read(reader, this.m_DataHandler);
+ this.columnno = 25;
+ base.Read<string>(reader, ref rowData.PreSkill, CVSReader.stringParse);
+ this.columnno = 26;
+ base.Read<byte>(reader, ref rowData.XPostion, CVSReader.byteParse);
+ this.columnno = 27;
+ base.Read<short>(reader, ref rowData.YPostion, CVSReader.shortParse);
+ this.columnno = 28;
+ rowData.StartBuffID.Read(reader, this.m_DataHandler);
+ this.columnno = 29;
+ rowData.AuraBuffID.Read(reader, this.m_DataHandler);
+ this.columnno = 33;
+ base.Read<byte>(reader, ref rowData.HpMinLimit, CVSReader.byteParse);
+ this.columnno = 34;
+ rowData.CDRatio.Read(reader, this.m_DataHandler);
+ this.columnno = 35;
+ rowData.PvPCDRatio.Read(reader, this.m_DataHandler);
+ this.columnno = 36;
+ base.Read<uint>(reader, ref rowData.XEntityStatisticsID, CVSReader.uintParse);
+ this.columnno = 39;
+ base.Read<int>(reader, ref rowData.PvPIncreaseSuperArmor, CVSReader.intParse);
+ this.columnno = 40;
+ base.ReadArray<float>(reader, ref rowData.PvPDecreaseSuperArmor, CVSReader.floatParse);
+ this.columnno = 41;
+ rowData.PvPRatio.Read(reader, this.m_DataHandler);
+ this.columnno = 42;
+ rowData.PvPFixed.Read(reader, this.m_DataHandler);
+ this.columnno = 43;
+ base.Read<float>(reader, ref rowData.InitCD, CVSReader.floatParse);
+ this.columnno = 45;
+ base.Read<float>(reader, ref rowData.PvPInitCD, CVSReader.floatParse);
+ this.columnno = 46;
+ rowData.PvPMagicRatio.Read(reader, this.m_DataHandler);
+ this.columnno = 48;
+ rowData.PvPMagicFixed.Read(reader, this.m_DataHandler);
+ this.columnno = 49;
+ base.Read<string>(reader, ref rowData.PreviewScript, CVSReader.stringParse);
+ this.columnno = 50;
+ base.ReadArray<uint>(reader, ref rowData.MobBuffs, CVSReader.uintParse);
+ this.columnno = 51;
+ base.Read<string>(reader, ref rowData.Atlas, CVSReader.stringParse);
+ this.columnno = 52;
+ base.ReadArray<short>(reader, ref rowData.Flag, CVSReader.shortParse);
+ this.columnno = 53;
+ base.Read<short>(reader, ref rowData.PreSkillPoint, CVSReader.shortParse);
+ this.columnno = 54;
+ base.Read<string>(reader, ref rowData.SuperIndureAttack, CVSReader.stringParse);
+ this.columnno = 55;
+ base.Read<string>(reader, ref rowData.SuperIndureDefense, CVSReader.stringParse);
+ this.columnno = 56;
+ base.Read<string>(reader, ref rowData.ExSkillScript, CVSReader.stringParse);
+ this.columnno = 57;
+ base.Read<byte>(reader, ref rowData.UnchangableCD, CVSReader.byteParse);
+ this.columnno = 58;
+ base.Read<float>(reader, ref rowData.EnmityRatio, CVSReader.floatParse);
+ this.columnno = 59;
+ base.Read<int>(reader, ref rowData.EnmityExtValue, CVSReader.intParse);
+ this.columnno = 60;
+ rowData.PercentDamage.Read(reader, this.m_DataHandler);
+ this.columnno = 61;
+ base.Read<string>(reader, ref rowData.LinkedSkill, CVSReader.stringParse);
+ this.columnno = 62;
+ base.Read<byte>(reader, ref rowData.LinkType, CVSReader.byteParse);
+ this.columnno = 63;
+ base.Read<float>(reader, ref rowData.RemainingCDNotify, CVSReader.floatParse);
+ this.columnno = 64;
+ base.Read<int>(reader, ref rowData.StrengthValue, CVSReader.intParse);
+ this.columnno = 65;
+ base.Read<byte>(reader, ref rowData.UsageCount, CVSReader.byteParse);
+ this.columnno = 66;
+ base.ReadArray<byte>(reader, ref rowData.ExclusiveMask, CVSReader.byteParse);
+ this.columnno = 67;
+ base.Read<string>(reader, ref rowData.BindSkill, CVSReader.stringParse);
+ this.columnno = 69;
+ base.Read<bool>(reader, ref rowData.IsAwake, CVSReader.boolParse);
+ this.columnno = 70;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new SkillList.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/SkillList.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/SkillList.cs.meta new file mode 100644 index 00000000..462d585f --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SkillList.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 3b90e288f612b0140808d09404a1671a +timeCreated: 1611465632 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/SkillTreeConfigTable.cs b/Client/Assets/Scripts/XUtliPoolLib/SkillTreeConfigTable.cs new file mode 100644 index 00000000..39925b2a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SkillTreeConfigTable.cs @@ -0,0 +1,113 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class SkillTreeConfigTable : CVSReader
+ {
+ public SkillTreeConfigTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint Level;
+
+ public int RedPointShowNum;
+ }
+
+ public SkillTreeConfigTable.RowData GetByLevel(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ SkillTreeConfigTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchLevel(key);
+ }
+ return result;
+ }
+
+ private SkillTreeConfigTable.RowData BinarySearchLevel(uint key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ SkillTreeConfigTable.RowData rowData;
+ SkillTreeConfigTable.RowData rowData2;
+ SkillTreeConfigTable.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.Level == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.Level == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.Level.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.Level.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ SkillTreeConfigTable.RowData rowData = new SkillTreeConfigTable.RowData();
+ base.Read<uint>(reader, ref rowData.Level, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<int>(reader, ref rowData.RedPointShowNum, CVSReader.intParse);
+ this.columnno = 1;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new SkillTreeConfigTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/SkillTreeConfigTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/SkillTreeConfigTable.cs.meta new file mode 100644 index 00000000..570570d0 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SkillTreeConfigTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 381de57208b05f142928b4f518325af7 +timeCreated: 1611465631 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/SkyArenaReward.cs b/Client/Assets/Scripts/XUtliPoolLib/SkyArenaReward.cs new file mode 100644 index 00000000..ec8f66b4 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SkyArenaReward.cs @@ -0,0 +1,44 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class SkyArenaReward : CVSReader
+ {
+ public SkyArenaReward.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int LevelSegment;
+
+ public int Floor;
+
+ public SeqListRef<uint> Reward;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ SkyArenaReward.RowData rowData = new SkyArenaReward.RowData();
+ base.Read<int>(reader, ref rowData.LevelSegment, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<int>(reader, ref rowData.Floor, CVSReader.intParse);
+ this.columnno = 1;
+ rowData.Reward.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new SkyArenaReward.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/SkyArenaReward.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/SkyArenaReward.cs.meta new file mode 100644 index 00000000..adf95fab --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SkyArenaReward.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: e20e8841143761746a913d1f4fec2126 +timeCreated: 1611465800 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/SmallBuffer.cs b/Client/Assets/Scripts/XUtliPoolLib/SmallBuffer.cs new file mode 100644 index 00000000..f9579bb6 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SmallBuffer.cs @@ -0,0 +1,242 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public struct SmallBuffer<T>
+ {
+ public T this[int index]
+ {
+ get
+ {
+ return (this.bufferRef == null) ? default(T) : this.bufferRef[this.bufferBlock.offset + index];
+ }
+ set
+ {
+ bool flag = this.bufferRef != null;
+ if (flag)
+ {
+ this.bufferRef[this.bufferBlock.offset + index] = value;
+ }
+ bool flag2 = this.debugBuffer != null;
+ if (flag2)
+ {
+ this.debugBuffer[index] = value;
+ }
+ }
+ }
+
+ public T this[uint index]
+ {
+ get
+ {
+ return this.bufferRef[(int)(checked((IntPtr)(unchecked((long)this.bufferBlock.offset + (long)((ulong)index)))))];
+ }
+ set
+ {
+ this.bufferRef[(int)(checked((IntPtr)(unchecked((long)this.bufferBlock.offset + (long)((ulong)index)))))] = value;
+ bool flag = this.debugBuffer != null;
+ if (flag)
+ {
+ this.debugBuffer[(int)index] = value;
+ }
+ }
+ }
+
+ public int Count
+ {
+ get
+ {
+ return (this.bufferRef == null) ? 0 : this.bufferBlock.size;
+ }
+ }
+
+ public bool IsInit
+ {
+ get
+ {
+ return this.bufferRef != null;
+ }
+ }
+
+ public T[] OriginalBuff
+ {
+ get
+ {
+ return this.bufferRef;
+ }
+ }
+
+ public int StartOffset
+ {
+ get
+ {
+ return this.bufferBlock.offset;
+ }
+ }
+
+ public BufferBlock bufferBlock;
+
+ private SmallBufferPool<T> poolRef;
+
+ private T[] bufferRef;
+
+ public string debugName;
+
+ private T[] debugBuffer;
+
+ private void Expand(int size)
+ {
+ T[] sourceArray = this.bufferRef;
+ int offset = this.bufferBlock.offset;
+ int size2 = this.bufferBlock.size;
+ int capacity = this.bufferBlock.capacity;
+ this.poolRef.ExpandBlock(ref this, size);
+ int capacity2 = this.bufferBlock.capacity;
+ Array.Copy(sourceArray, offset, this.bufferRef, this.bufferBlock.offset, capacity);
+ this.bufferBlock.size = size2;
+ }
+
+ private void ReturnBlock()
+ {
+ bool flag = this.poolRef != null;
+ if (flag)
+ {
+ this.poolRef.ReturnBlock(ref this);
+ }
+ }
+
+ public void Init(BufferBlock bb, SmallBufferPool<T> pool)
+ {
+ this.ReturnBlock();
+ this.bufferBlock = bb;
+ this.poolRef = pool;
+ this.bufferRef = pool.buffer;
+ this.debugBuffer = new T[this.bufferBlock.capacity];
+ }
+
+ public void Init(BufferBlock bb, SmallBufferPool<T> pool, T[] buffer)
+ {
+ this.ReturnBlock();
+ this.bufferBlock = bb;
+ this.poolRef = pool;
+ this.bufferRef = buffer;
+ this.debugBuffer = new T[this.bufferBlock.capacity];
+ }
+
+ public void UnInit()
+ {
+ this.poolRef = null;
+ this.bufferRef = null;
+ this.debugBuffer = null;
+ }
+
+ public void Add(T value)
+ {
+ bool flag = this.bufferRef != null;
+ if (flag)
+ {
+ bool flag2 = this.bufferBlock.size == this.bufferBlock.capacity;
+ if (flag2)
+ {
+ this.Expand(this.bufferBlock.capacity * 2);
+ }
+ int size = this.bufferBlock.size;
+ this.bufferBlock.size = size + 1;
+ this[size] = value;
+ }
+ }
+
+ public bool Remove(T item)
+ {
+ bool flag = this.bufferRef != null;
+ if (flag)
+ {
+ T value = default(T);
+ for (int i = 0; i < this.bufferBlock.size; i++)
+ {
+ T t = this[i];
+ bool flag2 = t.Equals(item);
+ if (flag2)
+ {
+ this.bufferBlock.size = this.bufferBlock.size - 1;
+ this[i] = value;
+ for (int j = i; j < this.bufferBlock.size; j++)
+ {
+ this[j] = this[j + 1];
+ }
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ public void RemoveAt(int index)
+ {
+ bool flag = this.bufferRef != null;
+ if (flag)
+ {
+ bool flag2 = index < this.bufferBlock.size;
+ if (flag2)
+ {
+ this.bufferBlock.size = this.bufferBlock.size - 1;
+ this[index] = default(T);
+ for (int i = index; i < this.bufferBlock.size; i++)
+ {
+ this[i] = this[i + 1];
+ }
+ }
+ }
+ }
+
+ public bool Contains(T item)
+ {
+ bool flag = this.bufferRef != null;
+ if (flag)
+ {
+ for (int i = 0; i < this.bufferBlock.size; i++)
+ {
+ T t = this[i];
+ bool flag2 = t.Equals(item);
+ if (flag2)
+ {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ public void Clear()
+ {
+ this.bufferBlock.size = 0;
+ }
+
+ public void DeepClear()
+ {
+ bool flag = this.bufferRef != null;
+ if (flag)
+ {
+ Array.Clear(this.bufferRef, this.bufferBlock.offset, this.bufferBlock.capacity);
+ }
+ }
+
+ public void Copy(T[] src, int startIndex, int desIndex, int count)
+ {
+ bool flag = this.bufferRef != null;
+ if (flag)
+ {
+ count = ((count < this.bufferBlock.capacity) ? count : this.bufferBlock.capacity);
+ Array.Copy(src, startIndex, this.bufferRef, this.bufferBlock.offset + desIndex, count);
+ this.bufferBlock.size = count;
+ }
+ }
+
+ public void SetInvalid()
+ {
+ this.bufferBlock.blockIndex = -1;
+ this.poolRef = null;
+ this.bufferRef = null;
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/SmallBuffer.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/SmallBuffer.cs.meta new file mode 100644 index 00000000..2efecc82 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SmallBuffer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: af6bae95a526cd940943de057cbadbb9 +timeCreated: 1611465744 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/SmallBufferPool.cs b/Client/Assets/Scripts/XUtliPoolLib/SmallBufferPool.cs new file mode 100644 index 00000000..a2f4ec85 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SmallBufferPool.cs @@ -0,0 +1,153 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class SmallBufferPool<T>
+ {
+ public T[] buffer;
+
+ public BufferBlock[] blocks;
+
+ private BlockInfo[] blockInitRef;
+
+ public int allocBlockCount = 0;
+
+ public void Init(BlockInfo[] blockInit, int tSize)
+ {
+ this.blockInitRef = blockInit;
+ int num = 0;
+ int num2 = 0;
+ int i = 0;
+ int num3 = blockInit.Length;
+ while (i < num3)
+ {
+ BlockInfo blockInfo = blockInit[i];
+ num += blockInfo.count;
+ num2 += blockInfo.size * blockInfo.count;
+ i++;
+ }
+ this.buffer = new T[num2];
+ this.blocks = new BufferBlock[num];
+ BufferPoolMgr.TotalCount += num2 * tSize + num * 17;
+ int num4 = 0;
+ int num5 = 0;
+ int j = 0;
+ int num6 = blockInit.Length;
+ while (j < num6)
+ {
+ BlockInfo blockInfo2 = blockInit[j];
+ int k = 0;
+ int count = blockInfo2.count;
+ while (k < count)
+ {
+ BufferBlock bufferBlock = this.blocks[num4];
+ bufferBlock.offset = num5;
+ bufferBlock.size = 0;
+ bufferBlock.capacity = blockInfo2.size;
+ bufferBlock.blockIndex = num4;
+ bufferBlock.inUse = false;
+ this.blocks[num4] = bufferBlock;
+ num5 += blockInfo2.size;
+ num4++;
+ k++;
+ }
+ j++;
+ }
+ }
+
+ private bool InnerGetBlock(ref BufferBlock block, int size, int initSize)
+ {
+ int num = 0;
+ int i = 0;
+ int num2 = this.blockInitRef.Length;
+ while (i < num2)
+ {
+ BlockInfo blockInfo = this.blockInitRef[i];
+ bool flag = blockInfo.size >= size;
+ if (flag)
+ {
+ int j = num;
+ int num3 = num + blockInfo.count;
+ while (j < num3)
+ {
+ BufferBlock bufferBlock = this.blocks[j];
+ bool flag2 = !bufferBlock.inUse;
+ if (flag2)
+ {
+ bufferBlock.size = ((initSize < bufferBlock.capacity) ? initSize : bufferBlock.capacity);
+ bufferBlock.inUse = true;
+ this.blocks[j] = bufferBlock;
+ block = bufferBlock;
+ this.allocBlockCount++;
+ return true;
+ }
+ j++;
+ }
+ }
+ else
+ {
+ num += blockInfo.count;
+ }
+ i++;
+ }
+ block.blockIndex = -1;
+ block.capacity = size;
+ block.size = ((initSize < size) ? initSize : size);
+ block.inUse = true;
+ return false;
+ }
+
+ private void InnerGetBlock(ref SmallBuffer<T> sb, int size, int initSize)
+ {
+ BufferBlock bufferBlock = default(BufferBlock);
+ bool flag = this.InnerGetBlock(ref bufferBlock, size, initSize);
+ if (flag)
+ {
+ sb.Init(bufferBlock, this);
+ sb.DeepClear();
+ }
+ else
+ {
+ sb.Init(bufferBlock, this, new T[bufferBlock.capacity]);
+ XSingleton<XDebug>.singleton.AddWarningLog2("not enough buff size:{0}", new object[]
+ {
+ bufferBlock.capacity
+ });
+ BufferPoolMgr.AllocSize += bufferBlock.capacity;
+ }
+ }
+
+ public void GetBlock(ref SmallBuffer<T> sb, int size, int initSize = 0)
+ {
+ bool isInit = sb.IsInit;
+ if (!isInit)
+ {
+ this.InnerGetBlock(ref sb, size, initSize);
+ }
+ }
+
+ public void ExpandBlock(ref SmallBuffer<T> sb, int size)
+ {
+ this.InnerGetBlock(ref sb, size, 0);
+ }
+
+ public void ReturnBlock(ref SmallBuffer<T> sb)
+ {
+ BufferBlock bufferBlock = sb.bufferBlock;
+ bool inUse = bufferBlock.inUse;
+ if (inUse)
+ {
+ bufferBlock.size = 0;
+ bufferBlock.inUse = false;
+ bool flag = bufferBlock.blockIndex >= 0;
+ if (flag)
+ {
+ this.blocks[bufferBlock.blockIndex] = bufferBlock;
+ this.allocBlockCount--;
+ }
+ sb.debugName = "";
+ sb.UnInit();
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/SmallBufferPool.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/SmallBufferPool.cs.meta new file mode 100644 index 00000000..6fb05bdf --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SmallBufferPool.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 918ed88b408940a47b99d61ce1bc2947 +timeCreated: 1611465705 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/SpectateLevelRewardConfig.cs b/Client/Assets/Scripts/XUtliPoolLib/SpectateLevelRewardConfig.cs new file mode 100644 index 00000000..08b22c0b --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SpectateLevelRewardConfig.cs @@ -0,0 +1,63 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class SpectateLevelRewardConfig : CVSReader
+ {
+ public SpectateLevelRewardConfig.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int SceneType;
+
+ public int[] DataConfig;
+ }
+
+ public SpectateLevelRewardConfig.RowData GetBySceneType(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ SpectateLevelRewardConfig.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].SceneType == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ SpectateLevelRewardConfig.RowData rowData = new SpectateLevelRewardConfig.RowData();
+ base.Read<int>(reader, ref rowData.SceneType, CVSReader.intParse);
+ this.columnno = 0;
+ base.ReadArray<int>(reader, ref rowData.DataConfig, CVSReader.intParse);
+ this.columnno = 1;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new SpectateLevelRewardConfig.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/SpectateLevelRewardConfig.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/SpectateLevelRewardConfig.cs.meta new file mode 100644 index 00000000..6f2ff347 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SpectateLevelRewardConfig.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: dc900a728e7e6aa4a9128ce5c617fce4 +timeCreated: 1611465796 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/SpriteEvolution.cs b/Client/Assets/Scripts/XUtliPoolLib/SpriteEvolution.cs new file mode 100644 index 00000000..34586042 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SpriteEvolution.cs @@ -0,0 +1,60 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class SpriteEvolution : CVSReader
+ {
+ public SpriteEvolution.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint SpriteID;
+
+ public byte Quality;
+
+ public byte EvolutionLevel;
+
+ public byte LevelLimit;
+
+ public SeqRef<uint> EvolutionCost;
+
+ public SeqRef<uint> TrainExp;
+
+ public SeqListRef<uint> ResetTrainCost;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ SpriteEvolution.RowData rowData = new SpriteEvolution.RowData();
+ base.Read<uint>(reader, ref rowData.SpriteID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<byte>(reader, ref rowData.Quality, CVSReader.byteParse);
+ this.columnno = 1;
+ base.Read<byte>(reader, ref rowData.EvolutionLevel, CVSReader.byteParse);
+ this.columnno = 2;
+ base.Read<byte>(reader, ref rowData.LevelLimit, CVSReader.byteParse);
+ this.columnno = 3;
+ rowData.EvolutionCost.Read(reader, this.m_DataHandler);
+ this.columnno = 4;
+ rowData.TrainExp.Read(reader, this.m_DataHandler);
+ this.columnno = 5;
+ rowData.ResetTrainCost.Read(reader, this.m_DataHandler);
+ this.columnno = 6;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new SpriteEvolution.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/SpriteEvolution.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/SpriteEvolution.cs.meta new file mode 100644 index 00000000..4005e67a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SpriteEvolution.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 34e2c25c40839dd4a8a34a236e4730a4 +timeCreated: 1611465630 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/SpriteLevel.cs b/Client/Assets/Scripts/XUtliPoolLib/SpriteLevel.cs new file mode 100644 index 00000000..a6ab4bab --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SpriteLevel.cs @@ -0,0 +1,48 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class SpriteLevel : CVSReader
+ {
+ public SpriteLevel.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint Level;
+
+ public uint Quality;
+
+ public uint Exp;
+
+ public double Ratio;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ SpriteLevel.RowData rowData = new SpriteLevel.RowData();
+ base.Read<uint>(reader, ref rowData.Level, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.Quality, CVSReader.uintParse);
+ this.columnno = 1;
+ base.Read<uint>(reader, ref rowData.Exp, CVSReader.uintParse);
+ this.columnno = 2;
+ base.Read<double>(reader, ref rowData.Ratio, CVSReader.doubleParse);
+ this.columnno = 3;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new SpriteLevel.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/SpriteLevel.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/SpriteLevel.cs.meta new file mode 100644 index 00000000..654d26e1 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SpriteLevel.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: bb80baa7f50dc4143a9cf58912894dd4 +timeCreated: 1611465748 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/SpritePreviewTable.cs b/Client/Assets/Scripts/XUtliPoolLib/SpritePreviewTable.cs new file mode 100644 index 00000000..33ea9d4d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SpritePreviewTable.cs @@ -0,0 +1,117 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class SpritePreviewTable : CVSReader
+ {
+ public SpritePreviewTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint ItemID;
+
+ public int[] SpriteShow;
+
+ public int ItemQuality;
+ }
+
+ public SpritePreviewTable.RowData GetByItemID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ SpritePreviewTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchItemID(key);
+ }
+ return result;
+ }
+
+ private SpritePreviewTable.RowData BinarySearchItemID(uint key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ SpritePreviewTable.RowData rowData;
+ SpritePreviewTable.RowData rowData2;
+ SpritePreviewTable.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.ItemID == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.ItemID == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.ItemID.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.ItemID.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ SpritePreviewTable.RowData rowData = new SpritePreviewTable.RowData();
+ base.Read<uint>(reader, ref rowData.ItemID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.ReadArray<int>(reader, ref rowData.SpriteShow, CVSReader.intParse);
+ this.columnno = 1;
+ base.Read<int>(reader, ref rowData.ItemQuality, CVSReader.intParse);
+ this.columnno = 2;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new SpritePreviewTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/SpritePreviewTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/SpritePreviewTable.cs.meta new file mode 100644 index 00000000..793f7178 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SpritePreviewTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 154fed8d20eb21e46a392f2cfe02ded3 +timeCreated: 1611465294 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/SpriteSkill.cs b/Client/Assets/Scripts/XUtliPoolLib/SpriteSkill.cs new file mode 100644 index 00000000..83d7b0c1 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SpriteSkill.cs @@ -0,0 +1,76 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class SpriteSkill : CVSReader
+ {
+ public SpriteSkill.RowData[] Table = null;
+
+ public class RowData
+ {
+ public short SkillID;
+
+ public string SkillName;
+
+ public byte SkillQuality;
+
+ public string Tips;
+
+ public string Icon;
+
+ public string Detail;
+
+ public short Duration;
+
+ public string NoticeDetail;
+
+ public SeqRef<int> ShowNotice;
+
+ public string Audio;
+
+ public string Atlas;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ SpriteSkill.RowData rowData = new SpriteSkill.RowData();
+ base.Read<short>(reader, ref rowData.SkillID, CVSReader.shortParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.SkillName, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<byte>(reader, ref rowData.SkillQuality, CVSReader.byteParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.Tips, CVSReader.stringParse);
+ this.columnno = 4;
+ base.Read<string>(reader, ref rowData.Icon, CVSReader.stringParse);
+ this.columnno = 5;
+ base.Read<string>(reader, ref rowData.Detail, CVSReader.stringParse);
+ this.columnno = 6;
+ base.Read<short>(reader, ref rowData.Duration, CVSReader.shortParse);
+ this.columnno = 9;
+ base.Read<string>(reader, ref rowData.NoticeDetail, CVSReader.stringParse);
+ this.columnno = 12;
+ rowData.ShowNotice.Read(reader, this.m_DataHandler);
+ this.columnno = 13;
+ base.Read<string>(reader, ref rowData.Audio, CVSReader.stringParse);
+ this.columnno = 14;
+ base.Read<string>(reader, ref rowData.Atlas, CVSReader.stringParse);
+ this.columnno = 15;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new SpriteSkill.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/SpriteSkill.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/SpriteSkill.cs.meta new file mode 100644 index 00000000..db60d5c4 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SpriteSkill.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: cca6bd10f284f6949bb46b741fe8d5a4 +timeCreated: 1611465758 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/SpriteTable.cs b/Client/Assets/Scripts/XUtliPoolLib/SpriteTable.cs new file mode 100644 index 00000000..84bb5694 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SpriteTable.cs @@ -0,0 +1,182 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class SpriteTable : CVSReader
+ {
+ public SpriteTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint SpriteID;
+
+ public string SpriteName;
+
+ public uint SpriteQuality;
+
+ public string SpriteIcon;
+
+ public uint SpriteModelID;
+
+ public uint SpriteSkillID;
+
+ public uint AttrID1;
+
+ public uint AttrID2;
+
+ public uint AttrID3;
+
+ public uint AttrID4;
+
+ public uint AttrID5;
+
+ public uint BaseAttr1;
+
+ public uint BaseAttr2;
+
+ public uint BaseAttr3;
+
+ public uint BaseAttr4;
+
+ public uint BaseAttr5;
+
+ public SeqRef<uint> Range1;
+
+ public SeqRef<uint> Range2;
+
+ public SeqRef<uint> Range3;
+
+ public SeqRef<uint> Range4;
+
+ public SeqRef<uint> Range5;
+
+ public uint PresentID;
+
+ public string Color;
+
+ public string DeathAnim;
+
+ public string ReviveAnim;
+
+ public int IllustrationShow;
+ }
+
+ public SpriteTable.RowData GetBySpriteID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ SpriteTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].SpriteID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ public SpriteTable.RowData GetByPresentID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ SpriteTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].PresentID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ SpriteTable.RowData rowData = new SpriteTable.RowData();
+ base.Read<uint>(reader, ref rowData.SpriteID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.SpriteName, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<uint>(reader, ref rowData.SpriteQuality, CVSReader.uintParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.SpriteIcon, CVSReader.stringParse);
+ this.columnno = 3;
+ base.Read<uint>(reader, ref rowData.SpriteModelID, CVSReader.uintParse);
+ this.columnno = 4;
+ base.Read<uint>(reader, ref rowData.SpriteSkillID, CVSReader.uintParse);
+ this.columnno = 7;
+ base.Read<uint>(reader, ref rowData.AttrID1, CVSReader.uintParse);
+ this.columnno = 10;
+ base.Read<uint>(reader, ref rowData.AttrID2, CVSReader.uintParse);
+ this.columnno = 11;
+ base.Read<uint>(reader, ref rowData.AttrID3, CVSReader.uintParse);
+ this.columnno = 12;
+ base.Read<uint>(reader, ref rowData.AttrID4, CVSReader.uintParse);
+ this.columnno = 13;
+ base.Read<uint>(reader, ref rowData.AttrID5, CVSReader.uintParse);
+ this.columnno = 14;
+ base.Read<uint>(reader, ref rowData.BaseAttr1, CVSReader.uintParse);
+ this.columnno = 15;
+ base.Read<uint>(reader, ref rowData.BaseAttr2, CVSReader.uintParse);
+ this.columnno = 16;
+ base.Read<uint>(reader, ref rowData.BaseAttr3, CVSReader.uintParse);
+ this.columnno = 17;
+ base.Read<uint>(reader, ref rowData.BaseAttr4, CVSReader.uintParse);
+ this.columnno = 18;
+ base.Read<uint>(reader, ref rowData.BaseAttr5, CVSReader.uintParse);
+ this.columnno = 19;
+ rowData.Range1.Read(reader, this.m_DataHandler);
+ this.columnno = 25;
+ rowData.Range2.Read(reader, this.m_DataHandler);
+ this.columnno = 26;
+ rowData.Range3.Read(reader, this.m_DataHandler);
+ this.columnno = 27;
+ rowData.Range4.Read(reader, this.m_DataHandler);
+ this.columnno = 28;
+ rowData.Range5.Read(reader, this.m_DataHandler);
+ this.columnno = 29;
+ base.Read<uint>(reader, ref rowData.PresentID, CVSReader.uintParse);
+ this.columnno = 47;
+ base.Read<string>(reader, ref rowData.Color, CVSReader.stringParse);
+ this.columnno = 48;
+ base.Read<string>(reader, ref rowData.DeathAnim, CVSReader.stringParse);
+ this.columnno = 49;
+ base.Read<string>(reader, ref rowData.ReviveAnim, CVSReader.stringParse);
+ this.columnno = 50;
+ base.Read<int>(reader, ref rowData.IllustrationShow, CVSReader.intParse);
+ this.columnno = 51;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new SpriteTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/SpriteTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/SpriteTable.cs.meta new file mode 100644 index 00000000..a12389cd --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SpriteTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2b98a3cf57c7e754cb942c349cf9ec13 +timeCreated: 1611465304 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/StageRankTable.cs b/Client/Assets/Scripts/XUtliPoolLib/StageRankTable.cs new file mode 100644 index 00000000..e8bf65a4 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/StageRankTable.cs @@ -0,0 +1,117 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class StageRankTable : CVSReader
+ {
+ public StageRankTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint scendid;
+
+ public SeqRef<uint> star2;
+
+ public SeqRef<uint> star3;
+ }
+
+ public StageRankTable.RowData GetByscendid(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ StageRankTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchscendid(key);
+ }
+ return result;
+ }
+
+ private StageRankTable.RowData BinarySearchscendid(uint key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ StageRankTable.RowData rowData;
+ StageRankTable.RowData rowData2;
+ StageRankTable.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.scendid == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.scendid == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.scendid.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.scendid.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ StageRankTable.RowData rowData = new StageRankTable.RowData();
+ base.Read<uint>(reader, ref rowData.scendid, CVSReader.uintParse);
+ this.columnno = 0;
+ rowData.star2.Read(reader, this.m_DataHandler);
+ this.columnno = 1;
+ rowData.star3.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new StageRankTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/StageRankTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/StageRankTable.cs.meta new file mode 100644 index 00000000..f1298432 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/StageRankTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2d8e7db2ac1ef114ebfb05c5628cdf6d +timeCreated: 1611465305 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/StringTable.cs b/Client/Assets/Scripts/XUtliPoolLib/StringTable.cs new file mode 100644 index 00000000..f0480f35 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/StringTable.cs @@ -0,0 +1,34 @@ +using System;
+using System.Collections.Generic;
+
+namespace XUtliPoolLib
+{
+ public class StringTable : CVSReader
+ {
+ public Dictionary<uint, string> Table = new Dictionary<uint, string>();
+
+ public class RowData
+ {
+ public string Enum;
+
+ public string Text;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ uint key = 0u;
+ string value = "";
+ base.Read<uint>(reader, ref key, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref value, CVSReader.stringParse);
+ this.columnno = 1;
+ this.Table[key] = value;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ this.Table.Clear();
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/StringTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/StringTable.cs.meta new file mode 100644 index 00000000..50ed857d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/StringTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f642edcc32038214c9d6153349f1b73d +timeCreated: 1611465809 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/SuperActivity.cs b/Client/Assets/Scripts/XUtliPoolLib/SuperActivity.cs new file mode 100644 index 00000000..94008443 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SuperActivity.cs @@ -0,0 +1,60 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class SuperActivity : CVSReader
+ {
+ public SuperActivity.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint actid;
+
+ public uint id;
+
+ public string[] childs;
+
+ public uint offset;
+
+ public string icon;
+
+ public string name;
+
+ public uint belong;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ SuperActivity.RowData rowData = new SuperActivity.RowData();
+ base.Read<uint>(reader, ref rowData.actid, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.id, CVSReader.uintParse);
+ this.columnno = 1;
+ base.ReadArray<string>(reader, ref rowData.childs, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<uint>(reader, ref rowData.offset, CVSReader.uintParse);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.icon, CVSReader.stringParse);
+ this.columnno = 4;
+ base.Read<string>(reader, ref rowData.name, CVSReader.stringParse);
+ this.columnno = 5;
+ base.Read<uint>(reader, ref rowData.belong, CVSReader.uintParse);
+ this.columnno = 6;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new SuperActivity.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/SuperActivity.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/SuperActivity.cs.meta new file mode 100644 index 00000000..bad9bfb9 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SuperActivity.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c97a959cb8bfb254485bd74a415778ac +timeCreated: 1611465757 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/SuperActivityTask.cs b/Client/Assets/Scripts/XUtliPoolLib/SuperActivityTask.cs new file mode 100644 index 00000000..84476536 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SuperActivityTask.cs @@ -0,0 +1,161 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class SuperActivityTask : CVSReader
+ {
+ public SuperActivityTask.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint taskid;
+
+ public string title;
+
+ public uint[] num;
+
+ public SeqListRef<uint> items;
+
+ public string icon;
+
+ public uint type;
+
+ public uint belong;
+
+ public uint jump;
+
+ public uint actid;
+
+ public int cnt;
+
+ public int[] arg;
+
+ public uint tasktype;
+
+ public uint[] taskson;
+
+ public uint taskfather;
+ }
+
+ public SuperActivityTask.RowData GetBytaskid(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ SuperActivityTask.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchtaskid(key);
+ }
+ return result;
+ }
+
+ private SuperActivityTask.RowData BinarySearchtaskid(uint key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ SuperActivityTask.RowData rowData;
+ SuperActivityTask.RowData rowData2;
+ SuperActivityTask.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.taskid == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.taskid == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.taskid.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.taskid.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ SuperActivityTask.RowData rowData = new SuperActivityTask.RowData();
+ base.Read<uint>(reader, ref rowData.taskid, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.title, CVSReader.stringParse);
+ this.columnno = 1;
+ base.ReadArray<uint>(reader, ref rowData.num, CVSReader.uintParse);
+ this.columnno = 3;
+ rowData.items.Read(reader, this.m_DataHandler);
+ this.columnno = 4;
+ base.Read<string>(reader, ref rowData.icon, CVSReader.stringParse);
+ this.columnno = 5;
+ base.Read<uint>(reader, ref rowData.type, CVSReader.uintParse);
+ this.columnno = 6;
+ base.Read<uint>(reader, ref rowData.belong, CVSReader.uintParse);
+ this.columnno = 7;
+ base.Read<uint>(reader, ref rowData.jump, CVSReader.uintParse);
+ this.columnno = 8;
+ base.Read<uint>(reader, ref rowData.actid, CVSReader.uintParse);
+ this.columnno = 9;
+ base.Read<int>(reader, ref rowData.cnt, CVSReader.intParse);
+ this.columnno = 10;
+ base.ReadArray<int>(reader, ref rowData.arg, CVSReader.intParse);
+ this.columnno = 11;
+ base.Read<uint>(reader, ref rowData.tasktype, CVSReader.uintParse);
+ this.columnno = 12;
+ base.ReadArray<uint>(reader, ref rowData.taskson, CVSReader.uintParse);
+ this.columnno = 13;
+ base.Read<uint>(reader, ref rowData.taskfather, CVSReader.uintParse);
+ this.columnno = 14;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new SuperActivityTask.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/SuperActivityTask.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/SuperActivityTask.cs.meta new file mode 100644 index 00000000..51100bbf --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SuperActivityTask.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 160be2b037158b7458a57b3f328a7a7b +timeCreated: 1611465294 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/SuperActivityTime.cs b/Client/Assets/Scripts/XUtliPoolLib/SuperActivityTime.cs new file mode 100644 index 00000000..77d46c16 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SuperActivityTime.cs @@ -0,0 +1,99 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class SuperActivityTime : CVSReader
+ {
+ public SuperActivityTime.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint actid;
+
+ public uint systemid;
+
+ public uint starttime;
+
+ public uint duration;
+
+ public uint rewardtime;
+
+ public uint pointid;
+
+ public uint needpoint;
+
+ public float rate;
+
+ public uint starthour;
+
+ public uint datetype;
+
+ public SeqListRef<uint> timestage;
+ }
+
+ public SuperActivityTime.RowData GetByactid(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ SuperActivityTime.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].actid == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ SuperActivityTime.RowData rowData = new SuperActivityTime.RowData();
+ base.Read<uint>(reader, ref rowData.actid, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.systemid, CVSReader.uintParse);
+ this.columnno = 1;
+ base.Read<uint>(reader, ref rowData.starttime, CVSReader.uintParse);
+ this.columnno = 3;
+ base.Read<uint>(reader, ref rowData.duration, CVSReader.uintParse);
+ this.columnno = 4;
+ base.Read<uint>(reader, ref rowData.rewardtime, CVSReader.uintParse);
+ this.columnno = 5;
+ base.Read<uint>(reader, ref rowData.pointid, CVSReader.uintParse);
+ this.columnno = 6;
+ base.Read<uint>(reader, ref rowData.needpoint, CVSReader.uintParse);
+ this.columnno = 7;
+ base.Read<float>(reader, ref rowData.rate, CVSReader.floatParse);
+ this.columnno = 9;
+ base.Read<uint>(reader, ref rowData.starthour, CVSReader.uintParse);
+ this.columnno = 10;
+ base.Read<uint>(reader, ref rowData.datetype, CVSReader.uintParse);
+ this.columnno = 12;
+ rowData.timestage.Read(reader, this.m_DataHandler);
+ this.columnno = 13;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new SuperActivityTime.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/SuperActivityTime.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/SuperActivityTime.cs.meta new file mode 100644 index 00000000..c3a3d1a4 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SuperActivityTime.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 106143f95b164654db72525aa2e43aa5 +timeCreated: 1611465290 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/SuperArmorRecoveryCoffTable.cs b/Client/Assets/Scripts/XUtliPoolLib/SuperArmorRecoveryCoffTable.cs new file mode 100644 index 00000000..0cd94250 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SuperArmorRecoveryCoffTable.cs @@ -0,0 +1,44 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class SuperArmorRecoveryCoffTable : CVSReader
+ {
+ public SuperArmorRecoveryCoffTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int Value;
+
+ public int monster_type;
+
+ public double SupRecoveryChange;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ SuperArmorRecoveryCoffTable.RowData rowData = new SuperArmorRecoveryCoffTable.RowData();
+ base.Read<int>(reader, ref rowData.Value, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<int>(reader, ref rowData.monster_type, CVSReader.intParse);
+ this.columnno = 1;
+ base.Read<double>(reader, ref rowData.SupRecoveryChange, CVSReader.doubleParse);
+ this.columnno = 2;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new SuperArmorRecoveryCoffTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/SuperArmorRecoveryCoffTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/SuperArmorRecoveryCoffTable.cs.meta new file mode 100644 index 00000000..f8e6430a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SuperArmorRecoveryCoffTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 754d324a82f3cc548b7f45d6fdccf51e +timeCreated: 1611465689 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/SystemAnnounce.cs b/Client/Assets/Scripts/XUtliPoolLib/SystemAnnounce.cs new file mode 100644 index 00000000..8ecd2aa4 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SystemAnnounce.cs @@ -0,0 +1,87 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class SystemAnnounce : CVSReader
+ {
+ public SystemAnnounce.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int ID;
+
+ public int SystemID;
+
+ public string SystemDescription;
+
+ public int OpenAnnounceLevel;
+
+ public string[] AnnounceDesc;
+
+ public string AnnounceIcon;
+
+ public string TextSpriteName;
+
+ public string IconName;
+ }
+
+ public SystemAnnounce.RowData GetByID(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ SystemAnnounce.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].ID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ SystemAnnounce.RowData rowData = new SystemAnnounce.RowData();
+ base.Read<int>(reader, ref rowData.ID, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<int>(reader, ref rowData.SystemID, CVSReader.intParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.SystemDescription, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<int>(reader, ref rowData.OpenAnnounceLevel, CVSReader.intParse);
+ this.columnno = 3;
+ base.ReadArray<string>(reader, ref rowData.AnnounceDesc, CVSReader.stringParse);
+ this.columnno = 4;
+ base.Read<string>(reader, ref rowData.AnnounceIcon, CVSReader.stringParse);
+ this.columnno = 5;
+ base.Read<string>(reader, ref rowData.TextSpriteName, CVSReader.stringParse);
+ this.columnno = 6;
+ base.Read<string>(reader, ref rowData.IconName, CVSReader.stringParse);
+ this.columnno = 7;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new SystemAnnounce.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/SystemAnnounce.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/SystemAnnounce.cs.meta new file mode 100644 index 00000000..8cd99075 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SystemAnnounce.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 50a60ff851728194aa48b45d387104a9 +timeCreated: 1611465643 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/SystemHelpTable.cs b/Client/Assets/Scripts/XUtliPoolLib/SystemHelpTable.cs new file mode 100644 index 00000000..5e7a031b --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SystemHelpTable.cs @@ -0,0 +1,113 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class SystemHelpTable : CVSReader
+ {
+ public SystemHelpTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int SystemID;
+
+ public string[] SystemHelp;
+ }
+
+ public SystemHelpTable.RowData GetBySystemID(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ SystemHelpTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchSystemID(key);
+ }
+ return result;
+ }
+
+ private SystemHelpTable.RowData BinarySearchSystemID(int key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ SystemHelpTable.RowData rowData;
+ SystemHelpTable.RowData rowData2;
+ SystemHelpTable.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.SystemID == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.SystemID == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.SystemID.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.SystemID.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ SystemHelpTable.RowData rowData = new SystemHelpTable.RowData();
+ base.Read<int>(reader, ref rowData.SystemID, CVSReader.intParse);
+ this.columnno = 0;
+ base.ReadArray<string>(reader, ref rowData.SystemHelp, CVSReader.stringParse);
+ this.columnno = 2;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new SystemHelpTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/SystemHelpTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/SystemHelpTable.cs.meta new file mode 100644 index 00000000..1f1a2ae8 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SystemHelpTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4002fcf906f664c4e9cc27eb441b87e3 +timeCreated: 1611465634 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/SystemRewardTable.cs b/Client/Assets/Scripts/XUtliPoolLib/SystemRewardTable.cs new file mode 100644 index 00000000..0e57a429 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SystemRewardTable.cs @@ -0,0 +1,75 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class SystemRewardTable : CVSReader
+ {
+ public SystemRewardTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint Type;
+
+ public string Name;
+
+ public uint SubType;
+
+ public uint Sort;
+
+ public string Remark;
+ }
+
+ public SystemRewardTable.RowData GetByType(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ SystemRewardTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].Type == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ SystemRewardTable.RowData rowData = new SystemRewardTable.RowData();
+ base.Read<uint>(reader, ref rowData.Type, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.Name, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<uint>(reader, ref rowData.SubType, CVSReader.uintParse);
+ this.columnno = 2;
+ base.Read<uint>(reader, ref rowData.Sort, CVSReader.uintParse);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.Remark, CVSReader.stringParse);
+ this.columnno = 4;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new SystemRewardTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/SystemRewardTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/SystemRewardTable.cs.meta new file mode 100644 index 00000000..0bac0ef6 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/SystemRewardTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 503d0855478871344a445b951204b40a +timeCreated: 1611465643 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/TaJieHelpTab.cs b/Client/Assets/Scripts/XUtliPoolLib/TaJieHelpTab.cs new file mode 100644 index 00000000..1d1ab88a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/TaJieHelpTab.cs @@ -0,0 +1,79 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class TaJieHelpTab : CVSReader
+ {
+ public TaJieHelpTab.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint Index;
+
+ public uint[] Type;
+
+ public uint SysID;
+
+ public string IconName;
+
+ public string Des;
+
+ public string Name;
+ }
+
+ public TaJieHelpTab.RowData GetByIndex(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ TaJieHelpTab.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].Index == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ TaJieHelpTab.RowData rowData = new TaJieHelpTab.RowData();
+ base.Read<uint>(reader, ref rowData.Index, CVSReader.uintParse);
+ this.columnno = 0;
+ base.ReadArray<uint>(reader, ref rowData.Type, CVSReader.uintParse);
+ this.columnno = 1;
+ base.Read<uint>(reader, ref rowData.SysID, CVSReader.uintParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.IconName, CVSReader.stringParse);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.Des, CVSReader.stringParse);
+ this.columnno = 4;
+ base.Read<string>(reader, ref rowData.Name, CVSReader.stringParse);
+ this.columnno = 5;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new TaJieHelpTab.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/TaJieHelpTab.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/TaJieHelpTab.cs.meta new file mode 100644 index 00000000..abdeecba --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/TaJieHelpTab.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: cb12ee841da89cd428c43fb79180a0bf +timeCreated: 1611465758 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/TaJieHelpUrl.cs b/Client/Assets/Scripts/XUtliPoolLib/TaJieHelpUrl.cs new file mode 100644 index 00000000..5fedfb7e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/TaJieHelpUrl.cs @@ -0,0 +1,67 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class TaJieHelpUrl : CVSReader
+ {
+ public TaJieHelpUrl.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint SceneId;
+
+ public string Url;
+
+ public string Name;
+ }
+
+ public TaJieHelpUrl.RowData GetBySceneId(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ TaJieHelpUrl.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].SceneId == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ TaJieHelpUrl.RowData rowData = new TaJieHelpUrl.RowData();
+ base.Read<uint>(reader, ref rowData.SceneId, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.Url, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.Name, CVSReader.stringParse);
+ this.columnno = 2;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new TaJieHelpUrl.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/TaJieHelpUrl.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/TaJieHelpUrl.cs.meta new file mode 100644 index 00000000..0f6c3685 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/TaJieHelpUrl.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c696c9980db22584e8898f052ff86b2e +timeCreated: 1611465756 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/TaskTableNew.cs b/Client/Assets/Scripts/XUtliPoolLib/TaskTableNew.cs new file mode 100644 index 00000000..94a9304a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/TaskTableNew.cs @@ -0,0 +1,177 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class TaskTableNew : CVSReader
+ {
+ public TaskTableNew.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint TaskType;
+
+ public uint TaskID;
+
+ public uint[] EndTime;
+
+ public uint[] BeginTaskNPCID;
+
+ public uint[] EndTaskNPCID;
+
+ public string TaskTitle;
+
+ public string TaskDesc;
+
+ public string InprocessDesc;
+
+ public SeqListRef<uint> PassScene;
+
+ public SeqListRef<uint> TaskScene;
+
+ public SeqListRef<uint> RewardItem;
+
+ public string BeginDesc;
+
+ public string EndDesc;
+
+ public uint[] MailID;
+
+ public uint ActivityID;
+
+ public SeqListRef<uint> TaskActivity;
+
+ public int[] Prof;
+
+ public int ProfLevel;
+ }
+
+ public TaskTableNew.RowData GetByTaskID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ TaskTableNew.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchTaskID(key);
+ }
+ return result;
+ }
+
+ private TaskTableNew.RowData BinarySearchTaskID(uint key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ TaskTableNew.RowData rowData;
+ TaskTableNew.RowData rowData2;
+ TaskTableNew.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.TaskID == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.TaskID == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.TaskID.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.TaskID.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ TaskTableNew.RowData rowData = new TaskTableNew.RowData();
+ base.Read<uint>(reader, ref rowData.TaskType, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.TaskID, CVSReader.uintParse);
+ this.columnno = 1;
+ base.ReadArray<uint>(reader, ref rowData.EndTime, CVSReader.uintParse);
+ this.columnno = 4;
+ base.ReadArray<uint>(reader, ref rowData.BeginTaskNPCID, CVSReader.uintParse);
+ this.columnno = 5;
+ base.ReadArray<uint>(reader, ref rowData.EndTaskNPCID, CVSReader.uintParse);
+ this.columnno = 6;
+ base.Read<string>(reader, ref rowData.TaskTitle, CVSReader.stringParse);
+ this.columnno = 8;
+ base.Read<string>(reader, ref rowData.TaskDesc, CVSReader.stringParse);
+ this.columnno = 9;
+ base.Read<string>(reader, ref rowData.InprocessDesc, CVSReader.stringParse);
+ this.columnno = 10;
+ rowData.PassScene.Read(reader, this.m_DataHandler);
+ this.columnno = 11;
+ rowData.TaskScene.Read(reader, this.m_DataHandler);
+ this.columnno = 12;
+ rowData.RewardItem.Read(reader, this.m_DataHandler);
+ this.columnno = 15;
+ base.Read<string>(reader, ref rowData.BeginDesc, CVSReader.stringParse);
+ this.columnno = 16;
+ base.Read<string>(reader, ref rowData.EndDesc, CVSReader.stringParse);
+ this.columnno = 17;
+ base.ReadArray<uint>(reader, ref rowData.MailID, CVSReader.uintParse);
+ this.columnno = 18;
+ base.Read<uint>(reader, ref rowData.ActivityID, CVSReader.uintParse);
+ this.columnno = 19;
+ rowData.TaskActivity.Read(reader, this.m_DataHandler);
+ this.columnno = 20;
+ base.ReadArray<int>(reader, ref rowData.Prof, CVSReader.intParse);
+ this.columnno = 21;
+ base.Read<int>(reader, ref rowData.ProfLevel, CVSReader.intParse);
+ this.columnno = 22;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new TaskTableNew.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/TaskTableNew.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/TaskTableNew.cs.meta new file mode 100644 index 00000000..641630aa --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/TaskTableNew.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 6e7ad22e0e64088409f99bbc294961c4 +timeCreated: 1611465686 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/TeamTowerRewardTable.cs b/Client/Assets/Scripts/XUtliPoolLib/TeamTowerRewardTable.cs new file mode 100644 index 00000000..75f7cf30 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/TeamTowerRewardTable.cs @@ -0,0 +1,64 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class TeamTowerRewardTable : CVSReader
+ {
+ public TeamTowerRewardTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int TowerHardLevel;
+
+ public int TowerFloor;
+
+ public SeqListRef<int> Reward;
+
+ public string Name;
+
+ public int DragonCoinFindBackCost;
+
+ public int SceneID;
+
+ public SeqListRef<int> FirstPassReward;
+
+ public int preward;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ TeamTowerRewardTable.RowData rowData = new TeamTowerRewardTable.RowData();
+ base.Read<int>(reader, ref rowData.TowerHardLevel, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<int>(reader, ref rowData.TowerFloor, CVSReader.intParse);
+ this.columnno = 1;
+ rowData.Reward.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.Name, CVSReader.stringParse);
+ this.columnno = 3;
+ base.Read<int>(reader, ref rowData.DragonCoinFindBackCost, CVSReader.intParse);
+ this.columnno = 4;
+ base.Read<int>(reader, ref rowData.SceneID, CVSReader.intParse);
+ this.columnno = 7;
+ rowData.FirstPassReward.Read(reader, this.m_DataHandler);
+ this.columnno = 8;
+ base.Read<int>(reader, ref rowData.preward, CVSReader.intParse);
+ this.columnno = 9;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new TeamTowerRewardTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/TeamTowerRewardTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/TeamTowerRewardTable.cs.meta new file mode 100644 index 00000000..a298f480 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/TeamTowerRewardTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4dae733686d21db4094318e161c07a73 +timeCreated: 1611465642 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/TerritoryBattle.cs b/Client/Assets/Scripts/XUtliPoolLib/TerritoryBattle.cs new file mode 100644 index 00000000..2f5bf738 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/TerritoryBattle.cs @@ -0,0 +1,79 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class TerritoryBattle : CVSReader
+ {
+ public TerritoryBattle.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint ID;
+
+ public string territoryname;
+
+ public uint territorylevel;
+
+ public string territorylevelname;
+
+ public string territoryIcon;
+
+ public uint[] territoryLeagues;
+ }
+
+ public TerritoryBattle.RowData GetByID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ TerritoryBattle.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].ID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ TerritoryBattle.RowData rowData = new TerritoryBattle.RowData();
+ base.Read<uint>(reader, ref rowData.ID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.territoryname, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<uint>(reader, ref rowData.territorylevel, CVSReader.uintParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.territorylevelname, CVSReader.stringParse);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.territoryIcon, CVSReader.stringParse);
+ this.columnno = 4;
+ base.ReadArray<uint>(reader, ref rowData.territoryLeagues, CVSReader.uintParse);
+ this.columnno = 5;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new TerritoryBattle.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/TerritoryBattle.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/TerritoryBattle.cs.meta new file mode 100644 index 00000000..297bd8a6 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/TerritoryBattle.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ae89b1569156ed94fbafb2e7969b6920 +timeCreated: 1611465742 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/TerritoryRewd.cs b/Client/Assets/Scripts/XUtliPoolLib/TerritoryRewd.cs new file mode 100644 index 00000000..331451f3 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/TerritoryRewd.cs @@ -0,0 +1,44 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class TerritoryRewd : CVSReader
+ {
+ public TerritoryRewd.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int ID;
+
+ public int Point;
+
+ public SeqListRef<uint> Reward;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ TerritoryRewd.RowData rowData = new TerritoryRewd.RowData();
+ base.Read<int>(reader, ref rowData.ID, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<int>(reader, ref rowData.Point, CVSReader.intParse);
+ this.columnno = 1;
+ rowData.Reward.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new TerritoryRewd.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/TerritoryRewd.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/TerritoryRewd.cs.meta new file mode 100644 index 00000000..09bdf332 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/TerritoryRewd.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: de67b51e27e9c2c42a6f6edfb15ca34c +timeCreated: 1611465797 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/ThemeActivity.cs b/Client/Assets/Scripts/XUtliPoolLib/ThemeActivity.cs new file mode 100644 index 00000000..0d5e9d7e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ThemeActivity.cs @@ -0,0 +1,67 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class ThemeActivity : CVSReader
+ {
+ public ThemeActivity.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint SysID;
+
+ public string TabName;
+
+ public string TabIcon;
+ }
+
+ public ThemeActivity.RowData GetBySysID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ ThemeActivity.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].SysID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ ThemeActivity.RowData rowData = new ThemeActivity.RowData();
+ base.Read<uint>(reader, ref rowData.SysID, CVSReader.uintParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.TabName, CVSReader.stringParse);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.TabIcon, CVSReader.stringParse);
+ this.columnno = 7;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new ThemeActivity.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/ThemeActivity.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/ThemeActivity.cs.meta new file mode 100644 index 00000000..02ee6432 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/ThemeActivity.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 532ca536d1e45ac4c92c5d19a635ebd9 +timeCreated: 1611465644 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/TitleTable.cs b/Client/Assets/Scripts/XUtliPoolLib/TitleTable.cs new file mode 100644 index 00000000..2ff7face --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/TitleTable.cs @@ -0,0 +1,76 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class TitleTable : CVSReader
+ {
+ public TitleTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint RankID;
+
+ public string RankName;
+
+ public string RankIcon;
+
+ public string AffectRoute;
+
+ public uint NeedPowerPoint;
+
+ public SeqListRef<uint> NeedItem;
+
+ public SeqListRef<uint> Attribute;
+
+ public string RankPath;
+
+ public string desc;
+
+ public uint BasicProfession;
+
+ public string RankAtlas;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ TitleTable.RowData rowData = new TitleTable.RowData();
+ base.Read<uint>(reader, ref rowData.RankID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.RankName, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.RankIcon, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.AffectRoute, CVSReader.stringParse);
+ this.columnno = 3;
+ base.Read<uint>(reader, ref rowData.NeedPowerPoint, CVSReader.uintParse);
+ this.columnno = 4;
+ rowData.NeedItem.Read(reader, this.m_DataHandler);
+ this.columnno = 5;
+ rowData.Attribute.Read(reader, this.m_DataHandler);
+ this.columnno = 6;
+ base.Read<string>(reader, ref rowData.RankPath, CVSReader.stringParse);
+ this.columnno = 7;
+ base.Read<string>(reader, ref rowData.desc, CVSReader.stringParse);
+ this.columnno = 8;
+ base.Read<uint>(reader, ref rowData.BasicProfession, CVSReader.uintParse);
+ this.columnno = 9;
+ base.Read<string>(reader, ref rowData.RankAtlas, CVSReader.stringParse);
+ this.columnno = 10;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new TitleTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/TitleTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/TitleTable.cs.meta new file mode 100644 index 00000000..5060dc6b --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/TitleTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 25bdad5b65809cf4bb861ef0f0bf2236 +timeCreated: 1611465301 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/TrophyInfo.cs b/Client/Assets/Scripts/XUtliPoolLib/TrophyInfo.cs new file mode 100644 index 00000000..cdb057ec --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/TrophyInfo.cs @@ -0,0 +1,88 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class TrophyInfo : CVSReader
+ {
+ public TrophyInfo.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint ID;
+
+ public uint SceneID;
+
+ public SeqRef<uint> TrophyScore;
+
+ public uint Third;
+
+ public uint ThirdPara;
+
+ public uint Second;
+
+ public uint SecondPara;
+
+ public uint First;
+
+ public uint FirstPara;
+
+ public string Name;
+
+ public string ThirdDesc;
+
+ public string SecondDesc;
+
+ public string FirstDesc;
+
+ public string Icon;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ TrophyInfo.RowData rowData = new TrophyInfo.RowData();
+ base.Read<uint>(reader, ref rowData.ID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.SceneID, CVSReader.uintParse);
+ this.columnno = 1;
+ rowData.TrophyScore.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ base.Read<uint>(reader, ref rowData.Third, CVSReader.uintParse);
+ this.columnno = 3;
+ base.Read<uint>(reader, ref rowData.ThirdPara, CVSReader.uintParse);
+ this.columnno = 4;
+ base.Read<uint>(reader, ref rowData.Second, CVSReader.uintParse);
+ this.columnno = 5;
+ base.Read<uint>(reader, ref rowData.SecondPara, CVSReader.uintParse);
+ this.columnno = 6;
+ base.Read<uint>(reader, ref rowData.First, CVSReader.uintParse);
+ this.columnno = 7;
+ base.Read<uint>(reader, ref rowData.FirstPara, CVSReader.uintParse);
+ this.columnno = 8;
+ base.Read<string>(reader, ref rowData.Name, CVSReader.stringParse);
+ this.columnno = 9;
+ base.Read<string>(reader, ref rowData.ThirdDesc, CVSReader.stringParse);
+ this.columnno = 10;
+ base.Read<string>(reader, ref rowData.SecondDesc, CVSReader.stringParse);
+ this.columnno = 11;
+ base.Read<string>(reader, ref rowData.FirstDesc, CVSReader.stringParse);
+ this.columnno = 12;
+ base.Read<string>(reader, ref rowData.Icon, CVSReader.stringParse);
+ this.columnno = 13;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new TrophyInfo.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/TrophyInfo.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/TrophyInfo.cs.meta new file mode 100644 index 00000000..ef3711bd --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/TrophyInfo.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: af489163bc56c6a4a92fa67b7a02794c +timeCreated: 1611465743 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/TrophyReward.cs b/Client/Assets/Scripts/XUtliPoolLib/TrophyReward.cs new file mode 100644 index 00000000..0477dc07 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/TrophyReward.cs @@ -0,0 +1,44 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class TrophyReward : CVSReader
+ {
+ public TrophyReward.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int HonourRank;
+
+ public int TrophyScore;
+
+ public SeqListRef<uint> Rewards;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ TrophyReward.RowData rowData = new TrophyReward.RowData();
+ base.Read<int>(reader, ref rowData.HonourRank, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<int>(reader, ref rowData.TrophyScore, CVSReader.intParse);
+ this.columnno = 1;
+ rowData.Rewards.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new TrophyReward.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/TrophyReward.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/TrophyReward.cs.meta new file mode 100644 index 00000000..34e12614 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/TrophyReward.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4819c2c9b3d6fb941b21b4a319ffe5df +timeCreated: 1611465639 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/UniqueString.cs b/Client/Assets/Scripts/XUtliPoolLib/UniqueString.cs new file mode 100644 index 00000000..2554df55 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/UniqueString.cs @@ -0,0 +1,76 @@ +using System;
+using System.Collections.Generic;
+
+namespace XUtliPoolLib
+{
+ public class UniqueString
+ {
+ private static Dictionary<string, string> m_strings = new Dictionary<string, string>();
+
+ public static string Intern(string str, bool removable = true)
+ {
+ bool flag = str == null;
+ string result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ string text = UniqueString.IsInterned(str);
+ bool flag2 = text != null;
+ if (flag2)
+ {
+ result = text;
+ }
+ else if (removable)
+ {
+ UniqueString.m_strings.Add(str, str);
+ result = str;
+ }
+ else
+ {
+ result = string.Intern(str);
+ }
+ }
+ return result;
+ }
+
+ public static string IsInterned(string str)
+ {
+ bool flag = str == null;
+ string result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ string text = string.IsInterned(str);
+ bool flag2 = text != null;
+ if (flag2)
+ {
+ result = text;
+ }
+ else
+ {
+ bool flag3 = UniqueString.m_strings.TryGetValue(str, out text);
+ if (flag3)
+ {
+ result = text;
+ }
+ else
+ {
+ result = null;
+ }
+ }
+ }
+ return result;
+ }
+
+ public static void Clear()
+ {
+ UniqueString.m_strings.Clear();
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/UniqueString.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/UniqueString.cs.meta new file mode 100644 index 00000000..af03781e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/UniqueString.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 005c6dd8c1dd08e48b8c623e25d3901d +timeCreated: 1611465284 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/VIPTable.cs b/Client/Assets/Scripts/XUtliPoolLib/VIPTable.cs new file mode 100644 index 00000000..b6f4ad7a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/VIPTable.cs @@ -0,0 +1,111 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class VIPTable : CVSReader
+ {
+ public VIPTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int VIP;
+
+ public uint RMB;
+
+ public int BuyGoldTimes;
+
+ public int BuyFatigueTimes;
+
+ public uint AuctionOnSaleMax;
+
+ public int BuyDragonCoinTimes;
+
+ public int ItemID;
+
+ public string[] VIPTips;
+
+ public uint GoldClickTimes;
+
+ public uint EquipMax;
+
+ public uint EmblemMax;
+
+ public uint BagMax;
+
+ public uint ArtifactMax;
+
+ public uint InscriptionMax;
+ }
+
+ public VIPTable.RowData GetByVIP(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ VIPTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].VIP == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ VIPTable.RowData rowData = new VIPTable.RowData();
+ base.Read<int>(reader, ref rowData.VIP, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.RMB, CVSReader.uintParse);
+ this.columnno = 1;
+ base.Read<int>(reader, ref rowData.BuyGoldTimes, CVSReader.intParse);
+ this.columnno = 2;
+ base.Read<int>(reader, ref rowData.BuyFatigueTimes, CVSReader.intParse);
+ this.columnno = 3;
+ base.Read<uint>(reader, ref rowData.AuctionOnSaleMax, CVSReader.uintParse);
+ this.columnno = 5;
+ base.Read<int>(reader, ref rowData.BuyDragonCoinTimes, CVSReader.intParse);
+ this.columnno = 6;
+ base.Read<int>(reader, ref rowData.ItemID, CVSReader.intParse);
+ this.columnno = 9;
+ base.ReadArray<string>(reader, ref rowData.VIPTips, CVSReader.stringParse);
+ this.columnno = 10;
+ base.Read<uint>(reader, ref rowData.GoldClickTimes, CVSReader.uintParse);
+ this.columnno = 11;
+ base.Read<uint>(reader, ref rowData.EquipMax, CVSReader.uintParse);
+ this.columnno = 12;
+ base.Read<uint>(reader, ref rowData.EmblemMax, CVSReader.uintParse);
+ this.columnno = 13;
+ base.Read<uint>(reader, ref rowData.BagMax, CVSReader.uintParse);
+ this.columnno = 14;
+ base.Read<uint>(reader, ref rowData.ArtifactMax, CVSReader.uintParse);
+ this.columnno = 15;
+ base.Read<uint>(reader, ref rowData.InscriptionMax, CVSReader.uintParse);
+ this.columnno = 16;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new VIPTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/VIPTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/VIPTable.cs.meta new file mode 100644 index 00000000..91946b81 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/VIPTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f3e6d5d85afa6954d87033e2095efd03 +timeCreated: 1611465808 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/WXGroupCallBackType.cs b/Client/Assets/Scripts/XUtliPoolLib/WXGroupCallBackType.cs new file mode 100644 index 00000000..8e5bea93 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/WXGroupCallBackType.cs @@ -0,0 +1,10 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public enum WXGroupCallBackType
+ {
+ DragonGuild,
+ Guild
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/WXGroupCallBackType.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/WXGroupCallBackType.cs.meta new file mode 100644 index 00000000..3ff15f51 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/WXGroupCallBackType.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0f7aaac2b5d8906488109330d0bc25d3 +timeCreated: 1611465289 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/WXGroupInfo.cs b/Client/Assets/Scripts/XUtliPoolLib/WXGroupInfo.cs new file mode 100644 index 00000000..3aa39569 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/WXGroupInfo.cs @@ -0,0 +1,22 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class WXGroupInfo
+ {
+ public int apiId;
+
+ public WXGroupInfo.Data data;
+
+ public struct Data
+ {
+ public string flag;
+
+ public int errorCode;
+
+ public string count;
+
+ public string openIdList;
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/WXGroupInfo.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/WXGroupInfo.cs.meta new file mode 100644 index 00000000..89271ef9 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/WXGroupInfo.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2b5962a3c6b096147a23187652ae852a +timeCreated: 1611465304 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/WXGroupResult.cs b/Client/Assets/Scripts/XUtliPoolLib/WXGroupResult.cs new file mode 100644 index 00000000..46e728e1 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/WXGroupResult.cs @@ -0,0 +1,18 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class WXGroupResult
+ {
+ public int apiId;
+
+ public WXGroupResult.Data data;
+
+ public struct Data
+ {
+ public int errorCode;
+
+ public string flag;
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/WXGroupResult.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/WXGroupResult.cs.meta new file mode 100644 index 00000000..e9606de3 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/WXGroupResult.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d7ca8e80cbd1e2c43ba7eef15490c9da +timeCreated: 1611465764 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/WeddingLoverLiveness.cs b/Client/Assets/Scripts/XUtliPoolLib/WeddingLoverLiveness.cs new file mode 100644 index 00000000..afdea743 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/WeddingLoverLiveness.cs @@ -0,0 +1,71 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class WeddingLoverLiveness : CVSReader
+ {
+ public WeddingLoverLiveness.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint index;
+
+ public uint liveness;
+
+ public SeqListRef<uint> viewabledrop;
+
+ public string boxPic;
+ }
+
+ public WeddingLoverLiveness.RowData GetByindex(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ WeddingLoverLiveness.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].index == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ WeddingLoverLiveness.RowData rowData = new WeddingLoverLiveness.RowData();
+ base.Read<uint>(reader, ref rowData.index, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.liveness, CVSReader.uintParse);
+ this.columnno = 1;
+ rowData.viewabledrop.Read(reader, this.m_DataHandler);
+ this.columnno = 4;
+ base.Read<string>(reader, ref rowData.boxPic, CVSReader.stringParse);
+ this.columnno = 5;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new WeddingLoverLiveness.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/WeddingLoverLiveness.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/WeddingLoverLiveness.cs.meta new file mode 100644 index 00000000..55262f79 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/WeddingLoverLiveness.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 5fb49102bcec34d49a0cfc83614083b5 +timeCreated: 1611465650 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/WeekEnd4v4List.cs b/Client/Assets/Scripts/XUtliPoolLib/WeekEnd4v4List.cs new file mode 100644 index 00000000..a73b3746 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/WeekEnd4v4List.cs @@ -0,0 +1,80 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class WeekEnd4v4List : CVSReader
+ {
+ public WeekEnd4v4List.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint ID;
+
+ public uint Index;
+
+ public SeqListRef<uint> DropItems;
+
+ public string Name;
+
+ public string Rule;
+
+ public uint SceneID;
+
+ public string TexturePath;
+
+ public uint ReviveSeconds;
+
+ public SeqListRef<uint> RankPoint;
+
+ public SeqListRef<uint> LoseDrop;
+
+ public uint MaxTime;
+
+ public uint RewardTimes;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ WeekEnd4v4List.RowData rowData = new WeekEnd4v4List.RowData();
+ base.Read<uint>(reader, ref rowData.ID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.Index, CVSReader.uintParse);
+ this.columnno = 1;
+ rowData.DropItems.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.Name, CVSReader.stringParse);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.Rule, CVSReader.stringParse);
+ this.columnno = 4;
+ base.Read<uint>(reader, ref rowData.SceneID, CVSReader.uintParse);
+ this.columnno = 5;
+ base.Read<string>(reader, ref rowData.TexturePath, CVSReader.stringParse);
+ this.columnno = 6;
+ base.Read<uint>(reader, ref rowData.ReviveSeconds, CVSReader.uintParse);
+ this.columnno = 7;
+ rowData.RankPoint.Read(reader, this.m_DataHandler);
+ this.columnno = 9;
+ rowData.LoseDrop.Read(reader, this.m_DataHandler);
+ this.columnno = 10;
+ base.Read<uint>(reader, ref rowData.MaxTime, CVSReader.uintParse);
+ this.columnno = 12;
+ base.Read<uint>(reader, ref rowData.RewardTimes, CVSReader.uintParse);
+ this.columnno = 13;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new WeekEnd4v4List.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/WeekEnd4v4List.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/WeekEnd4v4List.cs.meta new file mode 100644 index 00000000..75a26906 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/WeekEnd4v4List.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: bcb30d5619c24824da8f216a8682bd7e +timeCreated: 1611465749 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/WeekEndNestActivity.cs b/Client/Assets/Scripts/XUtliPoolLib/WeekEndNestActivity.cs new file mode 100644 index 00000000..e13ca053 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/WeekEndNestActivity.cs @@ -0,0 +1,67 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class WeekEndNestActivity : CVSReader
+ {
+ public WeekEndNestActivity.RowData[] Table = null;
+
+ public class RowData
+ {
+ public SeqRef<uint> OpenSvrDay;
+
+ public uint ParentTaskId;
+
+ public string BgTexName;
+ }
+
+ public WeekEndNestActivity.RowData GetByParentTaskId(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ WeekEndNestActivity.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].ParentTaskId == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ WeekEndNestActivity.RowData rowData = new WeekEndNestActivity.RowData();
+ rowData.OpenSvrDay.Read(reader, this.m_DataHandler);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.ParentTaskId, CVSReader.uintParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.BgTexName, CVSReader.stringParse);
+ this.columnno = 2;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new WeekEndNestActivity.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/WeekEndNestActivity.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/WeekEndNestActivity.cs.meta new file mode 100644 index 00000000..bef69481 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/WeekEndNestActivity.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d6b43bce0b87d35428d102e0d31717f2 +timeCreated: 1611465763 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/WorldBossRewardTable.cs b/Client/Assets/Scripts/XUtliPoolLib/WorldBossRewardTable.cs new file mode 100644 index 00000000..2d703985 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/WorldBossRewardTable.cs @@ -0,0 +1,44 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class WorldBossRewardTable : CVSReader
+ {
+ public WorldBossRewardTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int Level;
+
+ public SeqRef<uint> Rank;
+
+ public SeqListRef<uint> ShowReward;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ WorldBossRewardTable.RowData rowData = new WorldBossRewardTable.RowData();
+ base.Read<int>(reader, ref rowData.Level, CVSReader.intParse);
+ this.columnno = 0;
+ rowData.Rank.Read(reader, this.m_DataHandler);
+ this.columnno = 1;
+ rowData.ShowReward.Read(reader, this.m_DataHandler);
+ this.columnno = 2;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new WorldBossRewardTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/WorldBossRewardTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/WorldBossRewardTable.cs.meta new file mode 100644 index 00000000..bad37f21 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/WorldBossRewardTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 957d07018b524ec4f9640006d14bdb9c +timeCreated: 1611465707 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/WorldLevelExpBuff.cs b/Client/Assets/Scripts/XUtliPoolLib/WorldLevelExpBuff.cs new file mode 100644 index 00000000..fa98c7d0 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/WorldLevelExpBuff.cs @@ -0,0 +1,56 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class WorldLevelExpBuff : CVSReader
+ {
+ public WorldLevelExpBuff.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint WorldLevel;
+
+ public SeqRef<uint> Level;
+
+ public double ExpBuff;
+
+ public double BackExpBuff;
+
+ public uint BackflowLevel;
+
+ public SeqRef<uint> BackBattleBuff;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ WorldLevelExpBuff.RowData rowData = new WorldLevelExpBuff.RowData();
+ base.Read<uint>(reader, ref rowData.WorldLevel, CVSReader.uintParse);
+ this.columnno = 0;
+ rowData.Level.Read(reader, this.m_DataHandler);
+ this.columnno = 1;
+ base.Read<double>(reader, ref rowData.ExpBuff, CVSReader.doubleParse);
+ this.columnno = 2;
+ base.Read<double>(reader, ref rowData.BackExpBuff, CVSReader.doubleParse);
+ this.columnno = 3;
+ base.Read<uint>(reader, ref rowData.BackflowLevel, CVSReader.uintParse);
+ this.columnno = 4;
+ rowData.BackBattleBuff.Read(reader, this.m_DataHandler);
+ this.columnno = 5;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new WorldLevelExpBuff.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/WorldLevelExpBuff.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/WorldLevelExpBuff.cs.meta new file mode 100644 index 00000000..67445216 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/WorldLevelExpBuff.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 25b6162eb0406354c990e444f8b12bf5 +timeCreated: 1611465301 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XActorDataClip.cs b/Client/Assets/Scripts/XUtliPoolLib/XActorDataClip.cs new file mode 100644 index 00000000..4df88d3f --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XActorDataClip.cs @@ -0,0 +1,36 @@ +using System;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ [Serializable]
+ public class XActorDataClip : XCutSceneClip
+ {
+ [SerializeField]
+ public string Prefab = null;
+
+ [SerializeField]
+ public string Clip = null;
+
+ [SerializeField]
+ public float AppearX = 0f;
+
+ [SerializeField]
+ public float AppearY = 0f;
+
+ [SerializeField]
+ public float AppearZ = 0f;
+
+ [SerializeField]
+ public int StatisticsID = 0;
+
+ [SerializeField]
+ public bool bUsingID = false;
+
+ [SerializeField]
+ public bool bToCommonPool = false;
+
+ [SerializeField]
+ public string Tag = null;
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XActorDataClip.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XActorDataClip.cs.meta new file mode 100644 index 00000000..72be8ec2 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XActorDataClip.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c7179927aeeb98240beaa3326cb644cf +timeCreated: 1611465756 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XAnimationClip.cs b/Client/Assets/Scripts/XUtliPoolLib/XAnimationClip.cs new file mode 100644 index 00000000..1ce55d7b --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XAnimationClip.cs @@ -0,0 +1,23 @@ +using System;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public class XAnimationClip : ScriptableObject
+ {
+ public AnimationClip clip;
+
+ public float length;
+
+ public void Reset()
+ {
+ this.clip = null;
+ this.length = 0f;
+ }
+
+ public int GetInstanceID()
+ {
+ return (this.clip == null) ? 0 : this.clip.GetInstanceID();
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XAnimationClip.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XAnimationClip.cs.meta new file mode 100644 index 00000000..2a8d3f16 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XAnimationClip.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 7e838fc6d053e1846aef95f20f6c924c +timeCreated: 1611465693 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XAnimationPool.cs b/Client/Assets/Scripts/XUtliPoolLib/XAnimationPool.cs new file mode 100644 index 00000000..b51ca1ac --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XAnimationPool.cs @@ -0,0 +1,30 @@ +using System;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public class XAnimationPool
+ {
+ private static readonly ObjectPool<XAnimationClip> s_Pool = new ObjectPool<XAnimationClip>(new ObjectPool<XAnimationClip>.CreateObj(XAnimationPool.Create), null, null);
+
+ public static XAnimationClip Create()
+ {
+ return ScriptableObject.CreateInstance<XAnimationClip>();
+ }
+
+ public static XAnimationClip Get()
+ {
+ return XAnimationPool.s_Pool.Get();
+ }
+
+ public static void Release(XAnimationClip toRelease)
+ {
+ bool flag = toRelease != null;
+ if (flag)
+ {
+ toRelease.Reset();
+ }
+ XAnimationPool.s_Pool.Release(toRelease);
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XAnimationPool.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XAnimationPool.cs.meta new file mode 100644 index 00000000..3ce696d5 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XAnimationPool.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 95fcfacf173cf1e4197d27517a2bf9c4 +timeCreated: 1611465708 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XAnimator.cs b/Client/Assets/Scripts/XUtliPoolLib/XAnimator.cs new file mode 100644 index 00000000..507e9275 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XAnimator.cs @@ -0,0 +1,643 @@ +using System;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public class XAnimator
+ {
+ public bool IsLoaded
+ {
+ get
+ {
+ return this.m_LoadStatus == 2;
+ }
+ }
+
+ private bool IsInLoadFinish
+ {
+ get
+ {
+ return this.m_LoadStatus == 1;
+ }
+ }
+
+ public float speed
+ {
+ get
+ {
+ return this.m_speed;
+ }
+ set
+ {
+ this.m_speed = value;
+ bool isLoaded = this.IsLoaded;
+ if (isLoaded)
+ {
+ XAnimator.SyncSpeed(this);
+ }
+ else
+ {
+ this.SetCbFlag(XAnimator.ECallbackCmd.ESyncSpeed, true);
+ }
+ }
+ }
+
+ public bool enabled
+ {
+ get
+ {
+ return this.m_enable;
+ }
+ set
+ {
+ this.m_enable = value;
+ bool isLoaded = this.IsLoaded;
+ if (isLoaded)
+ {
+ XAnimator.SyncEnable(this);
+ }
+ else
+ {
+ this.SetCbFlag(XAnimator.ECallbackCmd.ESyncEnable, true);
+ }
+ }
+ }
+
+ public string StateName
+ {
+ get
+ {
+ return this.m_stateName;
+ }
+ }
+
+ public AnimatorCullingMode cullingMode
+ {
+ set
+ {
+ this.m_cullingMode = value;
+ bool isLoaded = this.IsLoaded;
+ if (isLoaded)
+ {
+ XAnimator.SyncAnimationCullingMode(this);
+ }
+ }
+ }
+
+ private short m_LoadStatus = 0;
+
+ public XGameObject xGameObject = null;
+
+ private Animator m_Ator = null;
+
+ private AnimatorOverrideController m_overrideController = null;
+
+ private AnimatorCullingMode m_cullingMode = (AnimatorCullingMode)1;
+
+ private bool m_delayPlay = false;
+
+ private bool m_crossFade = false;
+
+ private string m_stateName = "";
+
+ private int m_playLayer = 0;
+
+ private float m_normalizedTime = float.NegativeInfinity;
+
+ private float m_value = 0f;
+
+ private string m_triggerName = "";
+
+ private float m_speed = 1f;
+
+ private bool m_enable = true;
+
+ private Dictionary<string, float> m_FloatCache = null;
+
+ private int m_LoadFinishCbFlag = 0;
+
+ private static AnimLoadCallback SyncTriggerCmd = new AnimLoadCallback(XAnimator.SyncTrigger);
+
+ private static AnimLoadCallback SyncSetFloatCmd = new AnimLoadCallback(XAnimator.SyncSetFloat);
+
+ private static AnimLoadCallback SyncSpeedCmd = new AnimLoadCallback(XAnimator.SyncSpeed);
+
+ private static AnimLoadCallback SyncEnableCmd = new AnimLoadCallback(XAnimator.SyncEnable);
+
+ private static AnimLoadCallback[] loadCallbacks = null;
+
+ private Dictionary<string, XAnimator.AminInfo> m_Clips = new Dictionary<string, XAnimator.AminInfo>();
+
+ public static bool debug = false;
+
+ private enum ECallbackCmd
+ {
+ ESyncEnable = 1,
+ ESyncSpeed,
+ ESyncTrigger = 4,
+ ESyncSetFloat = 8
+ }
+
+ private struct AminInfo
+ {
+ public XAnimationClip xclip;
+
+ public string clipKey;
+
+ public string clipPath;
+ }
+
+ public XAnimator()
+ {
+ bool flag = XAnimator.loadCallbacks == null;
+ if (flag)
+ {
+ XAnimator.loadCallbacks = new AnimLoadCallback[]
+ {
+ XAnimator.SyncEnableCmd,
+ XAnimator.SyncSpeedCmd,
+ XAnimator.SyncTriggerCmd,
+ XAnimator.SyncSetFloatCmd
+ };
+ }
+ }
+
+ private void SetCbFlag(XAnimator.ECallbackCmd cmd, bool add)
+ {
+ int num = XFastEnumIntEqualityComparer<XAnimator.ECallbackCmd>.ToInt(cmd);
+ if (add)
+ {
+ this.m_LoadFinishCbFlag |= num;
+ }
+ else
+ {
+ this.m_LoadFinishCbFlag &= ~num;
+ }
+ }
+
+ private bool IsCbFlag(int index)
+ {
+ int num = 1 << index;
+ return (this.m_LoadFinishCbFlag & num) != 0;
+ }
+
+ private void CacheFloatValue(string name, float value)
+ {
+ bool flag = this.m_FloatCache == null;
+ if (flag)
+ {
+ this.m_FloatCache = DictionaryPool<string, float>.Get();
+ }
+ this.m_FloatCache[name] = value;
+ }
+
+ public void Init(GameObject gameObject)
+ {
+ this.m_LoadStatus = 1;
+ this.m_Ator = ((gameObject != null) ? gameObject.GetComponent<Animator>() : null);
+ bool flag = this.m_Ator != null;
+ if (flag)
+ {
+ this.m_Ator.enabled = true;
+ bool flag2 = this.m_Ator.runtimeAnimatorController is AnimatorOverrideController;
+ if (flag2)
+ {
+ this.m_overrideController = (this.m_Ator.runtimeAnimatorController as AnimatorOverrideController);
+ }
+ else
+ {
+ this.m_overrideController = new AnimatorOverrideController();
+ this.m_overrideController.runtimeAnimatorController = this.m_Ator.runtimeAnimatorController;
+ this.m_Ator.runtimeAnimatorController = this.m_overrideController;
+ }
+ foreach (KeyValuePair<string, XAnimator.AminInfo> keyValuePair in this.m_Clips)
+ {
+ XAnimator.AminInfo value = keyValuePair.Value;
+ bool flag3 = value.xclip != null;
+ if (flag3)
+ {
+ this.SyncOverrideAnim(value.clipKey, value.xclip);
+ }
+ }
+ this.m_Ator.cullingMode = 0;
+ this.m_Ator.Rebind();
+ for (int i = 0; i < XAnimator.loadCallbacks.Length; i++)
+ {
+ bool flag4 = this.IsCbFlag(i);
+ if (flag4)
+ {
+ AnimLoadCallback animLoadCallback = XAnimator.loadCallbacks[i];
+ animLoadCallback(this);
+ }
+ }
+ }
+ this.m_LoadFinishCbFlag = 0;
+ this.m_LoadStatus = 2;
+ }
+
+ public bool IsSame(Animator ator)
+ {
+ return this.m_Ator == ator;
+ }
+
+ public bool IsAnimStateValid()
+ {
+ bool flag = !this.IsLoaded;
+ bool result;
+ if (flag)
+ {
+ result = false;
+ }
+ else
+ {
+ bool flag2 = string.IsNullOrEmpty(this.m_stateName);
+ result = !flag2;
+ }
+ return result;
+ }
+
+ public void Reset()
+ {
+ bool flag = this.m_Ator != null;
+ if (flag)
+ {
+ this.m_Ator.cullingMode =(AnimatorCullingMode) 1;
+ this.m_Ator.enabled = false;
+ this.m_Ator = null;
+ }
+ bool flag2 = this.m_overrideController != null;
+ if (flag2)
+ {
+ foreach (AnimationClipPair animationClipPair in this.m_overrideController.clips)
+ {
+ bool flag3 = animationClipPair.overrideClip != null;
+ if (flag3)
+ {
+ this.m_overrideController[animationClipPair.originalClip.name] = null;
+ }
+ }
+ this.m_overrideController = null;
+ }
+ foreach (KeyValuePair<string, XAnimator.AminInfo> keyValuePair in this.m_Clips)
+ {
+ XAnimator.AminInfo value = keyValuePair.Value;
+ bool flag4 = value.xclip != null;
+ if (flag4)
+ {
+ XSingleton<XResourceLoaderMgr>.singleton.UnSafeDestroyShareResource(value.clipPath, ".anim", value.xclip, false);
+ }
+ }
+ this.m_Clips.Clear();
+ this.m_cullingMode = (AnimatorCullingMode) 1;
+ this.m_delayPlay = false;
+ this.m_stateName = "";
+ this.m_value = -1f;
+ this.m_playLayer = -1;
+ this.m_normalizedTime = float.NegativeInfinity;
+ this.m_triggerName = "";
+ this.m_LoadStatus = 0;
+ this.m_LoadFinishCbFlag = 0;
+ this.xGameObject = null;
+ }
+
+ public void SetStateMachine(IAnimStateMachine stateMachine)
+ {
+ }
+
+ private void SyncOverrideAnim(string key, XAnimationClip xclip)
+ {
+ bool flag = this.m_Ator != null;
+ if (flag)
+ {
+ bool flag2 = XAnimator.debug;
+ if (flag2)
+ {
+ XSingleton<XDebug>.singleton.AddWarningLog2("GO:{0} OverrideAnim {1}", new object[]
+ {
+ this.xGameObject.Name,
+ key
+ });
+ }
+ this.m_overrideController[key] = ((xclip != null) ? xclip.clip : null);
+ }
+ }
+
+ public void OverrideAnim(string key, string clipPath, OverrideAnimCallback overrideAnim = null, bool forceOverride = false)
+ {
+ bool flag = clipPath == null;
+ if (flag)
+ {
+ clipPath = "";
+ }
+ bool flag2 = this.m_Ator == null && this.IsLoaded;
+ if (!flag2)
+ {
+ XAnimator.AminInfo aminInfo;
+ bool flag3 = this.m_Clips.TryGetValue(key, out aminInfo);
+ if (flag3)
+ {
+ bool flag4 = aminInfo.clipPath == clipPath;
+ if (flag4)
+ {
+ bool flag5 = forceOverride && this.IsLoaded;
+ if (flag5)
+ {
+ this.SyncOverrideAnim(key, aminInfo.xclip);
+ }
+ bool flag6 = overrideAnim != null;
+ if (flag6)
+ {
+ overrideAnim(aminInfo.xclip);
+ }
+ return;
+ }
+ bool flag7 = aminInfo.xclip != null;
+ if (flag7)
+ {
+ XSingleton<XResourceLoaderMgr>.singleton.UnSafeDestroyShareResource("", ".anim", aminInfo.xclip, false);
+ aminInfo.xclip = null;
+ }
+ }
+ else
+ {
+ aminInfo.clipKey = key;
+ }
+ aminInfo.clipPath = clipPath;
+ aminInfo.xclip = (string.IsNullOrEmpty(clipPath) ? null : XSingleton<XResourceLoaderMgr>.singleton.GetXAnimation(clipPath, true, false));
+ this.m_Clips[key] = aminInfo;
+ bool isLoaded = this.IsLoaded;
+ if (isLoaded)
+ {
+ this.SyncOverrideAnim(key, aminInfo.xclip);
+ }
+ bool flag8 = overrideAnim != null;
+ if (flag8)
+ {
+ overrideAnim(aminInfo.xclip);
+ }
+ }
+ }
+
+ public void SetAnimLoadCallback(string key, OverrideAnimCallback overrideAnim)
+ {
+ bool flag = this.m_Ator == null && this.IsLoaded;
+ if (!flag)
+ {
+ bool flag2 = overrideAnim != null;
+ if (flag2)
+ {
+ XAnimator.AminInfo aminInfo;
+ bool flag3 = this.m_Clips.TryGetValue(key, out aminInfo);
+ if (flag3)
+ {
+ bool flag4 = aminInfo.xclip != null;
+ if (flag4)
+ {
+ overrideAnim(aminInfo.xclip);
+ }
+ }
+ }
+ }
+ }
+
+ public static void SyncAnimationCullingMode(XAnimator ator)
+ {
+ bool flag = ator != null && ator.m_Ator != null;
+ if (flag)
+ {
+ ator.m_Ator.cullingMode = ator.m_cullingMode;
+ }
+ }
+
+ private static void SyncTrigger(XAnimator ator)
+ {
+ bool flag = ator != null && ator.m_Ator != null && !string.IsNullOrEmpty(ator.m_triggerName);
+ if (flag)
+ {
+ bool flag2 = XAnimator.debug;
+ if (flag2)
+ {
+ XSingleton<XDebug>.singleton.AddWarningLog2("GO:{0} trigger {1}", new object[]
+ {
+ ator.xGameObject.Name,
+ ator.m_triggerName
+ });
+ }
+ ator.m_Ator.SetTrigger(ator.m_triggerName);
+ }
+ }
+
+ private static void SyncSetFloat(XAnimator ator)
+ {
+ bool flag = ator != null && ator.m_Ator != null;
+ if (flag)
+ {
+ bool flag2 = ator.m_FloatCache != null;
+ if (flag2)
+ {
+ Dictionary<string, float>.Enumerator enumerator = ator.m_FloatCache.GetEnumerator();
+ while (enumerator.MoveNext())
+ {
+ bool flag3 = XAnimator.debug;
+ KeyValuePair<string, float> keyValuePair;
+ if (flag3)
+ {
+ XDebug singleton = XSingleton<XDebug>.singleton;
+ string format = "GO:{0} SetFloat {1}";
+ object[] array = new object[2];
+ array[0] = ator.xGameObject.Name;
+ int num = 1;
+ keyValuePair = enumerator.Current;
+ array[num] = keyValuePair.Key;
+ singleton.AddWarningLog2(format, array);
+ }
+ Animator ator2 = ator.m_Ator;
+ keyValuePair = enumerator.Current;
+ string key = keyValuePair.Key;
+ keyValuePair = enumerator.Current;
+ ator2.SetFloat(key, keyValuePair.Value);
+ }
+ DictionaryPool<string, float>.Release(ator.m_FloatCache);
+ ator.m_FloatCache = null;
+ }
+ }
+ }
+
+ private static void SyncSpeed(XAnimator ator)
+ {
+ bool flag = ator != null && ator.m_Ator != null;
+ if (flag)
+ {
+ ator.m_Ator.speed = ator.m_speed;
+ }
+ }
+
+ private static void SyncEnable(XAnimator ator)
+ {
+ bool flag = ator != null && ator.m_Ator != null;
+ if (flag)
+ {
+ ator.m_Ator.enabled = ator.m_enable;
+ }
+ }
+
+ public static void Update(XAnimator ator)
+ {
+ XAnimator.SyncAnimationCullingMode(ator);
+ bool delayPlay = ator.m_delayPlay;
+ if (delayPlay)
+ {
+ ator.RealPlay();
+ }
+ }
+
+ public void RealPlay()
+ {
+ this.m_delayPlay = false;
+ bool flag = this.m_Ator != null;
+ if (flag)
+ {
+ bool crossFade = this.m_crossFade;
+ if (crossFade)
+ {
+ bool flag2 = XAnimator.debug;
+ if (flag2)
+ {
+ XSingleton<XDebug>.singleton.AddWarningLog2("GO:{0} crossFade {1} {2}", new object[]
+ {
+ this.xGameObject.Name,
+ this.m_stateName,
+ this.m_Ator.IsInTransition(0)
+ });
+ }
+ this.m_Ator.CrossFade(this.m_stateName, this.m_value, this.m_playLayer, this.m_normalizedTime);
+ }
+ else
+ {
+ bool flag3 = XAnimator.debug;
+ if (flag3)
+ {
+ XSingleton<XDebug>.singleton.AddWarningLog2("GO:{0} play {1}", new object[]
+ {
+ this.xGameObject.Name,
+ this.m_stateName
+ });
+ }
+ this.m_Ator.Play(this.m_stateName, this.m_playLayer, this.m_normalizedTime);
+ }
+ }
+ }
+
+ public void Play(string stateName, int layer, float normalizedTime)
+ {
+ this.m_stateName = stateName;
+ this.m_playLayer = layer;
+ this.m_normalizedTime = normalizedTime;
+ this.m_crossFade = false;
+ bool flag = this.IsAnimStateValid();
+ if (flag)
+ {
+ this.RealPlay();
+ }
+ else
+ {
+ this.m_delayPlay = true;
+ }
+ }
+
+ public void Play(string stateName, int layer)
+ {
+ this.m_stateName = stateName;
+ this.m_playLayer = layer;
+ this.m_normalizedTime = float.NegativeInfinity;
+ this.m_crossFade = false;
+ bool flag = this.IsAnimStateValid();
+ if (flag)
+ {
+ this.RealPlay();
+ }
+ else
+ {
+ this.m_delayPlay = true;
+ }
+ }
+
+ public void CrossFade(string stateName, float transitionDuration, int layer, float normalizedTime)
+ {
+ this.m_stateName = stateName;
+ this.m_value = transitionDuration;
+ this.m_playLayer = layer;
+ this.m_normalizedTime = normalizedTime;
+ this.m_crossFade = true;
+ bool flag = this.IsAnimStateValid();
+ if (flag)
+ {
+ this.RealPlay();
+ }
+ else
+ {
+ this.m_delayPlay = true;
+ }
+ }
+
+ public void SetTrigger(string name)
+ {
+ this.m_triggerName = name;
+ bool isLoaded = this.IsLoaded;
+ if (isLoaded)
+ {
+ XAnimator.SyncTrigger(this);
+ }
+ else
+ {
+ this.SetCbFlag(XAnimator.ECallbackCmd.ESyncTrigger, true);
+ }
+ }
+
+ public void ResetTrigger()
+ {
+ bool isLoaded = this.IsLoaded;
+ if (isLoaded)
+ {
+ XAnimator.SyncTrigger(this);
+ }
+ else
+ {
+ this.SetCbFlag(XAnimator.ECallbackCmd.ESyncTrigger, true);
+ }
+ }
+
+ public bool IsInTransition(int layerIndex)
+ {
+ return !(this.m_Ator == null) && this.m_Ator.IsInTransition(layerIndex);
+ }
+
+ public void SetFloat(string name, float value)
+ {
+ bool isLoaded = this.IsLoaded;
+ if (isLoaded)
+ {
+ bool flag = this.m_Ator != null;
+ if (flag)
+ {
+ this.m_Ator.SetFloat(name, value);
+ }
+ }
+ else
+ {
+ this.CacheFloatValue(name, value);
+ this.SetCbFlag(XAnimator.ECallbackCmd.ESyncSetFloat, true);
+ }
+ }
+
+ public void EnableRootMotion(bool enable)
+ {
+ bool flag = this.m_Ator != null;
+ if (flag)
+ {
+ this.m_Ator.applyRootMotion = enable;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XAnimator.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XAnimator.cs.meta new file mode 100644 index 00000000..e1483b65 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XAnimator.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 99e3c3d2881314e49b4a1bf255b240c6 +timeCreated: 1611465710 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XAudioData.cs b/Client/Assets/Scripts/XUtliPoolLib/XAudioData.cs new file mode 100644 index 00000000..0940c319 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XAudioData.cs @@ -0,0 +1,20 @@ +using System;
+using System.ComponentModel;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ [Serializable]
+ public class XAudioData : XBaseData
+ {
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float At;
+
+ [SerializeField]
+ public string Clip = null;
+
+ [SerializeField]
+ public AudioChannel Channel = AudioChannel.Skill;
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XAudioData.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XAudioData.cs.meta new file mode 100644 index 00000000..8fa6b599 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XAudioData.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1ac8395610bd57043aa3feed9c7a57ae +timeCreated: 1611465296 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XAudioDataClip.cs b/Client/Assets/Scripts/XUtliPoolLib/XAudioDataClip.cs new file mode 100644 index 00000000..21fbd238 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XAudioDataClip.cs @@ -0,0 +1,18 @@ +using System;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ [Serializable]
+ public class XAudioDataClip : XCutSceneClip
+ {
+ [SerializeField]
+ public string Clip = null;
+
+ [SerializeField]
+ public int BindIdx = 0;
+
+ [SerializeField]
+ public AudioChannel Channel = AudioChannel.Skill;
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XAudioDataClip.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XAudioDataClip.cs.meta new file mode 100644 index 00000000..859542b6 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XAudioDataClip.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: aa6c2295b95b0554bad992836ff42a45 +timeCreated: 1611465740 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XBaseData.cs b/Client/Assets/Scripts/XUtliPoolLib/XBaseData.cs new file mode 100644 index 00000000..a20ac578 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XBaseData.cs @@ -0,0 +1,14 @@ +using System;
+using System.ComponentModel;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ [Serializable]
+ public class XBaseData
+ {
+ [SerializeField]
+ [DefaultValue(0)]
+ public int Index = 0;
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XBaseData.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XBaseData.cs.meta new file mode 100644 index 00000000..521b4251 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XBaseData.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c6b7d8d22b92cea4880058d42f9646a5 +timeCreated: 1611465756 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XBaseSingleton.cs b/Client/Assets/Scripts/XUtliPoolLib/XBaseSingleton.cs new file mode 100644 index 00000000..804d952c --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XBaseSingleton.cs @@ -0,0 +1,11 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public abstract class XBaseSingleton
+ {
+ public abstract bool Init();
+
+ public abstract void Uninit();
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XBaseSingleton.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XBaseSingleton.cs.meta new file mode 100644 index 00000000..6b7380db --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XBaseSingleton.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 7764bae7fdbc20b49bb8b8c6c81ad1fa +timeCreated: 1611465691 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XBeHitPhase.cs b/Client/Assets/Scripts/XUtliPoolLib/XBeHitPhase.cs new file mode 100644 index 00000000..c96542d0 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XBeHitPhase.cs @@ -0,0 +1,12 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public enum XBeHitPhase
+ {
+ Hit_Present,
+ Hit_Landing,
+ Hit_Hard,
+ Hit_GetUp
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XBeHitPhase.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XBeHitPhase.cs.meta new file mode 100644 index 00000000..841c38e1 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XBeHitPhase.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 9896c8f58a1f7214ca622c87442a2742 +timeCreated: 1611465709 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XBeHitState.cs b/Client/Assets/Scripts/XUtliPoolLib/XBeHitState.cs new file mode 100644 index 00000000..48d5e083 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XBeHitState.cs @@ -0,0 +1,13 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public enum XBeHitState
+ {
+ Hit_Back,
+ Hit_Fly,
+ Hit_Roll,
+ Hit_Freezed,
+ Hit_Free
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XBeHitState.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XBeHitState.cs.meta new file mode 100644 index 00000000..3865b31f --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XBeHitState.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1c5140d3967a3554b99934d69c2228a3 +timeCreated: 1611465297 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XBeHitState_Animation.cs b/Client/Assets/Scripts/XUtliPoolLib/XBeHitState_Animation.cs new file mode 100644 index 00000000..88a35aeb --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XBeHitState_Animation.cs @@ -0,0 +1,11 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public enum XBeHitState_Animation
+ {
+ Hit_Back_Front,
+ Hit_Back_Left,
+ Hit_Back_Right
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XBeHitState_Animation.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XBeHitState_Animation.cs.meta new file mode 100644 index 00000000..35d3b0d3 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XBeHitState_Animation.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 124de6c51b3a072438c039000a0adc4f +timeCreated: 1611465292 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XBinaryReader.cs b/Client/Assets/Scripts/XUtliPoolLib/XBinaryReader.cs new file mode 100644 index 00000000..18ac3a02 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XBinaryReader.cs @@ -0,0 +1,565 @@ +using System;
+using System.IO;
+using System.Text;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public class XBinaryReader
+ {
+ public bool IsEof
+ {
+ get
+ {
+ return this.m_Position >= this.m_Length;
+ }
+ }
+
+ private byte[] m_srcBuff = null;
+
+ private int m_Length = 0;
+
+ private int m_Position = 0;
+
+ private int m_StartOffset = 0;
+
+ private byte[] m_charBytes = null;
+
+ private char[] m_charBuffer = null;
+
+ private char[] m_singleChar = null;
+
+ private const int MaxCharBytesSize = 128;
+
+ private static int MaxCharsSize = 128;
+
+ private Decoder m_decoder;
+
+ private static class StringBuilderCache
+ {
+ private const int MAX_BUILDER_SIZE = 360;
+
+ [ThreadStatic]
+ private static StringBuilder CachedInstance;
+
+ public static StringBuilder Acquire(int capacity = 16)
+ {
+ bool flag = capacity <= 360;
+ if (flag)
+ {
+ StringBuilder cachedInstance = XBinaryReader.StringBuilderCache.CachedInstance;
+ bool flag2 = cachedInstance != null;
+ if (flag2)
+ {
+ bool flag3 = capacity <= cachedInstance.Capacity;
+ if (flag3)
+ {
+ XBinaryReader.StringBuilderCache.CachedInstance = null;
+ cachedInstance.Length = 0;
+ return cachedInstance;
+ }
+ }
+ }
+ return new StringBuilder(capacity);
+ }
+
+ public static void Release(StringBuilder sb)
+ {
+ bool flag = sb.Capacity <= 360;
+ if (flag)
+ {
+ XBinaryReader.StringBuilderCache.CachedInstance = sb;
+ }
+ }
+
+ public static string GetStringAndRelease(StringBuilder sb)
+ {
+ string result = sb.ToString();
+ XBinaryReader.StringBuilderCache.Release(sb);
+ return result;
+ }
+ }
+
+ public XBinaryReader()
+ {
+ UTF8Encoding utf8Encoding = new UTF8Encoding();
+ this.m_decoder = utf8Encoding.GetDecoder();
+ }
+
+ public static void Init()
+ {
+ StringBuilder sb = XBinaryReader.StringBuilderCache.Acquire(16);
+ XBinaryReader.StringBuilderCache.Release(sb);
+ }
+
+ public static XBinaryReader Get()
+ {
+ return CommonObjectPool<XBinaryReader>.Get();
+ }
+
+ public static void Return(XBinaryReader reader, bool readShareResource = false)
+ {
+ bool flag = reader != null;
+ if (flag)
+ {
+ reader.Close(readShareResource);
+ CommonObjectPool<XBinaryReader>.Release(reader);
+ }
+ }
+
+ public void Init(TextAsset ta)
+ {
+ this.InitByte((ta != null) ? ta.bytes : null, 0, 0);
+ }
+
+ public void InitByte(byte[] buff, int offset = 0, int count = 0)
+ {
+ this.m_srcBuff = buff;
+ this.m_StartOffset = offset;
+ this.m_Position = 0;
+ bool flag = count > 0;
+ if (flag)
+ {
+ this.m_Length = ((this.m_srcBuff != null) ? ((count > this.m_srcBuff.Length) ? this.m_srcBuff.Length : count) : 0);
+ }
+ else
+ {
+ this.m_Length = ((this.m_srcBuff != null) ? this.m_srcBuff.Length : 0);
+ }
+ }
+
+ public byte[] GetBuffer()
+ {
+ return this.m_srcBuff;
+ }
+
+ public int Seek(int offset, SeekOrigin origin)
+ {
+ switch (origin)
+ {
+ case SeekOrigin.Begin:
+ this.m_Position = ((offset > this.m_Length) ? this.m_Length : offset);
+ break;
+ case SeekOrigin.Current:
+ this.m_Position = ((this.m_Position + offset > this.m_Length) ? this.m_Length : (this.m_Position + offset));
+ break;
+ case SeekOrigin.End:
+ this.m_Position = ((this.m_Length - offset > this.m_Length) ? this.m_Length : (this.m_Length - offset));
+ break;
+ }
+ return this.m_Position;
+ }
+
+ public void Close(bool readShareResource)
+ {
+ this.Init(null);
+ }
+
+ public int GetPosition()
+ {
+ return this.m_Position;
+ }
+
+ public char ReadChar()
+ {
+ int num = 0;
+ int num2 = 1;
+ int num3 = num3 = 0;
+ num3 = this.m_Position;
+ bool flag = this.m_charBytes == null;
+ if (flag)
+ {
+ this.m_charBytes = new byte[128];
+ }
+ bool flag2 = this.m_singleChar == null;
+ if (flag2)
+ {
+ this.m_singleChar = new char[1];
+ }
+ while (num == 0)
+ {
+ int num4 = (int)this.ReadByte();
+ this.m_charBytes[0] = (byte)num4;
+ bool flag3 = num4 == -1;
+ if (flag3)
+ {
+ num2 = 0;
+ }
+ bool flag4 = num2 == 0;
+ if (flag4)
+ {
+ return '\0';
+ }
+ try
+ {
+ num = this.m_decoder.GetChars(this.m_charBytes, 0, num2, this.m_singleChar, 0);
+ }
+ catch
+ {
+ this.Seek(num3 - this.m_Position, SeekOrigin.Current);
+ throw;
+ }
+ bool flag5 = num > 1;
+ if (flag5)
+ {
+ XSingleton<XDebug>.singleton.AddErrorLog("XBinaryReader::ReadChar assumes it's reading one bytes only,UTF8.", null, null, null, null, null);
+ }
+ }
+ bool flag6 = num == 0;
+ if (flag6)
+ {
+ return '\0';
+ }
+ return this.m_singleChar[0];
+ }
+
+ public byte ReadByte()
+ {
+ bool flag = this.m_srcBuff == null || this.m_Position + 1 > this.m_Length;
+ byte result;
+ if (flag)
+ {
+ result = 0;
+ }
+ else
+ {
+ int position = this.m_Position;
+ this.m_Position = position + 1;
+ int @byte = (int)this.GetByte(position);
+ result = (byte)@byte;
+ }
+ return result;
+ }
+
+ public int ReadInt32()
+ {
+ return (int)this.ReadUInt32();
+ }
+
+ public uint ReadUInt32()
+ {
+ bool flag = this.m_srcBuff == null;
+ uint result;
+ if (flag)
+ {
+ result = 0u;
+ }
+ else
+ {
+ int num = this.m_Position += 4;
+ bool flag2 = num > this.m_Length;
+ if (flag2)
+ {
+ this.m_Position = this.m_Length;
+ result = 0u;
+ }
+ else
+ {
+ result = (uint)((int)this.GetByte(num - 4) | (int)this.GetByte(num - 3) << 8 | (int)this.GetByte(num - 2) << 16 | (int)this.GetByte(num - 1) << 24);
+ }
+ }
+ return result;
+ }
+
+ public short ReadInt16()
+ {
+ return (short)this.ReadUInt16();
+ }
+
+ public ushort ReadUInt16()
+ {
+ bool flag = this.m_srcBuff == null;
+ ushort result;
+ if (flag)
+ {
+ result = 0;
+ }
+ else
+ {
+ int num = this.m_Position += 2;
+ bool flag2 = num > this.m_Length;
+ if (flag2)
+ {
+ this.m_Position = this.m_Length;
+ result = 0;
+ }
+ else
+ {
+ result = (ushort)((int)this.GetByte(num - 2) | (int)this.GetByte(num - 1) << 8);
+ }
+ }
+ return result;
+ }
+
+ public unsafe float ReadSingle()
+ {
+ bool flag = this.m_srcBuff == null;
+ float result;
+ if (flag)
+ {
+ result = 0f;
+ }
+ else
+ {
+ int num = this.m_Position += 4;
+ bool flag2 = num > this.m_Length;
+ if (flag2)
+ {
+ this.m_Position = this.m_Length;
+ result = 0f;
+ }
+ else
+ {
+ uint num2 = (uint)((int)this.GetByte(num - 4) | (int)this.GetByte(num - 3) << 8 | (int)this.GetByte(num - 2) << 16 | (int)this.GetByte(num - 1) << 24);
+ result = *(float*)(&num2);
+ }
+ }
+ return result;
+ }
+
+ public unsafe double ReadDouble()
+ {
+ bool flag = this.m_srcBuff == null;
+ double result;
+ if (flag)
+ {
+ result = 0.0;
+ }
+ else
+ {
+ int num = this.m_Position += 8;
+ bool flag2 = num > this.m_Length;
+ if (flag2)
+ {
+ this.m_Position = this.m_Length;
+ result = 0.0;
+ }
+ else
+ {
+ uint num2 = (uint)((int)this.GetByte(num - 8) | (int)this.GetByte(num - 7) << 8 | (int)this.GetByte(num - 6) << 16 | (int)this.GetByte(num - 5) << 24);
+ uint num3 = (uint)((int)this.GetByte(num - 4) | (int)this.GetByte(num - 3) << 8 | (int)this.GetByte(num - 2) << 16 | (int)this.GetByte(num - 1) << 24);
+ ulong num4 = (ulong)num3 << 32 | (ulong)num2;
+ result = *(double*)(&num4);
+ }
+ }
+ return result;
+ }
+
+ public long ReadInt64()
+ {
+ return (long)this.ReadUInt64();
+ }
+
+ public ulong ReadUInt64()
+ {
+ bool flag = this.m_srcBuff == null;
+ ulong result;
+ if (flag)
+ {
+ result = 0UL;
+ }
+ else
+ {
+ int num = this.m_Position += 8;
+ bool flag2 = num > this.m_Length;
+ if (flag2)
+ {
+ this.m_Position = this.m_Length;
+ result = 0UL;
+ }
+ else
+ {
+ uint num2 = (uint)((int)this.GetByte(num - 8) | (int)this.GetByte(num - 7) << 8 | (int)this.GetByte(num - 6) << 16 | (int)this.GetByte(num - 5) << 24);
+ uint num3 = (uint)((int)this.GetByte(num - 4) | (int)this.GetByte(num - 3) << 8 | (int)this.GetByte(num - 2) << 16 | (int)this.GetByte(num - 1) << 24);
+ result = ((ulong)num3 << 32 | (ulong)num2);
+ }
+ }
+ return result;
+ }
+
+ public bool ReadBoolean()
+ {
+ bool flag = this.m_srcBuff == null || this.m_Position + 1 > this.m_Length;
+ bool result;
+ if (flag)
+ {
+ result = false;
+ }
+ else
+ {
+ int position = this.m_Position;
+ this.m_Position = position + 1;
+ result = (this.GetByte(position) > 0);
+ }
+ return result;
+ }
+
+ public string ReadString(int length = -1)
+ {
+ bool flag = this.m_srcBuff == null;
+ string result = string.Empty;
+ if (flag)
+ {
+ result = string.Empty;
+ }
+ else
+ {
+ int num = 0;
+ int num2 = (length < 0) ? this.Read7BitEncodedInt() : length;
+ bool flag2 = num2 < 0;
+ if (flag2)
+ {
+ XSingleton<XDebug>.singleton.AddErrorLog("IO.IO_InvalidStringLen_Len", null, null, null, null, null);
+ result = string.Empty;
+ }
+ else
+ {
+ bool flag3 = num2 == 0;
+ if (flag3)
+ {
+ result = string.Empty;
+ }
+ else
+ {
+ bool flag4 = this.m_charBytes == null;
+ if (flag4)
+ {
+ this.m_charBytes = new byte[128];
+ }
+ bool flag5 = this.m_charBuffer == null;
+ if (flag5)
+ {
+ this.m_charBuffer = new char[XBinaryReader.MaxCharsSize];
+ }
+ StringBuilder stringBuilder = null;
+ int chars;
+ for (;;)
+ {
+ int num3 = (num2 - num > 128) ? 128 : (num2 - num);
+ int num4 = this.m_Position;
+ int num5 = this.m_Position += num3;
+ bool flag6 = num5 > this.m_Length;
+ if (flag6)
+ {
+ this.m_Position = this.m_Length;
+ num3 = this.m_Position - num4;
+ }
+ num4 += this.m_StartOffset;
+ Array.Copy(this.m_srcBuff, num4, this.m_charBytes, 0, num3);
+ bool flag7 = num3 == 0;
+ if (flag7)
+ {
+ break;
+ }
+ chars = this.m_decoder.GetChars(this.m_charBytes, 0, num3, this.m_charBuffer, 0);
+ bool flag8 = num == 0 && num3 == num2;
+ if (flag8)
+ {
+ goto Block_11;
+ }
+ bool flag9 = stringBuilder == null;
+ if (flag9)
+ {
+ stringBuilder = XBinaryReader.StringBuilderCache.Acquire(num2);
+ }
+ stringBuilder.Append(this.m_charBuffer, 0, chars);
+ num += num3;
+ if (num >= num2)
+ {
+ goto Block_13;
+ }
+ }
+ XSingleton<XDebug>.singleton.AddErrorLog("Read String 0 length", null, null, null, null, null);
+ return string.Empty;
+ Block_11:
+ return new string(this.m_charBuffer, 0, chars);
+ Block_13:
+ result = XBinaryReader.StringBuilderCache.GetStringAndRelease(stringBuilder);
+ }
+ }
+ }
+ return result;
+ }
+
+ public void SkipString()
+ {
+ bool flag = this.m_srcBuff == null;
+ if (!flag)
+ {
+ int num = 0;
+ int num2 = this.Read7BitEncodedInt();
+ bool flag2 = num2 < 0;
+ if (flag2)
+ {
+ XSingleton<XDebug>.singleton.AddErrorLog("IO.IO_InvalidStringLen_Len", null, null, null, null, null);
+ }
+ else
+ {
+ bool flag3 = num2 == 0;
+ if (!flag3)
+ {
+ for (;;)
+ {
+ int num3 = (num2 - num > 128) ? 128 : (num2 - num);
+ int position = this.m_Position;
+ int num4 = this.m_Position += num3;
+ bool flag4 = num4 > this.m_Length;
+ if (flag4)
+ {
+ this.m_Position = this.m_Length;
+ num3 = this.m_Position - position;
+ }
+ bool flag5 = num3 == 0;
+ if (flag5)
+ {
+ break;
+ }
+ bool flag6 = num == 0 && num3 <= num2;
+ if (flag6)
+ {
+ goto Block_8;
+ }
+ num += num3;
+ if (num >= num2)
+ {
+ return;
+ }
+ }
+ XSingleton<XDebug>.singleton.AddErrorLog("Read String 0 length", null, null, null, null, null);
+ Block_8:;
+ }
+ }
+ }
+ }
+
+ private int Read7BitEncodedInt()
+ {
+ int num = 0;
+ int num2 = 0;
+ for (;;)
+ {
+ bool flag = num2 == 35;
+ if (flag)
+ {
+ break;
+ }
+ byte b = this.ReadByte();
+ num |= (int)(b & 127) << num2;
+ num2 += 7;
+ if ((b & 128) <= 0)
+ {
+ goto Block_2;
+ }
+ }
+ XSingleton<XDebug>.singleton.AddErrorLog("Format_Bad7BitInt32", null, null, null, null, null);
+ return 0;
+ Block_2:
+ return num;
+ }
+
+ private byte GetByte(int pos)
+ {
+ return this.m_srcBuff[pos + this.m_StartOffset];
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XBinaryReader.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XBinaryReader.cs.meta new file mode 100644 index 00000000..0dbc8771 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XBinaryReader.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 3179993c2e323fe49a8ea0db392b40fe +timeCreated: 1611465309 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XCallCommand.cs b/Client/Assets/Scripts/XUtliPoolLib/XCallCommand.cs new file mode 100644 index 00000000..9feea104 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XCallCommand.cs @@ -0,0 +1,36 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class XCallCommand
+ {
+ public static ExecuteCommandHandler handler = new ExecuteCommandHandler(XCallCommand.Execute);
+
+ public static DebugHandler debugHandler = new DebugHandler(XCallCommand.DebugString);
+
+ public static void DebugString(XGameObject gameObject, XEngineCommand command, string str, int id)
+ {
+ bool flag = command.data != null;
+ if (flag)
+ {
+ XSingleton<XDebug>.singleton.AddWarningLog2("[EngineCommand] CallCmd {0} ID:{1} data:{2} location:{3} objID:{4}", new object[]
+ {
+ str,
+ id,
+ command.data.data,
+ gameObject.m_Location,
+ gameObject.objID
+ });
+ }
+ }
+
+ public static void Execute(XGameObject gameObject, XEngineCommand command)
+ {
+ bool flag = command.data != null && command.data.commandCb != null;
+ if (flag)
+ {
+ command.data.commandCb(gameObject, command.data.data, command.commandID);
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XCallCommand.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XCallCommand.cs.meta new file mode 100644 index 00000000..84b5d0ab --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XCallCommand.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: afc3922107736d94ba8c0152488df09e +timeCreated: 1611465744 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XCameraEffectData.cs b/Client/Assets/Scripts/XUtliPoolLib/XCameraEffectData.cs new file mode 100644 index 00000000..6d987cc1 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XCameraEffectData.cs @@ -0,0 +1,68 @@ +using System;
+using System.ComponentModel;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ [Serializable]
+ public class XCameraEffectData : XBaseData
+ {
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Time;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float FovAmp;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Frequency;
+
+ [SerializeField]
+ public CameraMotionSpace Coordinate = CameraMotionSpace.World;
+
+ [SerializeField]
+ [DefaultValue(true)]
+ public bool ShakeX;
+
+ [SerializeField]
+ [DefaultValue(true)]
+ public bool ShakeY;
+
+ [SerializeField]
+ [DefaultValue(true)]
+ public bool ShakeZ;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float AmplitudeX;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float AmplitudeY;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float AmplitudeZ;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float At;
+
+ [SerializeField]
+ [DefaultValue(false)]
+ public bool Random;
+
+ [SerializeField]
+ [DefaultValue(false)]
+ public bool Combined;
+
+ public XCameraEffectData()
+ {
+ this.ShakeX = true;
+ this.ShakeY = true;
+ this.ShakeZ = true;
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XCameraEffectData.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XCameraEffectData.cs.meta new file mode 100644 index 00000000..10d44914 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XCameraEffectData.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 895c62e4dd3637b419c8f82d6506a6c5 +timeCreated: 1611465699 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XCameraMotionData.cs b/Client/Assets/Scripts/XUtliPoolLib/XCameraMotionData.cs new file mode 100644 index 00000000..894bc080 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XCameraMotionData.cs @@ -0,0 +1,60 @@ +using System;
+using System.ComponentModel;
+using System.Xml.Serialization;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ [Serializable]
+ public class XCameraMotionData : ICloneable
+ {
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float At;
+
+ [SerializeField]
+ [XmlIgnore]
+ public string Motion = null;
+
+ [SerializeField]
+ [XmlIgnore]
+ public CameraMotionType MotionType = CameraMotionType.CameraBased;
+
+ [SerializeField]
+ public string Motion3D = null;
+
+ [SerializeField]
+ public CameraMotionType Motion3DType = CameraMotionType.CameraBased;
+
+ [SerializeField]
+ public string Motion2_5D = null;
+
+ [SerializeField]
+ public CameraMotionType Motion2_5DType = CameraMotionType.CameraBased;
+
+ [SerializeField]
+ [DefaultValue(false)]
+ public bool LookAt_Target;
+
+ [SerializeField]
+ [DefaultValue(true)]
+ public bool Follow_Position;
+
+ [SerializeField]
+ [DefaultValue(false)]
+ public bool AutoSync_At_Begin;
+
+ [SerializeField]
+ public CameraMotionSpace Coordinate = CameraMotionSpace.World;
+
+ public XCameraMotionData()
+ {
+ this.Follow_Position = true;
+ }
+
+ public object Clone()
+ {
+ return base.MemberwiseClone();
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XCameraMotionData.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XCameraMotionData.cs.meta new file mode 100644 index 00000000..1749f13f --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XCameraMotionData.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: df868d5d6e41ab1409968024dae5262a +timeCreated: 1611465798 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XCameraPostEffectData.cs b/Client/Assets/Scripts/XUtliPoolLib/XCameraPostEffectData.cs new file mode 100644 index 00000000..527a6905 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XCameraPostEffectData.cs @@ -0,0 +1,36 @@ +using System;
+using System.ComponentModel;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ [Serializable]
+ public class XCameraPostEffectData
+ {
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float At;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float End;
+
+ [SerializeField]
+ public string Effect = null;
+
+ [SerializeField]
+ public string Shader = null;
+
+ [SerializeField]
+ [DefaultValue(false)]
+ public bool SolidBlack;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Solid_At;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Solid_End;
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XCameraPostEffectData.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XCameraPostEffectData.cs.meta new file mode 100644 index 00000000..7edbc4d4 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XCameraPostEffectData.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 53cd42f042368da4ba313fae7b145296 +timeCreated: 1611465644 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XCastChain.cs b/Client/Assets/Scripts/XUtliPoolLib/XCastChain.cs new file mode 100644 index 00000000..4d2e4127 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XCastChain.cs @@ -0,0 +1,21 @@ +using System;
+using System.ComponentModel;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ [Serializable]
+ public class XCastChain
+ {
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float At = 0f;
+
+ [SerializeField]
+ [DefaultValue(0)]
+ public int TemplateID = 0;
+
+ [SerializeField]
+ public string Name = null;
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XCastChain.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XCastChain.cs.meta new file mode 100644 index 00000000..17dbcc3d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XCastChain.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 447f330456de45a4d95e73e098486c1d +timeCreated: 1611465637 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XChapter.cs b/Client/Assets/Scripts/XUtliPoolLib/XChapter.cs new file mode 100644 index 00000000..f0b91e7c --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XChapter.cs @@ -0,0 +1,87 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class XChapter : CVSReader
+ {
+ public XChapter.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int ChapterID;
+
+ public string Comment;
+
+ public int Type;
+
+ public string Pic;
+
+ public int PreChapter;
+
+ public SeqListRef<int> Drop;
+
+ public SeqRef<int> Difficult;
+
+ public int BossID;
+ }
+
+ public XChapter.RowData GetByChapterID(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ XChapter.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].ChapterID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ XChapter.RowData rowData = new XChapter.RowData();
+ base.Read<int>(reader, ref rowData.ChapterID, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.Comment, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<int>(reader, ref rowData.Type, CVSReader.intParse);
+ this.columnno = 5;
+ base.Read<string>(reader, ref rowData.Pic, CVSReader.stringParse);
+ this.columnno = 6;
+ base.Read<int>(reader, ref rowData.PreChapter, CVSReader.intParse);
+ this.columnno = 7;
+ rowData.Drop.Read(reader, this.m_DataHandler);
+ this.columnno = 8;
+ rowData.Difficult.Read(reader, this.m_DataHandler);
+ this.columnno = 9;
+ base.Read<int>(reader, ref rowData.BossID, CVSReader.intParse);
+ this.columnno = 10;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new XChapter.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XChapter.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XChapter.cs.meta new file mode 100644 index 00000000..e1c3ea99 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XChapter.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 348778809b6906948a1da6151d64c2b2 +timeCreated: 1611465311 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XChargeData.cs b/Client/Assets/Scripts/XUtliPoolLib/XChargeData.cs new file mode 100644 index 00000000..c25ca440 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XChargeData.cs @@ -0,0 +1,68 @@ +using System;
+using System.ComponentModel;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ [Serializable]
+ public class XChargeData : XBaseData
+ {
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float At;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float End;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Offset;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Height;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Velocity;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Rotation_Speed;
+
+ [SerializeField]
+ [DefaultValue(false)]
+ public bool Using_Curve;
+
+ [SerializeField]
+ [DefaultValue(false)]
+ public bool Control_Towards;
+
+ [SerializeField]
+ public string Curve_Forward = null;
+
+ [SerializeField]
+ public string Curve_Side = null;
+
+ [SerializeField]
+ [DefaultValue(false)]
+ public bool Using_Up;
+
+ [SerializeField]
+ public string Curve_Up = null;
+
+ [SerializeField]
+ [DefaultValue(true)]
+ public bool StandOnAtEnd;
+
+ [SerializeField]
+ [DefaultValue(false)]
+ public bool AimTarget;
+
+ public XChargeData()
+ {
+ this.StandOnAtEnd = true;
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XChargeData.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XChargeData.cs.meta new file mode 100644 index 00000000..3047181d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XChargeData.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0a8299886f620e1419d98897b6a22cf5 +timeCreated: 1611465287 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XClipType.cs b/Client/Assets/Scripts/XUtliPoolLib/XClipType.cs new file mode 100644 index 00000000..94576524 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XClipType.cs @@ -0,0 +1,14 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public enum XClipType
+ {
+ Actor,
+ Player,
+ Fx,
+ Audio,
+ SubTitle,
+ Slash
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XClipType.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XClipType.cs.meta new file mode 100644 index 00000000..b32ac7f3 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XClipType.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 34a074372e49fe84197581651a776124 +timeCreated: 1611465630 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XCombinedData.cs b/Client/Assets/Scripts/XUtliPoolLib/XCombinedData.cs new file mode 100644 index 00000000..bde39233 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XCombinedData.cs @@ -0,0 +1,25 @@ +using System;
+using System.ComponentModel;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ [Serializable]
+ public class XCombinedData : XBaseData
+ {
+ [SerializeField]
+ public string Name = null;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float At;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float End;
+
+ [SerializeField]
+ [DefaultValue(false)]
+ public bool Override_Presentation;
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XCombinedData.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XCombinedData.cs.meta new file mode 100644 index 00000000..46d61eb5 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XCombinedData.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a2755267fc5ba534a831c307d2699515 +timeCreated: 1611465736 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XCommon.cs b/Client/Assets/Scripts/XUtliPoolLib/XCommon.cs new file mode 100644 index 00000000..d08dbcbd --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XCommon.cs @@ -0,0 +1,695 @@ +using System;
+using System.Collections.Generic;
+using System.Text;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public class XCommon : XSingleton<XCommon>
+ {
+ public static float XEps
+ {
+ get
+ {
+ return XCommon._eps;
+ }
+ }
+
+ public int New_id
+ {
+ get
+ {
+ int num = this._new_id + 1;
+ this._new_id = num;
+ return num;
+ }
+ }
+
+ public long UniqueToken
+ {
+ get
+ {
+ return DateTime.Now.Ticks + (long)this.New_id;
+ }
+ }
+
+ public readonly float FrameStep = 0.0333333351f;
+
+ private static readonly float _eps = 0.0001f;
+
+ private System.Random _random = new System.Random(DateTime.Now.Millisecond);
+
+ private int _idx = 0;
+
+ private uint[] _seeds = new uint[]
+ {
+ 17u,
+ 33u,
+ 65u,
+ 129u
+ };
+
+ private int _new_id = 0;
+
+ public StringBuilder shareSB = new StringBuilder();
+
+ public static List<Renderer> tmpRender = new List<Renderer>();
+
+ public static List<ParticleSystem> tmpParticle = new List<ParticleSystem>();
+
+ public static List<SkinnedMeshRenderer> tmpSkinRender = new List<SkinnedMeshRenderer>();
+
+ public static List<MeshRenderer> tmpMeshRender = new List<MeshRenderer>();
+
+ public XCommon()
+ {
+ this._idx = 5;
+ }
+
+ public uint XHash(string str)
+ {
+ bool flag = str == null;
+ uint result;
+ if (flag)
+ {
+ result = 0u;
+ }
+ else
+ {
+ uint num = 0u;
+ for (int i = 0; i < str.Length; i++)
+ {
+ num = (num << this._idx) + num + (uint)str[i];
+ }
+ result = num;
+ }
+ return result;
+ }
+
+ public uint XHashLowerRelpaceDot(uint hash, string str)
+ {
+ bool flag = str == null;
+ uint result;
+ if (flag)
+ {
+ result = hash;
+ }
+ else
+ {
+ for (int i = 0; i < str.Length; i++)
+ {
+ char c = char.ToLower(str[i]);
+ bool flag2 = c == '/' || c == '\\';
+ if (flag2)
+ {
+ c = '.';
+ }
+ hash = (hash << this._idx) + hash + (uint)c;
+ }
+ result = hash;
+ }
+ return result;
+ }
+
+ public uint XHash(uint hash, string str)
+ {
+ bool flag = str == null;
+ uint result;
+ if (flag)
+ {
+ result = hash;
+ }
+ else
+ {
+ foreach (char c in str)
+ {
+ hash = (hash << this._idx) + hash + (uint)c;
+ }
+ result = hash;
+ }
+ return result;
+ }
+
+ public uint XHash(StringBuilder str)
+ {
+ bool flag = str == null;
+ uint result;
+ if (flag)
+ {
+ result = 0u;
+ }
+ else
+ {
+ uint num = 0u;
+ for (int i = 0; i < str.Length; i++)
+ {
+ num = (num << this._idx) + num + (uint)str[i];
+ }
+ result = num;
+ }
+ return result;
+ }
+
+ public bool IsEqual(float a, float b)
+ {
+ return a == b;
+ }
+
+ public bool IsLess(float a, float b)
+ {
+ return a < b;
+ }
+
+ public int Range(int value, int min, int max)
+ {
+ value = Math.Max(value, min);
+ return Math.Min(value, max);
+ }
+
+ public bool IsGreater(float a, float b)
+ {
+ return a > b;
+ }
+
+ public bool IsEqualLess(float a, float b)
+ {
+ return a <= b;
+ }
+
+ public bool IsEqualGreater(float a, float b)
+ {
+ return a >= b;
+ }
+
+ public uint GetToken()
+ {
+ return (uint)DateTime.Now.Millisecond;
+ }
+
+ public void ProcessValueDamp(ref float values, float target, ref float factor, float deltaT)
+ {
+ bool flag = XSingleton<XCommon>.singleton.IsEqual(values, target);
+ if (flag)
+ {
+ values = target;
+ factor = 0f;
+ }
+ else
+ {
+ values += (target - values) * Mathf.Min(1f, deltaT * factor);
+ }
+ }
+
+ public void ProcessValueEvenPace(ref float value, float target, float speed, float deltaT)
+ {
+ float num = target - value;
+ float num2 = target - (num - speed * deltaT);
+ bool flag = XSingleton<XCommon>.singleton.IsGreater((target - num2) * num, 0f);
+ if (flag)
+ {
+ value = num2;
+ }
+ else
+ {
+ value = target;
+ }
+ }
+
+ public bool IsRectCycleCross(float rectw, float recth, Vector3 c, float r)
+ {
+ Vector3 vector;
+ vector=new Vector3(Mathf.Max(Mathf.Abs(c.x) - rectw, 0f), 0f, Mathf.Max(Mathf.Abs(c.z) - recth, 0f));
+ return vector.sqrMagnitude < r * r;
+ }
+
+ public bool Intersection(Vector2 begin, Vector2 end, Vector2 center, float radius, out float t)
+ {
+ t = 0f;
+ float num = radius * radius;
+ Vector2 vector = center - begin;
+ float sqrMagnitude = vector.sqrMagnitude;
+ bool flag = sqrMagnitude < num;
+ bool result;
+ if (flag)
+ {
+ result = true;
+ }
+ else
+ {
+ Vector2 vector2 = end - begin;
+ bool flag2 = vector2.sqrMagnitude > 0f;
+ if (flag2)
+ {
+ float num2 = Mathf.Sqrt(sqrMagnitude) * Mathf.Cos(Vector2.Angle(vector, vector2));
+ bool flag3 = num2 >= 0f;
+ if (flag3)
+ {
+ float num3 = sqrMagnitude - num2 * num2;
+ bool flag4 = num3 < num;
+ if (flag4)
+ {
+ float num4 = num - num3;
+ t = num2 - Mathf.Sqrt(num4);
+ return true;
+ }
+ }
+ }
+ result = false;
+ }
+ return result;
+ }
+
+ private float CrossProduct(float x1, float z1, float x2, float z2)
+ {
+ return x1 * z2 - x2 * z1;
+ }
+
+ public bool IsLineSegmentCross(Vector3 p1, Vector3 p2, Vector3 q1, Vector3 q2)
+ {
+ bool flag = Mathf.Min(p1.x, p2.x) <= Mathf.Max(q1.x, q2.x) && Mathf.Min(q1.x, q2.x) <= Mathf.Max(p1.x, p2.x) && Mathf.Min(p1.z, p2.z) <= Mathf.Max(q1.z, q2.z) && Mathf.Min(q1.z, q2.z) <= Mathf.Max(p1.z, p2.z);
+ bool result;
+ if (flag)
+ {
+ float num = this.CrossProduct(p1.x - q1.x, p1.z - q1.z, q2.x - q1.x, q2.z - q1.z);
+ float num2 = this.CrossProduct(p2.x - q1.x, p2.z - q1.z, q2.x - q1.x, q2.z - q1.z);
+ float num3 = this.CrossProduct(q1.x - p1.x, q1.z - p1.z, p2.x - p1.x, p2.z - p1.z);
+ float num4 = this.CrossProduct(q2.x - p1.x, q2.z - p1.z, p2.x - p1.x, p2.z - p1.z);
+ result = (num * num2 <= 0f && num3 * num4 <= 0f);
+ }
+ else
+ {
+ Vector3 vector = Vector3.Project(p1, Vector3.up);
+ result = false;
+ }
+ return result;
+ }
+
+ public Vector3 Horizontal(Vector3 v)
+ {
+ v.y = 0f;
+ return v.normalized;
+ }
+
+ public void Horizontal(ref Vector3 v)
+ {
+ v.y = 0f;
+ v.Normalize();
+ }
+
+ public float AngleNormalize(float basic, float degree)
+ {
+ Vector3 vector = this.FloatToAngle(basic);
+ Vector3 vector2 = this.FloatToAngle(degree);
+ float num = Vector3.Angle(vector, vector2);
+ return this.Clockwise(vector, vector2) ? (basic + num) : (basic - num);
+ }
+
+ public Vector2 HorizontalRotateVetor2(Vector2 v, float degree, bool normalized = true)
+ {
+ degree = -degree;
+ float num = degree * 0.0174532924f;
+ float num2 = Mathf.Sin(num);
+ float num3 = Mathf.Cos(num);
+ float x = v.x * num3 - v.y * num2;
+ float y = v.x * num2 + v.y * num3;
+ v.x = x;
+ v.y = y;
+ return normalized ? v.normalized : v;
+ }
+
+ public Vector3 HorizontalRotateVetor3(Vector3 v, float degree, bool normalized = true)
+ {
+ degree = -degree;
+ float num = degree * 0.0174532924f;
+ float num2 = Mathf.Sin(num);
+ float num3 = Mathf.Cos(num);
+ float x = v.x * num3 - v.z * num2;
+ float z = v.x * num2 + v.z * num3;
+ v.x = x;
+ v.z = z;
+ return normalized ? v.normalized : v;
+ }
+
+ public float TicksToSeconds(long tick)
+ {
+ long num = tick / 10000L;
+ return (float)num / 1000f;
+ }
+
+ public long SecondsToTicks(float time)
+ {
+ long num = (long)(time * 1000f);
+ return num * 10000L;
+ }
+
+ public float AngleToFloat(Vector3 dir)
+ {
+ float num = Vector3.Angle(Vector3.forward, dir);
+ return XSingleton<XCommon>.singleton.Clockwise(Vector3.forward, dir) ? num : (-num);
+ }
+
+ public float AngleWithSign(Vector3 from, Vector3 to)
+ {
+ float num = Vector3.Angle(from, to);
+ return this.Clockwise(from, to) ? num : (-num);
+ }
+
+ public Vector3 FloatToAngle(float angle)
+ {
+ return Quaternion.Euler(0f, angle, 0f) * Vector3.forward;
+ }
+
+ public Quaternion VectorToQuaternion(Vector3 v)
+ {
+ return XSingleton<XCommon>.singleton.FloatToQuaternion(XSingleton<XCommon>.singleton.AngleWithSign(Vector3.forward, v));
+ }
+
+ public Quaternion FloatToQuaternion(float angle)
+ {
+ return Quaternion.Euler(0f, angle, 0f);
+ }
+
+ public Quaternion RotateToGround(Vector3 pos, Vector3 forward)
+ {
+ RaycastHit raycastHit;
+ bool flag = Physics.Raycast(new Ray(pos + Vector3.up, Vector3.down), out raycastHit, 5f, 513);
+ Quaternion result;
+ if (flag)
+ {
+ Vector3 normal = raycastHit.normal;
+ Vector3 vector = forward;
+ Vector3.OrthoNormalize(ref normal, ref vector);
+ result = Quaternion.LookRotation(vector, normal);
+ }
+ else
+ {
+ result = Quaternion.identity;
+ }
+ return result;
+ }
+
+ public bool Clockwise(Vector3 fiduciary, Vector3 relativity)
+ {
+ float num = fiduciary.z * relativity.x - fiduciary.x * relativity.z;
+ return num > 0f;
+ }
+
+ public bool Clockwise(Vector2 fiduciary, Vector2 relativity)
+ {
+ float num = fiduciary.y * relativity.x - fiduciary.x * relativity.y;
+ return num > 0f;
+ }
+
+ public bool IsInRect(Vector3 point, Rect rect, Vector3 center, Quaternion rotation)
+ {
+ float num = -(rotation.eulerAngles.y % 360f) / 180f * 3.14159274f;
+ Quaternion identity = Quaternion.identity;
+ identity.w = Mathf.Cos(num / 2f);
+ identity.x = 0f;
+ identity.y = Mathf.Sin(num / 2f);
+ identity.z = 0f;
+ point = identity * (point - center);
+ return point.x > rect.xMin && point.x < rect.xMax && point.z > rect.yMin && point.z < rect.yMax;
+ }
+
+ public float RandomPercentage()
+ {
+ return (float)this._random.NextDouble();
+ }
+
+ public float RandomPercentage(float min)
+ {
+ bool flag = this.IsEqualGreater(min, 1f);
+ float result;
+ if (flag)
+ {
+ result = 1f;
+ }
+ else
+ {
+ float num = (float)this._random.NextDouble();
+ bool flag2 = this.IsGreater(num, min);
+ if (flag2)
+ {
+ result = num;
+ }
+ else
+ {
+ result = num / min * (1f - min) + min;
+ }
+ }
+ return result;
+ }
+
+ public float RandomFloat(float max)
+ {
+ return this.RandomPercentage() * max;
+ }
+
+ public float RandomFloat(float min, float max)
+ {
+ return min + this.RandomFloat(max - min);
+ }
+
+ public int RandomInt(int min, int max)
+ {
+ return this._random.Next(min, max);
+ }
+
+ public int RandomInt(int max)
+ {
+ return this._random.Next(max);
+ }
+
+ public int RandomInt()
+ {
+ return this._random.Next();
+ }
+
+ public bool IsInteger(float n)
+ {
+ return Mathf.Abs(n - (float)((int)n)) < XCommon._eps || Mathf.Abs(n - (float)((int)n)) > 1f - XCommon._eps;
+ }
+
+ public float GetFloatingValue(float value, float floating)
+ {
+ bool flag = this.IsEqualLess(floating, 0f) || this.IsEqualGreater(floating, 1f);
+ float result;
+ if (flag)
+ {
+ result = value;
+ }
+ else
+ {
+ float num = this.IsLess(this.RandomPercentage(), 0.5f) ? (1f - floating) : (1f + floating);
+ result = value * num;
+ }
+ return result;
+ }
+
+ public float GetSmoothFactor(float distance, float timespan, float nearenough)
+ {
+ float result = 0f;
+ distance = Mathf.Abs(distance);
+ bool flag = distance > XCommon.XEps;
+ if (flag)
+ {
+ float smoothDeltaTime = Time.smoothDeltaTime;
+ float num = nearenough / distance;
+ float num2 = timespan / smoothDeltaTime;
+ bool flag2 = num2 > 1f;
+ if (flag2)
+ {
+ float num3 = Mathf.Pow(num, 1f / num2);
+ result = (1f - num3) / smoothDeltaTime;
+ }
+ else
+ {
+ result = float.PositiveInfinity;
+ }
+ }
+ return result;
+ }
+
+ public float GetJumpForce(float airTime, float g)
+ {
+ return 0f;
+ }
+
+ public string SecondsToString(int time)
+ {
+ int num = time / 60;
+ int num2 = time % 60;
+ return string.Format("{0:D2}:{1}", num, num2);
+ }
+
+ public double Clamp(double value, double min, double max)
+ {
+ return Math.Min(Math.Max(min, value), max);
+ }
+
+ public Transform FindChildRecursively(Transform t, string name)
+ {
+ bool flag = t.name == name;
+ Transform result;
+ if (flag)
+ {
+ result = t;
+ }
+ else
+ {
+ for (int i = 0; i < t.childCount; i++)
+ {
+ Transform transform = this.FindChildRecursively(t.GetChild(i), name);
+ bool flag2 = transform != null;
+ if (flag2)
+ {
+ return transform;
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ public void CleanStringCombine()
+ {
+ this.shareSB.Length = 0;
+ }
+
+ public StringBuilder GetSharedStringBuilder()
+ {
+ return this.shareSB;
+ }
+
+ public string GetString()
+ {
+ return this.shareSB.ToString();
+ }
+
+ public XCommon AppendString(string s)
+ {
+ this.shareSB.Append(s);
+ return this;
+ }
+
+ public XCommon AppendString(string s0, string s1)
+ {
+ this.shareSB.Append(s0);
+ this.shareSB.Append(s1);
+ return this;
+ }
+
+ public XCommon AppendString(string s0, string s1, string s2)
+ {
+ this.shareSB.Append(s0);
+ this.shareSB.Append(s1);
+ this.shareSB.Append(s2);
+ return this;
+ }
+
+ public string StringCombine(string s0, string s1)
+ {
+ this.shareSB.Length = 0;
+ this.shareSB.Append(s0);
+ this.shareSB.Append(s1);
+ return this.shareSB.ToString();
+ }
+
+ public string StringCombine(string s0, string s1, string s2)
+ {
+ this.shareSB.Length = 0;
+ this.shareSB.Append(s0);
+ this.shareSB.Append(s1);
+ this.shareSB.Append(s2);
+ return this.shareSB.ToString();
+ }
+
+ public string StringCombine(string s0, string s1, string s2, string s3)
+ {
+ this.shareSB.Length = 0;
+ this.shareSB.Append(s0);
+ this.shareSB.Append(s1);
+ this.shareSB.Append(s2);
+ this.shareSB.Append(s3);
+ return this.shareSB.ToString();
+ }
+
+ public uint CombineAdd(uint value, int heigh, int low)
+ {
+ int num = (int)((value >> 16) + (uint)heigh);
+ int num2 = (int)((value & 65535u) + (uint)low);
+ return (uint)(num << 16 | num2);
+ }
+
+ public void CombineSetHeigh(ref uint value, uint heigh)
+ {
+ value = (heigh << 16 | (value & 65535u));
+ }
+
+ public ushort CombineGetHeigh(uint value)
+ {
+ return (ushort)(value >> 16);
+ }
+
+ public void CombineSetLow(ref uint value, uint low)
+ {
+ value = ((value & 4294901760u) | (low & 65535u));
+ }
+
+ public ushort CombineGetLow(uint value)
+ {
+ return (ushort)(value & 65535u);
+ }
+
+ public void EnableParticleRenderer(GameObject go, bool enable)
+ {
+ Animator componentInChildren = go.GetComponentInChildren<Animator>();
+ bool flag = componentInChildren != null;
+ if (flag)
+ {
+ componentInChildren.enabled = enable;
+ }
+ }
+
+ public void EnableParticle(GameObject go, bool enable)
+ {
+ go.GetComponentsInChildren<ParticleSystem>(XCommon.tmpParticle);
+ int i = 0;
+ int count = XCommon.tmpParticle.Count;
+ while (i < count)
+ {
+ ParticleSystem particleSystem = XCommon.tmpParticle[i];
+ if (enable)
+ {
+ particleSystem.Play();
+ }
+ else
+ {
+ particleSystem.Stop();
+ }
+ i++;
+ }
+ XCommon.tmpParticle.Clear();
+ }
+
+ public static UnityEngine.Object Instantiate(UnityEngine.Object prefab)
+ {
+ return UnityEngine.Object.Instantiate(prefab, null);
+ }
+
+ public static T Instantiate<T>(T original) where T : UnityEngine.Object
+ {
+ return UnityEngine.Object.Instantiate<T>(original, null);
+ }
+
+ public override bool Init()
+ {
+ return true;
+ }
+
+ public override void Uninit()
+ {
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XCommon.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XCommon.cs.meta new file mode 100644 index 00000000..999a4136 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XCommon.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d243eff5ba968124394d807b8ba1a743 +timeCreated: 1611465761 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XCurrentGrid.cs b/Client/Assets/Scripts/XUtliPoolLib/XCurrentGrid.cs new file mode 100644 index 00000000..9573eea9 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XCurrentGrid.cs @@ -0,0 +1,9 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public sealed class XCurrentGrid
+ {
+ public static XGrid grid = new XGrid();
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XCurrentGrid.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XCurrentGrid.cs.meta new file mode 100644 index 00000000..85396686 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XCurrentGrid.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: eee5aec09d448dc40b43c52e12bcd885 +timeCreated: 1611465806 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XCutSceneClip.cs b/Client/Assets/Scripts/XUtliPoolLib/XCutSceneClip.cs new file mode 100644 index 00000000..c8623a78 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XCutSceneClip.cs @@ -0,0 +1,15 @@ +using System;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ [Serializable]
+ public abstract class XCutSceneClip
+ {
+ [SerializeField]
+ public XClipType Type = XClipType.Actor;
+
+ [SerializeField]
+ public float TimeLineAt = 0f;
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XCutSceneClip.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XCutSceneClip.cs.meta new file mode 100644 index 00000000..d8dea6f1 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XCutSceneClip.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: fed465039eec91a49980f5d947c3de01 +timeCreated: 1611465813 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XCutSceneData.cs b/Client/Assets/Scripts/XUtliPoolLib/XCutSceneData.cs new file mode 100644 index 00000000..8fe35bd2 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XCutSceneData.cs @@ -0,0 +1,70 @@ +using System;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ [Serializable]
+ public class XCutSceneData
+ {
+ [SerializeField]
+ public float TotalFrame = 0f;
+
+ [SerializeField]
+ public string CameraClip = null;
+
+ [SerializeField]
+ public string Name = null;
+
+ [SerializeField]
+ public string Script = null;
+
+ [SerializeField]
+ public string Scene = null;
+
+ [SerializeField]
+ public int TypeMask = -1;
+
+ [SerializeField]
+ public bool OverrideBGM = true;
+
+ [SerializeField]
+ public bool Mourningborder = true;
+
+ [SerializeField]
+ public bool AutoEnd = true;
+
+ [SerializeField]
+ public float Length = 0f;
+
+ [SerializeField]
+ public float FieldOfView = 45f;
+
+ [SerializeField]
+ public string Trigger = "ToEffect";
+
+ [SerializeField]
+ public bool GeneralShow = false;
+
+ [SerializeField]
+ public bool GeneralBigGuy = false;
+
+ [SerializeField]
+ public List<XActorDataClip> Actors = new List<XActorDataClip>();
+
+ [SerializeField]
+ public List<XPlayerDataClip> Player = new List<XPlayerDataClip>();
+
+ [SerializeField]
+ public List<XFxDataClip> Fxs = new List<XFxDataClip>();
+
+ [SerializeField]
+ public List<XAudioDataClip> Audios = new List<XAudioDataClip>();
+
+ [SerializeField]
+ public List<XSubTitleDataClip> SubTitle = new List<XSubTitleDataClip>();
+
+ [SerializeField]
+ public List<XSlashDataClip> Slash = new List<XSlashDataClip>();
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XCutSceneData.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XCutSceneData.cs.meta new file mode 100644 index 00000000..4700dab8 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XCutSceneData.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 311a58cc8504fd44cb9361e62f435dd0 +timeCreated: 1611465308 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XDataFileLoadException.cs b/Client/Assets/Scripts/XUtliPoolLib/XDataFileLoadException.cs new file mode 100644 index 00000000..99701e3a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XDataFileLoadException.cs @@ -0,0 +1,16 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ [Serializable]
+ public class XDataFileLoadException : XException
+ {
+ public XDataFileLoadException(string message) : base(message)
+ {
+ }
+
+ public XDataFileLoadException(string message, Exception inner) : base(message, inner)
+ {
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XDataFileLoadException.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XDataFileLoadException.cs.meta new file mode 100644 index 00000000..4b19e94e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XDataFileLoadException.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a187680a204a5a548bebfe059d7a1fab +timeCreated: 1611465736 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XDataWrapper.cs b/Client/Assets/Scripts/XUtliPoolLib/XDataWrapper.cs new file mode 100644 index 00000000..a4e11f56 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XDataWrapper.cs @@ -0,0 +1,11 @@ +using System;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ [Serializable]
+ public class XDataWrapper : ScriptableObject
+ {
+ public object Data { get; set; }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XDataWrapper.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XDataWrapper.cs.meta new file mode 100644 index 00000000..e4cd5dcc --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XDataWrapper.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2f7b9c9528ae899449f9950bdbdd2258 +timeCreated: 1611465307 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XDebug.cs b/Client/Assets/Scripts/XUtliPoolLib/XDebug.cs new file mode 100644 index 00000000..a58b5827 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XDebug.cs @@ -0,0 +1,355 @@ +using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Threading;
+using UnityEngine;
+using XUpdater;
+
+namespace XUtliPoolLib
+{
+ public class XDebug : XSingleton<XDebug>
+ {
+ private int _OutputChannels = 0;
+
+ private IPlatform _platform = null;
+
+ private bool _showTimeStick = true;
+
+ private bool _showLog = true;
+
+ private StringBuilder _buffer = new StringBuilder();
+
+ private XDebug.LayerInfo[] m_LayerInfo = new XDebug.LayerInfo[]
+ {
+ new XDebug.LayerInfo(),
+ new XDebug.LayerInfo()
+ };
+
+ private int m_MaxLayer = 2;
+
+ private bool m_record = false;
+
+ private bool m_recordStart = false;
+
+ private XDebug.RecordChannel m_RecordChannel = XDebug.RecordChannel.ENone;
+
+ public enum RecordChannel
+ {
+ ENone,
+ ENetwork,
+ EResourceLoad
+ }
+
+ public enum RecordLayer
+ {
+ ELayer0,
+ ELayer1,
+ ENum
+ }
+
+ public class SizeInfo
+ {
+ public string Name = "";
+
+ public float Size = 0f;
+
+ public int Count = 0;
+ }
+
+ public class LayerInfo
+ {
+ public string Name = "";
+
+ public Dictionary<uint, XDebug.SizeInfo> SizeInfoMap = new Dictionary<uint, XDebug.SizeInfo>();
+
+ public void Clear()
+ {
+ this.SizeInfoMap.Clear();
+ }
+ }
+
+ public XDebug()
+ {
+ this._OutputChannels = 5;
+ }
+
+ public void Init(IPlatform platform, XFileLog log)
+ {
+ this._platform = XSingleton<XUpdater.XUpdater>.singleton.XPlatform;
+ }
+
+ public void AddLog(string log1, string log2 = null, string log3 = null, string log4 = null, string log5 = null, string log6 = null, XDebugColor color = XDebugColor.XDebug_None)
+ {
+ bool flag = this._platform != null && !this._platform.IsPublish();
+ if (flag)
+ {
+ this.AddLog(XDebugChannel.XDebug_Default, log1, log2, log3, log4, log5, log6, color);
+ }
+ }
+
+ public void AddLog2(string format, params object[] args)
+ {
+ bool flag = this._showLog && this._platform != null && !this._platform.IsPublish();
+ if (flag)
+ {
+ this.AddLog(string.Format(format, args), null, null, null, null, null, XDebugColor.XDebug_None);
+ }
+ }
+
+ public void AddLog(XDebugChannel channel, string log1, string log2 = null, string log3 = null, string log4 = null, string log5 = null, string log6 = null, XDebugColor color = XDebugColor.XDebug_None)
+ {
+ bool flag = this._showLog && this._platform != null && !this._platform.IsPublish();
+ if (flag)
+ {
+ bool flag2 = (this._OutputChannels & (int)channel) > 0;
+ if (flag2)
+ {
+ this._buffer.Length = 0;
+ this._buffer.Append(log1).Append(log2).Append(log3).Append(log4).Append(log5).Append(log6);
+ bool flag3 = color == XDebugColor.XDebug_Green;
+ if (flag3)
+ {
+ this._buffer.Insert(0, "<color=green>");
+ this._buffer.Append("</color>");
+ }
+ bool showTimeStick = this._showTimeStick;
+ if (showTimeStick)
+ {
+ bool flag4 = Thread.CurrentThread.ManagedThreadId == XSingleton<XUpdater.XUpdater>.singleton.ManagedThreadId;
+ if (flag4)
+ {
+ this._buffer.Append(" (at Frame: ").Append(Time.frameCount).Append(" sec: ").Append(Time.realtimeSinceStartup.ToString("F3")).Append(')');
+ }
+ else
+ {
+ bool flag5 = string.IsNullOrEmpty(Thread.CurrentThread.Name);
+ if (flag5)
+ {
+ this._buffer.Append(" (from anonymous thread").Append(" with id ").Append(Thread.CurrentThread.ManagedThreadId).Append(")");
+ }
+ else
+ {
+ this._buffer.Append(" (from thread ").Append(Thread.CurrentThread.Name).Append(" with id ").Append(Thread.CurrentThread.ManagedThreadId).Append(")");
+ }
+ }
+ }
+ bool flag6 = color == XDebugColor.XDebug_Red;
+ if (flag6)
+ {
+ Debug.LogError(this._buffer);
+ }
+ else
+ {
+ bool flag7 = color == XDebugColor.XDebug_Yellow;
+ if (flag7)
+ {
+ Debug.LogWarning(this._buffer);
+ }
+ else
+ {
+ Debug.Log(this._buffer);
+ }
+ }
+ }
+ }
+ }
+
+ public void AddGreenLog(string log1, string log2 = null, string log3 = null, string log4 = null, string log5 = null, string log6 = null)
+ {
+ bool flag = this._platform != null && !this._platform.IsPublish();
+ if (flag)
+ {
+ this.AddLog(XDebugChannel.XDebug_Default, log1, log2, log3, log4, log5, log6, XDebugColor.XDebug_Green);
+ }
+ }
+
+ public void AddWarningLog(string log1, string log2 = null, string log3 = null, string log4 = null, string log5 = null, string log6 = null)
+ {
+ bool flag = this._platform != null && !this._platform.IsPublish();
+ if (flag)
+ {
+ this.AddLog(XDebugChannel.XDebug_Default, log1, log2, log3, log4, log5, log6, XDebugColor.XDebug_Yellow);
+ }
+ }
+
+ public void AddWarningLog2(string format, params object[] args)
+ {
+ bool flag = this._showLog && this._platform != null && !this._platform.IsPublish();
+ if (flag)
+ {
+ this.AddWarningLog(string.Format(format, args), null, null, null, null, null);
+ }
+ }
+
+ public void AddErrorLog2(string format, params object[] args)
+ {
+ bool flag = this._showLog && this._platform != null && !this._platform.IsPublish();
+ if (flag)
+ {
+ this.AddErrorLog(string.Format(format, args), null, null, null, null, null);
+ }
+ }
+
+ public void AddErrorLog(string log1, string log2 = null, string log3 = null, string log4 = null, string log5 = null, string log6 = null)
+ {
+ this._buffer.Length = 0;
+ bool flag = Thread.CurrentThread.ManagedThreadId == XSingleton<XUpdater.XUpdater>.singleton.ManagedThreadId;
+ if (flag)
+ {
+ this._buffer.Append(log1).Append(log2).Append(log3).Append(log4).Append(log5).Append(log6).Append(" (at Frame: ").Append(Time.frameCount).Append(" sec: ").Append(Time.realtimeSinceStartup.ToString("F3")).Append(')');
+ }
+ else
+ {
+ this._buffer.Append(log1).Append(log2).Append(log3).Append(log4).Append(log5).Append(log6);
+ }
+ XFileLog.AddCustomLog("AddErrorLog: " + this._buffer);
+ this.AddLog(XDebugChannel.XDebug_Default, log1, log2, log3, log4, log5, log6, XDebugColor.XDebug_Red);
+ }
+
+ public override bool Init()
+ {
+ return true;
+ }
+
+ public override void Uninit()
+ {
+ }
+
+ public void BeginProfile(string title)
+ {
+ }
+
+ public void RegisterGroupProfile(string title)
+ {
+ }
+
+ public void BeginGroupProfile(string title)
+ {
+ }
+
+ public void EndProfile()
+ {
+ }
+
+ public void EndGroupProfile(string title)
+ {
+ }
+
+ public void InitProfiler()
+ {
+ }
+
+ public void PrintProfiler()
+ {
+ }
+
+ public void StartRecord(XDebug.RecordChannel channel)
+ {
+ this.m_record = true;
+ this.m_recordStart = false;
+ this.m_RecordChannel = channel;
+ XDebug.RecordChannel recordChannel = this.m_RecordChannel;
+ if (recordChannel != XDebug.RecordChannel.ENetwork)
+ {
+ if (recordChannel == XDebug.RecordChannel.EResourceLoad)
+ {
+ this.m_LayerInfo[0].Name = "SharedRes";
+ this.m_LayerInfo[1].Name = "Prefab";
+ }
+ }
+ else
+ {
+ this.m_LayerInfo[0].Name = "Recv";
+ this.m_LayerInfo[1].Name = "Send";
+ }
+ }
+
+ public void EndRecord()
+ {
+ this.m_record = false;
+ this.m_recordStart = false;
+ this.m_RecordChannel = XDebug.RecordChannel.ENone;
+ }
+
+ public void BeginRecord()
+ {
+ bool record = this.m_record;
+ if (record)
+ {
+ this.m_recordStart = true;
+ }
+ }
+
+ public void ClearRecord()
+ {
+ this.m_LayerInfo[0].Clear();
+ this.m_LayerInfo[1].Clear();
+ }
+
+ public bool EnableRecord()
+ {
+ return this.m_recordStart;
+ }
+
+ public void AddPoint(uint key, string name, float size, int layer, XDebug.RecordChannel channel)
+ {
+ bool flag = this.m_recordStart && channel == this.m_RecordChannel && layer >= 0 && layer < this.m_MaxLayer;
+ if (flag)
+ {
+ Dictionary<uint, XDebug.SizeInfo> sizeInfoMap = this.m_LayerInfo[layer].SizeInfoMap;
+ XDebug.SizeInfo sizeInfo = null;
+ bool flag2 = !sizeInfoMap.TryGetValue(key, out sizeInfo);
+ if (flag2)
+ {
+ sizeInfo = new XDebug.SizeInfo();
+ sizeInfo.Name = name;
+ sizeInfoMap.Add(key, sizeInfo);
+ }
+ sizeInfo.Count++;
+ sizeInfo.Size += size;
+ }
+ }
+
+ public void Print()
+ {
+ float num = 0f;
+ for (int i = 0; i < this.m_MaxLayer; i++)
+ {
+ XSingleton<XCommon>.singleton.CleanStringCombine();
+ float num2 = 0f;
+ XDebug.SizeInfo sizeInfo = null;
+ XDebug.LayerInfo layerInfo = this.m_LayerInfo[i];
+ XSingleton<XCommon>.singleton.AppendString(layerInfo.Name, ":\r\n");
+ foreach (KeyValuePair<uint, XDebug.SizeInfo> keyValuePair in layerInfo.SizeInfoMap)
+ {
+ XDebug.SizeInfo value = keyValuePair.Value;
+ XSingleton<XCommon>.singleton.AppendString(string.Format("Name:{0} Count:{1} Size:{2}\r\n", value.Name, value.Count, value.Size));
+ num += value.Size;
+ num2 += value.Size;
+ bool flag = sizeInfo == null || sizeInfo.Size < value.Size;
+ if (flag)
+ {
+ sizeInfo = value;
+ }
+ }
+ XSingleton<XDebug>.singleton.AddWarningLog(XSingleton<XCommon>.singleton.GetString(), null, null, null, null, null);
+ bool flag2 = sizeInfo != null;
+ if (flag2)
+ {
+ XSingleton<XDebug>.singleton.AddWarningLog2("max name:{0} Count:{1} Size:{2}", new object[]
+ {
+ sizeInfo.Name,
+ sizeInfo.Count,
+ sizeInfo.Size
+ });
+ }
+ XSingleton<XDebug>.singleton.AddWarningLog2("total {0} size:{1}", new object[]
+ {
+ layerInfo.Name,
+ num2
+ });
+ }
+ XSingleton<XDebug>.singleton.AddWarningLog("total size:", num.ToString(), null, null, null, null);
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XDebug.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XDebug.cs.meta new file mode 100644 index 00000000..c4ca44dd --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XDebug.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: fce8316961c90d8489379c10eee06577 +timeCreated: 1611465812 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XDebugChannel.cs b/Client/Assets/Scripts/XUtliPoolLib/XDebugChannel.cs new file mode 100644 index 00000000..afb13b91 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XDebugChannel.cs @@ -0,0 +1,18 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public enum XDebugChannel
+ {
+ XDebug_Invalid,
+ XDebug_Default,
+ XDebug_Move,
+ XDebug_Skill = 4,
+ XDebug_Buff = 8,
+ XDebug_Death = 16,
+ XDebug_AI = 32,
+ XDebug_UI = 64,
+ XDebug_Component = 128,
+ XDebug_Network = 256
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XDebugChannel.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XDebugChannel.cs.meta new file mode 100644 index 00000000..1bee1baf --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XDebugChannel.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2f465f0ecb201384a9cf7a89dd7108dc +timeCreated: 1611465306 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XDebugColor.cs b/Client/Assets/Scripts/XUtliPoolLib/XDebugColor.cs new file mode 100644 index 00000000..9b366e8e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XDebugColor.cs @@ -0,0 +1,12 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public enum XDebugColor
+ {
+ XDebug_None,
+ XDebug_Green,
+ XDebug_Yellow,
+ XDebug_Red
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XDebugColor.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XDebugColor.cs.meta new file mode 100644 index 00000000..f82d5516 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XDebugColor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ab16f09d17bb55a4e8979705bb6b0c06 +timeCreated: 1611465741 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XDirectory.cs b/Client/Assets/Scripts/XUtliPoolLib/XDirectory.cs new file mode 100644 index 00000000..ad0110a1 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XDirectory.cs @@ -0,0 +1,83 @@ +using System;
+using System.IO;
+
+namespace XUtliPoolLib
+{
+ public class XDirectory
+ {
+ public static DirectoryInfo CreateDirectory(string path)
+ {
+ return Directory.CreateDirectory(path);
+ }
+
+ public static void Delete(string path)
+ {
+ Directory.Delete(path);
+ }
+
+ public static bool Exists(string path)
+ {
+ return Directory.Exists(path);
+ }
+
+ public static DateTime GetCreationTime(string path)
+ {
+ return Directory.GetCreationTime(path);
+ }
+
+ public static string GetCurrentDirectory()
+ {
+ return Directory.GetCurrentDirectory();
+ }
+
+ public static string[] GetDirectories(string path)
+ {
+ return Directory.GetDirectories(path);
+ }
+
+ public static string[] GetDirectories(string path, string searchPattern)
+ {
+ return Directory.GetDirectories(path, searchPattern);
+ }
+
+ public static string[] GetDirectories(string path, string searchPattern, SearchOption searchOption)
+ {
+ return Directory.GetDirectories(path, searchPattern, searchOption);
+ }
+
+ public static string GetDirectoryRoot(string path)
+ {
+ return Directory.GetDirectoryRoot(path);
+ }
+
+ public static string[] GetFiles(string path)
+ {
+ return Directory.GetFiles(path);
+ }
+
+ public static string[] GetFiles(string path, string searchPattern)
+ {
+ return Directory.GetFiles(path, searchPattern);
+ }
+
+ public static string[] GetFileSystemEntries(string path)
+ {
+ return Directory.GetFileSystemEntries(path);
+ }
+
+ public static string[] GetFileSystemEntries(string path, string searchPattern)
+ {
+ return Directory.GetFileSystemEntries(path, searchPattern);
+ }
+
+ public static DirectoryInfo GetParent(string path)
+ {
+ return Directory.GetParent(path);
+ }
+
+ public static void Move(string sourceDirName, string destDirName)
+ {
+ Directory.Move(sourceDirName, destDirName);
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XDirectory.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XDirectory.cs.meta new file mode 100644 index 00000000..36bab608 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XDirectory.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 55afede26c912f144aa002bb5cdbb08c +timeCreated: 1611465645 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XDoubleNewException.cs b/Client/Assets/Scripts/XUtliPoolLib/XDoubleNewException.cs new file mode 100644 index 00000000..6bb43a07 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XDoubleNewException.cs @@ -0,0 +1,16 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ [Serializable]
+ public class XDoubleNewException : XException
+ {
+ public XDoubleNewException(string message) : base(message)
+ {
+ }
+
+ public XDoubleNewException(string message, Exception inner) : base(message, inner)
+ {
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XDoubleNewException.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XDoubleNewException.cs.meta new file mode 100644 index 00000000..0674c0af --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XDoubleNewException.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4c32383990541fa41bdbad4fdc4ecc81 +timeCreated: 1611465641 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XElapseTimer.cs b/Client/Assets/Scripts/XUtliPoolLib/XElapseTimer.cs new file mode 100644 index 00000000..1208b5f6 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XElapseTimer.cs @@ -0,0 +1,59 @@ +using System;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public class XElapseTimer
+ {
+ public float LeftTime
+ {
+ get
+ {
+ return this.m_LeftTime;
+ }
+ set
+ {
+ this.m_LeftTime = value;
+ this.m_OriLeftTime = this.m_LeftTime;
+ this.m_LastTime = -1f;
+ this.m_PassTime = 0f;
+ }
+ }
+
+ public float PassTime
+ {
+ get
+ {
+ return this.m_PassTime;
+ }
+ }
+
+ private float m_OriLeftTime = 0f;
+
+ private float m_LeftTime = 0f;
+
+ private float m_LastTime = -1f;
+
+ private float m_PassTime = 0f;
+
+ public void Update()
+ {
+ this.m_PassTime = 0f;
+ bool flag = this.m_LastTime < 0f;
+ if (flag)
+ {
+ this.m_LastTime = Time.time;
+ }
+ else
+ {
+ this.m_PassTime = Time.time - this.m_LastTime;
+ }
+ this.m_LeftTime = this.m_OriLeftTime - this.m_PassTime;
+ bool flag2 = this.m_LeftTime < 0f;
+ if (flag2)
+ {
+ this.m_LeftTime = 0f;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XElapseTimer.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XElapseTimer.cs.meta new file mode 100644 index 00000000..a317a518 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XElapseTimer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 6d568c31082c7b94089b417888a79b17 +timeCreated: 1611465685 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XEngineCommand.cs b/Client/Assets/Scripts/XUtliPoolLib/XEngineCommand.cs new file mode 100644 index 00000000..42208a5d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XEngineCommand.cs @@ -0,0 +1,84 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class XEngineCommand : IQueueObject
+ {
+ public IQueueObject next { get; set; }
+
+ public XGameObject gameObject = null;
+
+ public ExecuteCommandHandler handler = null;
+
+ public CanExecuteHandler canExecute = null;
+
+ public XObjAsyncData data = null;
+
+ public int objID = -1;
+
+ public int commandID = -1;
+
+ public static int globalCommandID = 0;
+
+ public DebugHandler debugHandler = null;
+
+ public int id = -1;
+
+ public static int debugid = 0;
+
+ public static bool debug = false;
+
+ public bool IsValid()
+ {
+ return this.gameObject != null && this.gameObject.objID == this.objID;
+ }
+
+ public void Execute()
+ {
+ bool flag = this.handler != null;
+ if (flag)
+ {
+ this.handler(this.gameObject, this);
+ }
+ }
+
+ public void Reset()
+ {
+ this.objID = -1;
+ this.commandID = -1;
+ this.gameObject = null;
+ this.handler = null;
+ this.canExecute = null;
+ this.data = null;
+ this.id = -1;
+ this.debugHandler = null;
+ }
+
+ public bool CanExecute()
+ {
+ bool flag = this.gameObject != null && this.gameObject.IsLoaded;
+ bool result;
+ if (flag)
+ {
+ bool flag2 = this.canExecute != null;
+ result = (!flag2 || this.canExecute(this.gameObject, this));
+ }
+ else
+ {
+ result = false;
+ }
+ return result;
+ }
+
+ public static int GetCommandID()
+ {
+ int result = XEngineCommand.globalCommandID++;
+ bool flag = XEngineCommand.globalCommandID > 1000000;
+ if (flag)
+ {
+ XEngineCommand.globalCommandID = 0;
+ }
+ return result;
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XEngineCommand.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XEngineCommand.cs.meta new file mode 100644 index 00000000..0c56a7fb --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XEngineCommand.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1f37a8c2cf21f324c98190f32852b377 +timeCreated: 1611465299 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XEngineCommandMgr.cs b/Client/Assets/Scripts/XUtliPoolLib/XEngineCommandMgr.cs new file mode 100644 index 00000000..26723a63 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XEngineCommandMgr.cs @@ -0,0 +1,225 @@ +using System;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public class XEngineCommandMgr : XSingleton<XEngineCommandMgr>
+ {
+ private SimpleQueue m_currentQueue = null;
+
+ private SimpleQueue m_commandQueue0 = new SimpleQueue();
+
+ private SimpleQueue m_commandQueue1 = new SimpleQueue();
+
+ private SimpleQueue m_commandQueue = new SimpleQueue();
+
+ private SimpleQueue m_objAsyncDataQueue = new SimpleQueue();
+
+ private Queue<GameObject> m_gameObjectQueue = new Queue<GameObject>();
+
+ private SimpleQueue GetCurrentQueue()
+ {
+ bool flag = this.m_currentQueue == null;
+ if (flag)
+ {
+ this.m_currentQueue = this.m_commandQueue0;
+ }
+ return this.m_currentQueue;
+ }
+
+ private SimpleQueue GeBackQueue(SimpleQueue queue)
+ {
+ bool flag = queue == this.m_commandQueue0;
+ SimpleQueue result;
+ if (flag)
+ {
+ result = this.m_commandQueue1;
+ }
+ else
+ {
+ result = this.m_commandQueue0;
+ }
+ return result;
+ }
+
+ private void SwapQueue()
+ {
+ bool flag = this.m_currentQueue != null;
+ if (flag)
+ {
+ bool flag2 = this.m_currentQueue == this.m_commandQueue0;
+ if (flag2)
+ {
+ this.m_currentQueue = this.m_commandQueue1;
+ }
+ else
+ {
+ this.m_currentQueue = this.m_commandQueue0;
+ }
+ }
+ }
+
+ public XEngineCommand CreateCommand(ExecuteCommandHandler handler, XGameObject gameObject, int commandID = -1)
+ {
+ bool hasData = this.m_commandQueue.HasData;
+ XEngineCommand xengineCommand;
+ if (hasData)
+ {
+ xengineCommand = this.m_commandQueue.Dequeue<XEngineCommand>();
+ }
+ else
+ {
+ xengineCommand = new XEngineCommand();
+ }
+ xengineCommand.gameObject = gameObject;
+ xengineCommand.handler = handler;
+ xengineCommand.objID = gameObject.objID;
+ xengineCommand.commandID = commandID;
+ xengineCommand.id = XEngineCommand.debugid++;
+ return xengineCommand;
+ }
+
+ public void AppendCommand(XEngineCommand command)
+ {
+ bool flag = command.CanExecute();
+ if (flag)
+ {
+ command.Execute();
+ this.ReturnCommand(command);
+ }
+ else
+ {
+ bool flag2 = XEngineCommand.debug && command.debugHandler != null;
+ if (flag2)
+ {
+ command.debugHandler(command.gameObject, command, "append", command.id);
+ }
+ SimpleQueue currentQueue = this.GetCurrentQueue();
+ currentQueue.Enqueue(command);
+ }
+ }
+
+ public XObjAsyncData GetObjAsyncData()
+ {
+ bool hasData = this.m_objAsyncDataQueue.HasData;
+ XObjAsyncData result;
+ if (hasData)
+ {
+ result = this.m_objAsyncDataQueue.Dequeue<XObjAsyncData>();
+ }
+ else
+ {
+ result = new XObjAsyncData();
+ }
+ return result;
+ }
+
+ public void ReturnCommand(XEngineCommand command)
+ {
+ bool flag = command.data != null;
+ if (flag)
+ {
+ command.data.Reset();
+ this.m_objAsyncDataQueue.Enqueue(command.data);
+ }
+ command.Reset();
+ this.m_commandQueue.Enqueue(command);
+ }
+
+ public GameObject GetGameObject()
+ {
+ bool flag = this.m_gameObjectQueue.Count > 0;
+ GameObject result;
+ if (flag)
+ {
+ result = this.m_gameObjectQueue.Dequeue();
+ }
+ else
+ {
+ result = new GameObject("EmptyObject");
+ }
+ return result;
+ }
+
+ public void ReturnGameObject(GameObject go)
+ {
+ bool flag = go != null;
+ if (flag)
+ {
+ Transform transform = go.transform;
+ transform.parent = null;
+ transform.position = XResourceLoaderMgr.Far_Far_Away;
+ transform.rotation = Quaternion.identity;
+ transform.localScale = Vector3.one;
+ go.name = "EmptyObject";
+ this.m_gameObjectQueue.Enqueue(go);
+ }
+ }
+
+ public void Update()
+ {
+ SimpleQueue currentQueue = this.GetCurrentQueue();
+ bool flag = currentQueue != null && currentQueue.HasData;
+ if (flag)
+ {
+ SimpleQueue simpleQueue = this.GeBackQueue(currentQueue);
+ while (currentQueue.HasData)
+ {
+ XEngineCommand xengineCommand = currentQueue.Dequeue<XEngineCommand>();
+ bool flag2 = xengineCommand.IsValid();
+ if (flag2)
+ {
+ bool flag3 = xengineCommand.CanExecute();
+ if (flag3)
+ {
+ bool flag4 = XEngineCommand.debug && xengineCommand.debugHandler != null;
+ if (flag4)
+ {
+ xengineCommand.debugHandler(xengineCommand.gameObject, xengineCommand, "execute", xengineCommand.id);
+ }
+ xengineCommand.Execute();
+ this.ReturnCommand(xengineCommand);
+ }
+ else
+ {
+ simpleQueue.Enqueue(xengineCommand);
+ }
+ }
+ else
+ {
+ bool flag5 = XEngineCommand.debug && xengineCommand.debugHandler != null;
+ if (flag5)
+ {
+ xengineCommand.debugHandler(xengineCommand.gameObject, xengineCommand, "invalid", xengineCommand.id);
+ }
+ this.ReturnCommand(xengineCommand);
+ }
+ }
+ this.SwapQueue();
+ }
+ }
+
+ public void Clear()
+ {
+ while (this.m_commandQueue0.HasData)
+ {
+ XEngineCommand command = this.m_commandQueue0.Dequeue<XEngineCommand>();
+ this.ReturnCommand(command);
+ }
+ while (this.m_commandQueue1.HasData)
+ {
+ XEngineCommand command2 = this.m_commandQueue1.Dequeue<XEngineCommand>();
+ this.ReturnCommand(command2);
+ }
+ this.m_currentQueue = this.m_commandQueue0;
+ this.m_gameObjectQueue.Clear();
+ XEngineCommand.debugid = 0;
+ bool debug = XEngineCommand.debug;
+ if (debug)
+ {
+ XSingleton<XDebug>.singleton.AddWarningLog("[EngineCommand] Clear", null, null, null, null, null);
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XEngineCommandMgr.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XEngineCommandMgr.cs.meta new file mode 100644 index 00000000..eeefd291 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XEngineCommandMgr.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 6511a321ee27a6f41a32a7a5157cbedb +timeCreated: 1611465660 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XEngineObject.cs b/Client/Assets/Scripts/XUtliPoolLib/XEngineObject.cs new file mode 100644 index 00000000..81e6cf27 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XEngineObject.cs @@ -0,0 +1,14 @@ +using System;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public class XEngineObject
+ {
+ protected GameObject m_GameObject = null;
+
+ protected GameObject m_Parent = null;
+
+ public string m_Location = "";
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XEngineObject.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XEngineObject.cs.meta new file mode 100644 index 00000000..67ad2c33 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XEngineObject.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 9e2e674b3fdd2634eb4775ef53595716 +timeCreated: 1611465711 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XEntityPresentation.cs b/Client/Assets/Scripts/XUtliPoolLib/XEntityPresentation.cs new file mode 100644 index 00000000..40ac6975 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XEntityPresentation.cs @@ -0,0 +1,421 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class XEntityPresentation : CVSReader
+ {
+ public XEntityPresentation.RowData[] Table = null;
+
+ public class RowData
+ {
+ public string Prefab;
+
+ public string A;
+
+ public string AA;
+
+ public string AAA;
+
+ public string AAAA;
+
+ public string AAAAA;
+
+ public string Ultra;
+
+ public string[] OtherSkills;
+
+ public string[] Hit_f;
+
+ public string[] HitFly;
+
+ public string Idle;
+
+ public string Walk;
+
+ public string Run;
+
+ public string Death;
+
+ public string Appear;
+
+ public string[] Hit_l;
+
+ public string[] Hit_r;
+
+ public uint PresentID;
+
+ public string[] HitCurves;
+
+ public string AnimLocation;
+
+ public string SkillLocation;
+
+ public string CurveLocation;
+
+ public string Avatar;
+
+ public string[] DeathCurve;
+
+ public float[] HitBackOffsetTimeScale;
+
+ public float[] HitFlyOffsetTimeScale;
+
+ public float Scale;
+
+ public string BoneSuffix;
+
+ public string Disappear;
+
+ public bool Shadow;
+
+ public string Dash;
+
+ public string Freeze;
+
+ public float[] HitBack_Recover;
+
+ public float[] HitFly_Bounce_GetUp;
+
+ public float BoundRadius;
+
+ public float BoundHeight;
+
+ public string AttackIdle;
+
+ public string AttackWalk;
+
+ public string AttackRun;
+
+ public string EnterGame;
+
+ public string[] Hit_Roll;
+
+ public float[] HitRollOffsetTimeScale;
+
+ public float HitRoll_Recover;
+
+ public bool Huge;
+
+ public string MoveFx;
+
+ public string FreezeFx;
+
+ public string HitFx;
+
+ public string DeathFx;
+
+ public string SuperArmorRecoverySkill;
+
+ public string Feeble;
+
+ public string FeebleFx;
+
+ public string ArmorBroken;
+
+ public string RecoveryFX;
+
+ public string RecoveryHitSlowFX;
+
+ public string RecoveryHitStopFX;
+
+ public string FishingIdle;
+
+ public string FishingCast;
+
+ public string FishingPull;
+
+ public float[] BoundRadiusOffset;
+
+ public SeqListRef<float> HugeMonsterColliders;
+
+ public float UIAvatarScale;
+
+ public float UIAvatarAngle;
+
+ public string FishingWait;
+
+ public string FishingWin;
+
+ public string FishingLose;
+
+ public string Dance;
+
+ public string[] AvatarPos;
+
+ public string InheritActionOne;
+
+ public string InheritActionTwo;
+
+ public string Kiss;
+
+ public string RunLeft;
+
+ public string RunRight;
+
+ public string AttackRunLeft;
+
+ public string AttackRunRight;
+
+ public string Atlas;
+
+ public int AngluarSpeed;
+
+ public byte SkillNum;
+
+ public string Atlas2;
+
+ public string Avatar2;
+ }
+
+ public XEntityPresentation.RowData GetByPresentID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ XEntityPresentation.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchPresentID(key);
+ }
+ return result;
+ }
+
+ private XEntityPresentation.RowData BinarySearchPresentID(uint key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ XEntityPresentation.RowData rowData;
+ XEntityPresentation.RowData rowData2;
+ XEntityPresentation.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.PresentID == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.PresentID == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.PresentID.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.PresentID.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ XEntityPresentation.RowData rowData = new XEntityPresentation.RowData();
+ base.Read<string>(reader, ref rowData.Prefab, CVSReader.stringParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.A, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.AA, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.AAA, CVSReader.stringParse);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.AAAA, CVSReader.stringParse);
+ this.columnno = 4;
+ base.Read<string>(reader, ref rowData.AAAAA, CVSReader.stringParse);
+ this.columnno = 5;
+ base.Read<string>(reader, ref rowData.Ultra, CVSReader.stringParse);
+ this.columnno = 6;
+ base.ReadArray<string>(reader, ref rowData.OtherSkills, CVSReader.stringParse);
+ this.columnno = 7;
+ base.ReadArray<string>(reader, ref rowData.Hit_f, CVSReader.stringParse);
+ this.columnno = 8;
+ base.ReadArray<string>(reader, ref rowData.HitFly, CVSReader.stringParse);
+ this.columnno = 9;
+ base.Read<string>(reader, ref rowData.Idle, CVSReader.stringParse);
+ this.columnno = 10;
+ base.Read<string>(reader, ref rowData.Walk, CVSReader.stringParse);
+ this.columnno = 11;
+ base.Read<string>(reader, ref rowData.Run, CVSReader.stringParse);
+ this.columnno = 12;
+ base.Read<string>(reader, ref rowData.Death, CVSReader.stringParse);
+ this.columnno = 13;
+ base.Read<string>(reader, ref rowData.Appear, CVSReader.stringParse);
+ this.columnno = 14;
+ base.ReadArray<string>(reader, ref rowData.Hit_l, CVSReader.stringParse);
+ this.columnno = 15;
+ base.ReadArray<string>(reader, ref rowData.Hit_r, CVSReader.stringParse);
+ this.columnno = 16;
+ base.Read<uint>(reader, ref rowData.PresentID, CVSReader.uintParse);
+ this.columnno = 17;
+ base.ReadArray<string>(reader, ref rowData.HitCurves, CVSReader.stringParse);
+ this.columnno = 18;
+ base.Read<string>(reader, ref rowData.AnimLocation, CVSReader.stringParse);
+ this.columnno = 19;
+ base.Read<string>(reader, ref rowData.SkillLocation, CVSReader.stringParse);
+ this.columnno = 20;
+ base.Read<string>(reader, ref rowData.CurveLocation, CVSReader.stringParse);
+ this.columnno = 21;
+ base.Read<string>(reader, ref rowData.Avatar, CVSReader.stringParse);
+ this.columnno = 22;
+ base.ReadArray<string>(reader, ref rowData.DeathCurve, CVSReader.stringParse);
+ this.columnno = 23;
+ base.ReadArray<float>(reader, ref rowData.HitBackOffsetTimeScale, CVSReader.floatParse);
+ this.columnno = 24;
+ base.ReadArray<float>(reader, ref rowData.HitFlyOffsetTimeScale, CVSReader.floatParse);
+ this.columnno = 25;
+ base.Read<float>(reader, ref rowData.Scale, CVSReader.floatParse);
+ this.columnno = 26;
+ base.Read<string>(reader, ref rowData.BoneSuffix, CVSReader.stringParse);
+ this.columnno = 27;
+ base.Read<string>(reader, ref rowData.Disappear, CVSReader.stringParse);
+ this.columnno = 28;
+ base.Read<bool>(reader, ref rowData.Shadow, CVSReader.boolParse);
+ this.columnno = 29;
+ base.Read<string>(reader, ref rowData.Dash, CVSReader.stringParse);
+ this.columnno = 30;
+ base.Read<string>(reader, ref rowData.Freeze, CVSReader.stringParse);
+ this.columnno = 31;
+ base.ReadArray<float>(reader, ref rowData.HitBack_Recover, CVSReader.floatParse);
+ this.columnno = 32;
+ base.ReadArray<float>(reader, ref rowData.HitFly_Bounce_GetUp, CVSReader.floatParse);
+ this.columnno = 33;
+ base.Read<float>(reader, ref rowData.BoundRadius, CVSReader.floatParse);
+ this.columnno = 34;
+ base.Read<float>(reader, ref rowData.BoundHeight, CVSReader.floatParse);
+ this.columnno = 35;
+ base.Read<string>(reader, ref rowData.AttackIdle, CVSReader.stringParse);
+ this.columnno = 36;
+ base.Read<string>(reader, ref rowData.AttackWalk, CVSReader.stringParse);
+ this.columnno = 37;
+ base.Read<string>(reader, ref rowData.AttackRun, CVSReader.stringParse);
+ this.columnno = 38;
+ base.Read<string>(reader, ref rowData.EnterGame, CVSReader.stringParse);
+ this.columnno = 39;
+ base.ReadArray<string>(reader, ref rowData.Hit_Roll, CVSReader.stringParse);
+ this.columnno = 40;
+ base.ReadArray<float>(reader, ref rowData.HitRollOffsetTimeScale, CVSReader.floatParse);
+ this.columnno = 41;
+ base.Read<float>(reader, ref rowData.HitRoll_Recover, CVSReader.floatParse);
+ this.columnno = 42;
+ base.Read<bool>(reader, ref rowData.Huge, CVSReader.boolParse);
+ this.columnno = 43;
+ base.Read<string>(reader, ref rowData.MoveFx, CVSReader.stringParse);
+ this.columnno = 44;
+ base.Read<string>(reader, ref rowData.FreezeFx, CVSReader.stringParse);
+ this.columnno = 45;
+ base.Read<string>(reader, ref rowData.HitFx, CVSReader.stringParse);
+ this.columnno = 46;
+ base.Read<string>(reader, ref rowData.DeathFx, CVSReader.stringParse);
+ this.columnno = 47;
+ base.Read<string>(reader, ref rowData.SuperArmorRecoverySkill, CVSReader.stringParse);
+ this.columnno = 48;
+ base.Read<string>(reader, ref rowData.Feeble, CVSReader.stringParse);
+ this.columnno = 49;
+ base.Read<string>(reader, ref rowData.FeebleFx, CVSReader.stringParse);
+ this.columnno = 50;
+ base.Read<string>(reader, ref rowData.ArmorBroken, CVSReader.stringParse);
+ this.columnno = 51;
+ base.Read<string>(reader, ref rowData.RecoveryFX, CVSReader.stringParse);
+ this.columnno = 52;
+ base.Read<string>(reader, ref rowData.RecoveryHitSlowFX, CVSReader.stringParse);
+ this.columnno = 53;
+ base.Read<string>(reader, ref rowData.RecoveryHitStopFX, CVSReader.stringParse);
+ this.columnno = 54;
+ base.Read<string>(reader, ref rowData.FishingIdle, CVSReader.stringParse);
+ this.columnno = 55;
+ base.Read<string>(reader, ref rowData.FishingCast, CVSReader.stringParse);
+ this.columnno = 56;
+ base.Read<string>(reader, ref rowData.FishingPull, CVSReader.stringParse);
+ this.columnno = 57;
+ base.ReadArray<float>(reader, ref rowData.BoundRadiusOffset, CVSReader.floatParse);
+ this.columnno = 58;
+ rowData.HugeMonsterColliders.Read(reader, this.m_DataHandler);
+ this.columnno = 59;
+ base.Read<float>(reader, ref rowData.UIAvatarScale, CVSReader.floatParse);
+ this.columnno = 60;
+ base.Read<float>(reader, ref rowData.UIAvatarAngle, CVSReader.floatParse);
+ this.columnno = 61;
+ base.Read<string>(reader, ref rowData.FishingWait, CVSReader.stringParse);
+ this.columnno = 62;
+ base.Read<string>(reader, ref rowData.FishingWin, CVSReader.stringParse);
+ this.columnno = 63;
+ base.Read<string>(reader, ref rowData.FishingLose, CVSReader.stringParse);
+ this.columnno = 64;
+ base.Read<string>(reader, ref rowData.Dance, CVSReader.stringParse);
+ this.columnno = 65;
+ base.ReadArray<string>(reader, ref rowData.AvatarPos, CVSReader.stringParse);
+ this.columnno = 66;
+ base.Read<string>(reader, ref rowData.InheritActionOne, CVSReader.stringParse);
+ this.columnno = 67;
+ base.Read<string>(reader, ref rowData.InheritActionTwo, CVSReader.stringParse);
+ this.columnno = 68;
+ base.Read<string>(reader, ref rowData.Kiss, CVSReader.stringParse);
+ this.columnno = 69;
+ base.Read<string>(reader, ref rowData.RunLeft, CVSReader.stringParse);
+ this.columnno = 70;
+ base.Read<string>(reader, ref rowData.RunRight, CVSReader.stringParse);
+ this.columnno = 71;
+ base.Read<string>(reader, ref rowData.AttackRunLeft, CVSReader.stringParse);
+ this.columnno = 72;
+ base.Read<string>(reader, ref rowData.AttackRunRight, CVSReader.stringParse);
+ this.columnno = 73;
+ base.Read<string>(reader, ref rowData.Atlas, CVSReader.stringParse);
+ this.columnno = 74;
+ base.Read<int>(reader, ref rowData.AngluarSpeed, CVSReader.intParse);
+ this.columnno = 75;
+ base.Read<byte>(reader, ref rowData.SkillNum, CVSReader.byteParse);
+ this.columnno = 76;
+ base.Read<string>(reader, ref rowData.Atlas2, CVSReader.stringParse);
+ this.columnno = 77;
+ base.Read<string>(reader, ref rowData.Avatar2, CVSReader.stringParse);
+ this.columnno = 78;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new XEntityPresentation.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XEntityPresentation.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XEntityPresentation.cs.meta new file mode 100644 index 00000000..a71d296b --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XEntityPresentation.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 21a06a3bb0e37534b8867ba75cf11e9e +timeCreated: 1611465299 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XEntityStatistics.cs b/Client/Assets/Scripts/XUtliPoolLib/XEntityStatistics.cs new file mode 100644 index 00000000..c116e85b --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XEntityStatistics.cs @@ -0,0 +1,337 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class XEntityStatistics : CVSReader
+ {
+ public XEntityStatistics.RowData[] Table = null;
+
+ public class RowData
+ {
+ public string Name;
+
+ public uint PresentID;
+
+ public float WalkSpeed;
+
+ public float RunSpeed;
+
+ public float[] FloatHeight;
+
+ public float RotateSpeed;
+
+ public float MaxHP;
+
+ public float AttackProb;
+
+ public float Sight;
+
+ public byte Type;
+
+ public uint ID;
+
+ public SeqListRef<int> InBornBuff;
+
+ public float AttackBase;
+
+ public bool IsWander;
+
+ public bool Block;
+
+ public float AIStartTime;
+
+ public float AIActionGap;
+
+ public short FashionTemplate;
+
+ public int MaxSuperArmor;
+
+ public bool IsFixedInCD;
+
+ public uint HpSection;
+
+ public bool EndShow;
+
+ public bool Highlight;
+
+ public float MagicAttackBase;
+
+ public byte UseMyMesh;
+
+ public SeqRef<uint> ExtraReward;
+
+ public float FightTogetherDis;
+
+ public short aihit;
+
+ public double SuperArmorRecoveryValue;
+
+ public double SuperArmorRecoveryMax;
+
+ public SeqRef<int> SuperArmorBrokenBuff;
+
+ public bool WeakStatus;
+
+ public short InitEnmity;
+
+ public bool AlwaysHpBar;
+
+ public string AiBehavior;
+
+ public short Fightgroup;
+
+ public bool SoloShow;
+
+ public bool UsingGeneralCutscene;
+
+ public bool HideName;
+
+ public float AttackSpeed;
+
+ public float ratioleft;
+
+ public float ratioright;
+
+ public float ratioidle;
+
+ public float ratiodistance;
+
+ public float ratioskill;
+
+ public float ratioexp;
+
+ public float SkillCD;
+
+ public bool BeLocked;
+
+ public SeqListRef<float> navigation;
+
+ public byte IsNavPingpong;
+
+ public bool HideInMiniMap;
+
+ public byte Fov;
+
+ public byte SummonGroup;
+
+ public bool SameBillBoard;
+
+ public bool DynamicBlock;
+
+ public byte[] Tag;
+
+ public uint[] HellDrop;
+
+ public short LinkCombo;
+ }
+
+ public XEntityStatistics.RowData GetByID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ XEntityStatistics.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchID(key);
+ }
+ return result;
+ }
+
+ private XEntityStatistics.RowData BinarySearchID(uint key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ XEntityStatistics.RowData rowData;
+ XEntityStatistics.RowData rowData2;
+ XEntityStatistics.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.ID == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.ID == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.ID.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.ID.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ XEntityStatistics.RowData rowData = new XEntityStatistics.RowData();
+ base.Read<string>(reader, ref rowData.Name, CVSReader.stringParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.PresentID, CVSReader.uintParse);
+ this.columnno = 1;
+ base.Read<float>(reader, ref rowData.WalkSpeed, CVSReader.floatParse);
+ this.columnno = 2;
+ base.Read<float>(reader, ref rowData.RunSpeed, CVSReader.floatParse);
+ this.columnno = 3;
+ base.ReadArray<float>(reader, ref rowData.FloatHeight, CVSReader.floatParse);
+ this.columnno = 4;
+ base.Read<float>(reader, ref rowData.RotateSpeed, CVSReader.floatParse);
+ this.columnno = 5;
+ base.Read<float>(reader, ref rowData.MaxHP, CVSReader.floatParse);
+ this.columnno = 6;
+ base.Read<float>(reader, ref rowData.AttackProb, CVSReader.floatParse);
+ this.columnno = 7;
+ base.Read<float>(reader, ref rowData.Sight, CVSReader.floatParse);
+ this.columnno = 8;
+ base.Read<byte>(reader, ref rowData.Type, CVSReader.byteParse);
+ this.columnno = 9;
+ base.Read<uint>(reader, ref rowData.ID, CVSReader.uintParse);
+ this.columnno = 10;
+ rowData.InBornBuff.Read(reader, this.m_DataHandler);
+ this.columnno = 11;
+ base.Read<float>(reader, ref rowData.AttackBase, CVSReader.floatParse);
+ this.columnno = 12;
+ base.Read<bool>(reader, ref rowData.IsWander, CVSReader.boolParse);
+ this.columnno = 13;
+ base.Read<bool>(reader, ref rowData.Block, CVSReader.boolParse);
+ this.columnno = 14;
+ base.Read<float>(reader, ref rowData.AIStartTime, CVSReader.floatParse);
+ this.columnno = 15;
+ base.Read<float>(reader, ref rowData.AIActionGap, CVSReader.floatParse);
+ this.columnno = 16;
+ base.Read<short>(reader, ref rowData.FashionTemplate, CVSReader.shortParse);
+ this.columnno = 17;
+ base.Read<int>(reader, ref rowData.MaxSuperArmor, CVSReader.intParse);
+ this.columnno = 18;
+ base.Read<bool>(reader, ref rowData.IsFixedInCD, CVSReader.boolParse);
+ this.columnno = 19;
+ base.Read<uint>(reader, ref rowData.HpSection, CVSReader.uintParse);
+ this.columnno = 20;
+ base.Read<bool>(reader, ref rowData.EndShow, CVSReader.boolParse);
+ this.columnno = 21;
+ base.Read<bool>(reader, ref rowData.Highlight, CVSReader.boolParse);
+ this.columnno = 22;
+ base.Read<float>(reader, ref rowData.MagicAttackBase, CVSReader.floatParse);
+ this.columnno = 23;
+ base.Read<byte>(reader, ref rowData.UseMyMesh, CVSReader.byteParse);
+ this.columnno = 24;
+ rowData.ExtraReward.Read(reader, this.m_DataHandler);
+ this.columnno = 25;
+ base.Read<float>(reader, ref rowData.FightTogetherDis, CVSReader.floatParse);
+ this.columnno = 26;
+ base.Read<short>(reader, ref rowData.aihit, CVSReader.shortParse);
+ this.columnno = 27;
+ base.Read<double>(reader, ref rowData.SuperArmorRecoveryValue, CVSReader.doubleParse);
+ this.columnno = 28;
+ base.Read<double>(reader, ref rowData.SuperArmorRecoveryMax, CVSReader.doubleParse);
+ this.columnno = 29;
+ rowData.SuperArmorBrokenBuff.Read(reader, this.m_DataHandler);
+ this.columnno = 30;
+ base.Read<bool>(reader, ref rowData.WeakStatus, CVSReader.boolParse);
+ this.columnno = 31;
+ base.Read<short>(reader, ref rowData.InitEnmity, CVSReader.shortParse);
+ this.columnno = 32;
+ base.Read<bool>(reader, ref rowData.AlwaysHpBar, CVSReader.boolParse);
+ this.columnno = 33;
+ base.Read<string>(reader, ref rowData.AiBehavior, CVSReader.stringParse);
+ this.columnno = 34;
+ base.Read<short>(reader, ref rowData.Fightgroup, CVSReader.shortParse);
+ this.columnno = 35;
+ base.Read<bool>(reader, ref rowData.SoloShow, CVSReader.boolParse);
+ this.columnno = 36;
+ base.Read<bool>(reader, ref rowData.UsingGeneralCutscene, CVSReader.boolParse);
+ this.columnno = 37;
+ base.Read<bool>(reader, ref rowData.HideName, CVSReader.boolParse);
+ this.columnno = 38;
+ base.Read<float>(reader, ref rowData.AttackSpeed, CVSReader.floatParse);
+ this.columnno = 39;
+ base.Read<float>(reader, ref rowData.ratioleft, CVSReader.floatParse);
+ this.columnno = 40;
+ base.Read<float>(reader, ref rowData.ratioright, CVSReader.floatParse);
+ this.columnno = 41;
+ base.Read<float>(reader, ref rowData.ratioidle, CVSReader.floatParse);
+ this.columnno = 42;
+ base.Read<float>(reader, ref rowData.ratiodistance, CVSReader.floatParse);
+ this.columnno = 43;
+ base.Read<float>(reader, ref rowData.ratioskill, CVSReader.floatParse);
+ this.columnno = 44;
+ base.Read<float>(reader, ref rowData.ratioexp, CVSReader.floatParse);
+ this.columnno = 45;
+ base.Read<float>(reader, ref rowData.SkillCD, CVSReader.floatParse);
+ this.columnno = 46;
+ base.Read<bool>(reader, ref rowData.BeLocked, CVSReader.boolParse);
+ this.columnno = 47;
+ rowData.navigation.Read(reader, this.m_DataHandler);
+ this.columnno = 48;
+ base.Read<byte>(reader, ref rowData.IsNavPingpong, CVSReader.byteParse);
+ this.columnno = 49;
+ base.Read<bool>(reader, ref rowData.HideInMiniMap, CVSReader.boolParse);
+ this.columnno = 50;
+ base.Read<byte>(reader, ref rowData.Fov, CVSReader.byteParse);
+ this.columnno = 51;
+ base.Read<byte>(reader, ref rowData.SummonGroup, CVSReader.byteParse);
+ this.columnno = 53;
+ base.Read<bool>(reader, ref rowData.SameBillBoard, CVSReader.boolParse);
+ this.columnno = 54;
+ base.Read<bool>(reader, ref rowData.DynamicBlock, CVSReader.boolParse);
+ this.columnno = 57;
+ base.ReadArray<byte>(reader, ref rowData.Tag, CVSReader.byteParse);
+ this.columnno = 58;
+ base.ReadArray<uint>(reader, ref rowData.HellDrop, CVSReader.uintParse);
+ this.columnno = 64;
+ base.Read<short>(reader, ref rowData.LinkCombo, CVSReader.shortParse);
+ this.columnno = 65;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new XEntityStatistics.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XEntityStatistics.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XEntityStatistics.cs.meta new file mode 100644 index 00000000..34122dc5 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XEntityStatistics.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0c17d4e212bfa7c4d9f3eed354e08b6c +timeCreated: 1611465288 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XErrorEventArgTypeException.cs b/Client/Assets/Scripts/XUtliPoolLib/XErrorEventArgTypeException.cs new file mode 100644 index 00000000..743ff074 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XErrorEventArgTypeException.cs @@ -0,0 +1,16 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ [Serializable]
+ public class XErrorEventArgTypeException : XException
+ {
+ public XErrorEventArgTypeException(string message) : base(message)
+ {
+ }
+
+ public XErrorEventArgTypeException(string message, Exception inner) : base(message, inner)
+ {
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XErrorEventArgTypeException.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XErrorEventArgTypeException.cs.meta new file mode 100644 index 00000000..713c9d7c --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XErrorEventArgTypeException.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 596b931b7fc801945958d96993bcc156 +timeCreated: 1611465646 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XErrorUnregisteredComponentException.cs b/Client/Assets/Scripts/XUtliPoolLib/XErrorUnregisteredComponentException.cs new file mode 100644 index 00000000..837d56f6 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XErrorUnregisteredComponentException.cs @@ -0,0 +1,16 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ [Serializable]
+ public class XErrorUnregisteredComponentException : XException
+ {
+ public XErrorUnregisteredComponentException(string message) : base(message)
+ {
+ }
+
+ public XErrorUnregisteredComponentException(string message, Exception inner) : base(message, inner)
+ {
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XErrorUnregisteredComponentException.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XErrorUnregisteredComponentException.cs.meta new file mode 100644 index 00000000..517c71c6 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XErrorUnregisteredComponentException.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 7133feaee692bb047bd410d25452573c +timeCreated: 1611465687 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XException.cs b/Client/Assets/Scripts/XUtliPoolLib/XException.cs new file mode 100644 index 00000000..f11f5909 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XException.cs @@ -0,0 +1,20 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ [Serializable]
+ public class XException : ApplicationException
+ {
+ public XException()
+ {
+ }
+
+ public XException(string message) : base(message)
+ {
+ }
+
+ public XException(string message, Exception inner) : base(message, inner)
+ {
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XException.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XException.cs.meta new file mode 100644 index 00000000..4cb40b5d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XException.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2d2b11fd4b8aceb4ea6fa04370862e48 +timeCreated: 1611465304 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XFastEnumIntEqualityComparer.cs b/Client/Assets/Scripts/XUtliPoolLib/XFastEnumIntEqualityComparer.cs new file mode 100644 index 00000000..65de0abf --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XFastEnumIntEqualityComparer.cs @@ -0,0 +1,25 @@ +using System;
+using System.Collections.Generic;
+using System.Runtime.InteropServices;
+
+namespace XUtliPoolLib
+{
+ [StructLayout(LayoutKind.Sequential, Size = 1)]
+ public struct XFastEnumIntEqualityComparer<TEnum> : IEqualityComparer<TEnum> where TEnum : struct
+ {
+ public static int ToInt(TEnum en)
+ {
+ return EnumInt32ToInt.Convert<TEnum>(en);
+ }
+
+ public bool Equals(TEnum lhs, TEnum rhs)
+ {
+ return XFastEnumIntEqualityComparer<TEnum>.ToInt(lhs) == XFastEnumIntEqualityComparer<TEnum>.ToInt(rhs);
+ }
+
+ public int GetHashCode(TEnum en)
+ {
+ return XFastEnumIntEqualityComparer<TEnum>.ToInt(en);
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XFastEnumIntEqualityComparer.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XFastEnumIntEqualityComparer.cs.meta new file mode 100644 index 00000000..4469fdc8 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XFastEnumIntEqualityComparer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 31c7d87cad0a0334cbcbbca508022010 +timeCreated: 1611465309 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XFetchVersionNetwork.cs b/Client/Assets/Scripts/XUtliPoolLib/XFetchVersionNetwork.cs new file mode 100644 index 00000000..6b610d76 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XFetchVersionNetwork.cs @@ -0,0 +1,265 @@ +using System;
+using System.Net;
+using System.Net.Sockets;
+using System.Text;
+using XUpdater;
+
+namespace XUtliPoolLib
+{
+ public class XFetchVersionNetwork
+ {
+ private Socket m_oSocket;
+
+ private XFetchVersionNetwork.SocketState m_nState;
+
+ private static byte[] m_oRecvBuff;
+
+ private int m_nCurrRecvLen;
+
+ public static int TotalRecvBytes;
+
+ private AsyncCallback m_RecvCb = null;
+
+ private AsyncCallback m_ConnectCb = null;
+
+ public bool m_bRecvMsg = true;
+
+ public bool m_bPause = false;
+
+ public int m_nPauseRecvLen = 0;
+
+ private AddressFamily m_NetworkType = AddressFamily.InterNetwork;
+
+ public enum SocketState
+ {
+ State_Closed,
+ State_Connecting,
+ State_Connected
+ }
+
+ public XFetchVersionNetwork()
+ {
+ this.m_oSocket = null;
+ this.m_nState = XFetchVersionNetwork.SocketState.State_Closed;
+ XFetchVersionNetwork.m_oRecvBuff = null;
+ this.m_nCurrRecvLen = 0;
+ this.m_RecvCb = new AsyncCallback(this.RecvCallback);
+ this.m_ConnectCb = new AsyncCallback(this.OnConnect);
+ }
+
+ private void GetNetworkType()
+ {
+ try
+ {
+ string hostNameOrAddress = XSingleton<XUpdater.XUpdater>.singleton.XPlatform.GetLoginServer("QQ").Substring(0, XSingleton<XUpdater.XUpdater>.singleton.XPlatform.GetLoginServer("QQ").LastIndexOf(':'));
+ IPAddress[] hostAddresses = Dns.GetHostAddresses(hostNameOrAddress);
+ this.m_NetworkType = hostAddresses[0].AddressFamily;
+ }
+ catch (Exception ex)
+ {
+ XSingleton<XDebug>.singleton.AddWarningLog(ex.Message, null, null, null, null, null);
+ }
+ }
+
+ public bool Init()
+ {
+ this.GetNetworkType();
+ try
+ {
+ this.m_nState = XFetchVersionNetwork.SocketState.State_Closed;
+ this.m_oSocket = new Socket(this.m_NetworkType, SocketType.Stream, ProtocolType.Tcp);
+ this.m_oSocket.NoDelay = true;
+ bool flag = XFetchVersionNetwork.m_oRecvBuff == null;
+ if (flag)
+ {
+ XFetchVersionNetwork.m_oRecvBuff = new byte[512];
+ }
+ this.m_nCurrRecvLen = 0;
+ }
+ catch (Exception ex)
+ {
+ XSingleton<XDebug>.singleton.AddWarningLog(ex.Message, "new Socket Error!", null, null, null, null);
+ return false;
+ }
+ return true;
+ }
+
+ public void UnInit()
+ {
+ this.Close();
+ }
+
+ private void OnConnect(IAsyncResult iar)
+ {
+ try
+ {
+ bool flag = this.m_nState == XFetchVersionNetwork.SocketState.State_Closed;
+ if (!flag)
+ {
+ Socket socket = (Socket)iar.AsyncState;
+ socket.EndConnect(iar);
+ this.SetState(XFetchVersionNetwork.SocketState.State_Connected);
+ socket.BeginReceive(XFetchVersionNetwork.m_oRecvBuff, this.m_nCurrRecvLen, XFetchVersionNetwork.m_oRecvBuff.Length - this.m_nCurrRecvLen, SocketFlags.None, this.m_RecvCb, socket);
+ }
+ }
+ catch (Exception ex)
+ {
+ XSingleton<XDebug>.singleton.AddWarningLog(ex.Message, null, null, null, null, null);
+ this.SetState(XFetchVersionNetwork.SocketState.State_Closed);
+ this.Close();
+ }
+ }
+
+ public bool Connect(string host, int port)
+ {
+ bool result;
+ try
+ {
+ this.SetState(XFetchVersionNetwork.SocketState.State_Connecting);
+ this.m_oSocket.BeginConnect(host, port, this.m_ConnectCb, this.m_oSocket);
+ result = true;
+ }
+ catch (Exception ex)
+ {
+ XSingleton<XDebug>.singleton.AddWarningLog(ex.Message, null, null, null, null, null);
+ result = false;
+ }
+ return result;
+ }
+
+ public void Close()
+ {
+ this.m_nState = XFetchVersionNetwork.SocketState.State_Closed;
+ bool flag = this.m_oSocket == null;
+ if (!flag)
+ {
+ try
+ {
+ this.m_oSocket.Close();
+ }
+ catch (Exception ex)
+ {
+ XSingleton<XDebug>.singleton.AddWarningLog(ex.Message, null, null, null, null, null);
+ }
+ this.m_oSocket = null;
+ }
+ }
+
+ public Socket GetSocket()
+ {
+ return this.m_oSocket;
+ }
+
+ public bool IsClosed()
+ {
+ return this.m_nState == XFetchVersionNetwork.SocketState.State_Closed;
+ }
+
+ private void SetState(XFetchVersionNetwork.SocketState nState)
+ {
+ this.m_nState = nState;
+ }
+
+ public void RecvCallback(IAsyncResult ar)
+ {
+ try
+ {
+ bool flag = this.m_nState == XFetchVersionNetwork.SocketState.State_Closed;
+ if (!flag)
+ {
+ Socket socket = (Socket)ar.AsyncState;
+ int num = socket.EndReceive(ar);
+ bool flag2 = num > 0;
+ if (flag2)
+ {
+ XFetchVersionNetwork.TotalRecvBytes += num;
+ this.m_nCurrRecvLen += num;
+ bool flag3 = this.DetectPacket();
+ if (!flag3)
+ {
+ bool flag4 = this.m_nCurrRecvLen == XFetchVersionNetwork.m_oRecvBuff.Length;
+ if (flag4)
+ {
+ XSingleton<XDebug>.singleton.AddWarningLog("RecvCallback error ! m_nCurrRecvLen == m_oRecvBuff.Length", null, null, null, null, null);
+ }
+ socket.BeginReceive(XFetchVersionNetwork.m_oRecvBuff, this.m_nCurrRecvLen, XFetchVersionNetwork.m_oRecvBuff.Length - this.m_nCurrRecvLen, SocketFlags.None, this.m_RecvCb, socket);
+ }
+ }
+ else
+ {
+ bool flag5 = num == 0;
+ if (flag5)
+ {
+ XSingleton<XDebug>.singleton.AddWarningLog("Close socket normally", null, null, null, null, null);
+ this.Close();
+ }
+ else
+ {
+ XSingleton<XDebug>.singleton.AddWarningLog("Close socket, recv error!", null, null, null, null, null);
+ this.Close();
+ }
+ }
+ }
+ }
+ catch (ObjectDisposedException)
+ {
+ }
+ catch (SocketException ex)
+ {
+ XSingleton<XDebug>.singleton.AddWarningLog(ex.Message, null, null, null, null, null);
+ this.Close();
+ }
+ catch (Exception ex2)
+ {
+ XSingleton<XDebug>.singleton.AddWarningLog(ex2.Message, null, null, null, null, null);
+ this.Close();
+ }
+ }
+
+ public bool DetectPacket()
+ {
+ if (this.m_nCurrRecvLen > 0)
+ {
+ int num = this.BreakPacket(XFetchVersionNetwork.m_oRecvBuff, 0, this.m_nCurrRecvLen);
+ bool flag = num == 0;
+ if (!flag)
+ {
+ bool bRecvMsg = this.m_bRecvMsg;
+ if (bRecvMsg)
+ {
+ byte[] array = new byte[num];
+ Array.Copy(XFetchVersionNetwork.m_oRecvBuff, 0, array, 0, num);
+ Encoding utf = Encoding.UTF8;
+ XSingleton<XUpdater.XUpdater>.singleton.SetServerVersion(utf.GetString(array, 4, num - 4));
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ public int BreakPacket(byte[] data, int index, int len)
+ {
+ bool flag = len < 4;
+ int result;
+ if (flag)
+ {
+ result = 0;
+ }
+ else
+ {
+ int num = BitConverter.ToInt32(data, index);
+ bool flag2 = len < 4 + num;
+ if (flag2)
+ {
+ result = 0;
+ }
+ else
+ {
+ result = num + 4;
+ }
+ }
+ return result;
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XFetchVersionNetwork.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XFetchVersionNetwork.cs.meta new file mode 100644 index 00000000..817dc889 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XFetchVersionNetwork.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2fa72fea6e34706478df5a16c583fb3b +timeCreated: 1611465308 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XFile.cs b/Client/Assets/Scripts/XUtliPoolLib/XFile.cs new file mode 100644 index 00000000..8fa27d4d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XFile.cs @@ -0,0 +1,179 @@ +using System;
+using System.IO;
+using System.Text;
+
+namespace XUtliPoolLib
+{
+ public class XFile
+ {
+ public static void AppendAllText(string path, string contents)
+ {
+ File.AppendAllText(path, contents);
+ }
+
+ public static void AppendAllText(string path, string contents, Encoding encoding)
+ {
+ File.AppendAllText(path, contents, encoding);
+ }
+
+ public static StreamWriter AppendText(string path)
+ {
+ return File.AppendText(path);
+ }
+
+ public static void Copy(string sourceFileName, string destFileName)
+ {
+ File.Copy(sourceFileName, destFileName);
+ }
+
+ public static void Copy(string sourceFileName, string destFileName, bool overwrite)
+ {
+ File.Copy(sourceFileName, destFileName, overwrite);
+ }
+
+ public static FileStream Create(string path)
+ {
+ return File.Create(path);
+ }
+
+ public static FileStream Create(string path, int bufferSize)
+ {
+ return File.Create(path, bufferSize);
+ }
+
+ public static StreamWriter CreateText(string path)
+ {
+ return File.CreateText(path);
+ }
+
+ public static void Decrypt(string path)
+ {
+ File.Decrypt(path);
+ }
+
+ public static void Delete(string path)
+ {
+ File.Delete(path);
+ }
+
+ public static void Encrypt(string path)
+ {
+ File.Encrypt(path);
+ }
+
+ public static bool Exists(string path)
+ {
+ return File.Exists(path);
+ }
+
+ public static FileAttributes GetAttributes(string path)
+ {
+ return File.GetAttributes(path);
+ }
+
+ public static DateTime GetCreationTime(string path)
+ {
+ return File.GetCreationTime(path);
+ }
+
+ public static DateTime GetCreationTimeUtc(string path)
+ {
+ return File.GetCreationTimeUtc(path);
+ }
+
+ public static DateTime GetLastAccessTime(string path)
+ {
+ return File.GetLastAccessTime(path);
+ }
+
+ public static DateTime GetLastWriteTime(string path)
+ {
+ return File.GetLastWriteTime(path);
+ }
+
+ public static DateTime GetLastWriteTimeUtc(string path)
+ {
+ return File.GetLastWriteTimeUtc(path);
+ }
+
+ public static void Move(string sourceFileName, string destFileName)
+ {
+ File.Move(sourceFileName, destFileName);
+ }
+
+ public static FileStream Open(string path, FileMode mode)
+ {
+ return File.Open(path, mode);
+ }
+
+ public static FileStream OpenRead(string path)
+ {
+ return File.OpenRead(path);
+ }
+
+ public static StreamReader OpenText(string path)
+ {
+ return File.OpenText(path);
+ }
+
+ public static FileStream OpenWrite(string path)
+ {
+ return File.OpenWrite(path);
+ }
+
+ public static byte[] ReadAllBytes(string path)
+ {
+ return File.ReadAllBytes(path);
+ }
+
+ public static string[] ReadAllLines(string path)
+ {
+ return File.ReadAllLines(path);
+ }
+
+ public static string[] ReadAllLines(string path, Encoding encoding)
+ {
+ return File.ReadAllLines(path, encoding);
+ }
+
+ public static string ReadAllText(string path)
+ {
+ return File.ReadAllText(path);
+ }
+
+ public static string ReadAllText(string path, Encoding encoding)
+ {
+ return File.ReadAllText(path, encoding);
+ }
+
+ public static void Replace(string sourceFileName, string destinationFileName, string destinationBackupFileName)
+ {
+ File.Replace(sourceFileName, destinationFileName, destinationBackupFileName);
+ }
+
+ public static void WriteAllBytes(string path, byte[] bytes)
+ {
+ File.WriteAllBytes(path, bytes);
+ }
+
+ public static void WriteAllLines(string path, string[] contents)
+ {
+ File.WriteAllLines(path, contents);
+ }
+
+ public static void WriteAllLines(string path, string[] contents, Encoding encoding)
+ {
+ File.WriteAllLines(path, contents, encoding);
+ }
+
+ public static void WriteAllText(string path, string contents)
+ {
+ File.WriteAllText(path, contents);
+ }
+
+ public static void WriteAllText(string path, string contents, Encoding encoding)
+ {
+ File.WriteAllText(path, contents, encoding);
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XFile.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XFile.cs.meta new file mode 100644 index 00000000..c78d19ab --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XFile.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 189c4840a719af547beab3ecf5f2a694 +timeCreated: 1611465295 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XFileLog.cs b/Client/Assets/Scripts/XUtliPoolLib/XFileLog.cs new file mode 100644 index 00000000..616db28e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XFileLog.cs @@ -0,0 +1,257 @@ +using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Text;
+using UnityEngine;
+using XUpdater;
+
+namespace XUtliPoolLib
+{
+ public class XFileLog : MonoBehaviour
+ {
+ private static Queue<string> CustomLogQueue = new Queue<string>();
+
+ private const int QUEUE_SIZE = 20;
+
+ public static string RoleName = "";
+
+ public static uint RoleLevel = 0u;
+
+ public static int RoleProf = 0;
+
+ public static string ServerID = "";
+
+ public static string OpenID = "";
+
+ public static uint SceneID = 0u;
+
+ private static Application.LogCallback callBack = null;
+
+ private string _outpath;
+
+ public bool _logOpen = true;
+
+ private bool _firstWrite = true;
+
+ private string _guiLog = "";
+
+ private bool _showGuiLog = false;
+
+ private GUIStyle fontStyle = null;
+
+ public static string debugStr = "0";
+
+ public static bool _OpenCustomBtn = false;
+
+ public static bool _debugTrigger = true;
+
+ private Vector2 scrollPosition;
+
+ private bool _showCustomInfo = false;
+
+ public static bool _logBundleOpen = false;
+
+ public static string _customInfo = "";
+
+ public static int _customInfoHeight = 0;
+
+ private void Start()
+ {
+ this._outpath = Application.persistentDataPath + string.Format("/{0}{1}{2}_{3}{4}{5}.log", new object[]
+ {
+ DateTime.Now.Year.ToString().PadLeft(2, '0'),
+ DateTime.Now.Month.ToString().PadLeft(2, '0'),
+ DateTime.Now.Day.ToString().PadLeft(2, '0'),
+ DateTime.Now.Hour.ToString().PadLeft(2, '0'),
+ DateTime.Now.Minute.ToString().PadLeft(2, '0'),
+ DateTime.Now.Second.ToString().PadLeft(2, '0')
+ });
+ string path = ((int)Application.platform == 8) ? ("/private" + Application.persistentDataPath) : Application.persistentDataPath;
+ bool flag = Directory.Exists(path);
+ if (flag)
+ {
+ DirectoryInfo directoryInfo = new DirectoryInfo(path);
+ FileInfo[] files = directoryInfo.GetFiles();
+ bool flag2 = files != null;
+ if (flag2)
+ {
+ for (int i = 0; i < files.Length; i++)
+ {
+ string a = files[i].Name.Substring(files[i].Name.LastIndexOf(".") + 1);
+ bool flag3 = a != "log";
+ if (!flag3)
+ {
+ bool flag4 = DateTime.Now.Subtract(files[i].CreationTime).TotalDays > 1.0;
+ if (flag4)
+ {
+ try
+ {
+ files[i].Delete();
+ }
+ catch
+ {
+ XSingleton<XDebug>.singleton.AddErrorLog("Del Log File Error!!!", null, null, null, null, null);
+ }
+ }
+ }
+ }
+ }
+ }
+ XFileLog.callBack = new Application.LogCallback(this.HandleLog);
+ Application.logMessageReceived += XFileLog.callBack;
+ XSingleton<XDebug>.singleton.AddLog(this._outpath, null, null, null, null, null, XDebugColor.XDebug_None);
+ }
+
+ public void HandleLog(string logString, string stackTrace, LogType type)
+ {
+ bool flag = !this._firstWrite;
+ if (!flag)
+ {
+ bool logOpen = this._logOpen;
+ if (logOpen)
+ {
+ this.WriterLog(logString);
+ }
+ bool flag2 = type == null || (int)type == 4;
+ if (flag2)
+ {
+ this._firstWrite = false;
+ this.Log(new object[]
+ {
+ logString
+ });
+ this.Log(new object[]
+ {
+ stackTrace
+ });
+ string text = string.Format("{0}\n{1}\n", logString, stackTrace);
+ while (XFileLog.CustomLogQueue.Count > 0)
+ {
+ text = string.Format("{0}\n{1}", text, XFileLog.CustomLogQueue.Dequeue());
+ }
+ this.SendBuglyReport(text);
+ this._guiLog = text;
+ this._showGuiLog = true;
+ }
+ }
+ }
+
+ private void OnGUI()
+ {
+ bool logBundleOpen = XFileLog._logBundleOpen;
+ if (logBundleOpen)
+ {
+ bool flag = XSingleton<XUpdater.XUpdater>.singleton.ABManager != null;
+ if (flag)
+ {
+ GUI.TextArea(new Rect(0f, 30f, 100f, 30f), XSingleton<XUpdater.XUpdater>.singleton.ABManager.BundleCount.ToString());
+ }
+ }
+ bool flag2 = this.fontStyle == null;
+ if (flag2)
+ {
+ this.fontStyle = new GUIStyle();
+ }
+ bool showGuiLog = this._showGuiLog;
+ if (showGuiLog)
+ {
+ bool flag3 = GUI.Button(new Rect(0f, 0f, 100f, 30f), "CrashLog");
+ if (flag3)
+ {
+ this._showGuiLog = !this._showGuiLog;
+ }
+ bool showGuiLog2 = this._showGuiLog;
+ if (showGuiLog2)
+ {
+ this.fontStyle.normal.textColor = new Color(1f, 0f, 0f);
+ this.fontStyle.fontSize = 14;
+ this.fontStyle.normal.background = Texture2D.whiteTexture;
+ GUI.TextArea(new Rect(0f, 40f, 1136f, 3200f), this._guiLog, this.fontStyle);
+ }
+ }
+ bool key = Input.GetKey((KeyCode)286);
+ if (key)
+ {
+ XFileLog._OpenCustomBtn = !XFileLog._OpenCustomBtn;
+ }
+ bool openCustomBtn = XFileLog._OpenCustomBtn;
+ if (openCustomBtn)
+ {
+ bool flag4 = GUI.Button(new Rect(250f, 0f, 150f, 50f), "Info");
+ if (flag4)
+ {
+ this._showCustomInfo = !this._showCustomInfo;
+ }
+ }
+ bool showCustomInfo = this._showCustomInfo;
+ if (showCustomInfo)
+ {
+ this.fontStyle.normal.textColor = new Color(0f, 0f, 0f);
+ this.fontStyle.fontSize = 16;
+ this.fontStyle.normal.background = Texture2D.whiteTexture;
+ this.scrollPosition = GUI.BeginScrollView(new Rect(0f, 30f, 1136f, 640f), this.scrollPosition, new Rect(0f, 30f, 1136f, (float)(XFileLog._customInfoHeight * (this.fontStyle.fontSize + 2) + 100)));
+ GUI.Label(new Rect(0f, 30f, 1136f, (float)(XFileLog._customInfoHeight * (this.fontStyle.fontSize + 2) + 30)), XFileLog._customInfo, this.fontStyle);
+ GUI.EndScrollView();
+ }
+ }
+
+ public void WriterLog(string logString)
+ {
+ using (StreamWriter streamWriter = new StreamWriter(this._outpath, true, Encoding.UTF8))
+ {
+ streamWriter.WriteLine(string.Format("[{0}]{1}", string.Format("{0}/{1}/{2} {3}:{4}:{5}.{6}", new object[]
+ {
+ DateTime.Now.Year,
+ DateTime.Now.Month.ToString().PadLeft(2, '0'),
+ DateTime.Now.Day.ToString().PadLeft(2, '0'),
+ DateTime.Now.Hour.ToString().PadLeft(2, '0'),
+ DateTime.Now.Minute.ToString().PadLeft(2, '0'),
+ DateTime.Now.Second.ToString().PadLeft(2, '0'),
+ DateTime.Now.Millisecond.ToString().PadLeft(3, '0')
+ }), logString));
+ XSingleton<XUpdater.XUpdater>.singleton.XPlatform.SetNoBackupFlag(this._outpath);
+ }
+ }
+
+ private void Update()
+ {
+ }
+
+ public void Log(params object[] objs)
+ {
+ string text = "";
+ for (int i = 0; i < objs.Length; i++)
+ {
+ bool flag = i == 0;
+ if (flag)
+ {
+ text += objs[i].ToString();
+ }
+ else
+ {
+ text = text + ", " + objs[i].ToString();
+ }
+ }
+ this.WriterLog(text);
+ }
+
+ public void SendBuglyReport(string logstring)
+ {
+ bool flag = (int) Application.platform != 7 && Application.platform > 0;
+ if (flag)
+ {
+ IXBuglyMgr ixbuglyMgr = XUpdater.XUpdater.XGameRoot.GetComponent("XBuglyMgr") as IXBuglyMgr;
+ ixbuglyMgr.ReportCrashToBugly(XFileLog.ServerID, XFileLog.RoleName, XFileLog.RoleLevel, XFileLog.RoleProf, XFileLog.OpenID, XSingleton<XUpdater.XUpdater>.singleton.Version, Time.realtimeSinceStartup.ToString(), "loaded", XFileLog.SceneID.ToString(), logstring);
+ }
+ }
+
+ public static void AddCustomLog(string customLog)
+ {
+ XFileLog.CustomLogQueue.Enqueue(customLog);
+ while (XFileLog.CustomLogQueue.Count > 20)
+ {
+ XFileLog.CustomLogQueue.Dequeue();
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XFileLog.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XFileLog.cs.meta new file mode 100644 index 00000000..445b872c --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XFileLog.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 92e60e6f81aab444fbd55b2c54991e21 +timeCreated: 1611465706 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XFileReadAsync.cs b/Client/Assets/Scripts/XUtliPoolLib/XFileReadAsync.cs new file mode 100644 index 00000000..0c83316f --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XFileReadAsync.cs @@ -0,0 +1,15 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ internal class XFileReadAsync
+ {
+ internal bool IsDone = false;
+
+ internal string Location = null;
+
+ internal CVSReader Reader = null;
+
+ internal XBinaryReader Data = null;
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XFileReadAsync.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XFileReadAsync.cs.meta new file mode 100644 index 00000000..f99ea882 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XFileReadAsync.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b2dfec868273ad0439d42044f8db9390 +timeCreated: 1611465745 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XFx.cs b/Client/Assets/Scripts/XUtliPoolLib/XFx.cs new file mode 100644 index 00000000..b1b51b94 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XFx.cs @@ -0,0 +1,1083 @@ +using System;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public class XFx : IRenderObject
+ {
+ public bool IsLoaded
+ {
+ get
+ {
+ return this.m_LoadStatus == 1;
+ }
+ }
+
+ public Vector3 Position
+ {
+ get
+ {
+ return (this.m_TransformCache != null) ? this.m_TransformCache.position : this._pos;
+ }
+ set
+ {
+ this._pos = value;
+ bool flag = this.m_TransformCache != null;
+ if (flag)
+ {
+ this.m_TransformCache.position = value;
+ }
+ }
+ }
+
+ public Quaternion Rotation
+ {
+ get
+ {
+ return (this.m_TransformCache != null) ? this.m_TransformCache.rotation : this._rot;
+ }
+ set
+ {
+ this._rot = value;
+ bool flag = this.m_TransformCache != null;
+ if (flag)
+ {
+ this.m_TransformCache.rotation = value;
+ }
+ }
+ }
+
+ public Vector3 Forward
+ {
+ get
+ {
+ bool flag = this.m_TransformCache != null;
+ Vector3 result;
+ if (flag)
+ {
+ result = this.m_TransformCache.forward;
+ }
+ else
+ {
+ result = this._rot * Vector3.forward;
+ }
+ return result;
+ }
+ set
+ {
+ this._rot = Quaternion.LookRotation(value);
+ bool flag = this.m_TransformCache != null;
+ if (flag)
+ {
+ this.m_TransformCache.forward = value;
+ }
+ }
+ }
+
+ public int InstanceID
+ {
+ set
+ {
+ }
+ }
+
+ public static int globalFxID = 0;
+
+ public int _instanceID = -1;
+
+ public string FxName = "";
+
+ private GameObject m_GameObject = null;
+
+ private Transform m_TransformCache = null;
+
+ private Animation _animation = null;
+
+ private AnimationState _animState = null;
+
+ private Animator _animator = null;
+
+ private List<ParticleSystem> _particles = new List<ParticleSystem>();
+
+ private List<Projector> _projectors = new List<Projector>();
+
+ private List<MeshRenderer> _meshs = null;
+
+ private IWeaponTail _weaponTail = null;
+
+ private TrailRenderer _trail = null;
+
+ private float _startSize = 1f;
+
+ private float _startProjectorSize = 1f;
+
+ public float DelayDestroy = -1f;
+
+ public uint Token = 0u;
+
+ private Transform _parent = null;
+
+ private XGameObject _parentXgo = null;
+
+ private float _speed_ratio = 0f;
+
+ private Vector3 _pos;
+
+ private Quaternion _rot;
+
+ private Vector3 _scale;
+
+ private Vector3 _offset;
+
+ private bool _follow;
+
+ private bool _sticky;
+
+ private string _transName = "";
+
+ private float _translate = 0f;
+
+ private int _layer = -1;
+
+ private int _renderQueue = -1;
+
+ private bool _enable = true;
+
+ private int m_LoadFinishCbFlag = 0;
+
+ private short m_LoadStatus = 0;
+
+ private LoadAsyncTask loadTask = null;
+
+ private LoadCallBack loadCb = null;
+
+ public LoadCallBack loadFinish = null;
+
+ public OnFxDestroyed callback = null;
+
+ private static CommandCallback _parentLoadCb = new CommandCallback(XFx._ParentLoad);
+
+ private static FxLoadCallback[] loadCallbacks = null;
+
+ public static LoadCallBack _ProcessMesh = new LoadCallBack(XFx.ProcessMesh);
+
+ private enum ECallbackCmd
+ {
+ ESyncActive = 1,
+ ESyncPlay,
+ ESyncLayer = 4,
+ ESyncRenderQueue = 8,
+ ESyncRefreshRenderQueue = 16,
+ ESyncParent = 32
+ }
+
+ public XFx()
+ {
+ this.loadCb = new LoadCallBack(this.LoadFinish);
+ bool flag = XFx.loadCallbacks == null;
+ if (flag)
+ {
+ XFx.loadCallbacks = new FxLoadCallback[]
+ {
+ new FxLoadCallback(XFx.SyncActive),
+ new FxLoadCallback(XFx.SyncPlay),
+ new FxLoadCallback(XFx.SyncLayer),
+ new FxLoadCallback(XFx.SyncRenderQueue),
+ new FxLoadCallback(XFx.SyncRefreshUIRenderQueue),
+ new FxLoadCallback(XFx.SyncParent)
+ };
+ }
+ }
+
+ public static int GetGlobalFxID()
+ {
+ XFx.globalFxID++;
+ bool flag = XFx.globalFxID > 1000000;
+ if (flag)
+ {
+ XFx.globalFxID = 0;
+ }
+ return XFx.globalFxID;
+ }
+
+ public static XFx CreateXFx(string location, LoadCallBack loadFinish, bool async = true)
+ {
+ XFx xfx = CommonObjectPool<XFx>.Get();
+ xfx._instanceID = XFx.GetGlobalFxID();
+ xfx.FxName = location;
+ xfx.loadFinish = loadFinish;
+ bool flag = string.IsNullOrEmpty(location) || location.EndsWith("empty");
+ if (flag)
+ {
+ xfx.LoadFinish(null, null);
+ }
+ else
+ {
+ bool flag2 = XSingleton<XResourceLoaderMgr>.singleton.DelayLoad && async;
+ if (flag2)
+ {
+ xfx.LoadAsync(location);
+ }
+ else
+ {
+ xfx.Load(location);
+ }
+ }
+ return xfx;
+ }
+
+ public static void DestroyXFx(XFx fx, bool stop = true)
+ {
+ bool flag = fx._instanceID >= 0;
+ if (flag)
+ {
+ if (stop)
+ {
+ fx.Stop();
+ }
+ fx.Reset();
+ CommonObjectPool<XFx>.Release(fx);
+ }
+ }
+
+ public void Reset()
+ {
+ bool flag = this.callback != null;
+ if (flag)
+ {
+ this.callback(this);
+ }
+ this._instanceID = -1;
+ this.FxName = "";
+ this.m_TransformCache = null;
+ this.DelayDestroy = -1f;
+ bool flag2 = this.Token > 0u;
+ if (flag2)
+ {
+ XSingleton<XTimerMgr>.singleton.KillTimer(this.Token);
+ }
+ this.Token = 0u;
+ this._animation = null;
+ this._animator = null;
+ this._particles.Clear();
+ this._projectors.Clear();
+ bool flag3 = this._meshs != null;
+ if (flag3)
+ {
+ this._meshs.Clear();
+ ListPool<MeshRenderer>.Release(this._meshs);
+ this._meshs = null;
+ }
+ this._weaponTail = null;
+ this._trail = null;
+ this._parent = null;
+ this._parentXgo = null;
+ this._startSize = 1f;
+ this._startProjectorSize = 1f;
+ this._pos = XResourceLoaderMgr.Far_Far_Away;
+ this._rot = Quaternion.identity;
+ this._scale = Vector3.one;
+ this._offset = Vector3.zero;
+ this._speed_ratio = 0f;
+ this._follow = false;
+ this._sticky = false;
+ this._transName = "";
+ this._translate = 0f;
+ this._layer = -1;
+ this._renderQueue = -1;
+ this._enable = true;
+ this.m_LoadFinishCbFlag = 0;
+ this.m_LoadStatus = 0;
+ bool flag4 = this.loadTask != null;
+ if (flag4)
+ {
+ this.loadTask.CancelLoad(this.loadCb);
+ this.loadTask = null;
+ }
+ this.callback = null;
+ XResourceLoaderMgr.SafeDestroy(ref this.m_GameObject, true);
+ }
+
+ private void LoadAsync(string location)
+ {
+ this.loadTask = XSingleton<XResourceLoaderMgr>.singleton.CreateFromPrefabAsync(location, this.loadCb, null, true);
+ bool isLoaded = this.IsLoaded;
+ if (isLoaded)
+ {
+ this.loadTask = null;
+ }
+ }
+
+ private void Load(string location)
+ {
+ GameObject obj = XSingleton<XResourceLoaderMgr>.singleton.CreateFromAsset<GameObject>(location, ".prefab", true, false);
+ this.LoadFinish(obj, null);
+ }
+
+ private bool PreProcessFx(GameObject go, int qualityLayer)
+ {
+ int num = 1 << go.layer;
+ bool flag = (num & qualityLayer) == 0;
+ bool result;
+ if (flag)
+ {
+ bool activeSelf = go.activeSelf;
+ if (activeSelf)
+ {
+ go.SetActive(false);
+ }
+ result = false;
+ }
+ else
+ {
+ result = true;
+ }
+ return result;
+ }
+
+ private void LoadFinish(UnityEngine.Object obj, object cbOjb)
+ {
+ this.m_GameObject = (obj as GameObject);
+ this.m_LoadStatus = 1;
+ bool flag = this.m_GameObject != null;
+ if (flag)
+ {
+ this.m_TransformCache = this.m_GameObject.transform;
+ this._animation = this.m_TransformCache.GetComponentInChildren<Animation>();
+ this._animator = this.m_TransformCache.GetComponentInChildren<Animator>();
+ bool flag2 = this._animator != null;
+ if (flag2)
+ {
+ this._animator.enabled = true;
+ }
+ bool flag3 = this._animation != null;
+ if (flag3)
+ {
+ this._animation.enabled = true;
+ }
+ this._particles.Clear();
+ this._projectors.Clear();
+ List<Component> list = ListPool<Component>.Get();
+ this.m_TransformCache.GetComponentsInChildren<Component>(true, list);
+ for (int i = 0; i < list.Count; i++)
+ {
+ Component component = list[i];
+ bool flag4 = component is ParticleSystem;
+ if (flag4)
+ {
+ ParticleSystem particleSystem = component as ParticleSystem;
+ bool flag5 = XFxMgr.MaxParticelCount > 0;
+ if (flag5)
+ {
+ ParticleSystem.MainModule main = particleSystem.main;
+ bool flag6 = main.maxParticles > XFxMgr.MaxParticelCount;
+ if (flag6)
+ {
+ main.maxParticles = XFxMgr.MaxParticelCount;
+ }
+ }
+ bool flag7 = this.PreProcessFx(particleSystem.gameObject, XSingleton<XFxMgr>.singleton.CameraLayerMask);
+ if (flag7)
+ {
+ this._particles.Add(particleSystem);
+ }
+ }
+ else
+ {
+ bool flag8 = component is Projector;
+ if (flag8)
+ {
+ Projector projector = component as Projector;
+ bool flag9 = this.PreProcessFx(projector.gameObject, XSingleton<XFxMgr>.singleton.CameraLayerMask);
+ if (flag9)
+ {
+ this._projectors.Add(projector);
+ }
+ }
+ else
+ {
+ bool flag10 = component is IWeaponTail;
+ if (flag10)
+ {
+ this._weaponTail = (component as IWeaponTail);
+ }
+ else
+ {
+ bool flag11 = component is TrailRenderer;
+ if (flag11)
+ {
+ this._trail = (component as TrailRenderer);
+ }
+ }
+ }
+ }
+ }
+ ListPool<Component>.Release(list);
+ bool flag12 = this.loadFinish != null;
+ if (flag12)
+ {
+ this.loadFinish(this.m_GameObject, this);
+ }
+ for (int j = 0; j < XFx.loadCallbacks.Length; j++)
+ {
+ bool flag13 = this.IsCbFlag(j);
+ if (flag13)
+ {
+ FxLoadCallback fxLoadCallback = XFx.loadCallbacks[j];
+ fxLoadCallback(this);
+ }
+ }
+ this.m_LoadFinishCbFlag = 0;
+ }
+ }
+
+ private void SetCbFlag(XFx.ECallbackCmd cmd, bool add)
+ {
+ int num = XFastEnumIntEqualityComparer<XFx.ECallbackCmd>.ToInt(cmd);
+ if (add)
+ {
+ this.m_LoadFinishCbFlag |= num;
+ }
+ else
+ {
+ this.m_LoadFinishCbFlag &= ~num;
+ }
+ }
+
+ private bool IsCbFlag(int index)
+ {
+ int num = 1 << index;
+ return (this.m_LoadFinishCbFlag & num) != 0;
+ }
+
+ private static void _ParentLoad(XGameObject gameObject, object o, int commandID)
+ {
+ XFx xfx = o as XFx;
+ bool flag = xfx._instanceID == commandID;
+ if (flag)
+ {
+ xfx.RealPlay();
+ }
+ }
+
+ private static void SyncPlay(XFx fx)
+ {
+ bool flag = fx._parentXgo != null;
+ if (flag)
+ {
+ fx._parentXgo.CallCommand(XFx._parentLoadCb, fx, fx._instanceID, false);
+ }
+ else
+ {
+ fx.RealPlay();
+ }
+ }
+
+ private static void SyncLayer(XFx fx)
+ {
+ bool flag = fx._layer >= 0;
+ if (flag)
+ {
+ for (int i = 0; i < fx._particles.Count; i++)
+ {
+ ParticleSystem particleSystem = fx._particles[i];
+ bool flag2 = particleSystem != null;
+ if (flag2)
+ {
+ particleSystem.gameObject.layer = fx._layer;
+ }
+ }
+ for (int j = 0; j < fx._projectors.Count; j++)
+ {
+ Projector projector = fx._projectors[j];
+ projector.gameObject.layer = fx._layer;
+ }
+ bool flag3 = fx._meshs != null;
+ if (flag3)
+ {
+ for (int k = 0; k < fx._meshs.Count; k++)
+ {
+ MeshRenderer meshRenderer = fx._meshs[k];
+ bool flag4 = meshRenderer != null;
+ if (flag4)
+ {
+ meshRenderer.gameObject.layer = fx._layer;
+ }
+ }
+ }
+ }
+ }
+
+ private static void SyncRenderQueue(XFx fx)
+ {
+ bool flag = fx._renderQueue > 0;
+ if (flag)
+ {
+ for (int i = 0; i < fx._particles.Count; i++)
+ {
+ ParticleSystem particleSystem = fx._particles[i];
+ Renderer component = particleSystem.GetComponent<Renderer>();
+ bool flag2 = component != null && component.sharedMaterial != null;
+ if (flag2)
+ {
+ component.material.renderQueue = fx._renderQueue;
+ }
+ }
+ bool flag3 = fx._meshs != null;
+ if (flag3)
+ {
+ for (int j = 0; j < fx._meshs.Count; j++)
+ {
+ MeshRenderer meshRenderer = fx._meshs[j];
+ bool flag4 = meshRenderer != null && meshRenderer.sharedMaterial != null;
+ if (flag4)
+ {
+ meshRenderer.material.renderQueue = fx._renderQueue;
+ }
+ }
+ }
+ }
+ }
+
+ public static void SyncRefreshUIRenderQueue(XFx fx)
+ {
+ bool flag = fx.m_GameObject != null;
+ if (flag)
+ {
+ for (int i = 0; i < fx._particles.Count; i++)
+ {
+ IControlParticle controlParticle = fx._particles[i].gameObject.GetComponent("ControlParticle") as IControlParticle;
+ bool flag2 = controlParticle != null;
+ if (flag2)
+ {
+ controlParticle.RefreshRenderQueue(true);
+ }
+ }
+ }
+ }
+
+ private static void SyncActive(XFx fx)
+ {
+ bool flag = fx.m_GameObject != null;
+ if (flag)
+ {
+ fx.m_GameObject.SetActive(fx._enable);
+ }
+ }
+
+ private static void SyncParent(XFx fx)
+ {
+ bool flag = fx.m_TransformCache != null;
+ if (flag)
+ {
+ fx.m_TransformCache.parent = fx._parent;
+ fx.m_TransformCache.localPosition = fx._pos;
+ fx.m_TransformCache.localRotation = fx._rot;
+ fx.m_TransformCache.localScale = fx._scale;
+ }
+ }
+
+ private void SetTransform()
+ {
+ bool flag = this.m_TransformCache != null;
+ if (flag)
+ {
+ bool flag2 = this._parent == null;
+ if (flag2)
+ {
+ this.m_TransformCache.position = this._pos;
+ this.m_TransformCache.rotation = this._rot;
+ this.m_TransformCache.localScale = this._scale;
+ }
+ else
+ {
+ bool follow = this._follow;
+ if (follow)
+ {
+ this.m_TransformCache.parent = this._parent;
+ this.m_TransformCache.localPosition = Vector3.zero;
+ this.m_TransformCache.localRotation = Quaternion.identity;
+ this.m_TransformCache.localScale = this._scale;
+ this.m_TransformCache.localPosition += this._parent.rotation * this._offset;
+ }
+ else
+ {
+ this.m_TransformCache.position = this._parent.position + this._parent.rotation * this._offset;
+ this.m_TransformCache.rotation = this._parent.rotation;
+ this.m_TransformCache.localScale = this._scale;
+ }
+ bool flag3 = Mathf.Abs(this._translate) > 0.001f;
+ if (flag3)
+ {
+ this.m_TransformCache.Translate(Vector3.up * this._translate);
+ this._translate = 0f;
+ }
+ }
+ }
+ }
+
+ private void RealPlay()
+ {
+ bool flag = this._parent == null && this._parentXgo != null;
+ if (flag)
+ {
+ this._parent = this._parentXgo.Find("");
+ bool flag2 = this._parent != null && !string.IsNullOrEmpty(this._transName);
+ if (flag2)
+ {
+ Transform transform = this._parent.Find(this._transName);
+ bool flag3 = transform == null;
+ if (flag3)
+ {
+ int num = this._transName.LastIndexOf("/");
+ bool flag4 = num >= 0;
+ if (flag4)
+ {
+ string text = this._transName.Substring(num + 1);
+ transform = this._parent.Find(text);
+ bool flag5 = transform != null;
+ if (flag5)
+ {
+ this._parent = transform;
+ }
+ }
+ }
+ else
+ {
+ this._parent = transform;
+ }
+ }
+ }
+ this.SetTransform();
+ bool enable = this._enable;
+ if (enable)
+ {
+ bool flag6 = this.m_GameObject != null && !this.m_GameObject.activeSelf;
+ if (flag6)
+ {
+ this.m_GameObject.SetActive(true);
+ }
+ bool flag7 = this._animation != null;
+ if (flag7)
+ {
+ this._animation.enabled = true;
+ this._animation.Play();
+ this._animState = this._animation[this._animation.name];
+ bool flag8 = this._animState != null;
+ if (flag8)
+ {
+ bool flag9 = this._speed_ratio > 0f;
+ if (flag9)
+ {
+ this._animState.speed = 1f / this._speed_ratio;
+ }
+ else
+ {
+ this._animState.speed = 0f;
+ }
+ }
+ }
+ bool flag10 = this._animator != null;
+ if (flag10)
+ {
+ this._animator.enabled = true;
+ bool flag11 = this._speed_ratio > 0f;
+ if (flag11)
+ {
+ this._animator.speed = 1f / this._speed_ratio;
+ }
+ else
+ {
+ this._animator.speed = 0f;
+ }
+ bool flag12 = this._animator.runtimeAnimatorController != null;
+ if (flag12)
+ {
+ this._animator.Play(this._animator.runtimeAnimatorController.name, 0, 0f);
+ }
+ }
+ bool flag13 = this._particles != null;
+ if (flag13)
+ {
+ this._startSize = this._scale.x;
+ for (int i = 0; i < this._particles.Count; i++)
+ {
+ ParticleSystem particleSystem = this._particles[i];
+ ParticleSystem.MainModule main = particleSystem.main;
+ bool flag14 = this._speed_ratio > 0f;
+ if (flag14)
+ {
+ main.simulationSpeed = 1f / this._speed_ratio;
+ }
+ else
+ {
+ main.simulationSpeed = 0f;
+ }
+ bool flag15 = this._startSize > 0f;
+ if (flag15)
+ {
+ ParticleSystem.MinMaxCurve startSize = main.startSize;
+ ParticleSystem.MinMaxCurve startSizeZ = main.startSizeZ;
+ startSize.constantMin = this._startSize * startSizeZ.constantMin;
+ startSize.constantMax = this._startSize * startSizeZ.constantMax;
+ }
+ particleSystem.time = 0f;
+ particleSystem.Play(false);
+ }
+ }
+ bool flag16 = this._projectors != null;
+ if (flag16)
+ {
+ this._startProjectorSize = 1f;
+ float aspectRatio = 1f;
+ bool flag17 = this._scale.z > 0f;
+ if (flag17)
+ {
+ aspectRatio = this._scale.x / this._scale.z;
+ this._startProjectorSize = this._scale.z;
+ }
+ for (int j = 0; j < this._projectors.Count; j++)
+ {
+ Projector projector = this._projectors[j];
+ projector.enabled = true;
+ projector.aspectRatio = aspectRatio;
+ projector.orthographicSize *= this._startProjectorSize;
+ }
+ }
+ bool flag18 = this._weaponTail != null;
+ if (flag18)
+ {
+ this._weaponTail.Activate();
+ }
+ bool flag19 = this._trail != null;
+ if (flag19)
+ {
+ this._trail.enabled = true;
+ }
+ this.StickToGround();
+ }
+ }
+
+ private void ReqPlay()
+ {
+ bool isLoaded = this.IsLoaded;
+ if (isLoaded)
+ {
+ XFx.SyncPlay(this);
+ }
+ else
+ {
+ this.SetCbFlag(XFx.ECallbackCmd.ESyncPlay, true);
+ }
+ }
+
+ public void Play(Vector3 position, Quaternion rotation, Vector3 scale, float speed_ratio = 1f)
+ {
+ this._parent = null;
+ this._parentXgo = null;
+ this._pos = position;
+ this._rot = rotation;
+ this._scale = scale;
+ this._offset = Vector3.zero;
+ this._speed_ratio = speed_ratio;
+ this._follow = false;
+ this._sticky = false;
+ this._transName = "";
+ this._translate = 0f;
+ this.ReqPlay();
+ }
+
+ public void Play(Transform parent, Vector3 offset, Vector3 scale, float speed_ratio = 1f, bool follow = false, bool sticky = false)
+ {
+ this._parent = parent;
+ this._parentXgo = null;
+ this._pos = Vector3.zero;
+ this._rot = Quaternion.identity;
+ this._scale = scale;
+ this._offset = offset;
+ this._speed_ratio = speed_ratio;
+ this._follow = follow;
+ this._sticky = sticky;
+ this._transName = "";
+ this._translate = 0f;
+ this.ReqPlay();
+ }
+
+ public void Play(XGameObject parent, Vector3 offset, Vector3 scale, float speed_ratio = 1f, bool follow = false, bool sticky = false, string transName = "", float translate = 0f)
+ {
+ this._parent = null;
+ this._parentXgo = parent;
+ this._pos = Vector3.zero;
+ this._rot = Quaternion.identity;
+ this._scale = scale;
+ this._offset = offset;
+ this._speed_ratio = speed_ratio;
+ this._follow = follow;
+ this._sticky = sticky;
+ this._transName = transName;
+ this._translate = translate;
+ this.ReqPlay();
+ }
+
+ public void Play()
+ {
+ this.ReqPlay();
+ }
+
+ public void SetParent(Transform parent)
+ {
+ this._parent = parent;
+ this._parentXgo = null;
+ this._pos = Vector3.zero;
+ this._rot = Quaternion.identity;
+ this._scale = Vector3.one;
+ this._offset = Vector3.zero;
+ this._speed_ratio = 1f;
+ this._follow = false;
+ this._sticky = false;
+ this._transName = "";
+ this._translate = 0f;
+ }
+
+ public void SetParent(Transform parent, Vector3 position, Quaternion rotation, Vector3 scale)
+ {
+ this._parent = parent;
+ this._pos = position;
+ this._rot = rotation;
+ this._scale = scale;
+ bool isLoaded = this.IsLoaded;
+ if (isLoaded)
+ {
+ XFx.SyncParent(this);
+ }
+ else
+ {
+ this.SetCbFlag(XFx.ECallbackCmd.ESyncParent, true);
+ }
+ }
+
+ public void Stop()
+ {
+ bool flag = this.m_GameObject != null && this.m_GameObject.transform != null;
+ if (flag)
+ {
+ this.m_GameObject.transform.localScale = Vector3.one;
+ }
+ bool flag2 = this._animation != null;
+ if (flag2)
+ {
+ this._animation.Stop();
+ this._animation.enabled = false;
+ }
+ bool flag3 = this._animator != null;
+ if (flag3)
+ {
+ this._animator.speed = 1f;
+ this._animator.enabled = false;
+ }
+ bool flag4 = this._particles != null;
+ if (flag4)
+ {
+ for (int i = 0; i < this._particles.Count; i++)
+ {
+ ParticleSystem particleSystem = this._particles[i];
+ bool flag5 = particleSystem != null;
+ if (flag5)
+ {
+ particleSystem.Stop(false);
+ particleSystem.Clear(false);
+ }
+ }
+ }
+ bool flag6 = this._projectors != null;
+ if (flag6)
+ {
+ for (int j = 0; j < this._projectors.Count; j++)
+ {
+ Projector projector = this._projectors[j];
+ bool flag7 = projector != null;
+ if (flag7)
+ {
+ projector.enabled = false;
+ bool flag8 = this._startProjectorSize > 0f;
+ if (flag8)
+ {
+ projector.orthographicSize /= this._startProjectorSize;
+ }
+ }
+ }
+ }
+ bool flag9 = this._weaponTail != null;
+ if (flag9)
+ {
+ this._weaponTail.Deactivate();
+ }
+ bool flag10 = this._trail != null;
+ if (flag10)
+ {
+ this._trail.enabled = false;
+ }
+ this._startSize = 1f;
+ this._startProjectorSize = 1f;
+ }
+
+ public void StickToGround()
+ {
+ bool flag = this.m_GameObject == null || this.m_GameObject.transform.parent == null || !this._sticky;
+ if (!flag)
+ {
+ Vector3 zero = Vector3.zero;
+ float num = 0f;
+ Vector3 position = this.m_GameObject.transform.parent.position;
+ float y = this.m_GameObject.transform.parent.localScale.y;
+ bool flag2 = XCurrentGrid.grid.TryGetHeight(position, out num);
+ if (flag2)
+ {
+ zero.y = (num - position.y) / y + 0.025f;
+ }
+ this.m_GameObject.transform.localPosition = zero;
+ }
+ }
+
+ public void SetUIWidget(GameObject go)
+ {
+ bool flag = this.m_GameObject != null;
+ if (flag)
+ {
+ for (int i = 0; i < this._particles.Count; i++)
+ {
+ IControlParticle controlParticle = this._particles[i].gameObject.GetComponent("ControlParticle") as IControlParticle;
+ bool flag2 = controlParticle != null;
+ if (flag2)
+ {
+ controlParticle.SetWidget(go);
+ }
+ }
+ }
+ }
+
+ public void SetActive(bool enable)
+ {
+ bool flag = this._enable != enable;
+ if (flag)
+ {
+ this._enable = enable;
+ bool isLoaded = this.IsLoaded;
+ if (isLoaded)
+ {
+ XFx.SyncActive(this);
+ }
+ else
+ {
+ this.SetCbFlag(XFx.ECallbackCmd.ESyncActive, true);
+ }
+ }
+ }
+
+ public bool IsSameObj(int id)
+ {
+ return this._instanceID == id;
+ }
+
+ public void SetShader(int type)
+ {
+ }
+
+ public void ResetShader()
+ {
+ }
+
+ public void SetColor(byte r, byte g, byte b, byte a)
+ {
+ }
+
+ public void SetColor(Color32 c)
+ {
+ }
+
+ public void Update()
+ {
+ }
+
+ public void SetRenderLayer(int layer)
+ {
+ bool flag = this._layer != layer;
+ if (flag)
+ {
+ this._layer = layer;
+ bool isLoaded = this.IsLoaded;
+ if (isLoaded)
+ {
+ XFx.SyncLayer(this);
+ }
+ else
+ {
+ this.SetCbFlag(XFx.ECallbackCmd.ESyncLayer, true);
+ }
+ }
+ }
+
+ public void Clean()
+ {
+ }
+
+ public void SetRenderQueue(int renderQueue)
+ {
+ bool flag = this._renderQueue != renderQueue;
+ if (flag)
+ {
+ this._renderQueue = renderQueue;
+ bool isLoaded = this.IsLoaded;
+ if (isLoaded)
+ {
+ XFx.SyncRenderQueue(this);
+ }
+ else
+ {
+ this.SetCbFlag(XFx.ECallbackCmd.ESyncRenderQueue, true);
+ }
+ }
+ }
+
+ public void RefreshUIRenderQueue()
+ {
+ bool isLoaded = this.IsLoaded;
+ if (isLoaded)
+ {
+ XFx.SyncRefreshUIRenderQueue(this);
+ }
+ else
+ {
+ this.SetCbFlag(XFx.ECallbackCmd.ESyncRefreshRenderQueue, true);
+ }
+ }
+
+ public static void ProcessMesh(UnityEngine.Object obj, object cbOjb)
+ {
+ GameObject gameObject = obj as GameObject;
+ bool flag = gameObject != null;
+ if (flag)
+ {
+ XFx xfx = cbOjb as XFx;
+ List<Component> list = ListPool<Component>.Get();
+ gameObject.GetComponentsInChildren<Component>(true, list);
+ for (int i = 0; i < list.Count; i++)
+ {
+ Component component = list[i];
+ bool flag2 = component is MeshRenderer;
+ if (flag2)
+ {
+ bool flag3 = xfx._meshs == null;
+ if (flag3)
+ {
+ xfx._meshs = ListPool<MeshRenderer>.Get();
+ }
+ xfx._meshs.Add(component as MeshRenderer);
+ }
+ }
+ ListPool<Component>.Release(list);
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XFx.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XFx.cs.meta new file mode 100644 index 00000000..bad618ac --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XFx.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8f37a87c64fbf2046a0a9c202879c300 +timeCreated: 1611465703 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XFxData.cs b/Client/Assets/Scripts/XUtliPoolLib/XFxData.cs new file mode 100644 index 00000000..baf29aed --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XFxData.cs @@ -0,0 +1,91 @@ +using System;
+using System.ComponentModel;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ [Serializable]
+ public class XFxData : XBaseData
+ {
+ [SerializeField]
+ public SkillFxType Type = SkillFxType.FirerBased;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float At;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float End;
+
+ [SerializeField]
+ public string Fx = null;
+
+ [SerializeField]
+ public string Bone = null;
+
+ [SerializeField]
+ [DefaultValue(1f)]
+ public float ScaleX;
+
+ [SerializeField]
+ [DefaultValue(1f)]
+ public float ScaleY;
+
+ [SerializeField]
+ [DefaultValue(1f)]
+ public float ScaleZ;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float OffsetX;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float OffsetY;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float OffsetZ;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Target_OffsetX;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Target_OffsetY;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Target_OffsetZ;
+
+ [SerializeField]
+ [DefaultValue(true)]
+ public bool Follow;
+
+ [SerializeField]
+ [DefaultValue(false)]
+ public bool StickToGround;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Destroy_Delay;
+
+ [SerializeField]
+ [DefaultValue(false)]
+ public bool Combined;
+
+ [SerializeField]
+ [DefaultValue(false)]
+ public bool Shield;
+
+ public XFxData()
+ {
+ this.Follow = true;
+ this.ScaleX = 1f;
+ this.ScaleY = 1f;
+ this.ScaleZ = 1f;
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XFxData.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XFxData.cs.meta new file mode 100644 index 00000000..cde62e82 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XFxData.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 7f69a5c3d3aecc64fa65076a3fda0c81 +timeCreated: 1611465693 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XFxDataClip.cs b/Client/Assets/Scripts/XUtliPoolLib/XFxDataClip.cs new file mode 100644 index 00000000..d7a0b977 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XFxDataClip.cs @@ -0,0 +1,39 @@ +using System;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ [Serializable]
+ public class XFxDataClip : XCutSceneClip
+ {
+ [SerializeField]
+ public string Fx = null;
+
+ [SerializeField]
+ public int BindIdx = 0;
+
+ [SerializeField]
+ public string Bone = null;
+
+ [SerializeField]
+ public float Scale = 1f;
+
+ [SerializeField]
+ public bool Follow = true;
+
+ [SerializeField]
+ public float Destroy_Delay = 0f;
+
+ [SerializeField]
+ public float AppearX = 0f;
+
+ [SerializeField]
+ public float AppearY = 0f;
+
+ [SerializeField]
+ public float AppearZ = 0f;
+
+ [SerializeField]
+ public float Face = 0f;
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XFxDataClip.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XFxDataClip.cs.meta new file mode 100644 index 00000000..e092acc7 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XFxDataClip.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b6bd3492e2e44ef47bc4a59fb193cd7d +timeCreated: 1611465746 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XFxMgr.cs b/Client/Assets/Scripts/XUtliPoolLib/XFxMgr.cs new file mode 100644 index 00000000..b0da3691 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XFxMgr.cs @@ -0,0 +1,143 @@ +using System;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public class XFxMgr : XSingleton<XFxMgr>
+ {
+ private Dictionary<int, XFx> _fxs = new Dictionary<int, XFx>();
+
+ private XTimerMgr.ElapsedEventHandler _innerDestroyFxCb = null;
+
+ public int CameraLayerMask = -1;
+
+ public static bool EmptyFx = false;
+
+ public static bool FilterFarFx = false;
+
+ public static float FilterFxDis0 = 200f;
+
+ public static float FilterFxDis1 = 300f;
+
+ public static float FilterFxDis2 = 500f;
+
+ public static float FilterFxDis4 = 1600f;
+
+ public static int maxBehitFx = 3;
+
+ public static int currentBeHitFx = 0;
+
+ public static float minBehitFxTime = 0.1f;
+
+ public static float lastBehitFxTime = 0f;
+
+ public static int MaxParticelCount = -1;
+
+ public XFxMgr()
+ {
+ this._innerDestroyFxCb = new XTimerMgr.ElapsedEventHandler(this.InnerDestroyFx);
+ }
+
+ public XFx CreateFx(string prefab_location, LoadCallBack loadFinish = null, bool async = true)
+ {
+ XFx xfx = XFx.CreateXFx(prefab_location, loadFinish, async);
+ this._fxs.Add(xfx._instanceID, xfx);
+ return xfx;
+ }
+
+ public XFx CreateAndPlay(string location, XGameObject parent, Vector3 offset, Vector3 scale, float speed_ratio = 1f, bool follow = false, float duration = -1f, bool async = true)
+ {
+ XFx xfx = this.CreateFx(location, null, async);
+ xfx.Play(parent, offset, scale, speed_ratio, follow, false, "", 0f);
+ xfx.DelayDestroy = duration;
+ XSingleton<XFxMgr>.singleton.DestroyFx(xfx, false);
+ return xfx;
+ }
+
+ public XFx CreateAndPlay(string location, Transform parent, Vector3 offset, Vector3 scale, float speed_ratio = 1f, bool follow = false, float duration = -1f, bool async = true)
+ {
+ XFx xfx = this.CreateFx(location, null, async);
+ xfx.Play(parent, offset, scale, speed_ratio, follow, false);
+ xfx.DelayDestroy = duration;
+ XSingleton<XFxMgr>.singleton.DestroyFx(xfx, false);
+ return xfx;
+ }
+
+ public XFx CreateUIFx(string location, Transform parent, bool processMesh = false)
+ {
+ return this.CreateUIFx(location, parent, Vector3.one, processMesh);
+ }
+
+ public XFx CreateUIFx(string location, Transform parent, Vector3 scale, bool processMesh = false)
+ {
+ XFx xfx = this.CreateFx(location, processMesh ? XFx._ProcessMesh : null, true);
+ int renderLayer = LayerMask.NameToLayer("UI");
+ xfx.SetRenderLayer(renderLayer);
+ xfx.Play(parent, Vector3.zero, scale, 1f, true, false);
+ xfx.RefreshUIRenderQueue();
+ return xfx;
+ }
+
+ public void DestroyFx(XFx fx, bool bImmediately = true)
+ {
+ XSingleton<XTimerMgr>.singleton.KillTimer(fx.Token);
+ bool flag = bImmediately || fx.DelayDestroy <= 0f;
+ if (flag)
+ {
+ this.InnerDestroyFx(fx);
+ }
+ else
+ {
+ fx.Token = XSingleton<XTimerMgr>.singleton.SetTimer(fx.DelayDestroy, this._innerDestroyFxCb, fx);
+ }
+ }
+
+ public void OnLeaveScene()
+ {
+ this.Clear();
+ }
+
+ public void OnLeaveStage()
+ {
+ this.Clear();
+ }
+
+ public void PostUpdate()
+ {
+ foreach (KeyValuePair<int, XFx> keyValuePair in this._fxs)
+ {
+ XFx value = keyValuePair.Value;
+ bool flag = value != null;
+ if (flag)
+ {
+ value.StickToGround();
+ }
+ }
+ }
+
+ private void InnerDestroyFx(object o)
+ {
+ XFx xfx = o as XFx;
+ bool flag = xfx == null;
+ if (flag)
+ {
+ XSingleton<XDebug>.singleton.AddErrorLog("Destroy Fx error: ", o.ToString(), null, null, null, null);
+ }
+ else
+ {
+ this._fxs.Remove(xfx._instanceID);
+ XFx.DestroyXFx(xfx, true);
+ }
+ }
+
+ public void Clear()
+ {
+ foreach (KeyValuePair<int, XFx> keyValuePair in this._fxs)
+ {
+ XFx.DestroyXFx(keyValuePair.Value, false);
+ }
+ this._fxs.Clear();
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XFxMgr.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XFxMgr.cs.meta new file mode 100644 index 00000000..a50fc581 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XFxMgr.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ee07edb0aafe5cb4eb7bc85e18f63ad1 +timeCreated: 1611465805 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XGameObject.cs b/Client/Assets/Scripts/XUtliPoolLib/XGameObject.cs new file mode 100644 index 00000000..d5c37afa --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XGameObject.cs @@ -0,0 +1,1351 @@ +using System;
+using System.Collections.Generic;
+using UnityEngine;
+using XUpdater;
+
+namespace XUtliPoolLib
+{
+ public class XGameObject : XEngineObject
+ {
+ public Vector3 Position
+ {
+ get
+ {
+ return this.m_Position;
+ }
+ set
+ {
+ this.m_Position = value;
+ this.AppendPositionCommand();
+ }
+ }
+
+ public Vector3 LocalEulerAngles
+ {
+ get
+ {
+ bool flag = this.Trans != null;
+ Vector3 result;
+ if (flag)
+ {
+ result = this.Trans.localEulerAngles;
+ }
+ else
+ {
+ result = Vector3.zero;
+ }
+ return result;
+ }
+ set
+ {
+ bool flag = this.Trans != null;
+ if (flag)
+ {
+ this.Trans.localEulerAngles = value;
+ }
+ }
+ }
+
+ public Quaternion Rotation
+ {
+ get
+ {
+ return this.m_Rotation;
+ }
+ set
+ {
+ this.m_Rotation = value;
+ this.AppendRotationCommand();
+ }
+ }
+
+ public Vector3 LocalScale
+ {
+ get
+ {
+ return this.m_Scale;
+ }
+ set
+ {
+ this.m_Scale = value;
+ this.AppendScaleCommand();
+ }
+ }
+
+ public int Layer
+ {
+ get
+ {
+ return this.m_Layer;
+ }
+ set
+ {
+ this.m_Layer = value;
+ this.AppendLayerCommand();
+ }
+ }
+
+ public float CCStepOffset
+ {
+ get
+ {
+ return this.m_CCStepOffset;
+ }
+ set
+ {
+ this.m_CCStepOffset = value;
+ this.AppendCCStepOffsetCommand();
+ }
+ }
+
+ public bool EnableCC
+ {
+ get
+ {
+ return this.m_EnableCC;
+ }
+ set
+ {
+ this.m_EnableCC = value;
+ this.AppendEnableCCCommand();
+ }
+ }
+
+ public bool EnableBC
+ {
+ get
+ {
+ return this.m_EnableBC;
+ }
+ set
+ {
+ this.m_EnableBC = value;
+ this.AppendEnableBCommand();
+ }
+ }
+
+ public bool UpdateWhenOffscreen
+ {
+ set
+ {
+ this.m_UpdateWhenOffscreen = value;
+ this.AppendUpdateWhenOffscreen();
+ }
+ }
+
+ public Vector3 Forward
+ {
+ get
+ {
+ return this.m_Rotation * Vector3.forward;
+ }
+ set
+ {
+ this.m_Rotation = Quaternion.LookRotation(value);
+ this.AppendRotationCommand();
+ }
+ }
+
+ public Vector3 Up
+ {
+ get
+ {
+ return this.m_Rotation * Vector3.up;
+ }
+ set
+ {
+ this.m_Rotation = Quaternion.FromToRotation(Vector3.up, value);
+ this.AppendRotationCommand();
+ }
+ }
+
+ public Vector3 Right
+ {
+ get
+ {
+ return this.m_Rotation * Vector3.right;
+ }
+ set
+ {
+ this.m_Rotation = Quaternion.FromToRotation(Vector3.right, value);
+ this.AppendRotationCommand();
+ }
+ }
+
+ public string Tag
+ {
+ get
+ {
+ return this.m_Tag;
+ }
+ set
+ {
+ this.m_Tag = value;
+ this.AppendTagCommand();
+ }
+ }
+
+ private Transform Trans
+ {
+ get
+ {
+ bool isLoaded = this.IsLoaded;
+ if (isLoaded)
+ {
+ bool flag = this.m_GameObject != null && this.m_TransformCache == null;
+ if (flag)
+ {
+ this.m_TransformCache = this.m_GameObject.transform;
+ }
+ }
+ return this.m_TransformCache;
+ }
+ }
+
+ public XAnimator Ator
+ {
+ get
+ {
+ return this.m_Ator;
+ }
+ }
+
+ public ulong UID
+ {
+ get
+ {
+ return this.m_UID;
+ }
+ set
+ {
+ this.m_UID = value;
+ }
+ }
+
+ public string Name
+ {
+ get
+ {
+ return this.m_Name;
+ }
+ set
+ {
+ this.m_Name = value;
+ bool flag = this.m_GameObject != null;
+ if (flag)
+ {
+ this.m_GameObject.name = this.m_Name;
+ }
+ }
+ }
+
+ public bool IsValid
+ {
+ get
+ {
+ return this.m_Valid;
+ }
+ }
+
+ public bool IsVisible
+ {
+ get
+ {
+ bool flag = this.m_SkinMeshRenderCache != null;
+ return flag && this.m_SkinMeshRenderCache.isVisible;
+ }
+ }
+
+ public bool IsNotEmptyObject
+ {
+ get
+ {
+ return !string.IsNullOrEmpty(this.m_Location);
+ }
+ }
+
+ public bool HasSkin
+ {
+ get
+ {
+ return this.m_SkinMeshRenderCache != null;
+ }
+ }
+
+ public SkinnedMeshRenderer SMR
+ {
+ get
+ {
+ return this.m_SkinMeshRenderCache;
+ }
+ }
+
+ public bool IsLoaded
+ {
+ get
+ {
+ return this.m_LoadStatus == 1;
+ }
+ }
+
+ private bool m_Valid = false;
+
+ private Vector3 m_Position = XResourceLoaderMgr.Far_Far_Away;
+
+ private Quaternion m_Rotation = Quaternion.identity;
+
+ private Vector3 m_Scale = Vector3.one;
+
+ private bool m_EnableCC = false;
+
+ private bool m_EnableBC = false;
+
+ private float m_CCStepOffset = 0f;
+
+ private bool m_UpdateWhenOffscreen = false;
+
+ private bool m_EnableRender = true;
+
+ private string m_TagFilter = "";
+
+ private string m_Tag = "Untagged";
+
+ private int m_Layer = 0;
+
+ private ulong m_UID = 0UL;
+
+ private string m_Name = "";
+
+ private Transform m_TransformCache = null;
+
+ private SkinnedMeshRenderer m_SkinMeshRenderCache = null;
+
+ private CharacterController m_ccCache = null;
+
+ private BoxCollider m_bcCache = null;
+
+ public int objID = -1;
+
+ public static int globalObjID = 0;
+
+ public static string EmptyObject = "";
+
+ private XAnimator m_Ator = null;
+
+ private short m_UpdateFrame = 0;
+
+ private LoadAsyncTask loadTask = null;
+
+ private LoadCallBack loadCb = null;
+
+ private XEngineCommand afterLoadCommand = null;
+
+ private short m_LoadStatus = 0;
+
+ private int m_LoadFinishCbFlag = 0;
+
+ private static CommandCallback SyncSyncSetParentTransCmd = new CommandCallback(XGameObject.SyncSetParentTrans);
+
+ private static CommandCallback SyncLocalPRSCmd = new CommandCallback(XGameObject.SyncLocalPRS);
+
+ private static LoadCallback[] loadCallbacks = null;
+
+ private static CommandCallback _setPhysicTransformCb = new CommandCallback(XGameObject._SetPhysicTransform);
+
+ private static CommandCallback _setRenderLayerCb = new CommandCallback(XGameObject._SetRenderLayer);
+
+ public static int delayFrameCount = 100;
+
+ private enum ECallbackCmd
+ {
+ ESyncPosition = 1,
+ ESyncRotation,
+ ESyncScale = 4,
+ ESyncLayer = 8,
+ ESyncCCEnable = 16,
+ ESyncBCEnable = 32,
+ ESyncUpdateWhenOffscreen = 64,
+ ESyncActive = 128,
+ ESyncTag = 256,
+ ESyncCCStepOffset = 512
+ }
+
+ public XGameObject()
+ {
+ this.loadCb = new LoadCallBack(this.LoadFinish);
+ bool flag = XGameObject.loadCallbacks == null;
+ if (flag)
+ {
+ XGameObject.loadCallbacks = new LoadCallback[]
+ {
+ new LoadCallback(XGameObject.SyncPosition),
+ new LoadCallback(XGameObject.SyncRotation),
+ new LoadCallback(XGameObject.SyncScale),
+ new LoadCallback(XGameObject.SyncLayer),
+ new LoadCallback(XGameObject.SyncCCEnable),
+ new LoadCallback(XGameObject.SyncBCEnable),
+ new LoadCallback(XGameObject.SyncUpdateWhenOffscreen),
+ new LoadCallback(XGameObject.SyncActive),
+ new LoadCallback(XGameObject.SyncTag),
+ new LoadCallback(XGameObject.SyncCCOffset)
+ };
+ }
+ }
+
+ public void Reset()
+ {
+ this.m_Position = XResourceLoaderMgr.Far_Far_Away;
+ this.m_Rotation = Quaternion.identity;
+ this.m_Scale = Vector3.one;
+ this.m_EnableCC = false;
+ this.m_EnableBC = false;
+ this.m_Tag = "Untagged";
+ this.m_Layer = 0;
+ this.m_UID = 0UL;
+ this.m_Name = "";
+ this.m_TransformCache = null;
+ this.m_SkinMeshRenderCache = null;
+ this.objID = -1;
+ bool flag = this.afterLoadCommand != null;
+ if (flag)
+ {
+ XSingleton<XEngineCommandMgr>.singleton.ReturnCommand(this.afterLoadCommand);
+ this.afterLoadCommand = null;
+ }
+ bool flag2 = this.m_ccCache != null;
+ if (flag2)
+ {
+ this.m_ccCache.enabled = false;
+ this.m_ccCache = null;
+ }
+ bool flag3 = this.m_bcCache != null;
+ if (flag3)
+ {
+ this.m_bcCache.enabled = false;
+ this.m_bcCache = null;
+ }
+ this.m_LoadStatus = 0;
+ bool flag4 = this.loadTask != null;
+ if (flag4)
+ {
+ this.loadTask.CancelLoad(this.loadCb);
+ this.loadTask = null;
+ }
+ this.m_LoadFinishCbFlag = 0;
+ bool flag5 = this.m_Ator != null;
+ if (flag5)
+ {
+ this.m_Ator.Reset();
+ CommonObjectPool<XAnimator>.Release(this.m_Ator);
+ this.m_Ator = null;
+ }
+ this.m_UpdateFrame = 0;
+ bool flag6 = string.IsNullOrEmpty(this.m_Location);
+ if (flag6)
+ {
+ XSingleton<XEngineCommandMgr>.singleton.ReturnGameObject(this.m_GameObject);
+ this.m_GameObject = null;
+ }
+ else
+ {
+ bool flag7 = this.m_GameObject != null;
+ if (flag7)
+ {
+ this.m_GameObject.name = this.m_Location;
+ }
+ XResourceLoaderMgr.SafeDestroy(ref this.m_GameObject, true);
+ }
+ this.m_Location = "";
+ this.m_Parent = null;
+ this.m_Valid = false;
+ }
+
+ public void LoadAsync(string location, bool usePool)
+ {
+ this.loadTask = XSingleton<XResourceLoaderMgr>.singleton.CreateFromPrefabAsync(location, this.loadCb, null, usePool);
+ bool isLoaded = this.IsLoaded;
+ if (isLoaded)
+ {
+ this.loadTask = null;
+ }
+ }
+
+ public void Load(string location, bool usePool)
+ {
+ GameObject obj = XSingleton<XResourceLoaderMgr>.singleton.CreateFromAsset<GameObject>(location, ".prefab", usePool, false);
+ this.LoadFinish(obj, null);
+ }
+
+ private void LoadFinish(UnityEngine.Object obj, object cbOjb)
+ {
+ this.m_GameObject = (obj as GameObject);
+ this.m_LoadStatus = 1;
+ bool flag = this.m_GameObject != null;
+ if (flag)
+ {
+ this.m_ccCache = this.m_GameObject.GetComponent<CharacterController>();
+ this.m_bcCache = this.m_GameObject.GetComponent<BoxCollider>();
+ this.m_SkinMeshRenderCache = this.m_GameObject.GetComponentInChildren<SkinnedMeshRenderer>();
+ bool flag2 = !string.IsNullOrEmpty(this.m_Name);
+ if (flag2)
+ {
+ this.m_GameObject.name = this.m_Name;
+ }
+ bool flag3 = this.m_Ator != null;
+ if (flag3)
+ {
+ this.m_UpdateFrame = 0;
+ this.m_Ator.Init(this.m_GameObject);
+ }
+ bool flag4 = this.afterLoadCommand != null;
+ if (flag4)
+ {
+ bool flag5 = this.afterLoadCommand.IsValid();
+ if (flag5)
+ {
+ this.afterLoadCommand.Execute();
+ }
+ XSingleton<XEngineCommandMgr>.singleton.ReturnCommand(this.afterLoadCommand);
+ this.afterLoadCommand = null;
+ }
+ }
+ for (int i = 0; i < XGameObject.loadCallbacks.Length; i++)
+ {
+ bool flag6 = this.IsCbFlag(i);
+ if (flag6)
+ {
+ LoadCallback loadCallback = XGameObject.loadCallbacks[i];
+ loadCallback(this);
+ }
+ }
+ this.m_LoadFinishCbFlag = 0;
+ bool flag7 = this.m_GameObject != null;
+ if (flag7)
+ {
+ bool flag8 = this.m_Layer != this.m_GameObject.layer;
+ if (flag8)
+ {
+ this.m_Layer = this.m_GameObject.layer;
+ }
+ }
+ }
+
+ private void SetCbFlag(XGameObject.ECallbackCmd cmd, bool add)
+ {
+ int num = XFastEnumIntEqualityComparer<XGameObject.ECallbackCmd>.ToInt(cmd);
+ if (add)
+ {
+ this.m_LoadFinishCbFlag |= num;
+ }
+ else
+ {
+ this.m_LoadFinishCbFlag &= ~num;
+ }
+ }
+
+ private bool IsCbFlag(int index)
+ {
+ int num = 1 << index;
+ return (this.m_LoadFinishCbFlag & num) != 0;
+ }
+
+ public static int GetGlobalObjID()
+ {
+ XGameObject.globalObjID++;
+ bool flag = XGameObject.globalObjID > 1000000;
+ if (flag)
+ {
+ XGameObject.globalObjID = 0;
+ }
+ return XGameObject.globalObjID;
+ }
+
+ public static XGameObject CreateXGameObject(string location, Vector3 position, Quaternion rotation, bool async = true, bool usePool = true)
+ {
+ XGameObject xgameObject = XGameObject.CreateXGameObject(location, async, usePool);
+ xgameObject.Position = position;
+ xgameObject.Rotation = rotation;
+ return xgameObject;
+ }
+
+ public static XGameObject CreateXGameObject(string location, bool async = true, bool usePool = true)
+ {
+ XGameObject xgameObject = CommonObjectPool<XGameObject>.Get();
+ xgameObject.m_Valid = true;
+ xgameObject.objID = XGameObject.GetGlobalObjID();
+ xgameObject.m_Location = location;
+ bool debug = XEngineCommand.debug;
+ if (debug)
+ {
+ XSingleton<XDebug>.singleton.AddWarningLog2("[EngineCommand] CreateXGameObject {0} ID {1}", new object[]
+ {
+ location,
+ xgameObject.objID
+ });
+ }
+ bool flag = string.IsNullOrEmpty(location);
+ if (flag)
+ {
+ GameObject gameObject = XSingleton<XEngineCommandMgr>.singleton.GetGameObject();
+ xgameObject.LoadFinish(gameObject, null);
+ }
+ else
+ {
+ bool flag2 = XSingleton<XResourceLoaderMgr>.singleton.DelayLoad && async;
+ if (flag2)
+ {
+ xgameObject.LoadAsync(location, usePool);
+ }
+ else
+ {
+ xgameObject.Load(location, usePool);
+ }
+ }
+ return xgameObject;
+ }
+
+ public static XGameObject CloneXGameObject(XGameObject xgo, bool async = true)
+ {
+ XGameObject xgameObject = CommonObjectPool<XGameObject>.Get();
+ xgameObject.m_Valid = true;
+ xgameObject.objID = XGameObject.GetGlobalObjID();
+ xgameObject.m_Location = xgo.m_Location;
+ bool flag = string.IsNullOrEmpty(xgo.m_Location);
+ if (flag)
+ {
+ GameObject gameObject = XSingleton<XEngineCommandMgr>.singleton.GetGameObject();
+ xgameObject.LoadFinish(gameObject, null);
+ }
+ else
+ {
+ bool flag2 = XSingleton<XResourceLoaderMgr>.singleton.DelayLoad && async;
+ if (flag2)
+ {
+ xgameObject.LoadAsync(xgo.m_Location, true);
+ }
+ else
+ {
+ xgameObject.Load(xgo.m_Location, true);
+ }
+ }
+ return xgameObject;
+ }
+
+ public static void DestroyXGameObject(XGameObject gameObject)
+ {
+ bool debug = XEngineCommand.debug;
+ if (debug)
+ {
+ XSingleton<XDebug>.singleton.AddWarningLog2("[EngineCommand] DestroyXGameObject {0} ID {1}", new object[]
+ {
+ gameObject.m_Location,
+ gameObject.objID
+ });
+ }
+ gameObject.Reset();
+ CommonObjectPool<XGameObject>.Release(gameObject);
+ }
+
+ private static void SyncPosition(XGameObject gameObject)
+ {
+ Transform trans = gameObject.Trans;
+ bool flag = trans != null;
+ if (flag)
+ {
+ trans.position = gameObject.m_Position;
+ }
+ }
+
+ private static void SyncRotation(XGameObject gameObject)
+ {
+ Transform trans = gameObject.Trans;
+ bool flag = trans != null;
+ if (flag)
+ {
+ trans.rotation = gameObject.m_Rotation;
+ }
+ }
+
+ private static void SyncScale(XGameObject gameObject)
+ {
+ Transform trans = gameObject.Trans;
+ bool flag = trans != null;
+ if (flag)
+ {
+ trans.localScale = gameObject.m_Scale;
+ }
+ }
+
+ private static void SyncLayer(XGameObject gameObject)
+ {
+ bool flag = gameObject.m_GameObject != null;
+ if (flag)
+ {
+ gameObject.m_GameObject.layer = gameObject.m_Layer;
+ }
+ }
+
+ private static void SyncCCOffset(XGameObject gameObject)
+ {
+ bool flag = gameObject.m_ccCache != null;
+ if (flag)
+ {
+ bool flag2 = gameObject.m_CCStepOffset >= gameObject.m_ccCache.height;
+ if (flag2)
+ {
+ gameObject.m_ccCache.height = gameObject.m_CCStepOffset + 0.1f;
+ }
+ gameObject.m_ccCache.stepOffset = gameObject.m_CCStepOffset;
+ }
+ }
+
+ private static void SyncCCEnable(XGameObject gameObject)
+ {
+ bool flag = gameObject.m_ccCache != null;
+ if (flag)
+ {
+ gameObject.m_ccCache.enabled = gameObject.m_EnableCC;
+ }
+ }
+
+ private static void SyncBCEnable(XGameObject gameObject)
+ {
+ bool flag = gameObject.m_bcCache != null;
+ if (flag)
+ {
+ gameObject.m_bcCache.enabled = gameObject.m_EnableBC;
+ }
+ }
+
+ private static void SyncUpdateWhenOffscreen(XGameObject gameObject)
+ {
+ bool flag = gameObject.m_GameObject != null;
+ if (flag)
+ {
+ XCommon.tmpSkinRender.Clear();
+ gameObject.m_GameObject.GetComponentsInChildren<SkinnedMeshRenderer>(XCommon.tmpSkinRender);
+ int count = XCommon.tmpSkinRender.Count;
+ for (int i = 0; i < count; i++)
+ {
+ XCommon.tmpSkinRender[i].updateWhenOffscreen = gameObject.m_UpdateWhenOffscreen;
+ }
+ XCommon.tmpSkinRender.Clear();
+ }
+ }
+
+ private static void SyncActive(XGameObject gameObject)
+ {
+ bool flag = gameObject.m_GameObject != null;
+ if (flag)
+ {
+ bool isLoaded = gameObject.IsLoaded;
+ if (isLoaded)
+ {
+ XCommon.tmpRender.Clear();
+ gameObject.m_GameObject.GetComponentsInChildren<Renderer>(XCommon.tmpRender);
+ int count = XCommon.tmpRender.Count;
+ for (int i = 0; i < count; i++)
+ {
+ Renderer renderer = XCommon.tmpRender[i];
+ bool flag2 = renderer.sharedMaterial != null && (gameObject.m_TagFilter == "" || renderer.tag.StartsWith(gameObject.m_TagFilter));
+ if (flag2)
+ {
+ renderer.enabled = gameObject.m_EnableRender;
+ }
+ }
+ XCommon.tmpRender.Clear();
+ }
+ }
+ }
+
+ private static void SyncTag(XGameObject gameObject)
+ {
+ bool flag = gameObject.m_GameObject != null;
+ if (flag)
+ {
+ bool isLoaded = gameObject.IsLoaded;
+ if (isLoaded)
+ {
+ gameObject.m_GameObject.tag = gameObject.Tag;
+ }
+ }
+ }
+
+ public void SyncSetParent(XGameObject parent)
+ {
+ bool flag = parent != null;
+ if (flag)
+ {
+ this.m_Parent = parent.m_GameObject;
+ }
+ else
+ {
+ this.m_Parent = null;
+ }
+ bool flag2 = this.Trans != null;
+ if (flag2)
+ {
+ this.Trans.parent = ((parent != null) ? parent.Trans : null);
+ }
+ }
+
+ private static void SyncSetParentTrans(XGameObject gameObject, object obj, int commandID)
+ {
+ bool flag = gameObject.Trans != null;
+ if (flag)
+ {
+ gameObject.Trans.parent = (obj as Transform);
+ }
+ }
+
+ private static void SyncLocalPRS(XGameObject gameObject, object obj, int commandID)
+ {
+ XLocalPRSAsyncData xlocalPRSAsyncData = obj as XLocalPRSAsyncData;
+ bool flag = gameObject.Trans != null && xlocalPRSAsyncData != null;
+ if (flag)
+ {
+ bool flag2 = (xlocalPRSAsyncData.mask & 1) > 0;
+ if (flag2)
+ {
+ gameObject.Trans.localPosition = xlocalPRSAsyncData.localPos;
+ gameObject.SyncPos();
+ }
+ bool flag3 = (xlocalPRSAsyncData.mask & 2) > 0;
+ if (flag3)
+ {
+ gameObject.Trans.localRotation = xlocalPRSAsyncData.localRotation;
+ }
+ bool flag4 = (xlocalPRSAsyncData.mask & 3) > 0;
+ if (flag4)
+ {
+ gameObject.Trans.localScale = xlocalPRSAsyncData.localScale;
+ }
+ }
+ }
+
+ public XAnimator InitAnim()
+ {
+ bool flag = this.m_Ator == null;
+ XAnimator ator;
+ if (flag)
+ {
+ this.m_Ator = CommonObjectPool<XAnimator>.Get();
+ this.m_Ator.xGameObject = this;
+ bool isLoaded = this.IsLoaded;
+ if (isLoaded)
+ {
+ this.m_UpdateFrame = 0;
+ this.m_Ator.Init(this.m_GameObject);
+ }
+ ator = this.m_Ator;
+ }
+ else
+ {
+ ator = this.m_Ator;
+ }
+ return ator;
+ }
+
+ private void AppendPositionCommand()
+ {
+ bool isLoaded = this.IsLoaded;
+ if (isLoaded)
+ {
+ XGameObject.SyncPosition(this);
+ }
+ else
+ {
+ this.SetCbFlag(XGameObject.ECallbackCmd.ESyncPosition, true);
+ }
+ }
+
+ private void AppendRotationCommand()
+ {
+ bool isLoaded = this.IsLoaded;
+ if (isLoaded)
+ {
+ XGameObject.SyncRotation(this);
+ }
+ else
+ {
+ this.SetCbFlag(XGameObject.ECallbackCmd.ESyncRotation, true);
+ }
+ }
+
+ private void AppendScaleCommand()
+ {
+ bool isLoaded = this.IsLoaded;
+ if (isLoaded)
+ {
+ XGameObject.SyncScale(this);
+ }
+ else
+ {
+ this.SetCbFlag(XGameObject.ECallbackCmd.ESyncScale, true);
+ }
+ }
+
+ private void AppendLayerCommand()
+ {
+ bool isLoaded = this.IsLoaded;
+ if (isLoaded)
+ {
+ XGameObject.SyncLayer(this);
+ }
+ else
+ {
+ this.SetCbFlag(XGameObject.ECallbackCmd.ESyncLayer, true);
+ }
+ }
+
+ private void AppendCCStepOffsetCommand()
+ {
+ bool isLoaded = this.IsLoaded;
+ if (isLoaded)
+ {
+ XGameObject.SyncCCOffset(this);
+ }
+ else
+ {
+ this.SetCbFlag(XGameObject.ECallbackCmd.ESyncCCStepOffset, true);
+ }
+ }
+
+ private void AppendEnableCCCommand()
+ {
+ bool isLoaded = this.IsLoaded;
+ if (isLoaded)
+ {
+ XGameObject.SyncCCEnable(this);
+ }
+ else
+ {
+ this.SetCbFlag(XGameObject.ECallbackCmd.ESyncCCEnable, true);
+ }
+ }
+
+ private void AppendEnableBCommand()
+ {
+ bool isLoaded = this.IsLoaded;
+ if (isLoaded)
+ {
+ XGameObject.SyncBCEnable(this);
+ }
+ else
+ {
+ this.SetCbFlag(XGameObject.ECallbackCmd.ESyncBCEnable, true);
+ }
+ }
+
+ private void AppendUpdateWhenOffscreen()
+ {
+ bool isLoaded = this.IsLoaded;
+ if (isLoaded)
+ {
+ XGameObject.SyncUpdateWhenOffscreen(this);
+ }
+ else
+ {
+ this.SetCbFlag(XGameObject.ECallbackCmd.ESyncUpdateWhenOffscreen, true);
+ }
+ }
+
+ private void AppendTagCommand()
+ {
+ bool isLoaded = this.IsLoaded;
+ if (isLoaded)
+ {
+ XGameObject.SyncTag(this);
+ }
+ else
+ {
+ this.SetCbFlag(XGameObject.ECallbackCmd.ESyncTag, true);
+ }
+ }
+
+ public bool TestVisibleWithFrustum(Plane[] planes, bool fully)
+ {
+ bool flag = this.m_SkinMeshRenderCache == null;
+ bool result;
+ if (flag)
+ {
+ result = false;
+ }
+ else
+ {
+ Bounds bounds = this.m_SkinMeshRenderCache.bounds;
+ if (fully)
+ {
+ for (int i = 0; i < planes.Length; i++)
+ {
+ bool flag2 = planes[i].GetDistanceToPoint(bounds.min) < 0f || planes[i].GetDistanceToPoint(bounds.max) < 0f;
+ if (flag2)
+ {
+ return false;
+ }
+ }
+ result = true;
+ }
+ else
+ {
+ result = GeometryUtility.TestPlanesAABB(planes, bounds);
+ }
+ }
+ return result;
+ }
+
+ public void CallCommand(CommandCallback cb, object obj, int commandID = -1, bool executeAfterLoad = false)
+ {
+ bool flag = cb != null;
+ if (flag)
+ {
+ bool isLoaded = this.IsLoaded;
+ if (isLoaded)
+ {
+ cb(this, obj, commandID);
+ }
+ else
+ {
+ XEngineCommand xengineCommand = XSingleton<XEngineCommandMgr>.singleton.CreateCommand(XCallCommand.handler, this, commandID);
+ XObjAsyncData objAsyncData = XSingleton<XEngineCommandMgr>.singleton.GetObjAsyncData();
+ objAsyncData.commandCb = cb;
+ objAsyncData.data = obj;
+ xengineCommand.data = objAsyncData;
+ xengineCommand.debugHandler = XCallCommand.debugHandler;
+ if (executeAfterLoad)
+ {
+ bool flag2 = this.afterLoadCommand != null;
+ if (flag2)
+ {
+ XSingleton<XEngineCommandMgr>.singleton.ReturnCommand(this.afterLoadCommand);
+ this.afterLoadCommand = null;
+ }
+ this.afterLoadCommand = xengineCommand;
+ }
+ else
+ {
+ XSingleton<XEngineCommandMgr>.singleton.AppendCommand(xengineCommand);
+ }
+ }
+ }
+ }
+
+ public void SetParent(XGameObject parent)
+ {
+ bool flag = this.IsLoaded && (parent == null || parent.IsLoaded);
+ if (flag)
+ {
+ this.SyncSetParent(parent);
+ }
+ else
+ {
+ XEngineCommand xengineCommand = XSingleton<XEngineCommandMgr>.singleton.CreateCommand(XSetParentCommand.handler, this, -1);
+ XObjAsyncData objAsyncData = XSingleton<XEngineCommandMgr>.singleton.GetObjAsyncData();
+ objAsyncData.data = parent;
+ xengineCommand.data = objAsyncData;
+ xengineCommand.canExecute = XSetParentCommand.canExecute;
+ xengineCommand.debugHandler = XSetParentCommand.debugHandler;
+ XSingleton<XEngineCommandMgr>.singleton.AppendCommand(xengineCommand);
+ }
+ }
+
+ public void SetParentTrans(Transform parent)
+ {
+ bool isLoaded = this.IsLoaded;
+ if (isLoaded)
+ {
+ XGameObject.SyncSetParentTrans(this, parent, -1);
+ }
+ else
+ {
+ XEngineCommand xengineCommand = XSingleton<XEngineCommandMgr>.singleton.CreateCommand(XCallCommand.handler, this, -1);
+ XObjAsyncData objAsyncData = XSingleton<XEngineCommandMgr>.singleton.GetObjAsyncData();
+ objAsyncData.commandCb = XGameObject.SyncSyncSetParentTransCmd;
+ objAsyncData.data = parent;
+ xengineCommand.data = objAsyncData;
+ xengineCommand.debugHandler = XCallCommand.debugHandler;
+ XSingleton<XEngineCommandMgr>.singleton.AppendCommand(xengineCommand);
+ }
+ }
+
+ public Transform Find(string name)
+ {
+ bool flag = this.Trans != null && !string.IsNullOrEmpty(name);
+ Transform result;
+ if (flag)
+ {
+ result = this.Trans.Find(name);
+ }
+ else
+ {
+ result = this.Trans;
+ }
+ return result;
+ }
+
+ public GameObject Get()
+ {
+ return this.m_GameObject;
+ }
+
+ public void Rotate(Vector3 axis, float degree)
+ {
+ bool flag = this.Trans != null;
+ if (flag)
+ {
+ this.Trans.Rotate(axis, degree);
+ }
+ }
+
+ public void SetActive(bool enable, string tagFilter = "")
+ {
+ this.m_EnableRender = enable;
+ this.m_TagFilter = tagFilter;
+ bool isLoaded = this.IsLoaded;
+ if (isLoaded)
+ {
+ this.SetCbFlag(XGameObject.ECallbackCmd.ESyncActive, false);
+ XGameObject.SyncActive(this);
+ }
+ else
+ {
+ this.SetCbFlag(XGameObject.ECallbackCmd.ESyncActive, true);
+ }
+ }
+
+ public void SetLocalPRS(Vector3 pos, bool setPos, Quaternion rot, bool setRot, Vector3 scale, bool setScale)
+ {
+ bool isLoaded = this.IsLoaded;
+ if (isLoaded)
+ {
+ bool flag = this.Trans != null;
+ if (flag)
+ {
+ if (setPos)
+ {
+ this.Trans.localPosition = pos;
+ this.SyncPos();
+ }
+ if (setRot)
+ {
+ this.Trans.localRotation = rot;
+ }
+ if (setScale)
+ {
+ this.Trans.localScale = scale;
+ }
+ }
+ }
+ else
+ {
+ XEngineCommand xengineCommand = XSingleton<XEngineCommandMgr>.singleton.CreateCommand(XCallCommand.handler, this, -1);
+ XObjAsyncData objAsyncData = XSingleton<XEngineCommandMgr>.singleton.GetObjAsyncData();
+ objAsyncData.commandCb = XGameObject.SyncLocalPRSCmd;
+ XLocalPRSAsyncData xlocalPRSAsyncData = CommonObjectPool<XLocalPRSAsyncData>.Get();
+ xlocalPRSAsyncData.localPos = pos;
+ if (setPos)
+ {
+ XLocalPRSAsyncData xlocalPRSAsyncData2 = xlocalPRSAsyncData;
+ xlocalPRSAsyncData2.mask += 1;
+ }
+ xlocalPRSAsyncData.localRotation = rot;
+ if (setRot)
+ {
+ XLocalPRSAsyncData xlocalPRSAsyncData3 = xlocalPRSAsyncData;
+ xlocalPRSAsyncData3.mask += 2;
+ }
+ xlocalPRSAsyncData.localScale = scale;
+ if (setScale)
+ {
+ XLocalPRSAsyncData xlocalPRSAsyncData4 = xlocalPRSAsyncData;
+ xlocalPRSAsyncData4.mask += 4;
+ }
+ objAsyncData.data = xlocalPRSAsyncData;
+ objAsyncData.resetCb = new ResetCallback(xlocalPRSAsyncData.Reset);
+ xengineCommand.data = objAsyncData;
+ xengineCommand.debugHandler = XCallCommand.debugHandler;
+ XSingleton<XEngineCommandMgr>.singleton.AppendCommand(xengineCommand);
+ }
+ }
+
+ public CollisionFlags Move(Vector3 motion)
+ {
+ bool flag = this.m_EnableCC && this.m_ccCache != null;
+ CollisionFlags result;
+ if (flag)
+ {
+ //c 移动characterController
+ CollisionFlags collisionFlags = this.m_ccCache.Move(motion);
+ this.SyncPos();
+ result = collisionFlags;
+ }
+ else
+ {
+ result = 0;
+ }
+ return result;
+ }
+
+ public void SyncPos()
+ {
+ bool flag = this.Trans != null;
+ if (flag)
+ {
+ this.m_Position = this.Trans.position;
+ }
+ }
+
+ public void GetRender(List<Renderer> render)
+ {
+ bool flag = this.m_GameObject != null;
+ if (flag)
+ {
+ this.m_GameObject.GetComponentsInChildren<Renderer>(render);
+ }
+ }
+
+ public void SyncPhysicBox(Vector3 center, Vector3 size)
+ {
+ bool flag = this.m_EnableBC && this.m_bcCache != null;
+ if (flag)
+ {
+ this.m_bcCache.center = center;
+ this.m_bcCache.size = size;
+ }
+ }
+
+ private static void _SetPhysicTransform(XGameObject gameObject, object obj, int commandID)
+ {
+ XGameObject xgameObject = obj as XGameObject;
+ bool flag = xgameObject.m_EnableCC && xgameObject.m_ccCache == null;
+ if (flag)
+ {
+ xgameObject.m_ccCache = gameObject.m_ccCache;
+ bool flag2 = xgameObject.m_ccCache != null;
+ if (flag2)
+ {
+ xgameObject.m_ccCache.enabled = true;
+ }
+ bool flag3 = xgameObject.m_bcCache != null;
+ if (flag3)
+ {
+ xgameObject.m_bcCache.enabled = false;
+ }
+ }
+ else
+ {
+ bool flag4 = xgameObject.m_EnableBC && xgameObject.m_bcCache == null;
+ if (flag4)
+ {
+ xgameObject.m_bcCache = gameObject.m_bcCache;
+ bool flag5 = xgameObject.m_bcCache != null;
+ if (flag5)
+ {
+ xgameObject.m_bcCache.enabled = true;
+ }
+ bool flag6 = xgameObject.m_ccCache != null;
+ if (flag6)
+ {
+ xgameObject.m_ccCache.enabled = false;
+ }
+ }
+ }
+ xgameObject.m_TransformCache = gameObject.Trans;
+ }
+
+ public void TransformPhysic(XGameObject src)
+ {
+ src.CallCommand(XGameObject._setPhysicTransformCb, this, -1, false);
+ }
+
+ public void ClearTransformPhysic()
+ {
+ this.m_ccCache = null;
+ this.m_bcCache = null;
+ this.m_TransformCache = ((this.m_GameObject == null) ? null : this.m_GameObject.transform);
+ }
+
+ private static void _SetRenderLayer(XGameObject gameObject, object obj, int commandID)
+ {
+ bool flag = gameObject != null && gameObject.m_GameObject != null;
+ if (flag)
+ {
+ XCommon.tmpRender.Clear();
+ gameObject.m_GameObject.GetComponentsInChildren<Renderer>(XCommon.tmpRender);
+ int count = XCommon.tmpRender.Count;
+ for (int i = 0; i < count; i++)
+ {
+ Renderer renderer = XCommon.tmpRender[i];
+ renderer.gameObject.layer = gameObject.Layer;
+ }
+ XCommon.tmpRender.Clear();
+ }
+ }
+
+ public void SetRenderLayer(int layer)
+ {
+ this.m_Layer = layer;
+ this.CallCommand(XGameObject._setRenderLayerCb, this, -1, false);
+ }
+
+ public T AddComponent<T>() where T : Component
+ {
+ bool flag = this.m_GameObject != null;
+ T result;
+ if (flag)
+ {
+ T t = this.m_GameObject.GetComponent<T>();
+ bool flag2 = t == null;
+ if (flag2)
+ {
+ t = this.m_GameObject.AddComponent<T>();
+ }
+ result = t;
+ }
+ else
+ {
+ result = default(T);
+ }
+ return result;
+ }
+
+ public Component AddComponent(EComponentType componentType)
+ {
+ bool flag = this.m_GameObject != null;
+ Component result;
+ if (flag)
+ {
+ Component component = XSingleton<XUpdater.XUpdater>.singleton.XPlatform.AddComponent(this.m_GameObject, componentType);
+ result = component;
+ }
+ else
+ {
+ result = null;
+ }
+ return result;
+ }
+
+ public void Update()
+ {
+ this.SyncPos();
+ bool flag = this.m_Ator != null && this.m_Ator.IsLoaded;
+ if (flag)
+ {
+ bool flag2 = (int)this.m_UpdateFrame < XGameObject.delayFrameCount;
+ if (flag2)
+ {
+ this.m_UpdateFrame += 1;
+ }
+ else
+ {
+ bool flag3 = (int)this.m_UpdateFrame == XGameObject.delayFrameCount;
+ if (flag3)
+ {
+ this.m_UpdateFrame += 1;
+ XAnimator.Update(this.m_Ator);
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XGameObject.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XGameObject.cs.meta new file mode 100644 index 00000000..7e36c38b --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XGameObject.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1a919b0bd058f7241a27a22a3687879d +timeCreated: 1611465296 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XGameSirKeyCode.cs b/Client/Assets/Scripts/XUtliPoolLib/XGameSirKeyCode.cs new file mode 100644 index 00000000..ea863233 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XGameSirKeyCode.cs @@ -0,0 +1,115 @@ +using System;
+using System.Collections.Generic;
+
+namespace XUtliPoolLib
+{
+ public class XGameSirKeyCode
+ {
+ public static List<string>[] SkillMap
+ {
+ get
+ {
+ bool flag = XGameSirKeyCode._skillMap == null;
+ if (flag)
+ {
+ XGameSirKeyCode._skillMap = new List<string>[XGameSirKeyCode.SKILL_SIZE];
+ XGameSirKeyCode._skillMap[0] = new List<string>
+ {
+ XGameSirKeyCode.BTN_L2
+ };
+ XGameSirKeyCode._skillMap[1] = new List<string>
+ {
+ XGameSirKeyCode.BTN_L1
+ };
+ XGameSirKeyCode._skillMap[2] = new List<string>
+ {
+ XGameSirKeyCode.BTN_A
+ };
+ XGameSirKeyCode._skillMap[3] = new List<string>
+ {
+ XGameSirKeyCode.BTN_B
+ };
+ XGameSirKeyCode._skillMap[4] = new List<string>
+ {
+ XGameSirKeyCode.BTN_X
+ };
+ XGameSirKeyCode._skillMap[5] = new List<string>
+ {
+ XGameSirKeyCode.BTN_Y
+ };
+ XGameSirKeyCode._skillMap[6] = new List<string>
+ {
+ XGameSirKeyCode.BTN_L2,
+ XGameSirKeyCode.BTN_A
+ };
+ XGameSirKeyCode._skillMap[7] = new List<string>
+ {
+ XGameSirKeyCode.BTN_L2,
+ XGameSirKeyCode.BTN_B
+ };
+ XGameSirKeyCode._skillMap[8] = new List<string>
+ {
+ XGameSirKeyCode.DPAD_LEFT
+ };
+ XGameSirKeyCode._skillMap[9] = new List<string>
+ {
+ XGameSirKeyCode.DPAD_RIGHT
+ };
+ }
+ return XGameSirKeyCode._skillMap;
+ }
+ }
+
+ public static string BTN_A = "A";
+
+ public static string BTN_B = "B";
+
+ public static string BTN_X = "X";
+
+ public static string BTN_Y = "Y";
+
+ public static string BTN_L1 = "L1";
+
+ public static string BTN_L2 = "L2";
+
+ public static string BTN_R1 = "R1";
+
+ public static string BTN_R2 = "R2";
+
+ public static string AXIS_RTRIGGER = "TRIGGERL";
+
+ public static string AXIS_LTRIGGER = "TRIGGERR";
+
+ public static string DPAD_UP = "DPAD_UP";
+
+ public static string DPAD_DOWN = "DPAD_DOWN";
+
+ public static string DPAD_LEFT = "DPAD_LEFT";
+
+ public static string DPAD_RIGHT = "DPAD_RIGHT";
+
+ public static string AXIS_HAT_X = "HAT_X";
+
+ public static string AXIS_HAT_Y = "HAT_Y";
+
+ public static string AXIS_X = "L3D_X";
+
+ public static string AXIS_Y = "L3D_Y";
+
+ public static string BTN_THUMBL = "THUMB_L";
+
+ public static string AXIS_Z = "R3D_Z";
+
+ public static string AXIS_RZ = "R3D_RZ";
+
+ public static string BTN_THUMBR = "THUMB_R";
+
+ public static string BTN_SELECT = "SELECT";
+
+ public static string BTN_START = "START";
+
+ public static int SKILL_SIZE = 10;
+
+ private static List<string>[] _skillMap;
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XGameSirKeyCode.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XGameSirKeyCode.cs.meta new file mode 100644 index 00000000..8dd2b7b0 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XGameSirKeyCode.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0841f26a9d937c849811042219eba09e +timeCreated: 1611465287 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XGrid.cs b/Client/Assets/Scripts/XUtliPoolLib/XGrid.cs new file mode 100644 index 00000000..651e6d3c --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XGrid.cs @@ -0,0 +1,167 @@ +using System;
+using System.IO;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public sealed class XGrid
+ {
+ public int Width;
+
+ public int Height;
+
+ public float XMin;
+
+ public float ZMin;
+
+ public float XMax;
+
+ public float ZMax;
+
+ public float Side;
+
+ public int[] IdxData = null;
+
+ public float[] ValueData = null;
+
+ public bool LoadFile(string FileName)
+ {
+ XBinaryReader xbinaryReader = XSingleton<XResourceLoaderMgr>.singleton.ReadBinary(FileName, ".bytes", false, true);
+ try
+ {
+ this.Height = xbinaryReader.ReadInt32();
+ this.Width = xbinaryReader.ReadInt32();
+ this.XMin = xbinaryReader.ReadSingle();
+ this.ZMin = xbinaryReader.ReadSingle();
+ this.XMax = xbinaryReader.ReadSingle();
+ this.ZMax = xbinaryReader.ReadSingle();
+ this.Side = xbinaryReader.ReadSingle();
+ int num = xbinaryReader.ReadInt32();
+ this.IdxData = new int[num];
+ for (int i = 0; i < num; i++)
+ {
+ this.IdxData[i] = xbinaryReader.ReadInt32();
+ }
+ this.ValueData = new float[num];
+ for (int j = 0; j < num; j++)
+ {
+ short num2 = xbinaryReader.ReadInt16();
+ bool flag = num2 < 0;
+ if (flag)
+ {
+ this.ValueData[j] = -100f;
+ bool flag2 = j + 1 < num;
+ if (flag2)
+ {
+ bool flag3 = num2 == short.MinValue;
+ if (flag3)
+ {
+ num2 = 0;
+ }
+ else
+ {
+ num2 = (short) -num2;
+ }
+ this.ValueData[j + 1] = (float)num2;
+ j++;
+ }
+ }
+ else
+ {
+ this.ValueData[j] = (float)num2;
+ }
+ }
+ }
+ catch (EndOfStreamException ex)
+ {
+ XSingleton<XDebug>.singleton.AddErrorLog("read file ", FileName, " not complete :", ex.Message, null, null);
+ return false;
+ }
+ finally
+ {
+ XSingleton<XResourceLoaderMgr>.singleton.ClearBinary(xbinaryReader, false);
+ }
+ return true;
+ }
+
+ public bool TryGetHeight(Vector3 pos, out float y)
+ {
+ y = 0f;
+ int num = (int)((pos.z - this.ZMin) / this.Side);
+ int num2 = (int)((pos.x - this.XMin) / this.Side);
+ int key = num * this.Width + num2;
+ int index = this.GetIndex(key);
+ bool flag = index >= 0 && index < this.ValueData.Length;
+ bool result;
+ if (flag)
+ {
+ y = this.ValueData[index] / 100f;
+ result = true;
+ }
+ else
+ {
+ result = false;
+ }
+ return result;
+ }
+
+ public float GetHeight(Vector3 pos)
+ {
+ int num = (int)((pos.z - this.ZMin) / this.Side);
+ int num2 = (int)((pos.x - this.XMin) / this.Side);
+ int key = num * this.Width + num2;
+ int index = this.GetIndex(key);
+ bool flag = index < 0 || index >= this.ValueData.Length;
+ float result;
+ if (flag)
+ {
+ XSingleton<XDebug>.singleton.AddErrorLog2("error grid index:{0} pos:{1}", new object[]
+ {
+ index,
+ pos
+ });
+ result = -1f;
+ }
+ else
+ {
+ result = this.ValueData[index] / 100f;
+ }
+ return result;
+ }
+
+ private int GetIndex(int key)
+ {
+ int num = this.IdxData.Length;
+ int i = 0;
+ int num2 = num - 1;
+ while (i <= num2)
+ {
+ int num3 = i + num2 >> 1;
+ int num4 = this.IdxData[num3];
+ bool flag = key == num4;
+ if (flag)
+ {
+ return num3;
+ }
+ bool flag2 = key < num4;
+ if (flag2)
+ {
+ num2 = num3 - 1;
+ }
+ else
+ {
+ bool flag3 = key > num4;
+ if (flag3)
+ {
+ i = num3 + 1;
+ }
+ }
+ }
+ return num2;
+ }
+
+ public void Update()
+ {
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XGrid.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XGrid.cs.meta new file mode 100644 index 00000000..917a173d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XGrid.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8c1f038617e6db3469d3d5ac6122a01b +timeCreated: 1611465700 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XHeap.cs b/Client/Assets/Scripts/XUtliPoolLib/XHeap.cs new file mode 100644 index 00000000..16c29954 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XHeap.cs @@ -0,0 +1,239 @@ +using System;
+using System.Collections.Generic;
+
+namespace XUtliPoolLib
+{
+ internal class XHeap<T> where T : IComparable<T>, IHere
+ {
+ public int HeapSize
+ {
+ get
+ {
+ return this._heapSize;
+ }
+ }
+
+ private List<T> _heap = null;
+
+ private int _heapSize = 0;
+
+ public XHeap()
+ {
+ this._heap = new List<T>();
+ this._heapSize = 0;
+ }
+
+ public void PushHeap(T item)
+ {
+ int count = this._heap.Count;
+ bool flag = this._heapSize < count;
+ if (flag)
+ {
+ this._heap[this._heapSize] = item;
+ }
+ else
+ {
+ this._heap.Add(item);
+ }
+ item.Here = this._heapSize;
+ XHeap<T>.HeapifyUp(this._heap, this._heapSize);
+ this._heapSize++;
+ }
+
+ public T PopHeap()
+ {
+ T result = default(T);
+ bool flag = this._heapSize > 0;
+ if (flag)
+ {
+ this._heapSize--;
+ XHeap<T>.Swap(this._heap, 0, this._heapSize);
+ XHeap<T>.HeapifyDown(this._heap, 0, this._heapSize);
+ result = this._heap[this._heapSize];
+ result.Here = -1;
+ this._heap[this._heapSize] = default(T);
+ }
+ return result;
+ }
+
+ public void PopHeapAt(int Idx)
+ {
+ bool flag = this._heapSize > 0 && Idx >= 0 && Idx < this._heapSize;
+ if (flag)
+ {
+ this._heapSize--;
+ XHeap<T>.Swap(this._heap, Idx, this._heapSize);
+ T t = this._heap[this._heapSize];
+ bool flag2 = t.CompareTo(this._heap[Idx]) < 0;
+ if (flag2)
+ {
+ XHeap<T>.HeapifyDown(this._heap, Idx, this._heapSize);
+ }
+ else
+ {
+ t = this._heap[this._heapSize];
+ bool flag3 = t.CompareTo(this._heap[Idx]) > 0;
+ if (flag3)
+ {
+ XHeap<T>.HeapifyUp(this._heap, Idx);
+ }
+ }
+ t = this._heap[this._heapSize];
+ t.Here = -1;
+ this._heap[this._heapSize] = default(T);
+ }
+ }
+
+ public void Adjust(T item, bool downwords)
+ {
+ bool flag = this._heapSize > 1;
+ if (flag)
+ {
+ if (downwords)
+ {
+ XHeap<T>.HeapifyDown(this._heap, item.Here, this._heapSize);
+ }
+ else
+ {
+ XHeap<T>.HeapifyUp(this._heap, item.Here);
+ }
+ }
+ }
+
+ public static void MakeHeap(List<T> list)
+ {
+ for (int i = list.Count / 2 - 1; i >= 0; i--)
+ {
+ XHeap<T>.HeapifyDown(list, i, list.Count);
+ }
+ }
+
+ public static void HeapSort(List<T> list)
+ {
+ bool flag = list.Count < 2;
+ if (!flag)
+ {
+ XHeap<T>.MakeHeap(list);
+ for (int i = list.Count - 1; i > 0; i--)
+ {
+ XHeap<T>.Swap(list, 0, i);
+ XHeap<T>.HeapifyDown(list, 0, i);
+ }
+ }
+ }
+
+ public T Peek()
+ {
+ bool flag = this._heapSize > 0;
+ T result;
+ if (flag)
+ {
+ result = this._heap[0];
+ }
+ else
+ {
+ result = default(T);
+ }
+ return result;
+ }
+
+ public void Clear()
+ {
+ this._heap.Clear();
+ this._heapSize = 0;
+ }
+
+ private static void HeapifyDown(List<T> heap, int curIdx, int heapSize)
+ {
+ while (curIdx < heapSize)
+ {
+ int num = 2 * curIdx + 1;
+ int num2 = 2 * curIdx + 2;
+ T other = heap[curIdx];
+ int num3 = curIdx;
+ bool flag;
+ if (num < heapSize)
+ {
+ T t = heap[num];
+ flag = (t.CompareTo(other) < 0);
+ }
+ else
+ {
+ flag = false;
+ }
+ bool flag2 = flag;
+ if (flag2)
+ {
+ other = heap[num];
+ num3 = num;
+ }
+ bool flag3;
+ if (num2 < heapSize)
+ {
+ T t = heap[num2];
+ flag3 = (t.CompareTo(other) < 0);
+ }
+ else
+ {
+ flag3 = false;
+ }
+ bool flag4 = flag3;
+ if (flag4)
+ {
+ other = heap[num2];
+ num3 = num2;
+ }
+ bool flag5 = num3 != curIdx;
+ if (!flag5)
+ {
+ break;
+ }
+ XHeap<T>.Swap(heap, curIdx, num3);
+ curIdx = num3;
+ }
+ }
+
+ private static void HeapifyUp(List<T> heap, int curIdx)
+ {
+ while (curIdx > 0)
+ {
+ int num = (curIdx - 1) / 2;
+ T other = heap[num];
+ int num2 = num;
+ bool flag;
+ if (num >= 0)
+ {
+ T t = heap[curIdx];
+ flag = (t.CompareTo(other) < 0);
+ }
+ else
+ {
+ flag = false;
+ }
+ bool flag2 = flag;
+ if (flag2)
+ {
+ num2 = curIdx;
+ }
+ bool flag3 = num2 != num;
+ if (!flag3)
+ {
+ break;
+ }
+ XHeap<T>.Swap(heap, num, num2);
+ curIdx = num;
+ }
+ }
+
+ private static void Swap(List<T> heap, int x, int y)
+ {
+ T value = heap[x];
+ heap[x] = heap[y];
+ T t = heap[x];
+ t.Here = x;
+ heap[y] = value;
+ t = heap[y];
+ t.Here = y;
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XHeap.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XHeap.cs.meta new file mode 100644 index 00000000..1dfdc841 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XHeap.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8c453ee392a85a84592dd2e028808557 +timeCreated: 1611465700 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XHitData.cs b/Client/Assets/Scripts/XUtliPoolLib/XHitData.cs new file mode 100644 index 00000000..5d50b8b2 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XHitData.cs @@ -0,0 +1,85 @@ +using System;
+using System.ComponentModel;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ [Serializable]
+ public class XHitData : XBaseData
+ {
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Time_Present_Straight;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Time_Hard_Straight;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Offset;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Height;
+
+ [SerializeField]
+ public XBeHitState State = XBeHitState.Hit_Back;
+
+ [SerializeField]
+ public XBeHitState_Animation State_Animation = XBeHitState_Animation.Hit_Back_Front;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Random_Range;
+
+ [SerializeField]
+ public string Fx = null;
+
+ [SerializeField]
+ [DefaultValue(true)]
+ public bool Fx_Follow;
+
+ [SerializeField]
+ [DefaultValue(false)]
+ public bool Fx_StickToGround;
+
+ [SerializeField]
+ [DefaultValue(false)]
+ public bool CurveUsing;
+
+ [SerializeField]
+ [DefaultValue(false)]
+ public bool FreezePresent;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float FreezeDuration;
+
+ [SerializeField]
+ [DefaultValue(true)]
+ public bool Additional_Using_Default;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Additional_Hit_Time_Present_Straight;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Additional_Hit_Time_Hard_Straight;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Additional_Hit_Offset;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Additional_Hit_Height;
+
+ public XHitData()
+ {
+ this.Fx_Follow = true;
+ this.Additional_Using_Default = true;
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XHitData.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XHitData.cs.meta new file mode 100644 index 00000000..596d6e3f --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XHitData.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c8cc60829621ba2429dbeb165d17b697 +timeCreated: 1611465757 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XInterfaceMgr.cs b/Client/Assets/Scripts/XUtliPoolLib/XInterfaceMgr.cs new file mode 100644 index 00000000..38bfaece --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XInterfaceMgr.cs @@ -0,0 +1,54 @@ +using System;
+using System.Collections.Generic;
+
+namespace XUtliPoolLib
+{
+ public class XInterfaceMgr : XSingleton<XInterfaceMgr>
+ {
+ private Dictionary<uint, IXInterface> _interfaces = new Dictionary<uint, IXInterface>();
+
+ public T GetInterface<T>(uint key) where T : IXInterface
+ {
+ IXInterface ixinterface = null;
+ this._interfaces.TryGetValue(key, out ixinterface);
+ return (T)((object)ixinterface);
+ }
+
+ public T AttachInterface<T>(uint key, T value) where T : IXInterface
+ {
+ bool flag = this._interfaces.ContainsKey(key);
+ if (flag)
+ {
+ this._interfaces[key].Deprecated = true;
+ XSingleton<XDebug>.singleton.AddLog("Duplication key for interface ", this._interfaces[key].ToString(), " and ", value.ToString(), null, null, XDebugColor.XDebug_None);
+ this._interfaces[key] = value;
+ }
+ else
+ {
+ this._interfaces.Add(key, value);
+ }
+ this._interfaces[key].Deprecated = false;
+ return value;
+ }
+
+ public void DetachInterface(uint key)
+ {
+ bool flag = this._interfaces.ContainsKey(key);
+ if (flag)
+ {
+ this._interfaces[key].Deprecated = true;
+ this._interfaces.Remove(key);
+ }
+ }
+
+ public override bool Init()
+ {
+ return true;
+ }
+
+ public override void Uninit()
+ {
+ this._interfaces.Clear();
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XInterfaceMgr.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XInterfaceMgr.cs.meta new file mode 100644 index 00000000..aae9aba1 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XInterfaceMgr.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 48032cf84b440544eaee17ec53ab079c +timeCreated: 1611465638 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XInterpolate.cs b/Client/Assets/Scripts/XUtliPoolLib/XInterpolate.cs new file mode 100644 index 00000000..aedb912c --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XInterpolate.cs @@ -0,0 +1,520 @@ +using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public class XInterpolate
+ {
+ public enum EaseType
+ {
+ Linear,
+ EaseInQuad,
+ EaseOutQuad,
+ EaseInOutQuad,
+ EaseInCubic,
+ EaseOutCubic,
+ EaseInOutCubic,
+ EaseInQuart,
+ EaseOutQuart,
+ EaseInOutQuart,
+ EaseInQuint,
+ EaseOutQuint,
+ EaseInOutQuint,
+ EaseInSine,
+ EaseOutSine,
+ EaseInOutSine,
+ EaseInExpo,
+ EaseOutExpo,
+ EaseInOutExpo,
+ EaseInCirc,
+ EaseOutCirc,
+ EaseInOutCirc
+ }
+
+ public delegate Vector3 ToVector3<T>(T v);
+
+ public delegate float Function(float a, float b, float c, float d);
+
+ private static Vector3 Identity(Vector3 v)
+ {
+ return v;
+ }
+
+ private static Vector3 TransformDotPosition(Transform t)
+ {
+ return t.position;
+ }
+
+ private static IEnumerable<float> NewTimer(float duration)
+ {
+ float elapsedTime = 0f;
+ while (elapsedTime < duration)
+ {
+ yield return elapsedTime;
+ elapsedTime += Time.deltaTime;
+ bool flag = elapsedTime >= duration;
+ if (flag)
+ {
+ yield return elapsedTime;
+ }
+ }
+ yield break;
+ }
+
+ private static IEnumerable<float> NewCounter(int start, int end, int step)
+ {
+ for (int i = start; i <= end; i += step)
+ {
+ yield return (float)i;
+ }
+ yield break;
+ }
+
+ public static IEnumerator NewEase(XInterpolate.Function ease, Vector3 start, Vector3 end, float duration)
+ {
+ IEnumerable<float> driver = XInterpolate.NewTimer(duration);
+ return XInterpolate.NewEase(ease, start, end, duration, driver);
+ }
+
+ public static IEnumerator NewEase(XInterpolate.Function ease, Vector3 start, Vector3 end, int slices)
+ {
+ IEnumerable<float> driver = XInterpolate.NewCounter(0, slices + 1, 1);
+ return XInterpolate.NewEase(ease, start, end, (float)(slices + 1), driver);
+ }
+
+ private static IEnumerator NewEase(XInterpolate.Function ease, Vector3 start, Vector3 end, float total, IEnumerable<float> driver)
+ {
+ Vector3 distance = end - start;
+ foreach (float i in driver)
+ {
+ yield return XInterpolate.Ease(ease, start, distance, i, total);
+ }
+ IEnumerator<float> enumerator = null;
+ yield break;
+ yield break;
+ }
+
+ private static Vector3 Ease(XInterpolate.Function ease, Vector3 start, Vector3 distance, float elapsedTime, float duration)
+ {
+ start.x = ease(start.x, distance.x, elapsedTime, duration);
+ start.y = ease(start.y, distance.y, elapsedTime, duration);
+ start.z = ease(start.z, distance.z, elapsedTime, duration);
+ return start;
+ }
+
+ public static XInterpolate.Function Ease(XInterpolate.EaseType type)
+ {
+ XInterpolate.Function result = null;
+ switch (type)
+ {
+ case XInterpolate.EaseType.Linear:
+ result = new XInterpolate.Function(XInterpolate.Linear);
+ break;
+ case XInterpolate.EaseType.EaseInQuad:
+ result = new XInterpolate.Function(XInterpolate.EaseInQuad);
+ break;
+ case XInterpolate.EaseType.EaseOutQuad:
+ result = new XInterpolate.Function(XInterpolate.EaseOutQuad);
+ break;
+ case XInterpolate.EaseType.EaseInOutQuad:
+ result = new XInterpolate.Function(XInterpolate.EaseInOutQuad);
+ break;
+ case XInterpolate.EaseType.EaseInCubic:
+ result = new XInterpolate.Function(XInterpolate.EaseInCubic);
+ break;
+ case XInterpolate.EaseType.EaseOutCubic:
+ result = new XInterpolate.Function(XInterpolate.EaseOutCubic);
+ break;
+ case XInterpolate.EaseType.EaseInOutCubic:
+ result = new XInterpolate.Function(XInterpolate.EaseInOutCubic);
+ break;
+ case XInterpolate.EaseType.EaseInQuart:
+ result = new XInterpolate.Function(XInterpolate.EaseInQuart);
+ break;
+ case XInterpolate.EaseType.EaseOutQuart:
+ result = new XInterpolate.Function(XInterpolate.EaseOutQuart);
+ break;
+ case XInterpolate.EaseType.EaseInOutQuart:
+ result = new XInterpolate.Function(XInterpolate.EaseInOutQuart);
+ break;
+ case XInterpolate.EaseType.EaseInQuint:
+ result = new XInterpolate.Function(XInterpolate.EaseInQuint);
+ break;
+ case XInterpolate.EaseType.EaseOutQuint:
+ result = new XInterpolate.Function(XInterpolate.EaseOutQuint);
+ break;
+ case XInterpolate.EaseType.EaseInOutQuint:
+ result = new XInterpolate.Function(XInterpolate.EaseInOutQuint);
+ break;
+ case XInterpolate.EaseType.EaseInSine:
+ result = new XInterpolate.Function(XInterpolate.EaseInSine);
+ break;
+ case XInterpolate.EaseType.EaseOutSine:
+ result = new XInterpolate.Function(XInterpolate.EaseOutSine);
+ break;
+ case XInterpolate.EaseType.EaseInOutSine:
+ result = new XInterpolate.Function(XInterpolate.EaseInOutSine);
+ break;
+ case XInterpolate.EaseType.EaseInExpo:
+ result = new XInterpolate.Function(XInterpolate.EaseInExpo);
+ break;
+ case XInterpolate.EaseType.EaseOutExpo:
+ result = new XInterpolate.Function(XInterpolate.EaseOutExpo);
+ break;
+ case XInterpolate.EaseType.EaseInOutExpo:
+ result = new XInterpolate.Function(XInterpolate.EaseInOutExpo);
+ break;
+ case XInterpolate.EaseType.EaseInCirc:
+ result = new XInterpolate.Function(XInterpolate.EaseInCirc);
+ break;
+ case XInterpolate.EaseType.EaseOutCirc:
+ result = new XInterpolate.Function(XInterpolate.EaseOutCirc);
+ break;
+ case XInterpolate.EaseType.EaseInOutCirc:
+ result = new XInterpolate.Function(XInterpolate.EaseInOutCirc);
+ break;
+ }
+ return result;
+ }
+
+ public static IEnumerable<Vector3> NewBezier(XInterpolate.Function ease, Transform[] nodes, float duration)
+ {
+ IEnumerable<float> steps = XInterpolate.NewTimer(duration);
+ return XInterpolate.NewBezier<Transform>(ease, nodes, new XInterpolate.ToVector3<Transform>(XInterpolate.TransformDotPosition), duration, steps);
+ }
+
+ public static IEnumerable<Vector3> NewBezier(XInterpolate.Function ease, Transform[] nodes, int slices)
+ {
+ IEnumerable<float> steps = XInterpolate.NewCounter(0, slices + 1, 1);
+ return XInterpolate.NewBezier<Transform>(ease, nodes, new XInterpolate.ToVector3<Transform>(XInterpolate.TransformDotPosition), (float)(slices + 1), steps);
+ }
+
+ public static IEnumerable<Vector3> NewBezier(XInterpolate.Function ease, Vector3[] points, float duration)
+ {
+ IEnumerable<float> steps = XInterpolate.NewTimer(duration);
+ return XInterpolate.NewBezier<Vector3>(ease, points, new XInterpolate.ToVector3<Vector3>(XInterpolate.Identity), duration, steps);
+ }
+
+ public static IEnumerable<Vector3> NewBezier(XInterpolate.Function ease, Vector3[] points, int slices)
+ {
+ IEnumerable<float> steps = XInterpolate.NewCounter(0, slices + 1, 1);
+ return XInterpolate.NewBezier<Vector3>(ease, points, new XInterpolate.ToVector3<Vector3>(XInterpolate.Identity), (float)(slices + 1), steps);
+ }
+
+ private static IEnumerable<Vector3> NewBezier<T>(XInterpolate.Function ease, IList nodes, XInterpolate.ToVector3<T> toVector3, float maxStep, IEnumerable<float> steps)
+ {
+ bool flag = nodes.Count >= 2;
+ if (flag)
+ {
+ Vector3[] points = new Vector3[nodes.Count];
+ foreach (float step in steps)
+ {
+ int num;
+ for (int i = 0; i < nodes.Count; i = num + 1)
+ {
+ points[i] = toVector3((T)((object)nodes[i]));
+ num = i;
+ }
+ yield return XInterpolate.Bezier(ease, points, step, maxStep);
+ }
+ IEnumerator<float> enumerator = null;
+ points = null;
+ }
+ yield break;
+ yield break;
+ }
+
+ private static Vector3 Bezier(XInterpolate.Function ease, Vector3[] points, float elapsedTime, float duration)
+ {
+ for (int i = points.Length - 1; i > 0; i--)
+ {
+ for (int j = 0; j < i; j++)
+ {
+ points[j].x = ease(points[j].x, points[j + 1].x - points[j].x, elapsedTime, duration);
+ points[j].y = ease(points[j].y, points[j + 1].y - points[j].y, elapsedTime, duration);
+ points[j].z = ease(points[j].z, points[j + 1].z - points[j].z, elapsedTime, duration);
+ }
+ }
+ return points[0];
+ }
+
+ public static IEnumerable<Vector3> NewCatmullRom(Transform[] nodes, int slices, bool loop)
+ {
+ return XInterpolate.NewCatmullRom<Transform>(nodes, new XInterpolate.ToVector3<Transform>(XInterpolate.TransformDotPosition), slices, loop);
+ }
+
+ public static IEnumerable<Vector3> NewCatmullRom(Vector3[] points, int slices, bool loop)
+ {
+ return XInterpolate.NewCatmullRom<Vector3>(points, new XInterpolate.ToVector3<Vector3>(XInterpolate.Identity), slices, loop);
+ }
+
+ private static IEnumerable<Vector3> NewCatmullRom<T>(IList nodes, XInterpolate.ToVector3<T> toVector3, int slices, bool loop)
+ {
+ bool flag = nodes.Count >= 2;
+ if (flag)
+ {
+ yield return toVector3((T)((object)nodes[0]));
+ int last = nodes.Count - 1;
+ int current = 0;
+ while (loop || current < last)
+ {
+ bool flag2 = loop && current > last;
+ if (flag2)
+ {
+ current = 0;
+ }
+ int previous = (current == 0) ? (loop ? last : current) : (current - 1);
+ int start = current;
+ int end = (current == last) ? (loop ? 0 : current) : (current + 1);
+ int next = (end == last) ? (loop ? 0 : end) : (end + 1);
+ int stepCount = slices + 1;
+ int num;
+ for (int step = 1; step <= stepCount; step = num + 1)
+ {
+ yield return XInterpolate.CatmullRom(toVector3((T)((object)nodes[previous])), toVector3((T)((object)nodes[start])), toVector3((T)((object)nodes[end])), toVector3((T)((object)nodes[next])), (float)step, (float)stepCount);
+ num = step;
+ }
+ num = current;
+ current = num + 1;
+ }
+ }
+ yield break;
+ }
+
+ private static Vector3 CatmullRom(Vector3 previous, Vector3 start, Vector3 end, Vector3 next, float elapsedTime, float duration)
+ {
+ float num = elapsedTime / duration;
+ float num2 = num * num;
+ float num3 = num2 * num;
+ return previous * (-0.5f * num3 + num2 - 0.5f * num) + start * (1.5f * num3 + -2.5f * num2 + 1f) + end * (-1.5f * num3 + 2f * num2 + 0.5f * num) + next * (0.5f * num3 - 0.5f * num2);
+ }
+
+ private static float Linear(float start, float distance, float elapsedTime, float duration)
+ {
+ bool flag = elapsedTime > duration;
+ if (flag)
+ {
+ elapsedTime = duration;
+ }
+ return distance * (elapsedTime / duration) + start;
+ }
+
+ private static float EaseInQuad(float start, float distance, float elapsedTime, float duration)
+ {
+ elapsedTime = ((elapsedTime > duration) ? 1f : (elapsedTime / duration));
+ return distance * elapsedTime * elapsedTime + start;
+ }
+
+ private static float EaseOutQuad(float start, float distance, float elapsedTime, float duration)
+ {
+ elapsedTime = ((elapsedTime > duration) ? 1f : (elapsedTime / duration));
+ return -distance * elapsedTime * (elapsedTime - 2f) + start;
+ }
+
+ private static float EaseInOutQuad(float start, float distance, float elapsedTime, float duration)
+ {
+ elapsedTime = ((elapsedTime > duration) ? 2f : (elapsedTime / (duration / 2f)));
+ bool flag = elapsedTime < 1f;
+ float result;
+ if (flag)
+ {
+ result = distance / 2f * elapsedTime * elapsedTime + start;
+ }
+ else
+ {
+ elapsedTime -= 1f;
+ result = -distance / 2f * (elapsedTime * (elapsedTime - 2f) - 1f) + start;
+ }
+ return result;
+ }
+
+ private static float EaseInCubic(float start, float distance, float elapsedTime, float duration)
+ {
+ elapsedTime = ((elapsedTime > duration) ? 1f : (elapsedTime / duration));
+ return distance * elapsedTime * elapsedTime * elapsedTime + start;
+ }
+
+ private static float EaseOutCubic(float start, float distance, float elapsedTime, float duration)
+ {
+ elapsedTime = ((elapsedTime > duration) ? 1f : (elapsedTime / duration));
+ elapsedTime -= 1f;
+ return distance * (elapsedTime * elapsedTime * elapsedTime + 1f) + start;
+ }
+
+ private static float EaseInOutCubic(float start, float distance, float elapsedTime, float duration)
+ {
+ elapsedTime = ((elapsedTime > duration) ? 2f : (elapsedTime / (duration / 2f)));
+ bool flag = elapsedTime < 1f;
+ float result;
+ if (flag)
+ {
+ result = distance / 2f * elapsedTime * elapsedTime * elapsedTime + start;
+ }
+ else
+ {
+ elapsedTime -= 2f;
+ result = distance / 2f * (elapsedTime * elapsedTime * elapsedTime + 2f) + start;
+ }
+ return result;
+ }
+
+ private static float EaseInQuart(float start, float distance, float elapsedTime, float duration)
+ {
+ elapsedTime = ((elapsedTime > duration) ? 1f : (elapsedTime / duration));
+ return distance * elapsedTime * elapsedTime * elapsedTime * elapsedTime + start;
+ }
+
+ private static float EaseOutQuart(float start, float distance, float elapsedTime, float duration)
+ {
+ elapsedTime = ((elapsedTime > duration) ? 1f : (elapsedTime / duration));
+ elapsedTime -= 1f;
+ return -distance * (elapsedTime * elapsedTime * elapsedTime * elapsedTime - 1f) + start;
+ }
+
+ private static float EaseInOutQuart(float start, float distance, float elapsedTime, float duration)
+ {
+ elapsedTime = ((elapsedTime > duration) ? 2f : (elapsedTime / (duration / 2f)));
+ bool flag = elapsedTime < 1f;
+ float result;
+ if (flag)
+ {
+ result = distance / 2f * elapsedTime * elapsedTime * elapsedTime * elapsedTime + start;
+ }
+ else
+ {
+ elapsedTime -= 2f;
+ result = -distance / 2f * (elapsedTime * elapsedTime * elapsedTime * elapsedTime - 2f) + start;
+ }
+ return result;
+ }
+
+ private static float EaseInQuint(float start, float distance, float elapsedTime, float duration)
+ {
+ elapsedTime = ((elapsedTime > duration) ? 1f : (elapsedTime / duration));
+ return distance * elapsedTime * elapsedTime * elapsedTime * elapsedTime * elapsedTime + start;
+ }
+
+ private static float EaseOutQuint(float start, float distance, float elapsedTime, float duration)
+ {
+ elapsedTime = ((elapsedTime > duration) ? 1f : (elapsedTime / duration));
+ elapsedTime -= 1f;
+ return distance * (elapsedTime * elapsedTime * elapsedTime * elapsedTime * elapsedTime + 1f) + start;
+ }
+
+ private static float EaseInOutQuint(float start, float distance, float elapsedTime, float duration)
+ {
+ elapsedTime = ((elapsedTime > duration) ? 2f : (elapsedTime / (duration / 2f)));
+ bool flag = elapsedTime < 1f;
+ float result;
+ if (flag)
+ {
+ result = distance / 2f * elapsedTime * elapsedTime * elapsedTime * elapsedTime * elapsedTime + start;
+ }
+ else
+ {
+ elapsedTime -= 2f;
+ result = distance / 2f * (elapsedTime * elapsedTime * elapsedTime * elapsedTime * elapsedTime + 2f) + start;
+ }
+ return result;
+ }
+
+ private static float EaseInSine(float start, float distance, float elapsedTime, float duration)
+ {
+ bool flag = elapsedTime > duration;
+ if (flag)
+ {
+ elapsedTime = duration;
+ }
+ return -distance * Mathf.Cos(elapsedTime / duration * 1.57079637f) + distance + start;
+ }
+
+ private static float EaseOutSine(float start, float distance, float elapsedTime, float duration)
+ {
+ bool flag = elapsedTime > duration;
+ if (flag)
+ {
+ elapsedTime = duration;
+ }
+ return distance * Mathf.Sin(elapsedTime / duration * 1.57079637f) + start;
+ }
+
+ private static float EaseInOutSine(float start, float distance, float elapsedTime, float duration)
+ {
+ bool flag = elapsedTime > duration;
+ if (flag)
+ {
+ elapsedTime = duration;
+ }
+ return -distance / 2f * (Mathf.Cos(3.14159274f * elapsedTime / duration) - 1f) + start;
+ }
+
+ private static float EaseInExpo(float start, float distance, float elapsedTime, float duration)
+ {
+ bool flag = elapsedTime > duration;
+ if (flag)
+ {
+ elapsedTime = duration;
+ }
+ return distance * Mathf.Pow(2f, 10f * (elapsedTime / duration - 1f)) + start;
+ }
+
+ private static float EaseOutExpo(float start, float distance, float elapsedTime, float duration)
+ {
+ bool flag = elapsedTime > duration;
+ if (flag)
+ {
+ elapsedTime = duration;
+ }
+ return distance * (-Mathf.Pow(2f, -10f * elapsedTime / duration) + 1f) + start;
+ }
+
+ private static float EaseInOutExpo(float start, float distance, float elapsedTime, float duration)
+ {
+ elapsedTime = ((elapsedTime > duration) ? 2f : (elapsedTime / (duration / 2f)));
+ bool flag = elapsedTime < 1f;
+ float result;
+ if (flag)
+ {
+ result = distance / 2f * Mathf.Pow(2f, 10f * (elapsedTime - 1f)) + start;
+ }
+ else
+ {
+ elapsedTime -= 1f;
+ result = distance / 2f * (-Mathf.Pow(2f, -10f * elapsedTime) + 2f) + start;
+ }
+ return result;
+ }
+
+ private static float EaseInCirc(float start, float distance, float elapsedTime, float duration)
+ {
+ elapsedTime = ((elapsedTime > duration) ? 1f : (elapsedTime / duration));
+ return -distance * (Mathf.Sqrt(1f - elapsedTime * elapsedTime) - 1f) + start;
+ }
+
+ private static float EaseOutCirc(float start, float distance, float elapsedTime, float duration)
+ {
+ elapsedTime = ((elapsedTime > duration) ? 1f : (elapsedTime / duration));
+ elapsedTime -= 1f;
+ return distance * Mathf.Sqrt(1f - elapsedTime * elapsedTime) + start;
+ }
+
+ private static float EaseInOutCirc(float start, float distance, float elapsedTime, float duration)
+ {
+ elapsedTime = ((elapsedTime > duration) ? 2f : (elapsedTime / (duration / 2f)));
+ bool flag = elapsedTime < 1f;
+ float result;
+ if (flag)
+ {
+ result = -distance / 2f * (Mathf.Sqrt(1f - elapsedTime * elapsedTime) - 1f) + start;
+ }
+ else
+ {
+ elapsedTime -= 2f;
+ result = distance / 2f * (Mathf.Sqrt(1f - elapsedTime * elapsedTime) + 1f) + start;
+ }
+ return result;
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XInterpolate.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XInterpolate.cs.meta new file mode 100644 index 00000000..d98b9b28 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XInterpolate.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 0e65907fa7081c0489f8d23e94f789a8 +timeCreated: 1611465289 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XInvalidSkillException.cs b/Client/Assets/Scripts/XUtliPoolLib/XInvalidSkillException.cs new file mode 100644 index 00000000..8ceb6d89 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XInvalidSkillException.cs @@ -0,0 +1,16 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ [Serializable]
+ public class XInvalidSkillException : XException
+ {
+ public XInvalidSkillException(string message) : base(message)
+ {
+ }
+
+ public XInvalidSkillException(string message, Exception inner) : base(message, inner)
+ {
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XInvalidSkillException.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XInvalidSkillException.cs.meta new file mode 100644 index 00000000..bde01d77 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XInvalidSkillException.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4444cb79f2821284aa2239d0bdabb5ae +timeCreated: 1611465637 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XJAData.cs b/Client/Assets/Scripts/XUtliPoolLib/XJAData.cs new file mode 100644 index 00000000..3c8cf6c9 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XJAData.cs @@ -0,0 +1,28 @@ +using System;
+using System.ComponentModel;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ [Serializable]
+ public class XJAData : XBaseData
+ {
+ [SerializeField]
+ public string Next_Name = null;
+
+ [SerializeField]
+ public string Name = null;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float At;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float End;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Point;
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XJAData.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XJAData.cs.meta new file mode 100644 index 00000000..1f24f8e9 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XJAData.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d87a4c26687b8c745ac7288ccc4d86ce +timeCreated: 1611465765 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XLocalPRSAsyncData.cs b/Client/Assets/Scripts/XUtliPoolLib/XLocalPRSAsyncData.cs new file mode 100644 index 00000000..341c337f --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XLocalPRSAsyncData.cs @@ -0,0 +1,25 @@ +using System;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public class XLocalPRSAsyncData
+ {
+ public Vector3 localPos = Vector3.zero;
+
+ public Quaternion localRotation = Quaternion.identity;
+
+ public Vector3 localScale = Vector3.one;
+
+ public short mask = 0;
+
+ public void Reset()
+ {
+ this.localPos = Vector3.zero;
+ this.localRotation = Quaternion.identity;
+ this.localScale = Vector3.one;
+ this.mask = 0;
+ CommonObjectPool<XLocalPRSAsyncData>.Release(this);
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XLocalPRSAsyncData.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XLocalPRSAsyncData.cs.meta new file mode 100644 index 00000000..96f3131e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XLocalPRSAsyncData.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c0c0a010bcf78224e9fe499787702236 +timeCreated: 1611465753 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XLogicalData.cs b/Client/Assets/Scripts/XUtliPoolLib/XLogicalData.cs new file mode 100644 index 00000000..67860eb0 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XLogicalData.cs @@ -0,0 +1,111 @@ +using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ [Serializable]
+ public class XLogicalData
+ {
+ [SerializeField]
+ public XStrickenResponse StrickenMask = XStrickenResponse.Cease;
+
+ [SerializeField]
+ [DefaultValue(0)]
+ public int CanReplacedby;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Not_Move_At;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Not_Move_End;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Rotate_At;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Rotate_End;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Rotate_Speed;
+
+ [SerializeField]
+ [DefaultValue(false)]
+ public bool Rotate_Server_Sync;
+
+ [SerializeField]
+ [DefaultValue(0)]
+ public int CanCastAt_QTE;
+
+ [SerializeField]
+ [DefaultValue(0)]
+ public int QTE_Key;
+
+ [SerializeField]
+ public List<XQTEData> QTEData = null;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float CanCancelAt;
+
+ [SerializeField]
+ [DefaultValue(false)]
+ public bool SuppressPlayer;
+
+ [SerializeField]
+ [DefaultValue(true)]
+ public bool AttackOnHitDown;
+
+ [SerializeField]
+ [DefaultValue(false)]
+ public bool Association;
+
+ [SerializeField]
+ [DefaultValue(false)]
+ public bool MoveType;
+
+ [SerializeField]
+ public string Association_Skill = null;
+
+ [SerializeField]
+ public string Syntonic_CoolDown_Skill = null;
+
+ [SerializeField]
+ [DefaultValue(0)]
+ public int PreservedStrength;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float PreservedAt;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float PreservedEndAt;
+
+ [SerializeField]
+ public string Exstring = null;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Exstring_At;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Not_Selected_At;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Not_Selected_End;
+
+ public XLogicalData()
+ {
+ this.AttackOnHitDown = true;
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XLogicalData.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XLogicalData.cs.meta new file mode 100644 index 00000000..bced1ef8 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XLogicalData.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: e2ffa4256503ada40a21bc8a6e9441a9 +timeCreated: 1611465801 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XLongAttackResultData.cs b/Client/Assets/Scripts/XUtliPoolLib/XLongAttackResultData.cs new file mode 100644 index 00000000..401de60f --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XLongAttackResultData.cs @@ -0,0 +1,176 @@ +using System;
+using System.ComponentModel;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ [Serializable]
+ public class XLongAttackResultData
+ {
+ [SerializeField]
+ public XResultBulletType Type = XResultBulletType.Sphere;
+
+ [SerializeField]
+ [DefaultValue(true)]
+ public bool WithCollision;
+
+ [SerializeField]
+ [DefaultValue(false)]
+ public bool Follow;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Runningtime;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Stickytime;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Velocity;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Radius;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Palstance;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float RingVelocity;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float RingRadius;
+
+ [SerializeField]
+ [DefaultValue(false)]
+ public bool RingFull;
+
+ [SerializeField]
+ public string Prefab = null;
+
+ [SerializeField]
+ [DefaultValue(true)]
+ public bool TriggerOnce;
+
+ [SerializeField]
+ [DefaultValue(false)]
+ public bool TriggerAtEnd;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float TriggerAtEnd_Cycle;
+
+ [SerializeField]
+ [DefaultValue(0)]
+ public int TriggerAtEnd_Count;
+
+ [SerializeField]
+ [DefaultValue(0)]
+ public int FireAngle;
+
+ [SerializeField]
+ public string HitGround_Fx = null;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float HitGroundFx_LifeTime;
+
+ [SerializeField]
+ public string End_Fx = null;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float EndFx_LifeTime;
+
+ [SerializeField]
+ [DefaultValue(true)]
+ public bool EndFx_Ground;
+
+ [SerializeField]
+ public string Audio = null;
+
+ [SerializeField]
+ public AudioChannel Audio_Channel = AudioChannel.Skill;
+
+ [SerializeField]
+ public string End_Audio = null;
+
+ [SerializeField]
+ public AudioChannel End_Audio_Channel = AudioChannel.Skill;
+
+ [SerializeField]
+ [DefaultValue(true)]
+ public bool FlyWithTerrain;
+
+ [SerializeField]
+ [DefaultValue(false)]
+ public bool IsPingPong;
+
+ [SerializeField]
+ [DefaultValue(true)]
+ public bool AimTargetCenter;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float At_X;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float At_Y;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float At_Z;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Refine_Cycle;
+
+ [SerializeField]
+ [DefaultValue(0)]
+ public int Refine_Count;
+
+ [SerializeField]
+ [DefaultValue(false)]
+ public bool AutoRefine_at_Half;
+
+ [SerializeField]
+ [DefaultValue(true)]
+ public bool StaticCollider;
+
+ [SerializeField]
+ [DefaultValue(false)]
+ public bool DynamicCollider;
+
+ [SerializeField]
+ [DefaultValue(false)]
+ public bool Manipulation;
+
+ [SerializeField]
+ [DefaultValue(false)]
+ public bool Reinforce;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float ManipulationRadius;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float ManipulationForce;
+
+ public XLongAttackResultData()
+ {
+ this.WithCollision = true;
+ this.TriggerOnce = true;
+ this.EndFx_Ground = true;
+ this.FlyWithTerrain = true;
+ this.AimTargetCenter = true;
+ this.StaticCollider = true;
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XLongAttackResultData.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XLongAttackResultData.cs.meta new file mode 100644 index 00000000..15f500fb --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XLongAttackResultData.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f15661fc555aa974da427357052fa321 +timeCreated: 1611465807 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XLuaLong.cs b/Client/Assets/Scripts/XUtliPoolLib/XLuaLong.cs new file mode 100644 index 00000000..c5993aed --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XLuaLong.cs @@ -0,0 +1,24 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class XLuaLong
+ {
+ public string str;
+
+ public XLuaLong(string _str)
+ {
+ this.str = _str;
+ }
+
+ public ulong Get()
+ {
+ bool flag = string.IsNullOrEmpty(this.str);
+ if (flag)
+ {
+ XSingleton<XDebug>.singleton.AddErrorLog("", null, null, null, null, null);
+ }
+ return ulong.Parse(this.str);
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XLuaLong.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XLuaLong.cs.meta new file mode 100644 index 00000000..4e2d043f --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XLuaLong.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c610ddcea46b9824c8d783dd7b87a33f +timeCreated: 1611465755 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XManipulationData.cs b/Client/Assets/Scripts/XUtliPoolLib/XManipulationData.cs new file mode 100644 index 00000000..00dac5a0 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XManipulationData.cs @@ -0,0 +1,47 @@ +using System;
+using System.ComponentModel;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ [Serializable]
+ public class XManipulationData : XBaseData
+ {
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float At;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float End;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float OffsetX;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float OffsetZ;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Degree;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Radius;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Force;
+
+ [SerializeField]
+ [DefaultValue(true)]
+ public bool TargetIsOpponent;
+
+ public XManipulationData()
+ {
+ this.TargetIsOpponent = true;
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XManipulationData.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XManipulationData.cs.meta new file mode 100644 index 00000000..33aebef5 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XManipulationData.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 056af2825e895d24cb8c3f42649d4c2a +timeCreated: 1611465285 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XMeshPartList.cs b/Client/Assets/Scripts/XUtliPoolLib/XMeshPartList.cs new file mode 100644 index 00000000..3d0ce82c --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XMeshPartList.cs @@ -0,0 +1,229 @@ +using System;
+using System.Collections.Generic;
+
+namespace XUtliPoolLib
+{
+ public class XMeshPartList
+ {
+ public static byte NormalPart = 1;
+
+ public static byte OnePart = 3;
+
+ public static byte CutoutPart = 7;
+
+ public static byte ReplacePart = 8;
+
+ public static byte ReplaceTex = 16;
+
+ public static byte ShareTex = 32;
+
+ public string[] partSuffix = new string[9];
+
+ public string[] proPrefix = null;
+
+ public string sharedPrefix = null;
+
+ public Dictionary<uint, byte> meshPartsInfo = null;
+
+ public Dictionary<uint, string> replaceMeshPartsInfo = null;
+
+ public Dictionary<uint, string> replaceTexPartsInfo = null;
+
+ public static byte ConvertType(byte type)
+ {
+ byte result;
+ if (type != 1)
+ {
+ if (type != 3)
+ {
+ if (type != 7)
+ {
+ result = 3;
+ }
+ else
+ {
+ result = 7;
+ }
+ }
+ else
+ {
+ result = 3;
+ }
+ }
+ else
+ {
+ result = 3;
+ }
+ return result;
+ }
+
+ public bool GetMeshInfo(string location, int professionType, int part, string srcDir, out byte partType, ref string meshLocation, ref string texLocation)
+ {
+ partType = 0;
+ uint key = XSingleton<XCommon>.singleton.XHash(location);
+ bool flag = this.meshPartsInfo.TryGetValue(key, out partType);
+ bool result;
+ if (flag)
+ {
+ bool flag2 = partType > XMeshPartList.CutoutPart;
+ if (flag2)
+ {
+ bool flag3 = (partType & XMeshPartList.ReplacePart) > 0;
+ if (flag3)
+ {
+ partType &= (byte)~XMeshPartList.ReplacePart;
+ bool flag4 = this.replaceMeshPartsInfo.TryGetValue(key, out meshLocation);
+ if (flag4)
+ {
+ string text = this.proPrefix[professionType];
+ string arg = this.partSuffix[part];
+ meshLocation = string.Format("Equipments/{0}/{1}{2}", meshLocation, text, arg);
+ key = XSingleton<XCommon>.singleton.XHash(meshLocation);
+ }
+ }
+ bool flag5 = (partType & XMeshPartList.ReplaceTex) > 0;
+ if (flag5)
+ {
+ partType &= (byte) ~XMeshPartList.ReplaceTex;
+ bool flag6 = this.replaceTexPartsInfo.TryGetValue(key, out texLocation);
+ if (flag6)
+ {
+ bool flag7 = texLocation.StartsWith("/");
+ if (flag7)
+ {
+ bool flag8 = string.IsNullOrEmpty(srcDir);
+ if (flag8)
+ {
+ texLocation = null;
+ }
+ else
+ {
+ bool flag9 = srcDir.StartsWith("/");
+ if (flag9)
+ {
+ texLocation = string.Format("Equipments{0}{1}", srcDir, texLocation);
+ }
+ else
+ {
+ texLocation = string.Format("Equipments/{0}{1}", srcDir, texLocation);
+ }
+ }
+ }
+ else
+ {
+ texLocation = string.Format("Equipments/Player/{0}", texLocation);
+ }
+ }
+ }
+ else
+ {
+ bool flag10 = (partType & XMeshPartList.ShareTex) > 0;
+ if (flag10)
+ {
+ partType &= (byte) ~XMeshPartList.ShareTex;
+ bool flag11 = this.proPrefix != null && professionType < this.proPrefix.Length;
+ if (flag11)
+ {
+ string text = this.proPrefix[professionType];
+ texLocation = location.Replace(text, this.sharedPrefix);
+ }
+ }
+ }
+ }
+ result = true;
+ }
+ else
+ {
+ result = false;
+ }
+ return result;
+ }
+
+ public void Load()
+ {
+ bool flag = this.meshPartsInfo != null;
+ if (flag)
+ {
+ this.meshPartsInfo.Clear();
+ }
+ bool flag2 = this.replaceMeshPartsInfo != null;
+ if (flag2)
+ {
+ this.replaceMeshPartsInfo.Clear();
+ }
+ XBinaryReader xbinaryReader = XSingleton<XResourceLoaderMgr>.singleton.ReadBinary("Equipments/equipmentInfo", ".bytes", true, true);
+ bool flag3 = xbinaryReader != null;
+ if (flag3)
+ {
+ try
+ {
+ int num = xbinaryReader.ReadInt32();
+ this.proPrefix = new string[num];
+ for (int i = 0; i < num; i++)
+ {
+ this.proPrefix[i] = xbinaryReader.ReadString(-1);
+ }
+ int num2 = xbinaryReader.ReadInt32();
+ for (int j = 0; j < num2; j++)
+ {
+ bool flag4 = j < this.partSuffix.Length;
+ if (flag4)
+ {
+ this.partSuffix[j] = xbinaryReader.ReadString(-1);
+ }
+ }
+ this.sharedPrefix = xbinaryReader.ReadString(-1);
+ int num3 = xbinaryReader.ReadInt32();
+ string[] array = new string[num3];
+ for (int k = 0; k < num3; k++)
+ {
+ array[k] = xbinaryReader.ReadString(-1);
+ }
+ int num4 = xbinaryReader.ReadInt32();
+ bool flag5 = this.meshPartsInfo == null;
+ if (flag5)
+ {
+ this.meshPartsInfo = new Dictionary<uint, byte>(num4);
+ }
+ for (int l = 0; l < num4; l++)
+ {
+ uint key = xbinaryReader.ReadUInt32();
+ byte value = xbinaryReader.ReadByte();
+ this.meshPartsInfo[key] = value;
+ }
+ num4 = xbinaryReader.ReadInt32();
+ bool flag6 = this.replaceMeshPartsInfo == null;
+ if (flag6)
+ {
+ this.replaceMeshPartsInfo = new Dictionary<uint, string>(num4);
+ }
+ for (int m = 0; m < num4; m++)
+ {
+ uint key2 = xbinaryReader.ReadUInt32();
+ ushort num5 = xbinaryReader.ReadUInt16();
+ string value2 = array[(int)num5];
+ this.replaceMeshPartsInfo[key2] = value2;
+ }
+ num4 = xbinaryReader.ReadInt32();
+ bool flag7 = this.replaceTexPartsInfo == null;
+ if (flag7)
+ {
+ this.replaceTexPartsInfo = new Dictionary<uint, string>(num4);
+ }
+ for (int n = 0; n < num4; n++)
+ {
+ uint key3 = xbinaryReader.ReadUInt32();
+ ushort num6 = xbinaryReader.ReadUInt16();
+ string value3 = array[(int)num6];
+ this.replaceTexPartsInfo[key3] = value3;
+ }
+ }
+ catch (Exception ex)
+ {
+ XSingleton<XDebug>.singleton.AddErrorLog(ex.Message, null, null, null, null, null);
+ }
+ }
+ XSingleton<XResourceLoaderMgr>.singleton.ClearBinary(xbinaryReader, true);
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XMeshPartList.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XMeshPartList.cs.meta new file mode 100644 index 00000000..f48d9d0b --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XMeshPartList.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 75159934ffb48764aabfaa54cd066e99 +timeCreated: 1611465689 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XMeshRenderInfo.cs b/Client/Assets/Scripts/XUtliPoolLib/XMeshRenderInfo.cs new file mode 100644 index 00000000..68df3b51 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XMeshRenderInfo.cs @@ -0,0 +1,10 @@ +using System;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public class XMeshRenderInfo : MonoBehaviour
+ {
+ public Renderer[] renderers = null;
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XMeshRenderInfo.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XMeshRenderInfo.cs.meta new file mode 100644 index 00000000..74c86132 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XMeshRenderInfo.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8c508eca9d084374db86b9270b4276ce +timeCreated: 1611465700 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XMissAnimationException.cs b/Client/Assets/Scripts/XUtliPoolLib/XMissAnimationException.cs new file mode 100644 index 00000000..cff4fe83 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XMissAnimationException.cs @@ -0,0 +1,16 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ [Serializable]
+ public class XMissAnimationException : XException
+ {
+ public XMissAnimationException(string message) : base(message)
+ {
+ }
+
+ public XMissAnimationException(string message, Exception inner) : base(message, inner)
+ {
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XMissAnimationException.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XMissAnimationException.cs.meta new file mode 100644 index 00000000..e2f63dac --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XMissAnimationException.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 15cd9a6077aea9948a22139b01edaf64 +timeCreated: 1611465294 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XMissEventDescriptionException.cs b/Client/Assets/Scripts/XUtliPoolLib/XMissEventDescriptionException.cs new file mode 100644 index 00000000..d5b758cc --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XMissEventDescriptionException.cs @@ -0,0 +1,16 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ [Serializable]
+ public class XMissEventDescriptionException : XException
+ {
+ public XMissEventDescriptionException(string message) : base(message)
+ {
+ }
+
+ public XMissEventDescriptionException(string message, Exception inner) : base(message, inner)
+ {
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XMissEventDescriptionException.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XMissEventDescriptionException.cs.meta new file mode 100644 index 00000000..60a3f2d5 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XMissEventDescriptionException.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 873f92b040685074b9de28c814c5c5a9 +timeCreated: 1611465696 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XMobUnitData.cs b/Client/Assets/Scripts/XUtliPoolLib/XMobUnitData.cs new file mode 100644 index 00000000..29d74af4 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XMobUnitData.cs @@ -0,0 +1,38 @@ +using System;
+using System.ComponentModel;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ [Serializable]
+ public class XMobUnitData : XBaseData
+ {
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float At;
+
+ [SerializeField]
+ [DefaultValue(0)]
+ public int TemplateID;
+
+ [SerializeField]
+ [DefaultValue(false)]
+ public bool LifewithinSkill;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Offset_At_X;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Offset_At_Y;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Offset_At_Z;
+
+ [SerializeField]
+ [DefaultValue(false)]
+ public bool Shield;
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XMobUnitData.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XMobUnitData.cs.meta new file mode 100644 index 00000000..7ad256f6 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XMobUnitData.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 837755e1b2712f44d85b5964b472e8e3 +timeCreated: 1611465695 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XNpcInfo.cs b/Client/Assets/Scripts/XUtliPoolLib/XNpcInfo.cs new file mode 100644 index 00000000..9c11f263 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XNpcInfo.cs @@ -0,0 +1,185 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class XNpcInfo : CVSReader
+ {
+ public XNpcInfo.RowData[] Table = null;
+
+ public class RowData
+ {
+ public uint ID;
+
+ public string Name;
+
+ public uint PresentID;
+
+ public string Icon;
+
+ public string Portrait;
+
+ public uint SceneID;
+
+ public float[] Position;
+
+ public float[] Rotation;
+
+ public uint RequiredTaskID;
+
+ public string[] Content;
+
+ public int[] FunctionList;
+
+ public uint Gazing;
+
+ public string[] Voice;
+
+ public string[] ShowUp;
+
+ public bool OnlyHead;
+
+ public int LinkSystem;
+
+ public uint NPCType;
+
+ public uint DisappearTask;
+
+ public string SpecialAnim;
+
+ public string SpecialChat;
+ }
+
+ public XNpcInfo.RowData GetByNPCID(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ XNpcInfo.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchNPCID(key);
+ }
+ return result;
+ }
+
+ private XNpcInfo.RowData BinarySearchNPCID(uint key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ XNpcInfo.RowData rowData;
+ XNpcInfo.RowData rowData2;
+ XNpcInfo.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.ID == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.ID == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.ID.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.ID.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ XNpcInfo.RowData rowData = new XNpcInfo.RowData();
+ base.Read<uint>(reader, ref rowData.ID, CVSReader.uintParse);
+ this.columnno = 0;
+ base.Read<string>(reader, ref rowData.Name, CVSReader.stringParse);
+ this.columnno = 1;
+ base.Read<uint>(reader, ref rowData.PresentID, CVSReader.uintParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.Icon, CVSReader.stringParse);
+ this.columnno = 3;
+ base.Read<string>(reader, ref rowData.Portrait, CVSReader.stringParse);
+ this.columnno = 4;
+ base.Read<uint>(reader, ref rowData.SceneID, CVSReader.uintParse);
+ this.columnno = 5;
+ base.ReadArray<float>(reader, ref rowData.Position, CVSReader.floatParse);
+ this.columnno = 6;
+ base.ReadArray<float>(reader, ref rowData.Rotation, CVSReader.floatParse);
+ this.columnno = 7;
+ base.Read<uint>(reader, ref rowData.RequiredTaskID, CVSReader.uintParse);
+ this.columnno = 8;
+ base.ReadArray<string>(reader, ref rowData.Content, CVSReader.stringParse);
+ this.columnno = 9;
+ base.ReadArray<int>(reader, ref rowData.FunctionList, CVSReader.intParse);
+ this.columnno = 10;
+ base.Read<uint>(reader, ref rowData.Gazing, CVSReader.uintParse);
+ this.columnno = 11;
+ base.ReadArray<string>(reader, ref rowData.Voice, CVSReader.stringParse);
+ this.columnno = 12;
+ base.ReadArray<string>(reader, ref rowData.ShowUp, CVSReader.stringParse);
+ this.columnno = 13;
+ base.Read<bool>(reader, ref rowData.OnlyHead, CVSReader.boolParse);
+ this.columnno = 14;
+ base.Read<int>(reader, ref rowData.LinkSystem, CVSReader.intParse);
+ this.columnno = 15;
+ base.Read<uint>(reader, ref rowData.NPCType, CVSReader.uintParse);
+ this.columnno = 16;
+ base.Read<uint>(reader, ref rowData.DisappearTask, CVSReader.uintParse);
+ this.columnno = 17;
+ base.Read<string>(reader, ref rowData.SpecialAnim, CVSReader.stringParse);
+ this.columnno = 18;
+ base.Read<string>(reader, ref rowData.SpecialChat, CVSReader.stringParse);
+ this.columnno = 19;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new XNpcInfo.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XNpcInfo.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XNpcInfo.cs.meta new file mode 100644 index 00000000..a9c8e698 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XNpcInfo.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8a48c7879ccda5f4290581a419364240 +timeCreated: 1611465699 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XObjAsyncData.cs b/Client/Assets/Scripts/XUtliPoolLib/XObjAsyncData.cs new file mode 100644 index 00000000..9b5bd7b1 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XObjAsyncData.cs @@ -0,0 +1,27 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class XObjAsyncData : IQueueObject
+ {
+ public IQueueObject next { get; set; }
+
+ public object data = null;
+
+ public CommandCallback commandCb = null;
+
+ public ResetCallback resetCb = null;
+
+ public void Reset()
+ {
+ this.data = null;
+ this.commandCb = null;
+ bool flag = this.resetCb != null;
+ if (flag)
+ {
+ this.resetCb();
+ this.resetCb = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XObjAsyncData.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XObjAsyncData.cs.meta new file mode 100644 index 00000000..bff36834 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XObjAsyncData.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8d79df350bcdc4b4d9dcaf346a79ac38 +timeCreated: 1611465701 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XOperationTable.cs b/Client/Assets/Scripts/XUtliPoolLib/XOperationTable.cs new file mode 100644 index 00000000..5663e45b --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XOperationTable.cs @@ -0,0 +1,137 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class XOperationTable : CVSReader
+ {
+ public XOperationTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int ID;
+
+ public float Angle;
+
+ public float Distance;
+
+ public bool Vertical;
+
+ public bool Horizontal;
+
+ public float MaxV;
+
+ public float MinV;
+
+ public bool OffSolo;
+ }
+
+ public XOperationTable.RowData GetByID(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ XOperationTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchID(key);
+ }
+ return result;
+ }
+
+ private XOperationTable.RowData BinarySearchID(int key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ XOperationTable.RowData rowData;
+ XOperationTable.RowData rowData2;
+ XOperationTable.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.ID == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.ID == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.ID.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.ID.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ XOperationTable.RowData rowData = new XOperationTable.RowData();
+ base.Read<int>(reader, ref rowData.ID, CVSReader.intParse);
+ this.columnno = 0;
+ base.Read<float>(reader, ref rowData.Angle, CVSReader.floatParse);
+ this.columnno = 1;
+ base.Read<float>(reader, ref rowData.Distance, CVSReader.floatParse);
+ this.columnno = 2;
+ base.Read<bool>(reader, ref rowData.Vertical, CVSReader.boolParse);
+ this.columnno = 3;
+ base.Read<bool>(reader, ref rowData.Horizontal, CVSReader.boolParse);
+ this.columnno = 4;
+ base.Read<float>(reader, ref rowData.MaxV, CVSReader.floatParse);
+ this.columnno = 5;
+ base.Read<float>(reader, ref rowData.MinV, CVSReader.floatParse);
+ this.columnno = 6;
+ base.Read<bool>(reader, ref rowData.OffSolo, CVSReader.boolParse);
+ this.columnno = 7;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new XOperationTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XOperationTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XOperationTable.cs.meta new file mode 100644 index 00000000..fcabfb54 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XOperationTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 33bdd0becf1159b419dfec14c58b22b0 +timeCreated: 1611465311 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XOptions.cs b/Client/Assets/Scripts/XUtliPoolLib/XOptions.cs new file mode 100644 index 00000000..f07d2aad --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XOptions.cs @@ -0,0 +1,137 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class XOptions : CVSReader
+ {
+ public XOptions.RowData[] Table = null;
+
+ public class RowData
+ {
+ public int ID;
+
+ public int[] Classify;
+
+ public int Sort;
+
+ public string Text;
+
+ public int Type;
+
+ public string Range;
+
+ public string Default;
+
+ public string[] OptionText;
+ }
+
+ public XOptions.RowData GetByID(int key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ XOptions.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = this.BinarySearchID(key);
+ }
+ return result;
+ }
+
+ private XOptions.RowData BinarySearchID(int key)
+ {
+ int num = 0;
+ int num2 = this.Table.Length - 1;
+ XOptions.RowData rowData;
+ XOptions.RowData rowData2;
+ XOptions.RowData rowData3;
+ for (;;)
+ {
+ rowData = this.Table[num];
+ bool flag = rowData.ID == key;
+ if (flag)
+ {
+ break;
+ }
+ rowData2 = this.Table[num2];
+ bool flag2 = rowData2.ID == key;
+ if (flag2)
+ {
+ goto Block_2;
+ }
+ bool flag3 = num2 - num <= 1;
+ if (flag3)
+ {
+ goto Block_3;
+ }
+ int num3 = num + (num2 - num) / 2;
+ rowData3 = this.Table[num3];
+ bool flag4 = rowData3.ID.CompareTo(key) > 0;
+ if (flag4)
+ {
+ num2 = num3;
+ }
+ else
+ {
+ bool flag5 = rowData3.ID.CompareTo(key) < 0;
+ if (!flag5)
+ {
+ goto IL_B1;
+ }
+ num = num3;
+ }
+ if (num >= num2)
+ {
+ goto Block_6;
+ }
+ }
+ return rowData;
+ Block_2:
+ return rowData2;
+ Block_3:
+ return null;
+ IL_B1:
+ return rowData3;
+ Block_6:
+ return null;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ XOptions.RowData rowData = new XOptions.RowData();
+ base.Read<int>(reader, ref rowData.ID, CVSReader.intParse);
+ this.columnno = 0;
+ base.ReadArray<int>(reader, ref rowData.Classify, CVSReader.intParse);
+ this.columnno = 1;
+ base.Read<int>(reader, ref rowData.Sort, CVSReader.intParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.Text, CVSReader.stringParse);
+ this.columnno = 3;
+ base.Read<int>(reader, ref rowData.Type, CVSReader.intParse);
+ this.columnno = 4;
+ base.Read<string>(reader, ref rowData.Range, CVSReader.stringParse);
+ this.columnno = 5;
+ base.Read<string>(reader, ref rowData.Default, CVSReader.stringParse);
+ this.columnno = 6;
+ base.ReadArray<string>(reader, ref rowData.OptionText, CVSReader.stringParse);
+ this.columnno = 7;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new XOptions.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XOptions.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XOptions.cs.meta new file mode 100644 index 00000000..ca47ff71 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XOptions.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 61a04b1f90497e34f8999099283d2b0a +timeCreated: 1611465653 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XPlatformType.cs b/Client/Assets/Scripts/XUtliPoolLib/XPlatformType.cs new file mode 100644 index 00000000..263e7224 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XPlatformType.cs @@ -0,0 +1,11 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public enum XPlatformType
+ {
+ IOS,
+ Android,
+ Standalone
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XPlatformType.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XPlatformType.cs.meta new file mode 100644 index 00000000..c6073a97 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XPlatformType.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c90400a80539b5e4296ff86e1d492413 +timeCreated: 1611465757 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XPlayerDataClip.cs b/Client/Assets/Scripts/XUtliPoolLib/XPlayerDataClip.cs new file mode 100644 index 00000000..8f6903d8 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XPlayerDataClip.cs @@ -0,0 +1,39 @@ +using System;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ [Serializable]
+ public class XPlayerDataClip : XCutSceneClip
+ {
+ [SerializeField]
+ public string Clip1 = null;
+
+ [SerializeField]
+ public string Clip2 = null;
+
+ [SerializeField]
+ public string Clip3 = null;
+
+ [SerializeField]
+ public string Clip4 = null;
+
+ [SerializeField]
+ public string Clip5 = null;
+
+ [SerializeField]
+ public string Clip6 = null;
+
+ [SerializeField]
+ public string Clip7 = null;
+
+ [SerializeField]
+ public float AppearX = 0f;
+
+ [SerializeField]
+ public float AppearY = 0f;
+
+ [SerializeField]
+ public float AppearZ = 0f;
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XPlayerDataClip.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XPlayerDataClip.cs.meta new file mode 100644 index 00000000..b8036455 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XPlayerDataClip.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ac54d75636fb913418386c27d3fcf9b6 +timeCreated: 1611465741 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XQTEData.cs b/Client/Assets/Scripts/XUtliPoolLib/XQTEData.cs new file mode 100644 index 00000000..17428bbc --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XQTEData.cs @@ -0,0 +1,21 @@ +using System;
+using System.ComponentModel;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ [Serializable]
+ public class XQTEData
+ {
+ [SerializeField]
+ public int QTE = 0;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float At = 0f;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float End = 0f;
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XQTEData.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XQTEData.cs.meta new file mode 100644 index 00000000..e015e498 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XQTEData.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4820ae7921d7fdb419779152edf2c77e +timeCreated: 1611465639 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XQTEStatusTable.cs b/Client/Assets/Scripts/XUtliPoolLib/XQTEStatusTable.cs new file mode 100644 index 00000000..37272dc9 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XQTEStatusTable.cs @@ -0,0 +1,63 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class XQTEStatusTable : CVSReader
+ {
+ public XQTEStatusTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public string Name;
+
+ public uint Value;
+ }
+
+ public XQTEStatusTable.RowData GetByValue(uint key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ XQTEStatusTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].Value == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ XQTEStatusTable.RowData rowData = new XQTEStatusTable.RowData();
+ base.Read<string>(reader, ref rowData.Name, CVSReader.stringParse);
+ this.columnno = 0;
+ base.Read<uint>(reader, ref rowData.Value, CVSReader.uintParse);
+ this.columnno = 1;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new XQTEStatusTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XQTEStatusTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XQTEStatusTable.cs.meta new file mode 100644 index 00000000..70448550 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XQTEStatusTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: bd32643896ee6524289c1d8103fca44d +timeCreated: 1611465750 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XRedpointDirtyMgr.cs b/Client/Assets/Scripts/XUtliPoolLib/XRedpointDirtyMgr.cs new file mode 100644 index 00000000..3cf79c6b --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XRedpointDirtyMgr.cs @@ -0,0 +1,25 @@ +using System;
+using System.Collections.Generic;
+
+namespace XUtliPoolLib
+{
+ public abstract class XRedpointDirtyMgr
+ {
+ protected HashSet<int> mDirtySysList = new HashSet<int>();
+
+ protected Dictionary<int, bool> mSysRedpointStateDic = new Dictionary<int, bool>();
+
+ public abstract void RecalculateRedPointSelfState(int sys, bool bImmUpdateUI = true);
+
+ public abstract void RefreshAllSysRedpoints();
+
+ protected abstract void _RefreshSysRedpointUI(int sys, bool redpoint);
+
+ protected bool _GetSysRedpointState(int sys)
+ {
+ bool result = false;
+ this.mSysRedpointStateDic.TryGetValue(sys, out result);
+ return result;
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XRedpointDirtyMgr.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XRedpointDirtyMgr.cs.meta new file mode 100644 index 00000000..77e27358 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XRedpointDirtyMgr.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b796487f864318b4b9b92a3154ac495b +timeCreated: 1611465747 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XRedpointExMgr.cs b/Client/Assets/Scripts/XUtliPoolLib/XRedpointExMgr.cs new file mode 100644 index 00000000..086ff966 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XRedpointExMgr.cs @@ -0,0 +1,100 @@ +using System;
+using System.Collections.Generic;
+
+namespace XUtliPoolLib
+{
+ public class XRedpointExMgr : XRedpointMgr, IXRedpointExMgr, IXRedpointMgr, IXRedpointRelationMgr, IXRedpointForbidMgr
+ {
+ protected uint mCurrentLevel;
+
+ protected Dictionary<int, HashSet<uint>> mSysForbidLevelsDic = new Dictionary<int, HashSet<uint>>();
+
+ public void AddSysForbidLevels(int sys, uint level)
+ {
+ HashSet<uint> hashSet = null;
+ bool flag = !this.mSysForbidLevelsDic.TryGetValue(sys, out hashSet);
+ if (flag)
+ {
+ hashSet = new HashSet<uint>();
+ this.mSysForbidLevelsDic[sys] = hashSet;
+ }
+ bool flag2 = hashSet.Add(level);
+ if (flag2)
+ {
+ bool flag3 = this.mCurrentLevel == level;
+ if (flag3)
+ {
+ this._RefreshSysRedpointUI(sys, base._GetSysRedpointState(sys));
+ }
+ }
+ }
+
+ public void RemoveSysForbidLevels(int sys, uint level)
+ {
+ HashSet<uint> hashSet = null;
+ bool flag = this.mSysForbidLevelsDic.TryGetValue(sys, out hashSet);
+ if (flag)
+ {
+ bool flag2 = hashSet.Remove(level);
+ if (flag2)
+ {
+ bool flag3 = hashSet.Count <= 0;
+ if (flag3)
+ {
+ this.mSysForbidLevelsDic.Remove(sys);
+ }
+ bool flag4 = this.mCurrentLevel == level;
+ if (flag4)
+ {
+ this._RefreshSysRedpointUI(sys, base._GetSysRedpointState(sys));
+ }
+ }
+ }
+ }
+
+ public void InitCurrentLevel(uint level)
+ {
+ this.mCurrentLevel = level;
+ }
+
+ public void SetCurrentLevel(uint level)
+ {
+ bool flag = level != this.mCurrentLevel;
+ if (flag)
+ {
+ this.mCurrentLevel = level;
+ foreach (KeyValuePair<int, HashSet<uint>> keyValuePair in this.mSysForbidLevelsDic)
+ {
+ bool flag2 = keyValuePair.Value.Contains(level);
+ if (flag2)
+ {
+ bool flag3 = base._GetSysRedpointState(keyValuePair.Key);
+ if (flag3)
+ {
+ this._RefreshSysRedpointUI(keyValuePair.Key, false);
+ }
+ }
+ }
+ }
+ }
+
+ protected override void _RefreshSysRedpointUI(int sys, bool redpoint)
+ {
+ bool flag = redpoint;
+ if (flag)
+ {
+ HashSet<uint> hashSet = null;
+ bool flag2 = this.mSysForbidLevelsDic.TryGetValue(sys, out hashSet);
+ if (flag2)
+ {
+ bool flag3 = hashSet.Contains(this.mCurrentLevel);
+ if (flag3)
+ {
+ redpoint = false;
+ }
+ }
+ }
+ base._RefreshSysRedpointUI(sys, redpoint);
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XRedpointExMgr.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XRedpointExMgr.cs.meta new file mode 100644 index 00000000..c08c0eb6 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XRedpointExMgr.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8465ba3b7d84d724d86cb1b03eac4e78 +timeCreated: 1611465695 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XRedpointForbidMgr.cs b/Client/Assets/Scripts/XUtliPoolLib/XRedpointForbidMgr.cs new file mode 100644 index 00000000..0bca720e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XRedpointForbidMgr.cs @@ -0,0 +1,104 @@ +using System;
+using System.Collections.Generic;
+
+namespace XUtliPoolLib
+{
+ public abstract class XRedpointForbidMgr : XRedpointRelationMgr, IXRedpointForbidMgr
+ {
+ protected HashSet<int> mForbidHashSet = new HashSet<int>();
+
+ public void AddForbid(int sys, bool bImmUpdateUI = true)
+ {
+ bool flag = this.mForbidHashSet.Add(sys);
+ if (flag)
+ {
+ if (bImmUpdateUI)
+ {
+ this._RefreshSysRedpointUI(sys, base._GetSysRedpointState(sys));
+ }
+ else
+ {
+ this.mDirtySysList.Add(sys);
+ }
+ }
+ }
+
+ public void AddForbids(int[] systems, bool bImmUpdateUI = true)
+ {
+ bool flag = systems == null || systems.Length == 0;
+ if (!flag)
+ {
+ for (int i = 0; i < systems.Length; i++)
+ {
+ bool flag2 = this.mForbidHashSet.Add(systems[i]);
+ if (flag2)
+ {
+ if (bImmUpdateUI)
+ {
+ this._RefreshSysRedpointUI(systems[i], base._GetSysRedpointState(systems[i]));
+ }
+ else
+ {
+ this.mDirtySysList.Add(systems[i]);
+ }
+ }
+ }
+ }
+ }
+
+ public void RemoveForbid(int sys, bool bImmUpdateUI = true)
+ {
+ bool flag = this.mForbidHashSet.Remove(sys);
+ if (flag)
+ {
+ if (bImmUpdateUI)
+ {
+ this._RefreshSysRedpointUI(sys, base._GetSysRedpointState(sys));
+ }
+ else
+ {
+ this.mDirtySysList.Add(sys);
+ }
+ }
+ }
+
+ public void RemoveForbids(int[] systems, bool bImmUpdateUI = true)
+ {
+ bool flag = systems == null || systems.Length == 0;
+ if (!flag)
+ {
+ for (int i = 0; i < systems.Length; i++)
+ {
+ bool flag2 = this.mForbidHashSet.Remove(systems[i]);
+ if (flag2)
+ {
+ if (bImmUpdateUI)
+ {
+ this._RefreshSysRedpointUI(systems[i], base._GetSysRedpointState(systems[i]));
+ }
+ else
+ {
+ this.mDirtySysList.Add(systems[i]);
+ }
+ }
+ }
+ }
+ }
+
+ public void ClearForbids(bool bImmUpdateUI = true)
+ {
+ foreach (int num in this.mForbidHashSet)
+ {
+ if (bImmUpdateUI)
+ {
+ this._RefreshSysRedpointUI(num, base._GetSysRedpointState(num));
+ }
+ else
+ {
+ this.mDirtySysList.Add(num);
+ }
+ }
+ this.mForbidHashSet.Clear();
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XRedpointForbidMgr.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XRedpointForbidMgr.cs.meta new file mode 100644 index 00000000..f52ea3ad --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XRedpointForbidMgr.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 76c74f9bbcc7eb94f9a2394d43842a5e +timeCreated: 1611465690 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XRedpointMgr.cs b/Client/Assets/Scripts/XUtliPoolLib/XRedpointMgr.cs new file mode 100644 index 00000000..0c2b71b1 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XRedpointMgr.cs @@ -0,0 +1,233 @@ +using System;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public class XRedpointMgr : XRedpointForbidMgr, IXRedpointMgr, IXRedpointRelationMgr, IXRedpointForbidMgr
+ {
+ protected Dictionary<int, XRedpointMgr.stRedpointGameObject[]> mSysGameObjectListDic = new Dictionary<int, XRedpointMgr.stRedpointGameObject[]>();
+
+ protected struct stRedpointGameObject
+ {
+ public static readonly XRedpointMgr.stRedpointGameObject Empty;
+
+ public GameObject go;
+
+ public SetRedpointUIHandler callback;
+ }
+
+ public void AddSysRedpointUI(int sys, GameObject go, SetRedpointUIHandler callback = null)
+ {
+ bool flag = null == go;
+ if (!flag)
+ {
+ XRedpointMgr.stRedpointGameObject[] array = null;
+ bool flag2 = this.mSysGameObjectListDic.TryGetValue(sys, out array);
+ if (flag2)
+ {
+ bool flag3 = this._InsertObject(ref array, go, callback);
+ if (flag3)
+ {
+ this.mSysGameObjectListDic[sys] = array;
+ }
+ }
+ else
+ {
+ array = new XRedpointMgr.stRedpointGameObject[4];
+ array[0].go = go;
+ array[0].callback = callback;
+ this.mSysGameObjectListDic[sys] = array;
+ }
+ go.SetActive(base._GetSysRedpointState(sys));
+ }
+ }
+
+ public void RemoveSysRedpointUI(int sys, GameObject go)
+ {
+ bool flag = null == go;
+ if (!flag)
+ {
+ XRedpointMgr.stRedpointGameObject[] array = null;
+ bool flag2 = this.mSysGameObjectListDic.TryGetValue(sys, out array);
+ if (flag2)
+ {
+ this._DeleteObject(ref array, go);
+ }
+ }
+ }
+
+ public void RemoveAllSysRedpointsUI(int sys)
+ {
+ this.mSysGameObjectListDic.Remove(sys);
+ }
+
+ public void ClearAllSysRedpointsUI()
+ {
+ this.mSysGameObjectListDic.Clear();
+ }
+
+ public void SetSysRedpointState(int sys, bool redpoint, bool immediately = false)
+ {
+ bool flag = true;
+ bool flag3;
+ bool flag2 = this.mSysRedpointStateDic.TryGetValue(sys, out flag3);
+ if (flag2)
+ {
+ flag = (flag3 != redpoint);
+ }
+ this.mSysRedpointStateDic[sys] = redpoint;
+ bool flag4 = flag;
+ if (flag4)
+ {
+ if (immediately)
+ {
+ this._RefreshSysRedpointUI(sys, redpoint);
+ this._RecalculateRedPointParentStates(sys, immediately);
+ }
+ else
+ {
+ this.mDirtySysList.Add(sys);
+ }
+ }
+ }
+
+ public override void RefreshAllSysRedpoints()
+ {
+ foreach (int sys in this.mDirtySysList)
+ {
+ this._RefreshSysRedpointUI(sys, base._GetSysRedpointState(sys));
+ }
+ this.mDirtySysList.Clear();
+ }
+
+ public override void RecalculateRedPointSelfState(int sys, bool bImmUpdateUI = true)
+ {
+ bool flag = false;
+ int[] array = null;
+ bool flag2 = this.mParentChildRelationDic.TryGetValue(sys, out array);
+ if (flag2)
+ {
+ int num = 0;
+ while (num < array.Length && array[num] == 0 && !flag)
+ {
+ flag = (flag || base._GetSysRedpointState(array[num]));
+ num++;
+ }
+ }
+ bool flag3 = flag != base._GetSysRedpointState(sys);
+ if (flag3)
+ {
+ this.mSysRedpointStateDic[sys] = flag;
+ if (bImmUpdateUI)
+ {
+ this._RefreshSysRedpointUI(sys, flag);
+ }
+ else
+ {
+ this.mDirtySysList.Add(sys);
+ }
+ }
+ }
+
+ protected void _RecalculateRedPointParentStates(int child, bool bImmUpdateUI = true)
+ {
+ bool flag = base._GetSysRedpointState(child);
+ bool flag2 = flag;
+ if (flag2)
+ {
+ int[] array = null;
+ bool flag3 = this.mChildParentRelationDic.TryGetValue(child, out array);
+ if (flag3)
+ {
+ int num = 0;
+ while (num < array.Length && array[num] != 0)
+ {
+ this.SetSysRedpointState(array[num], true, bImmUpdateUI);
+ num++;
+ }
+ }
+ }
+ }
+
+ protected override void _RefreshSysRedpointUI(int sys, bool redpoint)
+ {
+ bool flag = redpoint;
+ if (flag)
+ {
+ bool flag2 = this.mForbidHashSet.Contains(sys);
+ if (flag2)
+ {
+ redpoint = false;
+ }
+ }
+ XRedpointMgr.stRedpointGameObject[] array = null;
+ bool flag3 = this.mSysGameObjectListDic.TryGetValue(sys, out array);
+ if (flag3)
+ {
+ int num = 0;
+ while (num < array.Length && null != array[num].go)
+ {
+ bool flag4 = array[num].callback == null;
+ if (flag4)
+ {
+ array[num].go.SetActive(redpoint);
+ }
+ else
+ {
+ array[num].callback(array[num].go);
+ }
+ num++;
+ }
+ }
+ this.mDirtySysList.Remove(sys);
+ }
+
+ protected bool _InsertObject(ref XRedpointMgr.stRedpointGameObject[] array, GameObject go, SetRedpointUIHandler callback)
+ {
+ for (int i = 0; i < array.Length; i++)
+ {
+ bool flag = null == array[i].go || array[i].go == go;
+ if (flag)
+ {
+ array[i].go = go;
+ array[i].callback = callback;
+ return false;
+ }
+ }
+ XRedpointMgr.stRedpointGameObject[] array2 = new XRedpointMgr.stRedpointGameObject[array.Length << 1];
+ array.CopyTo(array2, 0);
+ array2[array.Length].go = go;
+ array2[array.Length].callback = callback;
+ array = array2;
+ return true;
+ }
+
+ protected void _DeleteObject(ref XRedpointMgr.stRedpointGameObject[] array, GameObject parent)
+ {
+ for (int i = 0; i < array.Length; i++)
+ {
+ bool flag = array[i].go == parent;
+ if (flag)
+ {
+ XRedpointMgr.stRedpointGameObject stRedpointGameObject = default(XRedpointMgr.stRedpointGameObject);
+ bool flag2 = i + 1 < array.Length;
+ if (flag2)
+ {
+ for (int j = array.Length - 1; j > i; j--)
+ {
+ bool flag3 = null != array[j].go;
+ if (flag3)
+ {
+ stRedpointGameObject = array[j];
+ array[j] = default(XRedpointMgr.stRedpointGameObject);
+ break;
+ }
+ }
+ }
+ array[i] = stRedpointGameObject;
+ }
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XRedpointMgr.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XRedpointMgr.cs.meta new file mode 100644 index 00000000..f67bc379 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XRedpointMgr.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 426878a6ba0733d4bbb035d672887018 +timeCreated: 1611465635 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XRedpointRelationMgr.cs b/Client/Assets/Scripts/XUtliPoolLib/XRedpointRelationMgr.cs new file mode 100644 index 00000000..3945ef82 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XRedpointRelationMgr.cs @@ -0,0 +1,279 @@ +using System;
+using System.Collections.Generic;
+
+namespace XUtliPoolLib
+{
+ public abstract class XRedpointRelationMgr : XRedpointDirtyMgr, IXRedpointRelationMgr
+ {
+ public const int BASE_ARRAY_LENGTH = 4;
+
+ public const int NULL_ID = 0;
+
+ protected Dictionary<int, int[]> mChildParentRelationDic = new Dictionary<int, int[]>();
+
+ protected Dictionary<int, int[]> mParentChildRelationDic = new Dictionary<int, int[]>();
+
+ public void AddRelation(int child, int parent, bool bImmUpdateUI = false)
+ {
+ bool flag = child == 0;
+ if (!flag)
+ {
+ bool flag2 = parent == 0;
+ if (!flag2)
+ {
+ int[] array = null;
+ bool flag3 = this.mChildParentRelationDic.TryGetValue(child, out array);
+ if (flag3)
+ {
+ bool flag4 = this._InsertValue(ref array, parent);
+ if (flag4)
+ {
+ this.mChildParentRelationDic[child] = array;
+ }
+ }
+ else
+ {
+ array = new int[4];
+ array[0] = parent;
+ this.mChildParentRelationDic[child] = array;
+ }
+ int[] array2 = null;
+ bool flag5 = this.mParentChildRelationDic.TryGetValue(parent, out array2);
+ if (flag5)
+ {
+ bool flag6 = this._InsertValue(ref array2, child);
+ if (flag6)
+ {
+ this.mParentChildRelationDic[parent] = array2;
+ }
+ }
+ else
+ {
+ array2 = new int[4];
+ array2[0] = child;
+ this.mParentChildRelationDic[parent] = array2;
+ }
+ this.RecalculateRedPointSelfState(parent, bImmUpdateUI);
+ }
+ }
+ }
+
+ public void AddRelations(int child, int[] parents, bool bImmUpdateUI = false)
+ {
+ bool flag = child == 0;
+ if (!flag)
+ {
+ bool flag2 = parents == null || parents.Length == 0;
+ if (!flag2)
+ {
+ int[] value = null;
+ bool flag3 = this.mChildParentRelationDic.TryGetValue(child, out value);
+ if (!flag3)
+ {
+ value = new int[4];
+ this.mChildParentRelationDic[child] = value;
+ }
+ for (int i = 0; i < parents.Length; i++)
+ {
+ bool flag4 = parents[i] != 0;
+ if (flag4)
+ {
+ bool flag5 = this._InsertValue(ref value, parents[i]);
+ if (flag5)
+ {
+ this.mChildParentRelationDic[child] = value;
+ }
+ int[] array = null;
+ bool flag6 = this.mParentChildRelationDic.TryGetValue(parents[i], out array);
+ if (flag6)
+ {
+ bool flag7 = this._InsertValue(ref array, child);
+ if (flag7)
+ {
+ this.mParentChildRelationDic[parents[i]] = array;
+ }
+ }
+ else
+ {
+ array = new int[4];
+ array[0] = child;
+ this.mParentChildRelationDic[parents[i]] = array;
+ }
+ this.RecalculateRedPointSelfState(parents[i], bImmUpdateUI);
+ }
+ }
+ }
+ }
+ }
+
+ public void RemoveRelation(int child, int parent, bool bImmUpdateUI = false)
+ {
+ bool flag = child == 0;
+ if (!flag)
+ {
+ bool flag2 = parent == 0;
+ if (!flag2)
+ {
+ int[] array = null;
+ bool flag3 = this.mChildParentRelationDic.TryGetValue(child, out array);
+ if (flag3)
+ {
+ this._DeleteValue(ref array, parent);
+ bool flag4 = array[0] == 0;
+ if (flag4)
+ {
+ this.mChildParentRelationDic.Remove(child);
+ }
+ }
+ int[] array2 = null;
+ bool flag5 = this.mParentChildRelationDic.TryGetValue(parent, out array2);
+ if (flag5)
+ {
+ this._DeleteValue(ref array2, child);
+ bool flag6 = array2[0] == 0;
+ if (flag6)
+ {
+ this.mParentChildRelationDic.Remove(parent);
+ }
+ }
+ this.RecalculateRedPointSelfState(parent, bImmUpdateUI);
+ }
+ }
+ }
+
+ public void RemoveRelations(int child, int[] parents, bool bImmUpdateUI = false)
+ {
+ bool flag = child == 0;
+ if (!flag)
+ {
+ bool flag2 = parents == null || parents.Length == 0;
+ if (!flag2)
+ {
+ int[] array = null;
+ bool flag3 = this.mChildParentRelationDic.TryGetValue(child, out array);
+ if (flag3)
+ {
+ for (int i = 0; i < parents.Length; i++)
+ {
+ bool flag4 = parents[i] != 0;
+ if (flag4)
+ {
+ this._DeleteValue(ref array, parents[i]);
+ bool flag5 = array[0] == 0;
+ if (flag5)
+ {
+ this.mChildParentRelationDic.Remove(child);
+ }
+ int[] array2 = null;
+ bool flag6 = this.mParentChildRelationDic.TryGetValue(parents[i], out array2);
+ if (flag6)
+ {
+ this._DeleteValue(ref array2, child);
+ bool flag7 = array2[0] == 0;
+ if (flag7)
+ {
+ this.mParentChildRelationDic.Remove(parents[i]);
+ }
+ }
+ this.RecalculateRedPointSelfState(parents[i], bImmUpdateUI);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ public void RemoveAllRelations(int child, bool bImmUpdateUI = false)
+ {
+ bool flag = child == 0;
+ if (!flag)
+ {
+ int[] array = null;
+ bool flag2 = this.mChildParentRelationDic.TryGetValue(child, out array);
+ if (flag2)
+ {
+ for (int i = 0; i < array.Length; i++)
+ {
+ int[] array2 = null;
+ bool flag3 = this.mParentChildRelationDic.TryGetValue(array[i], out array2);
+ if (flag3)
+ {
+ this._DeleteValue(ref array2, child);
+ bool flag4 = array2[0] == 0;
+ if (flag4)
+ {
+ this.mParentChildRelationDic.Remove(array[i]);
+ }
+ }
+ this.RecalculateRedPointSelfState(array[i], bImmUpdateUI);
+ }
+ this.mChildParentRelationDic.Remove(child);
+ }
+ }
+ }
+
+ public void ClearAllRelations(bool bImmUpdateUI = false)
+ {
+ foreach (int item in this.mParentChildRelationDic.Keys)
+ {
+ this.mDirtySysList.Add(item);
+ }
+ foreach (int key in this.mParentChildRelationDic.Keys)
+ {
+ this.mSysRedpointStateDic[key] = false;
+ }
+ this.mChildParentRelationDic.Clear();
+ this.mParentChildRelationDic.Clear();
+ if (bImmUpdateUI)
+ {
+ this.RefreshAllSysRedpoints();
+ }
+ }
+
+ protected bool _InsertValue(ref int[] array, int value)
+ {
+ for (int i = 0; i < array.Length; i++)
+ {
+ bool flag = array[i] == 0 || value == array[i];
+ if (flag)
+ {
+ array[i] = value;
+ return false;
+ }
+ }
+ int[] array2 = new int[array.Length << 1];
+ array.CopyTo(array2, 0);
+ array2[array.Length] = value;
+ array = array2;
+ return true;
+ }
+
+ protected void _DeleteValue(ref int[] array, int parent)
+ {
+ for (int i = 0; i < array.Length; i++)
+ {
+ bool flag = array[i] == parent;
+ if (flag)
+ {
+ int num = 0;
+ bool flag2 = i + 1 < array.Length;
+ if (flag2)
+ {
+ for (int j = array.Length - 1; j > i; j--)
+ {
+ bool flag3 = array[j] != 0;
+ if (flag3)
+ {
+ num = array[j];
+ array[j] = 0;
+ break;
+ }
+ }
+ }
+ array[i] = num;
+ break;
+ }
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XRedpointRelationMgr.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XRedpointRelationMgr.cs.meta new file mode 100644 index 00000000..25ab187f --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XRedpointRelationMgr.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c03af3cd7bd01e84d86776415bb78a1f +timeCreated: 1611465752 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XResourceLoaderMgr.cs b/Client/Assets/Scripts/XUtliPoolLib/XResourceLoaderMgr.cs new file mode 100644 index 00000000..60573975 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XResourceLoaderMgr.cs @@ -0,0 +1,2151 @@ +using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Xml.Serialization;
+using UnityEngine;
+using XUpdater;
+
+namespace XUtliPoolLib
+{
+ public sealed class XResourceLoaderMgr : XSingleton<XResourceLoaderMgr>
+ {
+ public static uint Preload = 1u;
+
+ public static uint SharedResource = 2u;
+
+ public static uint DontDestroyAsset = 4u;
+
+ public static uint Degeneration = 8u;
+
+ public static readonly Vector3 Far_Far_Away = new Vector3(0f, -1000f, 0f);
+
+ public bool useNewMgr = false;
+
+ public bool dontDestroy = false;
+
+ private Dictionary<uint, AssetBundleInfo> _bundle_pool = new Dictionary<uint, AssetBundleInfo>();
+
+ private Dictionary<uint, int> _asset_ref_count = new Dictionary<uint, int>();
+
+ private Dictionary<uint, Queue<UnityEngine.Object>> _object_pool = new Dictionary<uint, Queue<UnityEngine.Object>>();
+
+ private Dictionary<uint, UnityEngine.Object> _asset_pool = new Dictionary<uint, UnityEngine.Object>();
+
+ private Dictionary<uint, UnityEngine.Object> _script_pool = new Dictionary<uint, UnityEngine.Object>();
+
+ private Dictionary<int, uint> _reverse_map = new Dictionary<int, uint>();
+
+ private Dictionary<uint, XResourceLoaderMgr.UniteObjectInfo> m_assetPool = new Dictionary<uint, XResourceLoaderMgr.UniteObjectInfo>();
+
+ private Dictionary<int, XResourceLoaderMgr.UniteObjectInfo> m_instanceIDAssetMap = new Dictionary<int, XResourceLoaderMgr.UniteObjectInfo>();
+
+ private Queue<XResourceLoaderMgr.UniteObjectInfo> m_objInfoPool = new Queue<XResourceLoaderMgr.UniteObjectInfo>();
+
+ private XResourceLoaderMgr.UniteObjectInfo m_degenerationQueue = null;
+
+ private XResourceLoaderMgr.UniteObjectInfo m_currentDegeneration = null;
+
+ private List<FloatCurve> m_curveData = null;
+
+ public static bool UseCurveTable = false;
+
+ private BeforeUnityUnLoadResource m_BeforeUnityUnLoadResourceCb = null;
+
+ private XmlSerializer[] xmlSerializerCache = new XmlSerializer[2];
+
+ private MemoryStream shareMemoryStream = new MemoryStream(8192);
+
+ private List<LoadAsyncTask> _async_task_list = new List<LoadAsyncTask>();
+
+ private List<IDelayLoad> delayUpdateList = new List<IDelayLoad>();
+
+ public static double delayTime = 0.5;
+
+ private double currentDelayTime = -1.0;
+
+ public bool DelayLoad = false;
+
+ public bool isCurrentLoading = false;
+
+ public float maxLoadThresholdTime = 0.1f;
+
+ public static int resourceLoadCount = 0;
+
+ public static int abLoadCount = 0;
+
+ public static int instanceCount = 0;
+
+ private uint _prefixHash = 0u;
+
+ public class UniteObjectInfo
+ {
+ public bool HasPreload
+ {
+ get
+ {
+ return (this.m_flag & XResourceLoaderMgr.Preload) > 0u;
+ }
+ set
+ {
+ if (value)
+ {
+ this.m_flag |= XResourceLoaderMgr.Preload;
+ }
+ else
+ {
+ this.m_flag &= ~XResourceLoaderMgr.Preload;
+ }
+ }
+ }
+
+ public bool IsSharedResource
+ {
+ get
+ {
+ return (this.m_flag & XResourceLoaderMgr.SharedResource) > 0u;
+ }
+ set
+ {
+ if (value)
+ {
+ this.m_flag |= XResourceLoaderMgr.SharedResource;
+ }
+ else
+ {
+ this.m_flag &= ~XResourceLoaderMgr.SharedResource;
+ }
+ }
+ }
+
+ public bool IsDontDestroyAsset
+ {
+ get
+ {
+ return (this.m_flag & XResourceLoaderMgr.DontDestroyAsset) > 0u;
+ }
+ set
+ {
+ if (value)
+ {
+ this.m_flag |= XResourceLoaderMgr.DontDestroyAsset;
+ }
+ else
+ {
+ this.m_flag &= ~XResourceLoaderMgr.DontDestroyAsset;
+ }
+ }
+ }
+
+ public bool IsDegeneration
+ {
+ get
+ {
+ return (this.m_flag & XResourceLoaderMgr.Degeneration) > 0u;
+ }
+ set
+ {
+ if (value)
+ {
+ this.m_flag |= XResourceLoaderMgr.Degeneration;
+ }
+ else
+ {
+ this.m_flag &= ~XResourceLoaderMgr.Degeneration;
+ }
+ }
+ }
+
+ public uint hashID = 0u;
+
+ public UnityEngine.Object asset = null;
+
+ public int refCount = 0;
+
+ public AssetBundleInfo assetBundleInfo = null;
+
+ public Queue<UnityEngine.Object> objPool = null;
+
+ public string loc = "";
+
+ private uint m_flag = 0u;
+
+ public XResourceLoaderMgr.UniteObjectInfo next = null;
+
+ public float degenerationTime = 0f;
+
+ private void InitAB(string location, string suffix)
+ {
+ bool flag = XSingleton<XUpdater.XUpdater>.singleton.ABManager != null;
+ if (flag)
+ {
+ this.assetBundleInfo = XSingleton<XUpdater.XUpdater>.singleton.ABManager.LoadImm(this.hashID, location, suffix, null);
+ }
+ }
+
+ public bool Init(string location, string suffix, uint hash, bool isSharedResource, Type t, bool canNotNull)
+ {
+ this.loc = location;
+ this.IsSharedResource = isSharedResource;
+ this.hashID = hash;
+ this.InitAB(location, suffix);
+ bool flag = this.assetBundleInfo != null;
+ if (flag)
+ {
+ this.asset = this.assetBundleInfo.mainObject;
+ }
+ else
+ {
+ this.asset = Resources.Load(location, t);
+ }
+ bool flag2 = this.asset == null && canNotNull;
+ bool result;
+ if (flag2)
+ {
+ XResourceLoaderMgr.LoadErrorLog(location);
+ result = false;
+ }
+ else
+ {
+ result = canNotNull;
+ }
+ return result;
+ }
+
+ public bool InitAnim(string location, string suffix, uint hash)
+ {
+ this.loc = location;
+ this.IsSharedResource = true;
+ this.hashID = hash;
+ this.InitAB(location, suffix);
+ float length = 0f;
+ bool flag = this.assetBundleInfo != null;
+ AnimationClip animationClip;
+ if (flag)
+ {
+ animationClip = (this.assetBundleInfo.mainObject as AnimationClip);
+ bool flag2 = animationClip != null;
+ if (flag2)
+ {
+ length = animationClip.length;
+ }
+ }
+ else
+ {
+ animationClip = Resources.Load<AnimationClip>(location);
+ bool flag3 = animationClip != null;
+ if (flag3)
+ {
+ length = animationClip.length;
+ }
+ }
+ bool flag4 = animationClip == null;
+ bool result;
+ if (flag4)
+ {
+ XResourceLoaderMgr.LoadErrorLog(location);
+ result = false;
+ }
+ else
+ {
+ XAnimationClip xanimationClip = XAnimationPool.Get();
+ xanimationClip.clip = animationClip;
+ xanimationClip.length = length;
+ this.asset = xanimationClip;
+ result = true;
+ }
+ return result;
+ }
+
+ public bool InitAsync(string location, uint hash, UnityEngine.Object asyncAsset, AssetBundleInfo info, bool isSharedResource, bool showLog)
+ {
+ this.loc = location;
+ this.IsSharedResource = isSharedResource;
+ this.hashID = hash;
+ this.assetBundleInfo = info;
+ bool flag = this.assetBundleInfo != null;
+ if (flag)
+ {
+ this.asset = this.assetBundleInfo.mainObject;
+ }
+ else
+ {
+ this.asset = asyncAsset;
+ }
+ bool flag2 = this.asset is AnimationClip;
+ if (flag2)
+ {
+ float length = 0f;
+ bool flag3 = this.assetBundleInfo != null;
+ AnimationClip animationClip;
+ if (flag3)
+ {
+ animationClip = (this.assetBundleInfo.mainObject as AnimationClip);
+ bool flag4 = animationClip != null;
+ if (flag4)
+ {
+ length = animationClip.length;
+ }
+ }
+ else
+ {
+ animationClip = (asyncAsset as AnimationClip);
+ bool flag5 = animationClip != null;
+ if (flag5)
+ {
+ length = animationClip.length;
+ }
+ }
+ bool flag6 = animationClip != null;
+ if (flag6)
+ {
+ XAnimationClip xanimationClip = XAnimationPool.Get();
+ xanimationClip.clip = animationClip;
+ xanimationClip.length = length;
+ this.asset = xanimationClip;
+ }
+ }
+ bool flag7 = this.asset == null && showLog;
+ bool result;
+ if (flag7)
+ {
+ XResourceLoaderMgr.LoadErrorLog(location);
+ result = false;
+ }
+ else
+ {
+ result = true;
+ }
+ return result;
+ }
+
+ public UnityEngine.Object Get(bool useObjPool, bool preload = false)
+ {
+ UnityEngine.Object @object = null;
+ this.IsDegeneration = false;
+ if (preload)
+ {
+ this.HasPreload = true;
+ }
+ bool isSharedResource = this.IsSharedResource;
+ if (isSharedResource)
+ {
+ @object = this.asset;
+ }
+ else
+ {
+ bool flag = useObjPool && this.objPool != null && this.objPool.Count > 0;
+ if (flag)
+ {
+ @object = this.objPool.Dequeue();
+ }
+ else
+ {
+ bool flag2 = this.asset != null;
+ if (flag2)
+ {
+ @object = XCommon.Instantiate<UnityEngine.Object>(this.asset);
+ }
+ else
+ {
+ XSingleton<XDebug>.singleton.AddErrorLog("null asset when instantiate asset", null, null, null, null, null);
+ }
+ }
+ }
+ bool flag3 = @object != null;
+ if (flag3)
+ {
+ this.refCount++;
+ bool flag4 = this.assetBundleInfo != null && this.refCount == 1;
+ if (flag4)
+ {
+ this.assetBundleInfo.Retain();
+ }
+ }
+ return @object;
+ }
+
+ public bool Return(UnityEngine.Object obj, bool useObjPool)
+ {
+ this.refCount--;
+ bool flag = this.asset != null && this.refCount <= 0;
+ bool result;
+ if (flag)
+ {
+ bool flag2 = !this.IsSharedResource;
+ if (flag2)
+ {
+ bool flag3 = this.objPool == null;
+ if (flag3)
+ {
+ this.objPool = QueuePool<UnityEngine.Object>.Get();
+ }
+ this.objPool.Enqueue(obj);
+ }
+ this.IsDegeneration = true;
+ this.degenerationTime = 0f;
+ result = true;
+ }
+ else
+ {
+ bool flag4 = !this.IsSharedResource && obj != null;
+ if (flag4)
+ {
+ if (useObjPool)
+ {
+ bool flag5 = obj is GameObject;
+ if (flag5)
+ {
+ GameObject gameObject = obj as GameObject;
+ gameObject.transform.position = XResourceLoaderMgr.Far_Far_Away;
+ gameObject.transform.rotation = Quaternion.identity;
+ gameObject.transform.parent = null;
+ }
+ bool flag6 = this.objPool == null;
+ if (flag6)
+ {
+ this.objPool = QueuePool<UnityEngine.Object>.Get();
+ }
+ this.objPool.Enqueue(obj);
+ }
+ else
+ {
+ bool flag7 = XResourceLoaderMgr.UniteObjectInfo.CanDestroy(obj);
+ if (flag7)
+ {
+ UnityEngine.Object.Destroy(obj);
+ }
+ }
+ }
+ result = false;
+ }
+ return result;
+ }
+
+ public void Clear()
+ {
+ bool flag = this.objPool != null;
+ if (flag)
+ {
+ while (this.objPool.Count > 0)
+ {
+ UnityEngine.Object @object = this.objPool.Dequeue();
+ UnityEngine.Object.Destroy(@object);
+ }
+ QueuePool<UnityEngine.Object>.Release(this.objPool);
+ this.objPool = null;
+ }
+ bool flag2 = this.assetBundleInfo != null;
+ if (flag2)
+ {
+ this.assetBundleInfo.Release();
+ }
+ else
+ {
+ bool flag3 = !XResourceLoaderMgr.UniteObjectInfo.CanDestroy(this.asset);
+ if (flag3)
+ {
+ Resources.UnloadAsset(this.asset);
+ }
+ else
+ {
+ bool flag4 = this.asset is XAnimationClip;
+ if (flag4)
+ {
+ XAnimationClip xanimationClip = this.asset as XAnimationClip;
+ bool flag5 = xanimationClip.clip != null;
+ if (flag5)
+ {
+ Resources.UnloadAsset(xanimationClip.clip);
+ }
+ XAnimationPool.Release(xanimationClip);
+ }
+ }
+ }
+ this.loc = "";
+ this.hashID = 0u;
+ this.asset = null;
+ this.refCount = 0;
+ this.next = null;
+ this.degenerationTime = 0f;
+ this.IsDegeneration = false;
+ this.assetBundleInfo = null;
+ }
+
+ public void ClearPool()
+ {
+ bool flag = this.objPool != null;
+ if (flag)
+ {
+ while (this.objPool.Count > 0)
+ {
+ UnityEngine.Object @object = this.objPool.Dequeue();
+ UnityEngine.Object.Destroy(@object);
+ }
+ QueuePool<UnityEngine.Object>.Release(this.objPool);
+ this.objPool = null;
+ }
+ }
+
+ public static bool CanDestroy(UnityEngine.Object obj)
+ {
+ return obj is GameObject || obj is ScriptableObject || obj is Material;
+ }
+ }
+
+ public XResourceLoaderMgr()
+ {
+ this.xmlSerializerCache[0] = new XmlSerializer(typeof(XSkillData));
+ this.xmlSerializerCache[1] = new XmlSerializer(typeof(XCutSceneData));
+ this._prefixHash = XSingleton<XCommon>.singleton.XHashLowerRelpaceDot(this._prefixHash, "Assets.Resources.");
+ }
+
+ public void LoadServerCurve(string location)
+ {
+ TextAsset sharedResource = this.GetSharedResource<TextAsset>(location, ".bytes", true, false);
+ bool flag = sharedResource == null || sharedResource.bytes == null;
+ if (flag)
+ {
+ XResourceLoaderMgr.LoadErrorLog(location);
+ }
+ XBinaryReader xbinaryReader = XBinaryReader.Get();
+ xbinaryReader.Init(sharedResource);
+ int num = xbinaryReader.ReadInt32();
+ XSingleton<XDebug>.singleton.AddLog("loadServerCurve" + num, null, null, null, null, null, XDebugColor.XDebug_None);
+ this.m_curveData = new List<FloatCurve>(num);
+ for (int i = 0; i < num; i++)
+ {
+ FloatCurve floatCurve = new FloatCurve();
+ floatCurve.namehash = xbinaryReader.ReadUInt32();
+ floatCurve.maxValue = xbinaryReader.ReadInt16();
+ floatCurve.landValue = xbinaryReader.ReadInt16();
+ int num2 = xbinaryReader.ReadInt32();
+ bool flag2 = num2 > 0;
+ if (flag2)
+ {
+ floatCurve.value = new short[num2];
+ for (int j = 0; j < num2; j++)
+ {
+ floatCurve.value[j] = xbinaryReader.ReadInt16();
+ }
+ }
+ this.m_curveData.Add(floatCurve);
+ }
+ XBinaryReader.Return(xbinaryReader, false);
+ this.UnSafeDestroyShareResource(location, ".bytes", sharedResource, false);
+ }
+
+ public void ReleasePool()
+ {
+ bool flag = this.useNewMgr;
+ if (flag)
+ {
+ foreach (KeyValuePair<uint, XResourceLoaderMgr.UniteObjectInfo> keyValuePair in this.m_assetPool)
+ {
+ XResourceLoaderMgr.UniteObjectInfo value = keyValuePair.Value;
+ bool flag2 = value.asset != null;
+ if (flag2)
+ {
+ bool flag3 = !value.IsDontDestroyAsset && !value.IsDegeneration;
+ if (flag3)
+ {
+ keyValuePair.Value.ClearPool();
+ bool flag4 = value.HasPreload && value.refCount == 0;
+ if (flag4)
+ {
+ value.IsDegeneration = true;
+ value.degenerationTime = 2f;
+ bool flag5 = this.m_degenerationQueue == null;
+ if (flag5)
+ {
+ this.m_degenerationQueue = value;
+ this.m_currentDegeneration = value;
+ }
+ else
+ {
+ bool flag6 = this.m_currentDegeneration != null;
+ if (flag6)
+ {
+ this.m_currentDegeneration.next = value;
+ this.m_currentDegeneration = value;
+ }
+ }
+ bool flag7 = value.asset != null;
+ if (flag7)
+ {
+ this.m_instanceIDAssetMap.Remove(value.asset.GetInstanceID());
+ }
+ }
+ else
+ {
+ XSingleton<XDebug>.singleton.AddWarningLog2("Asset Not Release:{0} Ref:{1}", new object[]
+ {
+ value.loc,
+ value.refCount
+ });
+ }
+ }
+ }
+ else
+ {
+ XSingleton<XDebug>.singleton.AddWarningLog2("Asset null:{0} Ref:{1}", new object[]
+ {
+ value.loc,
+ value.refCount
+ });
+ }
+ }
+ this.DelayDestroy(0f, true);
+ }
+ else
+ {
+ foreach (KeyValuePair<uint, Queue<UnityEngine.Object>> keyValuePair2 in this._object_pool)
+ {
+ while (keyValuePair2.Value.Count > 0)
+ {
+ this.UnSafeDestroy(keyValuePair2.Value.Dequeue(), false, true);
+ }
+ }
+ this._object_pool.Clear();
+ this._asset_pool.Clear();
+ this._script_pool.Clear();
+ List<uint> list = new List<uint>(this._asset_ref_count.Keys);
+ for (int i = 0; i < list.Count; i++)
+ {
+ this._asset_ref_count[list[i]] = 0;
+ }
+ foreach (KeyValuePair<uint, AssetBundleInfo> keyValuePair3 in this._bundle_pool)
+ {
+ keyValuePair3.Value.Release();
+ }
+ this._bundle_pool.Clear();
+ }
+ XSingleton<XDebug>.singleton.AddWarningLog2("ResourceLoad:{0} ABLoad:{1} Instance:{2}", new object[]
+ {
+ XResourceLoaderMgr.resourceLoadCount,
+ XResourceLoaderMgr.abLoadCount,
+ XResourceLoaderMgr.instanceCount
+ });
+ XResourceLoaderMgr.resourceLoadCount = 0;
+ XResourceLoaderMgr.abLoadCount = 0;
+ XResourceLoaderMgr.instanceCount = 0;
+ this.isCurrentLoading = false;
+ for (int j = 0; j < this._async_task_list.Count; j++)
+ {
+ this._async_task_list[j].Clear();
+ }
+ this._async_task_list.Clear();
+ this.shareMemoryStream.Close();
+ this.shareMemoryStream = new MemoryStream(8192);
+ XSingleton<XEngineCommandMgr>.singleton.Clear();
+ this.delayUpdateList.Clear();
+ }
+
+ public void DebugPrint()
+ {
+ foreach (KeyValuePair<uint, XResourceLoaderMgr.UniteObjectInfo> keyValuePair in this.m_assetPool)
+ {
+ XResourceLoaderMgr.UniteObjectInfo value = keyValuePair.Value;
+ bool flag = value.asset != null;
+ if (flag)
+ {
+ bool flag2 = !value.IsDontDestroyAsset;
+ if (flag2)
+ {
+ XSingleton<XDebug>.singleton.AddWarningLog2("Asset Not Release:{0} Ref:{1}", new object[]
+ {
+ value.loc,
+ value.refCount
+ });
+ }
+ }
+ else
+ {
+ XSingleton<XDebug>.singleton.AddWarningLog2("Asset null:{0} Ref:{1}", new object[]
+ {
+ value.loc,
+ value.refCount
+ });
+ }
+ }
+ }
+
+ public void SetUnloadCallback(BeforeUnityUnLoadResource cb)
+ {
+ this.m_BeforeUnityUnLoadResourceCb = cb;
+ }
+
+ public void CallUnloadCallback()
+ {
+ bool flag = this.m_BeforeUnityUnLoadResourceCb != null;
+ if (flag)
+ {
+ this.m_BeforeUnityUnLoadResourceCb();
+ }
+ }
+
+ private uint Hash(string location, string ext)
+ {
+ uint hash = XSingleton<XCommon>.singleton.XHashLowerRelpaceDot(this._prefixHash, location);
+ return XSingleton<XCommon>.singleton.XHashLowerRelpaceDot(hash, ext);
+ }
+
+ public Stream ReadText(string location, string suffix, bool error = true)
+ {
+ TextAsset sharedResource = this.GetSharedResource<TextAsset>(location, suffix, error, false);
+ bool flag = sharedResource == null;
+ if (flag)
+ {
+ if (!error)
+ {
+ return null;
+ }
+ XResourceLoaderMgr.LoadErrorLog(location);
+ }
+ Stream result;
+ try
+ {
+ this.shareMemoryStream.SetLength(0L);
+ this.shareMemoryStream.Write(sharedResource.bytes, 0, sharedResource.bytes.Length);
+ this.shareMemoryStream.Seek(0L, SeekOrigin.Begin);
+ result = this.shareMemoryStream;
+ }
+ catch (Exception ex)
+ {
+ XSingleton<XDebug>.singleton.AddErrorLog(ex.Message, location, null, null, null, null);
+ result = this.shareMemoryStream;
+ }
+ finally
+ {
+ this.UnSafeDestroyShareResource(location, suffix, sharedResource, false);
+ }
+ return result;
+ }
+
+ public void ClearStream(Stream s)
+ {
+ bool flag = s != null;
+ if (flag)
+ {
+ bool flag2 = s == this.shareMemoryStream;
+ if (flag2)
+ {
+ this.shareMemoryStream.SetLength(0L);
+ }
+ else
+ {
+ s.Close();
+ }
+ }
+ }
+
+ public XBinaryReader ReadBinary(string location, string suffix, bool readShareResource, bool error = true)
+ {
+ TextAsset sharedResource = this.GetSharedResource<TextAsset>(location, suffix, error, false);
+ bool flag = sharedResource == null;
+ if (flag)
+ {
+ if (!error)
+ {
+ return null;
+ }
+ XResourceLoaderMgr.LoadErrorLog(location);
+ }
+ XBinaryReader result;
+ try
+ {
+ XBinaryReader xbinaryReader = XBinaryReader.Get();
+ xbinaryReader.Init(sharedResource);
+ this.UnSafeDestroyShareResource(location, suffix, sharedResource, false);
+ result = xbinaryReader;
+ }
+ catch (Exception ex)
+ {
+ XSingleton<XDebug>.singleton.AddErrorLog(ex.Message, location, null, null, null, null);
+ result = null;
+ }
+ return result;
+ }
+
+ public void ClearBinary(XBinaryReader reader, bool readShareResource)
+ {
+ bool flag = reader != null;
+ if (flag)
+ {
+ XBinaryReader.Return(reader, readShareResource);
+ }
+ }
+
+ public bool ReadText(string location, string suffix, XBinaryReader stream, bool error = true)
+ {
+ bool flag = true;
+ TextAsset sharedResource = this.GetSharedResource<TextAsset>(location, suffix, error, false);
+ bool flag2 = sharedResource == null;
+ bool result;
+ if (flag2)
+ {
+ if (error)
+ {
+ XResourceLoaderMgr.LoadErrorLog(location);
+ }
+ result = false;
+ }
+ else
+ {
+ stream.Init(sharedResource);
+ this.UnSafeDestroyShareResource(location, suffix, sharedResource, false);
+ result = flag;
+ }
+ return result;
+ }
+
+ public TextAsset ReadLuaBytes(string filename_without_ext)
+ {
+ string location = "lua/Hotfix/" + filename_without_ext;
+ TextAsset sharedResource = this.GetSharedResource<TextAsset>(location, ".txt", false, false);
+ bool flag = sharedResource == null;
+ TextAsset result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ result = sharedResource;
+ }
+ return result;
+ }
+
+ public void ReleaseLuaBytes(string filename_without_ext, TextAsset data)
+ {
+ string location = "lua/Hotfix/" + filename_without_ext;
+ this.UnSafeDestroyShareResource(location, ".txt", data, false);
+ }
+
+ public bool ReadFile(string location, CVSReader reader)
+ {
+ TextAsset textAsset = null;
+ textAsset = this.GetSharedResource<TextAsset>(location, ".bytes", true, false);
+ bool flag = textAsset == null || textAsset.bytes == null;
+ if (flag)
+ {
+ XResourceLoaderMgr.LoadErrorLog(location);
+ }
+ bool flag2 = true;
+ XBinaryReader xbinaryReader = XBinaryReader.Get();
+ xbinaryReader.Init(textAsset);
+ try
+ {
+ flag2 = reader.ReadFile(xbinaryReader);
+ bool flag3 = !flag2;
+ if (flag3)
+ {
+ XSingleton<XDebug>.singleton.AddErrorLog("in File: ", location, reader.error, null, null, null);
+ }
+ }
+ catch (Exception ex)
+ {
+ XSingleton<XDebug>.singleton.AddErrorLog(ex.Message, " in File: ", location, reader.error, null, null);
+ flag2 = false;
+ }
+ finally
+ {
+ XBinaryReader.Return(xbinaryReader, false);
+ }
+ this.UnSafeDestroyShareResource(location, ".bytes", textAsset, false);
+ return flag2;
+ }
+
+ public bool ReadFile(TextAsset data, CVSReader reader)
+ {
+ bool flag = data == null || reader == null;
+ bool result;
+ if (flag)
+ {
+ result = false;
+ }
+ else
+ {
+ XBinaryReader xbinaryReader = XBinaryReader.Get();
+ xbinaryReader.Init(data);
+ bool flag2 = true;
+ try
+ {
+ flag2 = reader.ReadFile(xbinaryReader);
+ return flag2;
+ }
+ catch (Exception ex)
+ {
+ XSingleton<XDebug>.singleton.AddErrorLog("ReadFile: ", ex.Message, null, null, null, null);
+ flag2 = false;
+ }
+ finally
+ {
+ XBinaryReader.Return(xbinaryReader, false);
+ }
+ result = flag2;
+ }
+ return result;
+ }
+
+ public void CreateInAdvance(string location, int num, ECreateHideType hideType)
+ {
+ bool flag = location == null || location.Length == 0;
+ if (!flag)
+ {
+ uint num2 = this.Hash(location, ".prefab");
+ int num3 = 0;
+ bool flag2 = this.useNewMgr;
+ if (flag2)
+ {
+ XResourceLoaderMgr.UniteObjectInfo uniteObjectInfo = null;
+ bool flag3 = this.m_assetPool.TryGetValue(num2, out uniteObjectInfo);
+ if (flag3)
+ {
+ bool flag4 = uniteObjectInfo.objPool != null;
+ if (flag4)
+ {
+ num3 = uniteObjectInfo.objPool.Count;
+ }
+ }
+ else
+ {
+ uniteObjectInfo = this.GetObjectInfo();
+ uniteObjectInfo.Init(location, ".prefab", num2, false, typeof(GameObject), true);
+ this.m_assetPool.Add(num2, uniteObjectInfo);
+ }
+ bool flag5 = uniteObjectInfo.objPool == null;
+ if (flag5)
+ {
+ uniteObjectInfo.objPool = QueuePool<UnityEngine.Object>.Get();
+ }
+ for (int i = 0; i < num - num3; i++)
+ {
+ bool flag6 = uniteObjectInfo.asset != null;
+ if (flag6)
+ {
+ GameObject gameObject = XCommon.Instantiate<UnityEngine.Object>(uniteObjectInfo.asset) as GameObject;
+ bool flag7 = gameObject != null;
+ if (flag7)
+ {
+ uniteObjectInfo.objPool.Enqueue(gameObject);
+ switch (hideType)
+ {
+ case ECreateHideType.DisableObject:
+ gameObject.SetActive(false);
+ break;
+ case ECreateHideType.DisableAnim:
+ {
+ Animator componentInChildren = gameObject.GetComponentInChildren<Animator>();
+ bool flag8 = componentInChildren != null;
+ if (flag8)
+ {
+ componentInChildren.enabled = false;
+ }
+ break;
+ }
+ case ECreateHideType.DisableParticleRenderer:
+ XSingleton<XCommon>.singleton.EnableParticleRenderer(gameObject, false);
+ break;
+ }
+ }
+ }
+ }
+ }
+ else
+ {
+ bool flag9 = this._object_pool.ContainsKey(num2);
+ if (flag9)
+ {
+ Queue<UnityEngine.Object> queue = this._object_pool[num2];
+ num3 = queue.Count;
+ }
+ for (int j = 0; j < num - num3; j++)
+ {
+ UnityEngine.Object @object = this.CreateFromPrefab(location, false, false);
+ this.AddToObjectPool(num2, @object);
+ GameObject gameObject2 = @object as GameObject;
+ bool flag10 = gameObject2 != null;
+ if (flag10)
+ {
+ switch (hideType)
+ {
+ case ECreateHideType.DisableObject:
+ gameObject2.SetActive(false);
+ break;
+ case ECreateHideType.DisableAnim:
+ {
+ Animator componentInChildren2 = gameObject2.GetComponentInChildren<Animator>();
+ bool flag11 = componentInChildren2 != null;
+ if (flag11)
+ {
+ componentInChildren2.enabled = false;
+ }
+ break;
+ }
+ case ECreateHideType.DisableParticleRenderer:
+ XSingleton<XCommon>.singleton.EnableParticleRenderer(gameObject2, false);
+ break;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ public XResourceLoaderMgr.UniteObjectInfo GetUOI(uint hash, out UnityEngine.Object obj, bool useObjPool)
+ {
+ XResourceLoaderMgr.UniteObjectInfo uniteObjectInfo = null;
+ obj = null;
+ bool flag = this.m_assetPool.TryGetValue(hash, out uniteObjectInfo);
+ XResourceLoaderMgr.UniteObjectInfo result;
+ if (flag)
+ {
+ obj = uniteObjectInfo.Get(useObjPool, false);
+ result = uniteObjectInfo;
+ }
+ else
+ {
+ result = null;
+ }
+ return result;
+ }
+
+ public bool GetUOIAsync(string location, uint hash, UnityEngine.Object asset, AssetBundleInfo info, bool isSharedResource, out XResourceLoaderMgr.UniteObjectInfo uoi)
+ {
+ uoi = null;
+ bool flag = this.m_assetPool.TryGetValue(hash, out uoi);
+ bool result;
+ if (flag)
+ {
+ XSingleton<XDebug>.singleton.AddWarningLog2("LoadAsync asset:{0},already loaded.", new object[]
+ {
+ location
+ });
+ bool flag2 = asset != uoi.asset;
+ if (flag2)
+ {
+ XSingleton<XDebug>.singleton.AddErrorLog("not same asset at same path.", null, null, null, null, null);
+ }
+ result = false;
+ }
+ else
+ {
+ uoi = this.GetObjectInfo();
+ bool flag3 = uoi.InitAsync(location, hash, asset, info, isSharedResource, true);
+ bool flag4 = isSharedResource && uoi.asset != null;
+ if (flag4)
+ {
+ int instanceID = uoi.asset.GetInstanceID();
+ bool flag5 = this.m_instanceIDAssetMap.ContainsKey(instanceID);
+ if (flag5)
+ {
+ XSingleton<XDebug>.singleton.AddErrorLog2("same key already exists in the dictionary:{0}", new object[]
+ {
+ uoi.asset.name
+ });
+ }
+ else
+ {
+ this.m_instanceIDAssetMap[instanceID] = uoi;
+ }
+ }
+ this.m_assetPool.Add(hash, uoi);
+ result = flag3;
+ }
+ return result;
+ }
+
+ public UnityEngine.Object GetUOI(XResourceLoaderMgr.UniteObjectInfo uoi, bool isSharedResource, bool useObjPool)
+ {
+ UnityEngine.Object @object = uoi.Get(useObjPool, false);
+ bool flag = !isSharedResource;
+ if (flag)
+ {
+ int instanceID = @object.GetInstanceID();
+ bool flag2 = this.m_instanceIDAssetMap.ContainsKey(instanceID);
+ if (flag2)
+ {
+ XSingleton<XDebug>.singleton.AddErrorLog2("same key already exists in the dictionary:{0}", new object[]
+ {
+ @object.name
+ });
+ }
+ else
+ {
+ this.m_instanceIDAssetMap.Add(instanceID, uoi);
+ }
+ }
+ return @object;
+ }
+
+ private void ReturnObject(XResourceLoaderMgr.UniteObjectInfo uoi, UnityEngine.Object obj, int instanceID, bool usePool)
+ {
+ bool flag = uoi != null;
+ if (flag)
+ {
+ bool flag2 = uoi.Return(obj, usePool);
+ if (flag2)
+ {
+ bool flag3 = this.m_degenerationQueue == null;
+ if (flag3)
+ {
+ this.m_degenerationQueue = uoi;
+ this.m_currentDegeneration = uoi;
+ }
+ else
+ {
+ bool flag4 = this.m_currentDegeneration != null;
+ if (flag4)
+ {
+ this.m_currentDegeneration.next = uoi;
+ this.m_currentDegeneration = uoi;
+ }
+ else
+ {
+ this.ReturnObject(uoi);
+ }
+ }
+ this.m_instanceIDAssetMap.Remove(instanceID);
+ }
+ else
+ {
+ bool flag5 = !uoi.IsSharedResource;
+ if (flag5)
+ {
+ this.m_instanceIDAssetMap.Remove(instanceID);
+ }
+ }
+ }
+ else
+ {
+ bool flag6 = XResourceLoaderMgr.UniteObjectInfo.CanDestroy(obj);
+ if (flag6)
+ {
+ UnityEngine.Object.Destroy(obj);
+ }
+ else
+ {
+ Resources.UnloadAsset(obj);
+ }
+ }
+ }
+
+ private void ReturnObject(XResourceLoaderMgr.UniteObjectInfo uoi)
+ {
+ bool isDegeneration = uoi.IsDegeneration;
+ if (isDegeneration)
+ {
+ this.m_assetPool.Remove(uoi.hashID);
+ uoi.Clear();
+ this.m_objInfoPool.Enqueue(uoi);
+ }
+ }
+
+ private XResourceLoaderMgr.UniteObjectInfo GetObjectInfo()
+ {
+ bool flag = this.m_objInfoPool.Count > 0;
+ XResourceLoaderMgr.UniteObjectInfo result;
+ if (flag)
+ {
+ result = this.m_objInfoPool.Dequeue();
+ }
+ else
+ {
+ result = new XResourceLoaderMgr.UniteObjectInfo();
+ }
+ return result;
+ }
+
+ private void PushLoadTask(uint hash, out LoadAsyncTask task)
+ {
+ this.isCurrentLoading = true;
+ LoadAsyncTask loadAsyncTask = null;
+ int count = this._async_task_list.Count;
+ int i;
+ for (i = 0; i < count; i++)
+ {
+ LoadAsyncTask loadAsyncTask2 = this._async_task_list[i];
+ bool flag = loadAsyncTask2.loadState == EAsyncLoadState.EFree;
+ if (flag)
+ {
+ loadAsyncTask = loadAsyncTask2;
+ }
+ else
+ {
+ bool flag2 = loadAsyncTask2.hash == hash;
+ if (flag2)
+ {
+ task = loadAsyncTask2;
+ return;
+ }
+ }
+ }
+ bool flag3 = loadAsyncTask == null;
+ if (flag3)
+ {
+ for (i++; i < count; i++)
+ {
+ LoadAsyncTask loadAsyncTask3 = this._async_task_list[i];
+ bool flag4 = loadAsyncTask3.loadState == EAsyncLoadState.EFree;
+ if (flag4)
+ {
+ loadAsyncTask = loadAsyncTask3;
+ break;
+ }
+ }
+ }
+ bool flag5 = loadAsyncTask == null;
+ if (flag5)
+ {
+ loadAsyncTask = new LoadAsyncTask();
+ this._async_task_list.Add(loadAsyncTask);
+ }
+ task = loadAsyncTask;
+ task.Clear();
+ task.loadState = EAsyncLoadState.EPreLoading;
+ }
+
+ private LoadAsyncTask CreateAsyncTask(string location, string suffix, uint hash, LoadCallBack Cb, object cbOjb, bool sharedRes, bool usePool, Type t)
+ {
+ LoadAsyncTask loadAsyncTask;
+ this.PushLoadTask(hash, out loadAsyncTask);
+ LoadInfo item;
+ item.loadCb = Cb;
+ item.usePool = usePool;
+ loadAsyncTask.loadType = t;
+ loadAsyncTask.hash = hash;
+ loadAsyncTask.location = location;
+ loadAsyncTask.ext = suffix;
+ loadAsyncTask.isSharedRes = sharedRes;
+ loadAsyncTask.cbObj = cbOjb;
+ loadAsyncTask.loadCbList.Add(item);
+ return loadAsyncTask;
+ }
+
+ public GameObject CreateFromPrefab(string location, Vector3 position, Quaternion quaternion, bool usePool = true, bool dontDestroy = false)
+ {
+ GameObject gameObject = this.CreateFromPrefab(location, usePool, dontDestroy) as GameObject;
+ gameObject.transform.position = position;
+ gameObject.transform.rotation = quaternion;
+ return gameObject;
+ }
+
+ public UnityEngine.Object CreateFromPrefab(string location, bool usePool = true, bool dontDestroy = false)
+ {
+ return this.CreateFromAsset<GameObject>(location, ".prefab", usePool, dontDestroy);
+ }
+
+ public T CreateFromAsset<T>(string location, string suffix, bool usePool = true, bool dontDestroy = false) where T : UnityEngine.Object
+ {
+ uint num = this.Hash(location, suffix);
+ bool flag = this.useNewMgr;
+ T result;
+ if (flag)
+ {
+ UnityEngine.Object @object = null;
+ XResourceLoaderMgr.UniteObjectInfo uniteObjectInfo = this.GetUOI(num, out @object, usePool);
+ bool flag2 = uniteObjectInfo == null;
+ if (flag2)
+ {
+ uniteObjectInfo = this.GetObjectInfo();
+ bool flag3 = uniteObjectInfo.Init(location, suffix, num, false, typeof(T), true);
+ if (flag3)
+ {
+ @object = uniteObjectInfo.Get(usePool, false);
+ }
+ this.m_assetPool.Add(num, uniteObjectInfo);
+ }
+ uniteObjectInfo.IsDontDestroyAsset = dontDestroy;
+ bool flag4 = @object != null;
+ if (flag4)
+ {
+ this.m_instanceIDAssetMap.Add(@object.GetInstanceID(), uniteObjectInfo);
+ }
+ result = (@object as T);
+ }
+ else
+ {
+ float time = Time.time;
+ UnityEngine.Object object2 = null;
+ bool flag5 = usePool && this.GetInObjectPool(ref object2, num);
+ UnityEngine.Object object3;
+ if (flag5)
+ {
+ object3 = object2;
+ }
+ else
+ {
+ object2 = this.GetAssetInPool(num);
+ bool flag6 = object2 == null;
+ if (flag6)
+ {
+ AssetBundleInfo assetBundleInfo = null;
+ bool flag7 = XSingleton<XUpdater.XUpdater>.singleton.ABManager != null;
+ if (flag7)
+ {
+ assetBundleInfo = XSingleton<XUpdater.XUpdater>.singleton.ABManager.LoadImm(num, location, suffix, null);
+ }
+ bool flag8 = assetBundleInfo != null;
+ if (flag8)
+ {
+ object2 = this.CreateFromAssetBundle<T>(location, num, assetBundleInfo, true);
+ }
+ else
+ {
+ object2 = this.CreateFromAssets<T>(location, num, true);
+ }
+ }
+ object3 = ((object2 != null) ? XCommon.Instantiate<UnityEngine.Object>(object2) : null);
+ bool flag9 = object3 != null;
+ if (flag9)
+ {
+ this.AssetsRefRetain(num);
+ this.LogReverseID(object3, num);
+ }
+ bool flag10 = XSingleton<XDebug>.singleton.EnableRecord();
+ if (flag10)
+ {
+ XSingleton<XDebug>.singleton.AddPoint(num, location, Time.time - time, 0, XDebug.RecordChannel.EResourceLoad);
+ }
+ }
+ result = (object3 as T);
+ }
+ return result;
+ }
+
+ public LoadAsyncTask CreateFromPrefabAsync(string location, LoadCallBack Cb, object cbOjb, bool usePool = true)
+ {
+ uint num = this.Hash(location, ".prefab");
+ bool flag = this.useNewMgr;
+ LoadAsyncTask result;
+ if (flag)
+ {
+ UnityEngine.Object obj = null;
+ XResourceLoaderMgr.UniteObjectInfo uoi = this.GetUOI(num, out obj, usePool);
+ bool flag2 = uoi != null;
+ if (flag2)
+ {
+ Cb(obj, cbOjb);
+ result = null;
+ }
+ else
+ {
+ result = this.CreateAsyncTask(location, ".prefab", num, Cb, cbOjb, false, usePool, typeof(GameObject));
+ }
+ }
+ else
+ {
+ UnityEngine.Object @object = null;
+ bool flag3 = usePool && this.GetInObjectPool(ref @object, num);
+ if (flag3)
+ {
+ Cb(@object, cbOjb);
+ result = null;
+ }
+ else
+ {
+ bool flag4 = !this._asset_pool.TryGetValue(num, out @object);
+ if (flag4)
+ {
+ result = this.CreateAsyncTask(location, ".prefab", num, Cb, cbOjb, false, usePool, typeof(GameObject));
+ }
+ else
+ {
+ LoadAsyncTask loadAsyncTask = this.CreateAsyncTask(location, ".prefab", num, Cb, cbOjb, false, usePool, typeof(GameObject));
+ loadAsyncTask.asset = @object;
+ loadAsyncTask.loadState = EAsyncLoadState.EInstance;
+ result = loadAsyncTask;
+ }
+ }
+ }
+ return result;
+ }
+
+ public T GetSharedResource<T>(string location, string suffix, bool canNotNull = true, bool preload = false) where T : UnityEngine.Object
+ {
+ uint num = this.Hash(location, suffix);
+ bool flag = this.useNewMgr;
+ T result;
+ if (flag)
+ {
+ UnityEngine.Object @object = null;
+ XResourceLoaderMgr.UniteObjectInfo uniteObjectInfo = this.GetUOI(num, out @object, false);
+ bool flag2 = uniteObjectInfo == null;
+ if (flag2)
+ {
+ uniteObjectInfo = this.GetObjectInfo();
+ uniteObjectInfo.IsDontDestroyAsset = this.dontDestroy;
+ bool flag3 = uniteObjectInfo.Init(location, suffix, num, true, typeof(T), canNotNull);
+ if (flag3)
+ {
+ @object = uniteObjectInfo.Get(preload, false);
+ }
+ else
+ {
+ bool flag4 = !canNotNull;
+ if (flag4)
+ {
+ this.m_objInfoPool.Enqueue(uniteObjectInfo);
+ return default(T);
+ }
+ }
+ this.m_assetPool.Add(num, uniteObjectInfo);
+ bool flag5 = @object != null;
+ if (flag5)
+ {
+ this.m_instanceIDAssetMap.Add(@object.GetInstanceID(), uniteObjectInfo);
+ }
+ }
+ result = (@object as T);
+ }
+ else
+ {
+ float time = Time.time;
+ UnityEngine.Object object2 = this.GetAssetInPool(num);
+ bool flag6 = object2 == null;
+ if (flag6)
+ {
+ AssetBundleInfo assetBundleInfo = null;
+ bool flag7 = XSingleton<XUpdater.XUpdater>.singleton.ABManager != null;
+ if (flag7)
+ {
+ assetBundleInfo = XSingleton<XUpdater.XUpdater>.singleton.ABManager.LoadImm(num, location, suffix, null);
+ }
+ bool flag8 = assetBundleInfo != null;
+ if (flag8)
+ {
+ object2 = this.CreateFromAssetBundle<T>(location, num, assetBundleInfo, canNotNull);
+ }
+ else
+ {
+ object2 = this.CreateFromAssets<T>(location, num, canNotNull);
+ }
+ }
+ bool flag9 = object2 != null;
+ if (flag9)
+ {
+ this.AssetsRefRetain(num);
+ }
+ bool flag10 = XSingleton<XDebug>.singleton.EnableRecord();
+ if (flag10)
+ {
+ XSingleton<XDebug>.singleton.AddPoint(num, location, Time.time - time, 1, XDebug.RecordChannel.EResourceLoad);
+ }
+ result = (object2 as T);
+ }
+ return result;
+ }
+
+ public LoadAsyncTask GetShareResourceAsync<T>(string location, string suffix, LoadCallBack Cb, object cbOjb) where T : UnityEngine.Object
+ {
+ uint num = this.Hash(location, suffix);
+ bool flag = this.useNewMgr;
+ LoadAsyncTask result;
+ if (flag)
+ {
+ UnityEngine.Object obj = null;
+ XResourceLoaderMgr.UniteObjectInfo uoi = this.GetUOI(num, out obj, false);
+ bool flag2 = uoi != null;
+ if (flag2)
+ {
+ Cb(obj, cbOjb);
+ result = null;
+ }
+ else
+ {
+ result = this.CreateAsyncTask(location, suffix, num, Cb, null, true, false, typeof(T));
+ }
+ }
+ else
+ {
+ UnityEngine.Object obj2 = null;
+ bool flag3 = this._asset_pool.TryGetValue(num, out obj2);
+ if (flag3)
+ {
+ Cb(obj2, cbOjb);
+ this.AssetsRefRetain(num);
+ result = null;
+ }
+ else
+ {
+ result = this.CreateAsyncTask(location, suffix, num, Cb, cbOjb, true, false, typeof(T));
+ }
+ }
+ return result;
+ }
+
+ public XAnimationClip GetXAnimation(string location, bool showLog = true, bool preload = false)
+ {
+ uint num = this.Hash(location, ".anim");
+ bool flag = this.useNewMgr;
+ XAnimationClip result;
+ if (flag)
+ {
+ UnityEngine.Object @object = null;
+ XResourceLoaderMgr.UniteObjectInfo uniteObjectInfo = this.GetUOI(num, out @object, false);
+ bool flag2 = uniteObjectInfo == null;
+ if (flag2)
+ {
+ uniteObjectInfo = this.GetObjectInfo();
+ bool flag3 = uniteObjectInfo.InitAnim(location, ".anim", num);
+ if (flag3)
+ {
+ @object = uniteObjectInfo.Get(false, preload);
+ }
+ this.m_assetPool.Add(num, uniteObjectInfo);
+ bool flag4 = @object != null;
+ if (flag4)
+ {
+ this.m_instanceIDAssetMap.Add(@object.GetInstanceID(), uniteObjectInfo);
+ }
+ }
+ result = (@object as XAnimationClip);
+ }
+ else
+ {
+ UnityEngine.Object object2 = this.GetAssetInPool(num);
+ bool flag5 = object2 == null;
+ if (flag5)
+ {
+ AssetBundleInfo assetBundleInfo = null;
+ bool flag6 = XSingleton<XUpdater.XUpdater>.singleton.ABManager != null;
+ if (flag6)
+ {
+ assetBundleInfo = XSingleton<XUpdater.XUpdater>.singleton.ABManager.LoadImm(num, location, ".anim", null);
+ }
+ bool flag7 = assetBundleInfo != null;
+ if (flag7)
+ {
+ object2 = this.CreateFromAssetBundle<XAnimationClip>(location, num, assetBundleInfo, showLog);
+ }
+ else
+ {
+ object2 = this.CreateFromAssets<XAnimationClip>(location, num, showLog);
+ }
+ }
+ bool flag8 = object2 != null;
+ if (flag8)
+ {
+ this.AssetsRefRetain(num);
+ }
+ result = (object2 as XAnimationClip);
+ }
+ return result;
+ }
+
+ public static void SafeGetAnimationClip(string location, ref XAnimationClip clip)
+ {
+ bool flag = clip != null;
+ if (flag)
+ {
+ XSingleton<XResourceLoaderMgr>.singleton.UnSafeDestroyShareResource(location, ".anim", clip, false);
+ clip = null;
+ }
+ clip = XSingleton<XResourceLoaderMgr>.singleton.GetXAnimation(location, true, false);
+ }
+
+ public static void SafeDestroy(ref UnityEngine.Object obj, bool returnPool = true)
+ {
+ XSingleton<XResourceLoaderMgr>.singleton.UnSafeDestroy(obj, returnPool, false);
+ obj = null;
+ }
+
+ public static void SafeDestroy(ref GameObject obj, bool returnPool = true)
+ {
+ XSingleton<XResourceLoaderMgr>.singleton.UnSafeDestroy(obj, returnPool, false);
+ obj = null;
+ }
+
+ public static void SafeDestroyShareResource(string location, ref GameObject obj, bool triggerRelease = false)
+ {
+ XSingleton<XResourceLoaderMgr>.singleton.UnSafeDestroyShareResource(location, ".prefab", obj, triggerRelease);
+ obj = null;
+ }
+
+ public static void SafeDestroyShareResource(string location, ref Material obj)
+ {
+ XSingleton<XResourceLoaderMgr>.singleton.UnSafeDestroyShareResource(location, ".mat", obj, false);
+ obj = null;
+ }
+
+ public static void SafeDestroyShareResource(string location, ref XAnimationClip obj)
+ {
+ bool flag = obj != null;
+ if (flag)
+ {
+ XSingleton<XResourceLoaderMgr>.singleton.UnSafeDestroyShareResource(location, ".anim", obj.clip, false);
+ obj = null;
+ }
+ }
+
+ private void InnerDestroy(UnityEngine.Object obj, int instanceID, bool sharedRes)
+ {
+ XResourceLoaderMgr.UniteObjectInfo uoi = null;
+ bool flag = this.m_instanceIDAssetMap.TryGetValue(instanceID, out uoi);
+ if (flag)
+ {
+ this.ReturnObject(uoi, obj, instanceID, false);
+ }
+ else if (sharedRes)
+ {
+ bool flag2 = !XResourceLoaderMgr.UniteObjectInfo.CanDestroy(obj);
+ if (flag2)
+ {
+ Resources.UnloadAsset(obj);
+ }
+ }
+ else
+ {
+ bool flag3 = XResourceLoaderMgr.UniteObjectInfo.CanDestroy(obj);
+ if (flag3)
+ {
+ UnityEngine.Object.Destroy(obj);
+ }
+ }
+ }
+
+ public void UnSafeDestroy(UnityEngine.Object o, bool returnPool = true, bool destroyImm = false)
+ {
+ bool flag = o == null;
+ if (!flag)
+ {
+ int instanceID = o.GetInstanceID();
+ bool flag2 = this.useNewMgr;
+ if (flag2)
+ {
+ this.InnerDestroy(o, instanceID, false);
+ }
+ else
+ {
+ uint num = 0u;
+ bool flag3 = returnPool && this._reverse_map.TryGetValue(instanceID, out num);
+ if (flag3)
+ {
+ this.AddToObjectPool(num, o);
+ }
+ else
+ {
+ bool flag4 = this._reverse_map.TryGetValue(instanceID, out num);
+ if (flag4)
+ {
+ this.AssetsRefRelease(num);
+ this._reverse_map.Remove(instanceID);
+ }
+ if (destroyImm)
+ {
+ UnityEngine.Object.DestroyImmediate(o);
+ }
+ else
+ {
+ UnityEngine.Object.Destroy(o);
+ }
+ }
+ }
+ }
+ }
+
+ public void UnSafeDestroyShareResource(string location, string suffix, UnityEngine.Object o, bool triggerRelease = false)
+ {
+ bool flag = o == null;
+ if (!flag)
+ {
+ bool flag2 = this.useNewMgr;
+ if (flag2)
+ {
+ int instanceID = o.GetInstanceID();
+ this.InnerDestroy(o, instanceID, true);
+ }
+ else
+ {
+ bool flag3 = !string.IsNullOrEmpty(location);
+ if (flag3)
+ {
+ uint num = this.Hash(location, suffix);
+ bool flag4 = this._asset_ref_count.ContainsKey(num);
+ if (flag4)
+ {
+ bool flag5 = this.AssetsRefRelease(num) && triggerRelease && !XResourceLoaderMgr.UniteObjectInfo.CanDestroy(o);
+ if (flag5)
+ {
+ Resources.UnloadAsset(o);
+ }
+ }
+ else
+ {
+ bool flag6 = !XResourceLoaderMgr.UniteObjectInfo.CanDestroy(o);
+ if (flag6)
+ {
+ bool flag7 = !(XSingleton<XUpdater.XUpdater>.singleton.ABManager != null) || !XSingleton<XUpdater.XUpdater>.singleton.ABManager.CheckInDep(num);
+ if (flag7)
+ {
+ Resources.UnloadAsset(o);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ private void DelayDestroy(float deltaTime, bool force)
+ {
+ XResourceLoaderMgr.UniteObjectInfo uniteObjectInfo = this.m_degenerationQueue;
+ this.m_degenerationQueue = null;
+ XResourceLoaderMgr.UniteObjectInfo uniteObjectInfo2 = null;
+ while (uniteObjectInfo != null)
+ {
+ XResourceLoaderMgr.UniteObjectInfo next = uniteObjectInfo.next;
+ uniteObjectInfo.degenerationTime += deltaTime;
+ bool flag = force || !uniteObjectInfo.IsDegeneration || uniteObjectInfo.degenerationTime > 2f;
+ if (flag)
+ {
+ bool flag2 = uniteObjectInfo2 != null;
+ if (flag2)
+ {
+ uniteObjectInfo2.next = uniteObjectInfo.next;
+ }
+ this.ReturnObject(uniteObjectInfo);
+ }
+ else
+ {
+ uniteObjectInfo2 = uniteObjectInfo;
+ bool flag3 = this.m_degenerationQueue == null;
+ if (flag3)
+ {
+ this.m_degenerationQueue = uniteObjectInfo;
+ }
+ }
+ uniteObjectInfo = next;
+ }
+ this.m_currentDegeneration = this.m_degenerationQueue;
+ while (this.m_currentDegeneration != null && this.m_currentDegeneration.next != null)
+ {
+ this.m_currentDegeneration = this.m_currentDegeneration.next;
+ }
+ }
+
+ public void LoadABScene(string path)
+ {
+ uint hash = 0u;
+ hash = XSingleton<XCommon>.singleton.XHashLowerRelpaceDot(hash, "Assets.XScene.Scenelib.");
+ hash = XSingleton<XCommon>.singleton.XHashLowerRelpaceDot(hash, path);
+ hash = XSingleton<XCommon>.singleton.XHashLowerRelpaceDot(hash, ".unity");
+ AssetBundleInfo assetBundleInfo = XSingleton<XUpdater.XUpdater>.singleton.ABManager.LoadImm(hash, path, ".unity", "Assets.XScene.Scenelib.");
+ bool flag = assetBundleInfo != null;
+ if (flag)
+ {
+ XSingleton<XDebug>.singleton.AddLog("Load AB Scene Finish!", null, null, null, null, null, XDebugColor.XDebug_None);
+ }
+ }
+
+ public IXCurve GetCurve(string location)
+ {
+ bool useCurveTable = XResourceLoaderMgr.UseCurveTable;
+ IXCurve result;
+ if (useCurveTable)
+ {
+ uint num = XSingleton<XCommon>.singleton.XHash(location);
+ IXCurve ixcurve = this.GetServerCurve(num);
+ bool flag = ixcurve == null;
+ if (flag)
+ {
+ XSingleton<XDebug>.singleton.AddLog2("curve not found:{0}|Hash:{1}", new object[]
+ {
+ location,
+ num
+ });
+ GameObject sharedResource = this.GetSharedResource<GameObject>(location, ".prefab", true, false);
+ ixcurve = (sharedResource.GetComponent("XCurve") as IXCurve);
+ }
+ result = ixcurve;
+ }
+ else
+ {
+ GameObject sharedResource2 = this.GetSharedResource<GameObject>(location, ".prefab", true, false);
+ result = (sharedResource2.GetComponent("XCurve") as IXCurve);
+ }
+ return result;
+ }
+
+ private FloatCurve _GetFloatCurve(uint hash)
+ {
+ int i = 0;
+ int num = this.m_curveData.Count - 1;
+ while (i <= num)
+ {
+ int num2 = (i + num) / 2;
+ bool flag = hash > this.m_curveData[num2].namehash;
+ if (flag)
+ {
+ i = num2 + 1;
+ }
+ else
+ {
+ bool flag2 = hash < this.m_curveData[num2].namehash;
+ if (!flag2)
+ {
+ return this.m_curveData[num2];
+ }
+ num = num2 - 1;
+ }
+ }
+ return null;
+ }
+
+ public FloatCurve GetServerCurve(uint hash)
+ {
+ return this._GetFloatCurve(hash);
+ }
+
+ public T GetData<T>(string pathwithname, string suffix)
+ {
+ uint key = XSingleton<XCommon>.singleton.XHash(pathwithname);
+ UnityEngine.Object @object = null;
+ bool flag = !this._script_pool.TryGetValue(key, out @object);
+ if (flag)
+ {
+ TextAsset sharedResource = this.GetSharedResource<TextAsset>(pathwithname, suffix, true, false);
+ bool flag2 = sharedResource == null;
+ if (flag2)
+ {
+ XSingleton<XDebug>.singleton.AddErrorLog("Deserialize file ", pathwithname, " Error!", null, null, null);
+ }
+ int num = (typeof(T) == typeof(XCutSceneData)) ? 1 : 0;
+ XmlSerializer xmlSerializer = this.xmlSerializerCache[num];
+ this.shareMemoryStream.Seek(0L, SeekOrigin.Begin);
+ this.shareMemoryStream.SetLength(0L);
+ this.shareMemoryStream.Write(sharedResource.bytes, 0, sharedResource.bytes.Length);
+ this.shareMemoryStream.Seek(0L, SeekOrigin.Begin);
+ object data = xmlSerializer.Deserialize(this.shareMemoryStream);
+ XDataWrapper xdataWrapper = ScriptableObject.CreateInstance<XDataWrapper>();
+ xdataWrapper.Data = data;
+ this.UnSafeDestroyShareResource(pathwithname, suffix, sharedResource, false);
+ @object = xdataWrapper;
+ bool flag3 = null != @object;
+ if (flag3)
+ {
+ this._script_pool.Add(key, @object);
+ }
+ }
+ return (T)((object)(@object as XDataWrapper).Data);
+ }
+
+ public UnityEngine.Object AddAssetInPool(UnityEngine.Object asset, uint hash, AssetBundleInfo info = null)
+ {
+ bool flag = asset == null;
+ UnityEngine.Object result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ UnityEngine.Object @object = null;
+ this._asset_pool.TryGetValue(hash, out @object);
+ bool flag2 = @object == null;
+ if (flag2)
+ {
+ @object = asset;
+ this._asset_pool[hash] = @object;
+ bool flag3 = info != null && !this._bundle_pool.ContainsKey(hash);
+ if (flag3)
+ {
+ info.Retain();
+ this._bundle_pool.Add(hash, info);
+ }
+ }
+ result = @object;
+ }
+ return result;
+ }
+
+ public UnityEngine.Object GetAssetInPool(uint hash)
+ {
+ UnityEngine.Object result = null;
+ this._asset_pool.TryGetValue(hash, out result);
+ return result;
+ }
+
+ public bool GetInObjectPool(ref UnityEngine.Object o, uint id)
+ {
+ Queue<UnityEngine.Object> queue = null;
+ bool flag = this._object_pool.TryGetValue(id, out queue);
+ if (flag)
+ {
+ int count = queue.Count;
+ bool flag2 = count > 0;
+ if (flag2)
+ {
+ UnityEngine.Object @object = queue.Dequeue();
+ while (@object == null && queue.Count > 0)
+ {
+ @object = queue.Dequeue();
+ }
+ bool flag3 = @object == null;
+ if (flag3)
+ {
+ return false;
+ }
+ o = @object;
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private UnityEngine.Object CreateFromAssets<T>(string location, uint hash, bool showError = true)
+ {
+ bool flag = typeof(T) == typeof(XAnimationClip);
+ UnityEngine.Object @object;
+ if (flag)
+ {
+ XAnimationClip xanimationClip = XAnimationPool.Get();
+ xanimationClip.clip = (Resources.Load(location, typeof(AnimationClip)) as AnimationClip);
+ bool flag2 = xanimationClip.clip == null;
+ if (flag2)
+ {
+ if (showError)
+ {
+ XResourceLoaderMgr.LoadErrorLog(location);
+ }
+ return null;
+ }
+ xanimationClip.length = xanimationClip.clip.length;
+ @object = xanimationClip;
+ }
+ else
+ {
+ @object = Resources.Load(location, typeof(T));
+ }
+ XResourceLoaderMgr.resourceLoadCount++;
+ @object = this.AddAssetInPool(@object, hash, null);
+ bool flag3 = @object == null;
+ UnityEngine.Object result;
+ if (flag3)
+ {
+ if (showError)
+ {
+ XResourceLoaderMgr.LoadErrorLog(location);
+ }
+ result = null;
+ }
+ else
+ {
+ result = @object;
+ }
+ return result;
+ }
+
+ private UnityEngine.Object CreateFromAssetBundle<T>(string location, uint hash, AssetBundleInfo info, bool showError = true)
+ {
+ bool flag = typeof(T) == typeof(XAnimationClip);
+ UnityEngine.Object @object;
+ if (flag)
+ {
+ XAnimationClip xanimationClip = XAnimationPool.Get();
+ xanimationClip.clip = (info.mainObject as AnimationClip);
+ bool flag2 = xanimationClip.clip == null;
+ if (flag2)
+ {
+ if (showError)
+ {
+ XResourceLoaderMgr.LoadErrorLog(location);
+ }
+ return null;
+ }
+ xanimationClip.length = xanimationClip.clip.length;
+ @object = xanimationClip;
+ }
+ else
+ {
+ @object = info.mainObject;
+ }
+ XResourceLoaderMgr.abLoadCount++;
+ @object = this.AddAssetInPool(@object, hash, info);
+ bool flag3 = @object == null;
+ UnityEngine.Object result;
+ if (flag3)
+ {
+ if (showError)
+ {
+ XResourceLoaderMgr.LoadErrorLog(location);
+ }
+ result = null;
+ }
+ else
+ {
+ result = @object;
+ }
+ return result;
+ }
+
+ private void AddToObjectPool(uint id, UnityEngine.Object obj)
+ {
+ Queue<UnityEngine.Object> queue = null;
+ bool flag = !this._object_pool.TryGetValue(id, out queue);
+ if (flag)
+ {
+ queue = new Queue<UnityEngine.Object>();
+ this._object_pool.Add(id, queue);
+ }
+ GameObject gameObject = obj as GameObject;
+ bool flag2 = gameObject != null;
+ if (flag2)
+ {
+ Transform transform = gameObject.transform;
+ transform.position = XResourceLoaderMgr.Far_Far_Away;
+ transform.rotation = Quaternion.identity;
+ transform.parent = null;
+ }
+ queue.Enqueue(obj);
+ }
+
+ public void AssetsRefRetain(uint hash)
+ {
+ int num = 0;
+ this._asset_ref_count.TryGetValue(hash, out num);
+ num++;
+ this._asset_ref_count[hash] = num;
+ }
+
+ public bool AssetsRefRelease(uint hash)
+ {
+ int num = 0;
+ bool flag = this._asset_ref_count.TryGetValue(hash, out num);
+ if (flag)
+ {
+ num--;
+ bool flag2 = num < 0;
+ if (flag2)
+ {
+ num = 0;
+ }
+ bool flag3 = num == 0;
+ if (flag3)
+ {
+ this._asset_pool.Remove(hash);
+ this._asset_ref_count.Remove(hash);
+ AssetBundleInfo assetBundleInfo = null;
+ bool flag4 = this._bundle_pool.TryGetValue(hash, out assetBundleInfo);
+ if (flag4)
+ {
+ assetBundleInfo.Release();
+ this._bundle_pool.Remove(hash);
+ return false;
+ }
+ return true;
+ }
+ else
+ {
+ this._asset_ref_count[hash] = num;
+ }
+ }
+ return false;
+ }
+
+ public void LogReverseID(UnityEngine.Object o, uint id)
+ {
+ bool flag = o != null;
+ if (flag)
+ {
+ int instanceID = o.GetInstanceID();
+ bool flag2 = !this._reverse_map.ContainsKey(instanceID);
+ if (flag2)
+ {
+ this._reverse_map.Add(instanceID, id);
+ }
+ }
+ }
+
+ public static void LoadErrorLog(string prefab)
+ {
+ XSingleton<XDebug>.singleton.AddErrorLog("Load resource: ", prefab, " error!", null, null, null);
+ }
+
+ public void Update(float deltaTime)
+ {
+ bool flag = false;
+ bool flag2 = true;
+ float time = Time.time;
+ for (int i = 0; i < this._async_task_list.Count; i++)
+ {
+ LoadAsyncTask loadAsyncTask = this._async_task_list[i];
+ bool flag3 = flag2;
+ if (flag3)
+ {
+ bool flag4 = loadAsyncTask.Update();
+ if (flag4)
+ {
+ loadAsyncTask.Clear();
+ }
+ float num = Time.time - time;
+ bool flag5 = num >= this.maxLoadThresholdTime;
+ if (flag5)
+ {
+ flag2 = false;
+ }
+ }
+ flag |= (loadAsyncTask.loadState == EAsyncLoadState.ELoading);
+ }
+ bool flag6 = !flag;
+ if (flag6)
+ {
+ this.isCurrentLoading = false;
+ }
+ this.DelayDestroy(deltaTime, false);
+ this.UpdateDelayProcess(deltaTime);
+ }
+
+ public void AddDelayProcess(IDelayLoad loader)
+ {
+ int i = 0;
+ int count = this.delayUpdateList.Count;
+ while (i < count)
+ {
+ IDelayLoad delayLoad = this.delayUpdateList[i];
+ bool flag = delayLoad == loader;
+ if (flag)
+ {
+ return;
+ }
+ i++;
+ }
+ bool flag2 = this.currentDelayTime < 0.0;
+ if (flag2)
+ {
+ this.currentDelayTime = XResourceLoaderMgr.delayTime;
+ }
+ this.delayUpdateList.Add(loader);
+ }
+
+ public void RemoveDelayProcess(IDelayLoad loader)
+ {
+ this.delayUpdateList.Remove(loader);
+ }
+
+ public void UpdateDelayProcess(float deltaTime)
+ {
+ bool flag = this.delayUpdateList.Count > 0;
+ if (flag)
+ {
+ this.currentDelayTime -= XResourceLoaderMgr.delayTime;
+ bool flag2 = this.currentDelayTime <= 0.0;
+ if (flag2)
+ {
+ IDelayLoad delayLoad = this.delayUpdateList[0];
+ EDelayProcessType edelayProcessType = delayLoad.DelayUpdate();
+ bool flag3 = edelayProcessType == EDelayProcessType.EFinish;
+ if (flag3)
+ {
+ this.delayUpdateList.RemoveAt(0);
+ bool flag4 = this.delayUpdateList.Count > 0;
+ if (flag4)
+ {
+ this.currentDelayTime = XResourceLoaderMgr.delayTime;
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XResourceLoaderMgr.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XResourceLoaderMgr.cs.meta new file mode 100644 index 00000000..00ae518a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XResourceLoaderMgr.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a6608b745f91d594d9706d9ea067a55d +timeCreated: 1611465736 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XResultAffectDirection.cs b/Client/Assets/Scripts/XUtliPoolLib/XResultAffectDirection.cs new file mode 100644 index 00000000..8bea9116 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XResultAffectDirection.cs @@ -0,0 +1,10 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public enum XResultAffectDirection
+ {
+ AttackDir,
+ ChargeDir
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XResultAffectDirection.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XResultAffectDirection.cs.meta new file mode 100644 index 00000000..2c02e2b7 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XResultAffectDirection.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2f75956f6de7bc04da1ec7dff58f93e6 +timeCreated: 1611465307 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XResultBulletType.cs b/Client/Assets/Scripts/XUtliPoolLib/XResultBulletType.cs new file mode 100644 index 00000000..d5374f92 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XResultBulletType.cs @@ -0,0 +1,12 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public enum XResultBulletType
+ {
+ Sphere,
+ Plane,
+ Satellite,
+ Ring
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XResultBulletType.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XResultBulletType.cs.meta new file mode 100644 index 00000000..1f17df37 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XResultBulletType.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 51c099649987e0148a7908f91c29d49f +timeCreated: 1611465644 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XResultData.cs b/Client/Assets/Scripts/XUtliPoolLib/XResultData.cs new file mode 100644 index 00000000..0b1ba583 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XResultData.cs @@ -0,0 +1,121 @@ +using System;
+using System.ComponentModel;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ [Serializable]
+ public class XResultData : XBaseData
+ {
+ [SerializeField]
+ [DefaultValue(false)]
+ public bool LongAttackEffect;
+
+ [SerializeField]
+ [DefaultValue(false)]
+ public bool Attack_Only_Target;
+
+ [SerializeField]
+ [DefaultValue(false)]
+ public bool Attack_All;
+
+ [SerializeField]
+ [DefaultValue(false)]
+ public bool Mobs_Inclusived;
+
+ [SerializeField]
+ [DefaultValue(true)]
+ public bool Sector_Type;
+
+ [SerializeField]
+ [DefaultValue(false)]
+ public bool Rect_HalfEffect;
+
+ [SerializeField]
+ [DefaultValue(0)]
+ public int None_Sector_Angle_Shift;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float At;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Low_Range;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Range;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Scope;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Offset_X;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Offset_Z;
+
+ [SerializeField]
+ [DefaultValue(false)]
+ public bool Loop;
+
+ [SerializeField]
+ [DefaultValue(false)]
+ public bool Group;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Cycle;
+
+ [SerializeField]
+ [DefaultValue(0)]
+ public int Loop_Count;
+
+ [SerializeField]
+ [DefaultValue(0)]
+ public int Deviation_Angle;
+
+ [SerializeField]
+ [DefaultValue(0)]
+ public int Angle_Step;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Time_Step;
+
+ [SerializeField]
+ [DefaultValue(0)]
+ public int Group_Count;
+
+ [SerializeField]
+ [DefaultValue(0)]
+ public int Token;
+
+ [SerializeField]
+ [DefaultValue(false)]
+ public bool Clockwise;
+
+ [SerializeField]
+ public XLongAttackResultData LongAttackData;
+
+ [SerializeField]
+ [DefaultValue(false)]
+ public bool Warning;
+
+ [SerializeField]
+ [DefaultValue(0)]
+ public int Warning_Idx;
+
+ [SerializeField]
+ public XResultAffectDirection Affect_Direction = XResultAffectDirection.AttackDir;
+
+ public XResultData()
+ {
+ this.Sector_Type = true;
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XResultData.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XResultData.cs.meta new file mode 100644 index 00000000..bc78cddf --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XResultData.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: fc58ee9733f828a40855ac7baee0a1c8 +timeCreated: 1611465812 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XScriptData.cs b/Client/Assets/Scripts/XUtliPoolLib/XScriptData.cs new file mode 100644 index 00000000..ef278540 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XScriptData.cs @@ -0,0 +1,21 @@ +using System;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ [Serializable]
+ public class XScriptData
+ {
+ [SerializeField]
+ public string Start_Name = null;
+
+ [SerializeField]
+ public string Update_Name = null;
+
+ [SerializeField]
+ public string Result_Name = null;
+
+ [SerializeField]
+ public string Stop_Name = null;
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XScriptData.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XScriptData.cs.meta new file mode 100644 index 00000000..cc86f359 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XScriptData.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: dca6ec9ad2c5e9e4d91b3e349c48f71b +timeCreated: 1611465796 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XSetParentCommand.cs b/Client/Assets/Scripts/XUtliPoolLib/XSetParentCommand.cs new file mode 100644 index 00000000..8a446751 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XSetParentCommand.cs @@ -0,0 +1,54 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class XSetParentCommand
+ {
+ public static ExecuteCommandHandler handler = new ExecuteCommandHandler(XSetParentCommand.Execute);
+
+ public static CanExecuteHandler canExecute = new CanExecuteHandler(XSetParentCommand.CanExecute);
+
+ public static DebugHandler debugHandler = new DebugHandler(XSetParentCommand.DebugString);
+
+ public static void DebugString(XGameObject gameObject, XEngineCommand command, string str, int id)
+ {
+ bool flag = command.data != null;
+ if (flag)
+ {
+ XGameObject xgameObject = command.data.data as XGameObject;
+ bool flag2 = xgameObject != null;
+ if (flag2)
+ {
+ XSingleton<XDebug>.singleton.AddWarningLog2("[EngineCommand] SetParentCmd {0} ID:{1} parent:{2} current:{3}", new object[]
+ {
+ str,
+ id,
+ xgameObject.Name,
+ gameObject.Name
+ });
+ }
+ }
+ }
+
+ public static bool CanExecute(XGameObject gameObject, XEngineCommand command)
+ {
+ bool flag = command.data != null;
+ if (flag)
+ {
+ XGameObject xgameObject = command.data.data as XGameObject;
+ bool flag2 = xgameObject != null;
+ if (flag2)
+ {
+ return xgameObject.IsLoaded;
+ }
+ }
+ return true;
+ }
+
+ public static void Execute(XGameObject gameObject, XEngineCommand command)
+ {
+ XGameObject parent = (command.data == null) ? null : (command.data.data as XGameObject);
+ gameObject.SyncSetParent(parent);
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XSetParentCommand.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XSetParentCommand.cs.meta new file mode 100644 index 00000000..3a6d9992 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XSetParentCommand.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 91c0eba51e73f284e96dbfbe64ceeb41 +timeCreated: 1611465705 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XSingleton.cs b/Client/Assets/Scripts/XUtliPoolLib/XSingleton.cs new file mode 100644 index 00000000..df9e221d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XSingleton.cs @@ -0,0 +1,36 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public abstract class XSingleton<T> : XBaseSingleton where T : new()
+ {
+ public static T singleton
+ {
+ get
+ {
+ return XSingleton<T>._instance;
+ }
+ }
+
+ private static readonly T _instance = Activator.CreateInstance<T>();
+
+ protected XSingleton()
+ {
+ bool flag = XSingleton<T>._instance != null;
+ if (flag)
+ {
+ T instance = XSingleton<T>._instance;
+ throw new XDoubleNewException(instance.ToString() + " can not be created again.");
+ }
+ }
+
+ public override bool Init()
+ {
+ return true;
+ }
+
+ public override void Uninit()
+ {
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XSingleton.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XSingleton.cs.meta new file mode 100644 index 00000000..fc5549c1 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XSingleton.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 25c79208423dd2b4393e491739d4c52c +timeCreated: 1611465301 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XSkillData.cs b/Client/Assets/Scripts/XUtliPoolLib/XSkillData.cs new file mode 100644 index 00000000..be8deb5e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XSkillData.cs @@ -0,0 +1,348 @@ +using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Xml.Serialization;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ [Serializable]
+ public class XSkillData
+ {
+ public static readonly string[] Skills = new string[]
+ {
+ "XJAComboSkill",
+ "XArtsSkill",
+ "XUltraSkill",
+ "XCombinedSkill"
+ };
+
+ public static readonly string[] JA_Command = new string[]
+ {
+ "ToSkill",
+ "ToJA_1_0",
+ "ToJA_2_0",
+ "ToJA_3_0",
+ "ToJA_4_0",
+ "ToJA_0_1",
+ "ToJA_0_2",
+ "ToJA_1_1",
+ "ToJA_1_2",
+ "ToJA_2_1",
+ "ToJA_2_2",
+ "ToJA_3_1",
+ "ToJA_3_2",
+ "ToJA_4_1",
+ "ToJA_4_2",
+ "ToJA_QTE"
+ };
+
+ public static readonly string[] Combined_Command = new string[]
+ {
+ "ToPhase",
+ "ToPhase1",
+ "ToPhase2",
+ "ToPhase3",
+ "ToPhase4",
+ "ToPhase5",
+ "ToPhase6",
+ "ToPhase7",
+ "ToPhase8",
+ "ToPhase9"
+ };
+
+ public static readonly string[] JaOverrideMap = new string[]
+ {
+ "A",
+ "AA",
+ "AAA",
+ "AAAA",
+ "AAAAA",
+ "AB",
+ "ABB",
+ "AAB",
+ "AABB",
+ "AAAB",
+ "AAABB",
+ "AAAAB",
+ "AAAABB",
+ "AAAAAB",
+ "AAAAABB",
+ "QTE"
+ };
+
+ public static readonly string[] CombinedOverrideMap = new string[]
+ {
+ "Phase0",
+ "Phase1",
+ "Phase2",
+ "Phase3",
+ "Phase4",
+ "Phase5",
+ "Phase6",
+ "Phase7",
+ "Phase8",
+ "Phase9"
+ };
+
+ public static readonly string[] MultipleAttackOverrideMap = new string[]
+ {
+ "Forward",
+ "RightForward",
+ "Right",
+ "RightBack",
+ "LeftForward",
+ "Left",
+ "LeftBack",
+ "Back"
+ };
+
+ [XmlIgnore]
+ public string Prefix = null;
+
+ [SerializeField]
+ public string Name;
+
+ [SerializeField]
+ [DefaultValue(1)]
+ public int TypeToken;
+
+ [SerializeField]
+ public string ClipName;
+
+ [SerializeField]
+ [DefaultValue(0)]
+ public int SkillPosition;
+
+ [SerializeField]
+ [DefaultValue(false)]
+ public bool IgnoreCollision;
+
+ [SerializeField]
+ [DefaultValue(true)]
+ public bool NeedTarget;
+
+ [SerializeField]
+ [DefaultValue(false)]
+ public bool OnceOnly;
+
+ [SerializeField]
+ [DefaultValue(false)]
+ public bool ForCombinedOnly;
+
+ [SerializeField]
+ [DefaultValue(false)]
+ public bool MultipleAttackSupported;
+
+ [SerializeField]
+ [DefaultValue(0.75f)]
+ public float BackTowardsDecline;
+
+ [SerializeField]
+ public string PVP_Script_Name;
+
+ [SerializeField]
+ public List<XResultData> Result;
+
+ [SerializeField]
+ public List<XChargeData> Charge;
+
+ [SerializeField]
+ public List<XJAData> Ja;
+
+ [SerializeField]
+ public List<XHitData> Hit;
+
+ [SerializeField]
+ public List<XManipulationData> Manipulation;
+
+ [SerializeField]
+ public List<XFxData> Fx;
+
+ [SerializeField]
+ public List<XAudioData> Audio;
+
+ [SerializeField]
+ public List<XCameraEffectData> CameraEffect;
+
+ [SerializeField]
+ public List<XWarningData> Warning;
+
+ [SerializeField]
+ public List<XCombinedData> Combined;
+
+ [SerializeField]
+ public List<XMobUnitData> Mob;
+
+ [SerializeField]
+ public XScriptData Script;
+
+ [SerializeField]
+ public XLogicalData Logical;
+
+ [SerializeField]
+ public XCameraMotionData CameraMotion;
+
+ [SerializeField]
+ public XCameraPostEffectData CameraPostEffect;
+
+ [SerializeField]
+ public XCastChain Chain;
+
+ [SerializeField]
+ [DefaultValue(1f)]
+ public float CoolDown;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Time;
+
+ [SerializeField]
+ [DefaultValue(false)]
+ public bool Cast_Range_Rect;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Cast_Range_Upper;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Cast_Range_Lower;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Cast_Offset_X;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Cast_Offset_Z;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Cast_Scope;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float Cast_Scope_Shift;
+
+ [SerializeField]
+ [DefaultValue(1f)]
+ public float CameraTurnBack;
+
+ public static bool PreLoad = false;
+
+ public XSkillData()
+ {
+ this.TypeToken = 1;
+ this.NeedTarget = true;
+ this.BackTowardsDecline = 0.75f;
+ this.CameraTurnBack = 1f;
+ this.CoolDown = 1f;
+ }
+
+ public static XSkillData PreLoadSkillForTemp(string skillprefix, string name, bool force = false)
+ {
+ XSkillData data = XSingleton<XResourceLoaderMgr>.singleton.GetData<XSkillData>(skillprefix + name, ".txt");
+ data.Prefix = skillprefix;
+ bool flag = (int) Application.platform == 7 || (int)Application.platform == 0 || force;
+ if (flag)
+ {
+ XSkillData.PreLoadSkillResEx(data, 1);
+ }
+ else
+ {
+ XSkillData.PreLoadSkillRes(data, 1);
+ }
+ return data;
+ }
+
+ public static void PreLoadSkillRes(XSkillData data, int count)
+ {
+ bool flag = !string.IsNullOrEmpty(data.ClipName);
+ if (flag)
+ {
+ XSingleton<XResourceLoaderMgr>.singleton.GetXAnimation(data.ClipName, true, false);
+ }
+ bool flag2 = data.Fx != null;
+ if (flag2)
+ {
+ for (int i = 0; i < data.Fx.Count; i++)
+ {
+ XSingleton<XResourceLoaderMgr>.singleton.CreateInAdvance(data.Fx[i].Fx, count, ECreateHideType.DisableParticleRenderer);
+ }
+ }
+ bool flag3 = data.Result != null;
+ if (flag3)
+ {
+ for (int j = 0; j < data.Result.Count; j++)
+ {
+ bool longAttackEffect = data.Result[j].LongAttackEffect;
+ if (longAttackEffect)
+ {
+ XSingleton<XResourceLoaderMgr>.singleton.CreateInAdvance(data.Result[j].LongAttackData.End_Fx, count, ECreateHideType.DisableParticleRenderer);
+ XSingleton<XResourceLoaderMgr>.singleton.CreateInAdvance(data.Result[j].LongAttackData.Prefab, count, ECreateHideType.DisableParticleRenderer);
+ }
+ }
+ }
+ }
+
+ public static void PreLoadSkillResEx(XSkillData data, int count)
+ {
+ bool flag = !string.IsNullOrEmpty(data.ClipName);
+ if (flag)
+ {
+ XSingleton<XResourceLoaderMgr>.singleton.GetXAnimation(data.ClipName, true, false);
+ bool multipleAttackSupported = data.MultipleAttackSupported;
+ if (multipleAttackSupported)
+ {
+ XSingleton<XResourceLoaderMgr>.singleton.GetXAnimation(data.ClipName + "_right_forward", true, false);
+ XSingleton<XResourceLoaderMgr>.singleton.GetXAnimation(data.ClipName + "_right", true, false);
+ XSingleton<XResourceLoaderMgr>.singleton.GetXAnimation(data.ClipName + "_right_back", true, false);
+ XSingleton<XResourceLoaderMgr>.singleton.GetXAnimation(data.ClipName + "_left_forward", true, false);
+ XSingleton<XResourceLoaderMgr>.singleton.GetXAnimation(data.ClipName + "_left", true, false);
+ XSingleton<XResourceLoaderMgr>.singleton.GetXAnimation(data.ClipName + "_left_back", true, false);
+ XSingleton<XResourceLoaderMgr>.singleton.GetXAnimation(data.ClipName + "_back", true, false);
+ }
+ }
+ bool flag2 = data.Fx != null;
+ if (flag2)
+ {
+ for (int i = 0; i < data.Fx.Count; i++)
+ {
+ XSingleton<XResourceLoaderMgr>.singleton.CreateInAdvance(data.Fx[i].Fx, count, ECreateHideType.DisableParticleRenderer);
+ }
+ }
+ bool flag3 = data.Hit != null && data.Hit.Count > 0;
+ if (flag3)
+ {
+ XSingleton<XResourceLoaderMgr>.singleton.CreateInAdvance(data.Hit[0].Fx, 1, ECreateHideType.DisableParticleRenderer);
+ }
+ bool flag4 = data.Warning != null;
+ if (flag4)
+ {
+ for (int j = 0; j < data.Warning.Count; j++)
+ {
+ XSingleton<XResourceLoaderMgr>.singleton.CreateInAdvance(data.Warning[j].Fx, count, ECreateHideType.DisableParticleRenderer);
+ }
+ }
+ bool flag5 = data.Result != null;
+ if (flag5)
+ {
+ for (int k = 0; k < data.Result.Count; k++)
+ {
+ bool longAttackEffect = data.Result[k].LongAttackEffect;
+ if (longAttackEffect)
+ {
+ XSingleton<XResourceLoaderMgr>.singleton.CreateInAdvance(data.Result[k].LongAttackData.End_Fx, count, ECreateHideType.DisableParticleRenderer);
+ XSingleton<XResourceLoaderMgr>.singleton.CreateInAdvance(data.Result[k].LongAttackData.Prefab, count, ECreateHideType.DisableParticleRenderer);
+ }
+ }
+ }
+ bool flag6 = data.CameraMotion != null && !string.IsNullOrEmpty(data.CameraMotion.Motion);
+ if (flag6)
+ {
+ XSingleton<XResourceLoaderMgr>.singleton.GetXAnimation(data.CameraMotion.Motion, true, false);
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XSkillData.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XSkillData.cs.meta new file mode 100644 index 00000000..b7aae1df --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XSkillData.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 197e0bc365ccaf44fb11d02b7190a69d +timeCreated: 1611465296 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XSkillScriptGen.cs b/Client/Assets/Scripts/XUtliPoolLib/XSkillScriptGen.cs new file mode 100644 index 00000000..cf1d4f34 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XSkillScriptGen.cs @@ -0,0 +1,152 @@ +using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Reflection;
+using System.Text;
+using System.Xml;
+
+namespace XUtliPoolLib
+{
+ public class XSkillScriptGen : XSingleton<XSkillScriptGen>
+ {
+ private string _template;
+
+ public readonly string ScriptPath = "..\\..\\src\\client\\XMainClient\\XMainClient\\Script\\XSkillGen\\XScriptCode\\";
+
+ private readonly string ProjectFile = "..\\..\\src\\client\\XMainClient\\XMainClient\\XMainClient.csproj";
+
+ private readonly string NameSpace = "http://schemas.microsoft.com/developer/msbuild/2003";
+
+ public XSkillScriptGen()
+ {
+ this._template = this.LoadTemplate();
+ }
+
+ public bool ScriptGen(string skill, string scriptname)
+ {
+ Dictionary<string, string> dictionary = new Dictionary<string, string>();
+ dictionary.Add("class_name", skill);
+ dictionary.Add("method_name", scriptname);
+ string text = this.TemplateFormat(this._template, dictionary);
+ bool flag = text != null && text != "";
+ if (flag)
+ {
+ string path = string.Concat(new string[]
+ {
+ this.ScriptPath,
+ skill,
+ "_",
+ scriptname,
+ ".cs"
+ });
+ using (FileStream fileStream = new FileStream(path, FileMode.Create))
+ {
+ StreamWriter streamWriter = new StreamWriter(fileStream, Encoding.UTF8);
+ streamWriter.Write(text);
+ streamWriter.Close();
+ }
+ this.AddToProject(skill + "_" + scriptname + ".cs");
+ }
+ return text != null && text.Length > 0;
+ }
+
+ public bool ScriptDel(string skill, string scriptname)
+ {
+ return this.DelFromProject(skill + "_" + scriptname + ".cs");
+ }
+
+ private void AddToProject(string addname)
+ {
+ XmlDocument xmlDocument = new XmlDocument();
+ xmlDocument.Load(this.ProjectFile);
+ XmlNamespaceManager xmlNamespaceManager = new XmlNamespaceManager(xmlDocument.NameTable);
+ xmlNamespaceManager.AddNamespace("ms", this.NameSpace);
+ XmlNode documentElement = xmlDocument.DocumentElement;
+ XmlNode xmlNode = documentElement.SelectSingleNode("ms:ItemGroup/ms:Compile", xmlNamespaceManager);
+ XmlElement xmlElement = xmlDocument.CreateElement("Compile", this.NameSpace);
+ xmlElement.SetAttribute("Include", "Script\\XSkillGen\\XScriptCode\\" + addname);
+ xmlNode.ParentNode.AppendChild(xmlElement);
+ xmlDocument.Save(this.ProjectFile);
+ }
+
+ private bool DelFromProject(string name)
+ {
+ string str = "Script\\XSkillGen\\XScriptCode\\" + name;
+ XmlDocument xmlDocument = new XmlDocument();
+ xmlDocument.Load(this.ProjectFile);
+ XmlNamespaceManager xmlNamespaceManager = new XmlNamespaceManager(xmlDocument.NameTable);
+ xmlNamespaceManager.AddNamespace("ms", this.NameSpace);
+ XmlNode documentElement = xmlDocument.DocumentElement;
+ XmlNode xmlNode = documentElement.SelectSingleNode("ms:ItemGroup/ms:Compile[@Include='" + str + "']", xmlNamespaceManager);
+ bool flag = xmlNode != null;
+ if (flag)
+ {
+ xmlNode.ParentNode.RemoveChild(xmlNode);
+ }
+ File.Delete(this.ScriptPath + name);
+ xmlDocument.Save(this.ProjectFile);
+ return xmlNode != null;
+ }
+
+ private string LoadTemplate()
+ {
+ //!
+ Assembly assembly = Assembly.Load("XMainClient");
+ Stream manifestResourceStream = assembly.GetManifestResourceStream("XMainClient.Script.XSkillGen.SkillGenTemplate.txt");
+ byte[] array = new byte[5120];
+ int count = (int)manifestResourceStream.Length;
+ manifestResourceStream.Read(array, 0, count);
+ manifestResourceStream.Close();
+ UTF8Encoding utf8Encoding = new UTF8Encoding();
+ return utf8Encoding.GetString(array, 0, count);
+ }
+
+ private string TemplateFormat(string template, Dictionary<string, string> dicts)
+ {
+ StringBuilder stringBuilder = new StringBuilder();
+ int num = 0;
+ int num2;
+ for (;;)
+ {
+ num2 = template.IndexOf("%(", num);
+ bool flag = num2 != -1;
+ if (!flag)
+ {
+ goto IL_AE;
+ }
+ stringBuilder.Append(template.Substring(num, num2 - num));
+ num = template.IndexOf(")s", num2);
+ bool flag2 = num != -1;
+ if (!flag2)
+ {
+ goto IL_9A;
+ }
+ string key = template.Substring(num2 + 2, num - num2 - 2);
+ bool flag3 = dicts.ContainsKey(key);
+ if (!flag3)
+ {
+ break;
+ }
+ stringBuilder.Append(dicts[key]);
+ num += 2;
+ }
+ return "";
+ IL_9A:
+ stringBuilder.Append(template.Substring(num2));
+ goto IL_C8;
+ IL_AE:
+ stringBuilder.Append(template.Substring(num));
+ IL_C8:
+ return stringBuilder.ToString();
+ }
+
+ public override bool Init()
+ {
+ return true;
+ }
+
+ public override void Uninit()
+ {
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XSkillScriptGen.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XSkillScriptGen.cs.meta new file mode 100644 index 00000000..aba69811 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XSkillScriptGen.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b50a63967b59f8349a817d497de33b4e +timeCreated: 1611465746 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XSkillUnexpectedFireException.cs b/Client/Assets/Scripts/XUtliPoolLib/XSkillUnexpectedFireException.cs new file mode 100644 index 00000000..531a7fee --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XSkillUnexpectedFireException.cs @@ -0,0 +1,16 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ [Serializable]
+ public class XSkillUnexpectedFireException : XException
+ {
+ public XSkillUnexpectedFireException(string message) : base(message)
+ {
+ }
+
+ public XSkillUnexpectedFireException(string message, Exception inner) : base(message, inner)
+ {
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XSkillUnexpectedFireException.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XSkillUnexpectedFireException.cs.meta new file mode 100644 index 00000000..ebe42d04 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XSkillUnexpectedFireException.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a7979914bf8975d4c8602b5212373f1f +timeCreated: 1611465738 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XSlashDataClip.cs b/Client/Assets/Scripts/XUtliPoolLib/XSlashDataClip.cs new file mode 100644 index 00000000..f2bda2d7 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XSlashDataClip.cs @@ -0,0 +1,24 @@ +using System;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ [Serializable]
+ public class XSlashDataClip : XCutSceneClip
+ {
+ [SerializeField]
+ public float Duration = 1f;
+
+ [SerializeField]
+ public string Name;
+
+ [SerializeField]
+ public string Discription;
+
+ [SerializeField]
+ public float AnchorX;
+
+ [SerializeField]
+ public float AnchorY;
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XSlashDataClip.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XSlashDataClip.cs.meta new file mode 100644 index 00000000..e131e930 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XSlashDataClip.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 958136c52b42dc44e89300a8a56202b3 +timeCreated: 1611465707 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XStrickenResponse.cs b/Client/Assets/Scripts/XUtliPoolLib/XStrickenResponse.cs new file mode 100644 index 00000000..c5dc4e39 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XStrickenResponse.cs @@ -0,0 +1,12 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public enum XStrickenResponse
+ {
+ Invincible,
+ Half_Endure,
+ Cease,
+ Full_Endure
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XStrickenResponse.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XStrickenResponse.cs.meta new file mode 100644 index 00000000..34c037f3 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XStrickenResponse.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ea7811860e2f4d0419adf7946069f22c +timeCreated: 1611465804 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XStringDefine.cs b/Client/Assets/Scripts/XUtliPoolLib/XStringDefine.cs new file mode 100644 index 00000000..84b3d2ae --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XStringDefine.cs @@ -0,0 +1,60 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public enum XStringDefine
+ {
+ STRING_START,
+ COMMON_OK,
+ COMMON_CANCEL,
+ COMMON_CONNECTION_CLOSE,
+ COMMON_AREA,
+ COMMON_BATTLE,
+ BATTLE_POFANG = 20,
+ BATTLE_BAOJI,
+ SERVER_STATE_FREE = 50,
+ SERVER_STATE_NORMAL,
+ SERVER_STATE_BUSY,
+ SERVER_STATE_CLOSE,
+ SERVER_NEW,
+ SKILL_LEARN = 100,
+ SKILL_PROMOTE_REQUIRE,
+ SKILL_OVERVIEW,
+ SKILL_PROMOTE,
+ SKILL_RESET_SP,
+ SKILL_RESET_PROF,
+ SKILL_CAN_PROMOTE,
+ SKILL_WILL_PROMOTE,
+ ITEM_REQUIRE_LEVEL = 200,
+ ITEM_PART_HEAD,
+ ITEM_PART_UPPERBODY,
+ ITEM_PART_LOWERBODY,
+ ITEM_PART_GLOVES,
+ ITEM_PART_BOOTS,
+ ITEM_PART_MAINWEAPON,
+ ITEM_PART_SECWEAPON,
+ ITEM_PART_NECKLACE,
+ ITEM_PART_EARRING,
+ ITEM_PART_RING1,
+ ITEM_PART_RING2,
+ FASHION_HEAD,
+ FASHION_UPPERBODY,
+ FASHION_LOWERBODY,
+ FASHION_GLOVES,
+ FASHION_BOOTS,
+ FASHION_MAINWEAPON,
+ FASHION_SECWEAPON,
+ FASHION_WINGS,
+ FASHION_TAIL,
+ FASHION_DECAL,
+ FASHION_PREFIX,
+ FASHION_HAIR,
+ ARTIFACT_ANSAB = 230,
+ ARTIFACT_GRAIL,
+ ARTIFACT_BATTLEHEART,
+ ARTIFACT_DRAGONHORN,
+ DRAW_FREE = 1000,
+ DRAW_ONE_AGAIN,
+ DRAW_TEN_AGAIN
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XStringDefine.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XStringDefine.cs.meta new file mode 100644 index 00000000..ba0fe321 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XStringDefine.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 69c6ccc0d3cd6e2429907c2a58b51c96 +timeCreated: 1611465684 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XStringFormatHelper.cs b/Client/Assets/Scripts/XUtliPoolLib/XStringFormatHelper.cs new file mode 100644 index 00000000..b6672b79 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XStringFormatHelper.cs @@ -0,0 +1,154 @@ +using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace XUtliPoolLib
+{
+ public class XStringFormatHelper
+ {
+ public static readonly char EscapedSeparator = '\u001f';
+
+ public static readonly char[] Separator = new char[]
+ {
+ XStringFormatHelper.EscapedSeparator
+ };
+
+ private static readonly char _cSeparator = '|';
+
+ private static readonly char _cLeftBracket = '[';
+
+ private static readonly char _EscapedLeftBracket = '\u0002';
+
+ private static readonly char _cRightBracket = ']';
+
+ private static readonly char _EscapedRightBracket = '\u0003';
+
+ private static readonly string _strSeparator = "|" + XStringFormatHelper._cSeparator.ToString();
+
+ private static readonly string _strLeftBracket = "|" + XStringFormatHelper._cLeftBracket.ToString();
+
+ private static readonly string _strRightBracket = "|" + XStringFormatHelper._cRightBracket.ToString();
+
+ private static readonly string _strEscapedSeparator = XStringFormatHelper.EscapedSeparator.ToString() ?? "";
+
+ private static readonly string _strEscapedLeftBracket = XStringFormatHelper._EscapedLeftBracket.ToString() ?? "";
+
+ private static readonly string _strEscapedRightBracket = XStringFormatHelper._EscapedRightBracket.ToString() ?? "";
+
+ private static StringBuilder _SB = new StringBuilder();
+
+ public static string FormatImage(string atlas, string sprite)
+ {
+ XStringFormatHelper._ResetSB();
+ XStringFormatHelper._SB.Append(XStringFormatHelper._EscapedLeftBracket).Append("im=").Append(atlas).Append(XStringFormatHelper.EscapedSeparator).Append(sprite).Append(XStringFormatHelper._EscapedRightBracket);
+ return XStringFormatHelper._SB.ToString();
+ }
+
+ public static string FormatAnimation(string atlas, string sprite, int frameRate)
+ {
+ XStringFormatHelper._ResetSB();
+ XStringFormatHelper._SB.Append(XStringFormatHelper._EscapedLeftBracket).Append("an=").Append(atlas).Append(XStringFormatHelper.EscapedSeparator).Append(sprite).Append(XStringFormatHelper.EscapedSeparator).Append(frameRate.ToString()).Append(XStringFormatHelper._EscapedRightBracket);
+ return XStringFormatHelper._SB.ToString();
+ }
+
+ public static string FormatGuild(string name, ulong uid)
+ {
+ XStringFormatHelper._ResetSB();
+ XStringFormatHelper._SB.Append(XStringFormatHelper._EscapedLeftBracket).Append("gd=").Append(name).Append(XStringFormatHelper.EscapedSeparator).Append(uid).Append(XStringFormatHelper._EscapedRightBracket);
+ return XStringFormatHelper._SB.ToString();
+ }
+
+ public static string FormatDragonGuild(string name, string dragonguildname)
+ {
+ XStringFormatHelper._ResetSB();
+ XStringFormatHelper._SB.Append(XStringFormatHelper._EscapedLeftBracket).Append("dg=").Append(name).Append(XStringFormatHelper.EscapedSeparator).Append(dragonguildname).Append(XStringFormatHelper._EscapedRightBracket);
+ return XStringFormatHelper._SB.ToString();
+ }
+
+ public static string FormatTeam(string name, int teamid, uint expid)
+ {
+ XStringFormatHelper._ResetSB();
+ XStringFormatHelper._SB.Append(XStringFormatHelper._EscapedLeftBracket).Append("tm=").Append(name).Append(XStringFormatHelper.EscapedSeparator).Append(teamid).Append(XStringFormatHelper.EscapedSeparator).Append(expid).Append(XStringFormatHelper._EscapedRightBracket);
+ return XStringFormatHelper._SB.ToString();
+ }
+
+ public static string FormatItem(string name, string itemquality, ulong uid)
+ {
+ XStringFormatHelper._ResetSB();
+ XStringFormatHelper._SB.Append(XStringFormatHelper._EscapedLeftBracket).Append("it=").Append(name).Append(XStringFormatHelper.EscapedSeparator).Append(itemquality).Append(XStringFormatHelper.EscapedSeparator).Append(uid).Append(XStringFormatHelper._EscapedRightBracket);
+ return XStringFormatHelper._SB.ToString();
+ }
+
+ public static string FormatName(string name, ulong uid, string color = "00ffff")
+ {
+ XStringFormatHelper._ResetSB();
+ XStringFormatHelper._SB.Append(XStringFormatHelper._EscapedLeftBracket).Append("nm=").Append(name).Append(XStringFormatHelper.EscapedSeparator).Append(color).Append(XStringFormatHelper.EscapedSeparator).Append(uid).Append(XStringFormatHelper._EscapedRightBracket);
+ return XStringFormatHelper._SB.ToString();
+ }
+
+ public static string FormatPk(string name, ulong uid)
+ {
+ XStringFormatHelper._ResetSB();
+ XStringFormatHelper._SB.Append(XStringFormatHelper._EscapedLeftBracket).Append("pk=").Append(name).Append(XStringFormatHelper.EscapedSeparator).Append(uid).Append(XStringFormatHelper._EscapedRightBracket);
+ return XStringFormatHelper._SB.ToString();
+ }
+
+ public static string FormatSpeactate(string name, int liveid, int type)
+ {
+ XStringFormatHelper._ResetSB();
+ XStringFormatHelper._SB.Append(XStringFormatHelper._EscapedLeftBracket).Append("sp=").Append(name).Append(XStringFormatHelper.EscapedSeparator).Append(liveid).Append(XStringFormatHelper.EscapedSeparator).Append(type).Append(XStringFormatHelper._EscapedRightBracket);
+ return XStringFormatHelper._SB.ToString();
+ }
+
+ public static string FormatUI(string name, ulong uid, List<ulong> paramList = null)
+ {
+ XStringFormatHelper._ResetSB();
+ XStringFormatHelper._SB.Append(XStringFormatHelper._EscapedLeftBracket).Append("ui=").Append(name).Append(XStringFormatHelper.EscapedSeparator).Append(uid);
+ bool flag = paramList != null;
+ if (flag)
+ {
+ for (int i = 0; i < paramList.Count; i++)
+ {
+ XStringFormatHelper._SB.Append(XStringFormatHelper.EscapedSeparator).Append(paramList[i]);
+ }
+ }
+ XStringFormatHelper._SB.Append(XStringFormatHelper._EscapedRightBracket);
+ return XStringFormatHelper._SB.ToString();
+ }
+
+ private static void _ResetSB()
+ {
+ XStringFormatHelper._SB.Remove(0, XStringFormatHelper._SB.Length);
+ }
+
+ public static string Escape(string s)
+ {
+ XStringFormatHelper._ResetSB();
+ XStringFormatHelper._SB.Append(s);
+ XStringFormatHelper._Escape();
+ return XStringFormatHelper._SB.ToString();
+ }
+
+ private static void _Escape()
+ {
+ XStringFormatHelper._SB.Replace(XStringFormatHelper._strSeparator, XStringFormatHelper._strEscapedSeparator);
+ XStringFormatHelper._SB.Replace(XStringFormatHelper._strLeftBracket, XStringFormatHelper._strEscapedLeftBracket);
+ XStringFormatHelper._SB.Replace(XStringFormatHelper._strRightBracket, XStringFormatHelper._strEscapedRightBracket);
+ }
+
+ public static string UnEscape(string s)
+ {
+ XStringFormatHelper._ResetSB();
+ XStringFormatHelper._SB.Append(s);
+ XStringFormatHelper._UnEscape();
+ return XStringFormatHelper._SB.ToString();
+ }
+
+ private static void _UnEscape()
+ {
+ XStringFormatHelper._SB.Replace(XStringFormatHelper._strEscapedSeparator, XStringFormatHelper._strSeparator);
+ XStringFormatHelper._SB.Replace(XStringFormatHelper._strEscapedLeftBracket, XStringFormatHelper._strLeftBracket);
+ XStringFormatHelper._SB.Replace(XStringFormatHelper._strEscapedRightBracket, XStringFormatHelper._strRightBracket);
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XStringFormatHelper.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XStringFormatHelper.cs.meta new file mode 100644 index 00000000..eb662a81 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XStringFormatHelper.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: e9538d6c5a7f0fe48bfa5e7946d918d9 +timeCreated: 1611465803 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XStringTable.cs b/Client/Assets/Scripts/XUtliPoolLib/XStringTable.cs new file mode 100644 index 00000000..c7e2fc39 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XStringTable.cs @@ -0,0 +1,116 @@ +using System;
+using UnityEngine;
+using XUpdater;
+
+namespace XUtliPoolLib
+{
+ public class XStringTable : XSingleton<XStringTable>
+ {
+ private XTableAsyncLoader _async_loader = null;
+
+ private StringTable _reader = new StringTable();
+
+ private bool _inited = false;
+
+ public bool ReInit(TextAsset ta)
+ {
+ this.Uninit();
+ bool flag = XSingleton<XResourceLoaderMgr>.singleton.ReadFile(ta, this._reader);
+ bool result;
+ if (flag)
+ {
+ this._inited = true;
+ result = true;
+ }
+ else
+ {
+ result = false;
+ }
+ return result;
+ }
+
+ public bool SyncInit()
+ {
+ bool inited = this._inited;
+ bool result;
+ if (inited)
+ {
+ result = true;
+ }
+ else
+ {
+ this._inited = XSingleton<XResourceLoaderMgr>.singleton.ReadFile("Table/StringTable", this._reader);
+ bool inited2 = this._inited;
+ if (inited2)
+ {
+ }
+ result = this._inited;
+ }
+ return result;
+ }
+
+ public override bool Init()
+ {
+ bool inited = this._inited;
+ bool result;
+ if (inited)
+ {
+ result = true;
+ }
+ else
+ {
+ bool flag = this._async_loader == null;
+ if (flag)
+ {
+ this._async_loader = new XTableAsyncLoader();
+ this._async_loader.AddTask("Table/StringTable", this._reader, false);
+ this._async_loader.Execute(null);
+ }
+ this._inited = this._async_loader.IsDone;
+ result = this._inited;
+ }
+ return result;
+ }
+
+ public override void Uninit()
+ {
+ this._inited = false;
+ this._async_loader = null;
+ }
+
+ public bool StringTableUpdated()
+ {
+ return XSingleton<XUpdater.XUpdater>.singleton.ContainRes(XSingleton<XCommon>.singleton.XHash("Table/StringTable"));
+ }
+
+ public string GetString(string key)
+ {
+ string text = "";
+ bool data = this.GetData(key, out text);
+ string result;
+ if (data)
+ {
+ result = text;
+ }
+ else
+ {
+ bool flag = key != "UNKNOWN_TARGET";
+ if (flag)
+ {
+ result = this.GetString("UNKNOWN_TARGET") + " " + key;
+ }
+ else
+ {
+ result = "UNKNOWN_TARGET not found in StringTable";
+ }
+ }
+ return result;
+ }
+
+ public bool GetData(string key, out string value)
+ {
+ uint key2 = XSingleton<XCommon>.singleton.XHash(key);
+ return this._reader.Table.TryGetValue(key2, out value);
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XStringTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XStringTable.cs.meta new file mode 100644 index 00000000..dfda5c9a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XStringTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 27046b12993c9694897f4262f4d2d338 +timeCreated: 1611465301 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XSubTitleDataClip.cs b/Client/Assets/Scripts/XUtliPoolLib/XSubTitleDataClip.cs new file mode 100644 index 00000000..5cd3baef --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XSubTitleDataClip.cs @@ -0,0 +1,15 @@ +using System;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ [Serializable]
+ public class XSubTitleDataClip : XCutSceneClip
+ {
+ [SerializeField]
+ public string Context = null;
+
+ [SerializeField]
+ public float Duration = 45f;
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XSubTitleDataClip.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XSubTitleDataClip.cs.meta new file mode 100644 index 00000000..8da3829b --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XSubTitleDataClip.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2855c8262c0b49c4ca790ed17c0314c4 +timeCreated: 1611465302 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XTableAsyncLoader.cs b/Client/Assets/Scripts/XUtliPoolLib/XTableAsyncLoader.cs new file mode 100644 index 00000000..8573de96 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XTableAsyncLoader.cs @@ -0,0 +1,171 @@ +using System;
+using System.Collections.Generic;
+using System.Threading;
+using UnityEngine;
+using XUpdater;
+
+namespace XUtliPoolLib
+{
+ public sealed class XTableAsyncLoader
+ {
+ public bool IsDone
+ {
+ get
+ {
+ bool flag = false;
+ bool flag2 = this.currentXfra == null;
+ if (flag2)
+ {
+ bool flag3 = XTableAsyncLoader.currentThreadCount < XTableAsyncLoader.AsyncPerTime;
+ if (flag3)
+ {
+ XTableAsyncLoader.currentThreadCount++;
+ }
+ flag = this.InnerExecute();
+ }
+ else
+ {
+ bool isDone = this.currentXfra.IsDone;
+ if (isDone)
+ {
+ bool flag4 = XTableAsyncLoader.currentThreadCount < XTableAsyncLoader.AsyncPerTime;
+ if (flag4)
+ {
+ XTableAsyncLoader.currentThreadCount++;
+ }
+ XBinaryReader.Return(this.currentXfra.Data, false);
+ this.currentXfra = null;
+ flag = this.InnerExecute();
+ }
+ }
+ bool flag5 = flag;
+ if (flag5)
+ {
+ bool flag6 = this._call_back != null;
+ if (flag6)
+ {
+ this._call_back();
+ this._call_back = null;
+ }
+ this._executing = false;
+ }
+ return flag;
+ }
+ }
+
+ private bool _executing = false;
+
+ private List<XFileReadAsync> _task_list = new List<XFileReadAsync>();
+
+ private OnLoadedCallback _call_back = null;
+
+ private XFileReadAsync currentXfra = null;
+
+ public static int currentThreadCount = 0;
+
+ public static readonly int AsyncPerTime = 2;
+
+ public void AddTask(string location, CVSReader reader, bool native = false)
+ {
+ INativePlugin nativePlugin = XSingleton<XUpdater.XUpdater>.singleton.XPlatform.GetNativePlugin();
+ bool flag = native && nativePlugin != null;
+ if (flag)
+ {
+ TextAsset sharedResource = XSingleton<XResourceLoaderMgr>.singleton.GetSharedResource<TextAsset>(location, ".bytes", true, false);
+ bool flag2 = sharedResource != null;
+ if (flag2)
+ {
+ nativePlugin.InputData(0, 0, sharedResource.bytes, sharedResource.bytes.Length);
+ XSingleton<XResourceLoaderMgr>.singleton.UnSafeDestroyShareResource(location, ".bytes", sharedResource, false);
+ }
+ }
+ else
+ {
+ XFileReadAsync xfileReadAsync = new XFileReadAsync();
+ xfileReadAsync.Location = location;
+ xfileReadAsync.Reader = reader;
+ this._task_list.Add(xfileReadAsync);
+ }
+ }
+
+ private bool InnerExecute()
+ {
+ bool flag = this._task_list.Count > 0;
+ bool result;
+ if (flag)
+ {
+ bool flag2 = XTableAsyncLoader.currentThreadCount <= 0;
+ if (flag2)
+ {
+ result = false;
+ }
+ else
+ {
+ XTableAsyncLoader.currentThreadCount--;
+ this.currentXfra = this._task_list[this._task_list.Count - 1];
+ this._task_list.RemoveAt(this._task_list.Count - 1);
+ this.ReadFileAsync(this.currentXfra);
+ result = false;
+ }
+ }
+ else
+ {
+ result = true;
+ }
+ return result;
+ }
+
+ public bool Execute(OnLoadedCallback callback = null)
+ {
+ bool executing = this._executing;
+ bool result;
+ if (executing)
+ {
+ result = false;
+ }
+ else
+ {
+ this._call_back = callback;
+ this._executing = true;
+ this.InnerExecute();
+ result = true;
+ }
+ return result;
+ }
+
+ private void ReadFileAsync(XFileReadAsync xfra)
+ {
+ xfra.Data = XBinaryReader.Get();
+ bool flag = XSingleton<XResourceLoaderMgr>.singleton.ReadText(xfra.Location, ".bytes", xfra.Data, false);
+ bool flag2 = !flag;
+ if (flag2)
+ {
+ XResourceLoaderMgr.LoadErrorLog(xfra.Location);
+ XBinaryReader.Return(xfra.Data, false);
+ xfra.Data = null;
+ xfra.IsDone = true;
+ this.currentXfra = null;
+ }
+ else
+ {
+ ThreadPool.QueueUserWorkItem(delegate(object state)
+ {
+ try
+ {
+ bool flag3 = xfra.Reader.ReadFile(xfra.Data);
+ bool flag4 = !flag3;
+ if (flag4)
+ {
+ XSingleton<XDebug>.singleton.AddErrorLog("in File: ", xfra.Location, xfra.Reader.error, null, null, null);
+ }
+ }
+ catch (Exception ex)
+ {
+ XSingleton<XDebug>.singleton.AddErrorLog(ex.Message, " in File: ", xfra.Location, xfra.Reader.error, null, null);
+ }
+ xfra.IsDone = true;
+ });
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XTableAsyncLoader.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XTableAsyncLoader.cs.meta new file mode 100644 index 00000000..70b6b8ec --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XTableAsyncLoader.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 002130faeae056048af9d8099f75900e +timeCreated: 1611465283 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XTimerMgr.cs b/Client/Assets/Scripts/XUtliPoolLib/XTimerMgr.cs new file mode 100644 index 00000000..9971fd9e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XTimerMgr.cs @@ -0,0 +1,374 @@ +using System;
+using System.Collections.Generic;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public sealed class XTimerMgr : XSingleton<XTimerMgr>
+ {
+ public double Elapsed
+ {
+ get
+ {
+ return this._elapsed;
+ }
+ }
+
+ public bool NeedFixedUpdate
+ {
+ get
+ {
+ return this._fixedUpdate;
+ }
+ }
+
+ private uint _token = 0u;
+
+ private double _elapsed = 0.0;
+
+ private Queue<XTimerMgr.XTimer> _pool = new Queue<XTimerMgr.XTimer>();
+
+ private XHeap<XTimerMgr.XTimer> _timers = new XHeap<XTimerMgr.XTimer>();
+
+ private Dictionary<uint, XTimerMgr.XTimer> _dict = new Dictionary<uint, XTimerMgr.XTimer>(20);
+
+ private float _intervalTime = 0f;
+
+ private float _updateTime = 0.1f;
+
+ private bool _fixedUpdate = false;
+
+ public bool update = true;
+
+ public float updateStartTime = 0f;
+
+ public delegate void ElapsedEventHandler(object param);
+
+ public delegate void AccurateElapsedEventHandler(object param, float delay);
+
+ public delegate void ElapsedIDEventHandler(object param, int id);
+
+ private sealed class XTimer : IComparable<XTimerMgr.XTimer>, IHere
+ {
+ public double TriggerTime
+ {
+ get
+ {
+ return this._triggerTime;
+ }
+ }
+
+ public bool IsGlobaled
+ {
+ get
+ {
+ return this._global;
+ }
+ }
+
+ public bool IsInPool { get; set; }
+
+ public uint Token
+ {
+ get
+ {
+ return this._token;
+ }
+ }
+
+ public int Here { get; set; }
+
+ public int Id { get; set; }
+
+ private double _triggerTime;
+
+ private object _param;
+
+ private object _handler;
+
+ private bool _global = false;
+
+ private uint _token = 0u;
+
+ public XTimer(double trigger, object handler, object parma, uint token, bool global, int id)
+ {
+ this.Refine(trigger, handler, parma, token, global, id);
+ }
+
+ public void Refine(double trigger, object handler, object parma, uint token, bool global, int id)
+ {
+ this._triggerTime = trigger;
+ this._handler = handler;
+ this._param = parma;
+ this._global = global;
+ this._token = token;
+ this.Here = -1;
+ this.IsInPool = false;
+ this.Id = id;
+ }
+
+ public void Refine(double trigger)
+ {
+ this._triggerTime = trigger;
+ }
+
+ public void Fire(float delta)
+ {
+ bool flag = this._handler is XTimerMgr.AccurateElapsedEventHandler;
+ if (flag)
+ {
+ (this._handler as XTimerMgr.AccurateElapsedEventHandler)(this._param, delta);
+ }
+ else
+ {
+ bool flag2 = this._handler is XTimerMgr.ElapsedIDEventHandler;
+ if (flag2)
+ {
+ (this._handler as XTimerMgr.ElapsedIDEventHandler)(this._param, this.Id);
+ }
+ else
+ {
+ (this._handler as XTimerMgr.ElapsedEventHandler)(this._param);
+ }
+ }
+ }
+
+ public int CompareTo(XTimerMgr.XTimer other)
+ {
+ return (int)((this._triggerTime == other._triggerTime) ? (this._token - other.Token) : ((this._triggerTime < other._triggerTime) ? uint.MaxValue : 1u));
+ }
+
+ public double TimeLeft()
+ {
+ return this._triggerTime - XSingleton<XTimerMgr>.singleton.Elapsed;
+ }
+ }
+
+ public uint SetTimer(float interval, XTimerMgr.ElapsedEventHandler handler, object param)
+ {
+ this._token += 1u;
+ bool flag = interval <= 0f;
+ if (flag)
+ {
+ handler(param);
+ this._token += 1u;
+ }
+ else
+ {
+ double trigger = this._elapsed + Math.Round((double)interval, 3);
+ XTimerMgr.XTimer timer = this.GetTimer(trigger, handler, param, this._token, false, -1);
+ this._timers.PushHeap(timer);
+ this._dict.Add(this._token, timer);
+ }
+ return this._token;
+ }
+
+ public uint SetTimer<TEnum>(float interval, XTimerMgr.ElapsedIDEventHandler handler, object param, TEnum e) where TEnum : struct
+ {
+ this._token += 1u;
+ int id = XFastEnumIntEqualityComparer<TEnum>.ToInt(e);
+ bool flag = interval <= 0f;
+ if (flag)
+ {
+ handler(param, id);
+ this._token += 1u;
+ }
+ else
+ {
+ double trigger = this._elapsed + Math.Round((double)interval, 3);
+ XTimerMgr.XTimer timer = this.GetTimer(trigger, handler, param, this._token, false, id);
+ this._timers.PushHeap(timer);
+ this._dict.Add(this._token, timer);
+ }
+ return this._token;
+ }
+
+ public uint SetGlobalTimer(float interval, XTimerMgr.ElapsedEventHandler handler, object param)
+ {
+ this._token += 1u;
+ bool flag = interval <= 0f;
+ if (flag)
+ {
+ handler(param);
+ this._token += 1u;
+ }
+ else
+ {
+ double trigger = this._elapsed + Math.Round((double)interval, 3);
+ XTimerMgr.XTimer timer = this.GetTimer(trigger, handler, param, this._token, true, -1);
+ this._timers.PushHeap(timer);
+ this._dict.Add(this._token, timer);
+ }
+ return this._token;
+ }
+
+ public uint SetTimerAccurate(float interval, XTimerMgr.AccurateElapsedEventHandler handler, object param)
+ {
+ this._token += 1u;
+ bool flag = interval <= 0f;
+ if (flag)
+ {
+ handler(param, 0f);
+ this._token += 1u;
+ }
+ else
+ {
+ double trigger = this._elapsed + Math.Round((double)interval, 3);
+ XTimerMgr.XTimer timer = this.GetTimer(trigger, handler, param, this._token, false, -1);
+ this._timers.PushHeap(timer);
+ this._dict.Add(this._token, timer);
+ }
+ return this._token;
+ }
+
+ public void AdjustTimer(float interval, uint token, bool closed = false)
+ {
+ XTimerMgr.XTimer xtimer = null;
+ bool flag = this._dict.TryGetValue(token, out xtimer) && !xtimer.IsInPool;
+ if (flag)
+ {
+ double trigger = closed ? (this._elapsed - (double)(Time.deltaTime * 0.5f) + Math.Round((double)interval, 3)) : (this._elapsed + Math.Round((double)interval, 3));
+ double triggerTime = xtimer.TriggerTime;
+ xtimer.Refine(trigger);
+ this._timers.Adjust(xtimer, triggerTime < xtimer.TriggerTime);
+ }
+ }
+
+ public void KillTimerAll()
+ {
+ List<XTimerMgr.XTimer> list = new List<XTimerMgr.XTimer>();
+ foreach (XTimerMgr.XTimer xtimer in this._dict.Values)
+ {
+ bool isGlobaled = xtimer.IsGlobaled;
+ if (!isGlobaled)
+ {
+ list.Add(xtimer);
+ }
+ }
+ for (int i = 0; i < list.Count; i++)
+ {
+ this.KillTimer(list[i]);
+ }
+ list.Clear();
+ }
+
+ private void KillTimer(XTimerMgr.XTimer timer)
+ {
+ bool flag = timer == null;
+ if (!flag)
+ {
+ this._timers.PopHeapAt(timer.Here);
+ this.Discard(timer);
+ }
+ }
+
+ public void KillTimer(uint token)
+ {
+ bool flag = token == 0u;
+ if (!flag)
+ {
+ XTimerMgr.XTimer timer = null;
+ bool flag2 = this._dict.TryGetValue(token, out timer);
+ if (flag2)
+ {
+ this.KillTimer(timer);
+ }
+ }
+ }
+
+ public double TimeLeft(uint token)
+ {
+ XTimerMgr.XTimer xtimer = null;
+ bool flag = this._dict.TryGetValue(token, out xtimer);
+ double result;
+ if (flag)
+ {
+ result = xtimer.TimeLeft();
+ }
+ else
+ {
+ result = 0.0;
+ }
+ return result;
+ }
+
+ public void Update(float fDeltaT)
+ {
+ this._elapsed += (double)fDeltaT;
+ this._intervalTime += fDeltaT;
+ bool flag = this._intervalTime > this._updateTime;
+ if (flag)
+ {
+ this._intervalTime = 0f;
+ this._fixedUpdate = true;
+ }
+ this.TriggerTimers();
+ }
+
+ public void PostUpdate()
+ {
+ this._fixedUpdate = false;
+ }
+
+ private void TriggerTimers()
+ {
+ while (this._timers.HeapSize > 0)
+ {
+ XTimerMgr.XTimer xtimer = this._timers.Peek();
+ float num = (float)(this._elapsed - xtimer.TriggerTime);
+ bool flag = num >= 0f;
+ if (!flag)
+ {
+ break;
+ }
+ this.ExecuteTimer(this._timers.PopHeap(), num);
+ }
+ }
+
+ private void ExecuteTimer(XTimerMgr.XTimer timer, float delta)
+ {
+ this.Discard(timer);
+ timer.Fire(delta);
+ }
+
+ private void Discard(XTimerMgr.XTimer timer)
+ {
+ bool isInPool = timer.IsInPool;
+ if (!isInPool)
+ {
+ bool flag = this._dict.Remove(timer.Token);
+ if (flag)
+ {
+ timer.IsInPool = true;
+ this._pool.Enqueue(timer);
+ }
+ }
+ }
+
+ private XTimerMgr.XTimer GetTimer(double trigger, object handler, object parma, uint token, bool global, int id = -1)
+ {
+ bool flag = this._pool.Count > 0;
+ XTimerMgr.XTimer result;
+ if (flag)
+ {
+ XTimerMgr.XTimer xtimer = this._pool.Dequeue();
+ xtimer.Refine(trigger, handler, parma, token, global, id);
+ result = xtimer;
+ }
+ else
+ {
+ result = new XTimerMgr.XTimer(trigger, handler, parma, token, global, id);
+ }
+ return result;
+ }
+
+ public override bool Init()
+ {
+ return true;
+ }
+
+ public override void Uninit()
+ {
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XTimerMgr.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XTimerMgr.cs.meta new file mode 100644 index 00000000..f9233910 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XTimerMgr.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 1e83038616073bd46b3deeebc5b88ddb +timeCreated: 1611465299 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUIPool.cs b/Client/Assets/Scripts/XUtliPoolLib/XUIPool.cs new file mode 100644 index 00000000..db071777 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUIPool.cs @@ -0,0 +1,376 @@ +using System;
+using System.Collections.Generic;
+using UILib;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ public class XUIPool
+ {
+ public int TplWidth { get; set; }
+
+ public int TplHeight { get; set; }
+
+ public Vector3 TplPos { get; set; }
+
+ public bool IsValid
+ {
+ get
+ {
+ return this._tpl != null;
+ }
+ }
+
+ public int ActiveCount
+ {
+ get
+ {
+ return this._ActiveCount;
+ }
+ }
+
+ public static int _far_far_away = 1000;
+
+ public GameObject _tpl;
+
+ protected List<GameObject> _pool = new List<GameObject>();
+
+ protected List<bool> _used = new List<bool>();
+
+ protected Stack<int> _ToBeRemoved = new Stack<int>();
+
+ protected bool _bEffectiveMode = true;
+
+ public IXUITool _uiTool = null;
+
+ private int _ActiveCount;
+
+ public XUIPool(IXUITool uiTool)
+ {
+ this._uiTool = uiTool;
+ }
+
+ public void SetupPool(GameObject parent, GameObject tpl, uint Count, bool bEffectiveMode = true)
+ {
+ this._pool.Clear();
+ this._used.Clear();
+ this._ToBeRemoved.Clear();
+ this._tpl = tpl;
+ this._bEffectiveMode = bEffectiveMode;
+ this._ActiveCount = 0;
+ IXUISprite ixuisprite = this._tpl.GetComponent("XUISprite") as IXUISprite;
+ IXUILabel ixuilabel = this._tpl.GetComponent("XUILabel") as IXUILabel;
+ bool flag = ixuisprite != null;
+ if (flag)
+ {
+ this.TplWidth = ixuisprite.spriteWidth;
+ this.TplHeight = ixuisprite.spriteHeight;
+ }
+ else
+ {
+ bool flag2 = ixuilabel != null;
+ if (flag2)
+ {
+ this.TplWidth = ixuilabel.spriteWidth;
+ this.TplHeight = ixuilabel.spriteHeight;
+ }
+ else
+ {
+ this.TplWidth = 0;
+ this.TplHeight = 0;
+ }
+ }
+ bool flag3 = !bEffectiveMode;
+ if (flag3)
+ {
+ this.ReturnAllDisable();
+ }
+ this.TplPos = this._tpl.transform.localPosition;
+ Transform parent2 = (parent == null) ? this._tpl.transform.parent : parent.transform;
+ int num = 0;
+ while ((long)num < (long)((ulong)Count))
+ {
+ GameObject gameObject = XCommon.Instantiate<GameObject>(this._tpl);
+ gameObject.transform.parent = parent2;
+ gameObject.transform.localScale = Vector3.one;
+ gameObject.name = "item" + num;
+ bool bEffectiveMode2 = this._bEffectiveMode;
+ if (bEffectiveMode2)
+ {
+ gameObject.transform.localPosition = Vector3.one * (float)XUIPool._far_far_away;
+ }
+ else
+ {
+ gameObject.transform.localPosition = this._tpl.transform.localPosition;
+ this.MakeGameObjectEnabled(gameObject, false);
+ }
+ this._pool.Add(gameObject);
+ this._used.Add(false);
+ num++;
+ }
+ bool bEffectiveMode3 = this._bEffectiveMode;
+ if (bEffectiveMode3)
+ {
+ this._tpl.transform.parent = parent2;
+ this._tpl.transform.localPosition = Vector3.one * (float)XUIPool._far_far_away;
+ }
+ else
+ {
+ this._tpl.transform.parent = parent2;
+ this.MakeGameObjectEnabled(this._tpl, false);
+ }
+ }
+
+ public GameObject FetchGameObject(bool fadeIn = false)
+ {
+ this._ActiveCount++;
+ bool flag = this._ToBeRemoved.Count > 0;
+ GameObject result;
+ if (flag)
+ {
+ int index = this._ToBeRemoved.Pop();
+ this.CheckFadeIn(fadeIn, this._pool[index]);
+ result = this._pool[index];
+ }
+ else
+ {
+ for (int i = 0; i < this._pool.Count; i++)
+ {
+ bool flag2 = !this._used[i];
+ if (flag2)
+ {
+ bool flag3 = !this._bEffectiveMode;
+ if (flag3)
+ {
+ this.MakeGameObjectEnabled(this._pool[i], true);
+ }
+ this._used[i] = true;
+ this.CheckFadeIn(fadeIn, this._pool[i]);
+ return this._pool[i];
+ }
+ }
+ int count = this._pool.Count;
+ bool flag4 = !this._bEffectiveMode;
+ if (flag4)
+ {
+ this.MakeGameObjectEnabled(this._tpl, true);
+ }
+ for (int j = 0; j < (count + 1) / 2; j++)
+ {
+ GameObject gameObject = XCommon.Instantiate<GameObject>(this._tpl);
+ gameObject.transform.parent = this._tpl.transform.parent;
+ gameObject.transform.localScale = Vector3.one;
+ gameObject.name = "item" + this._pool.Count;
+ bool bEffectiveMode = this._bEffectiveMode;
+ if (bEffectiveMode)
+ {
+ gameObject.transform.localPosition = Vector3.one * (float)XUIPool._far_far_away;
+ }
+ else
+ {
+ gameObject.transform.localPosition = this._tpl.transform.localPosition;
+ this.MakeGameObjectEnabled(gameObject, false);
+ }
+ this._pool.Add(gameObject);
+ this._used.Add(false);
+ }
+ bool flag5 = !this._bEffectiveMode;
+ if (flag5)
+ {
+ this.MakeGameObjectEnabled(this._tpl, false);
+ }
+ this._used[count] = true;
+ this.MakeGameObjectEnabled(this._pool[count], true);
+ this.CheckFadeIn(fadeIn, this._pool[count]);
+ result = this._pool[count];
+ }
+ return result;
+ }
+
+ private void CheckFadeIn(bool fadeIn, GameObject go)
+ {
+ bool flag = !fadeIn;
+ if (!flag)
+ {
+ IXTweenFadeIn ixtweenFadeIn = go.GetComponent("TweenFadeIn") as IXTweenFadeIn;
+ bool flag2 = ixtweenFadeIn == null;
+ if (flag2)
+ {
+ XSingleton<XDebug>.singleton.AddErrorLog("Tpl haven't FadeIn Component but Fetch try to get it.", null, null, null, null, null);
+ }
+ else
+ {
+ ixtweenFadeIn.PlayFadeIn();
+ }
+ }
+ }
+
+ public void FakeReturnAll()
+ {
+ this._ToBeRemoved.Clear();
+ for (int i = this._used.Count - 1; i >= 0; i--)
+ {
+ bool flag = this._used[i];
+ if (flag)
+ {
+ this._ToBeRemoved.Push(i);
+ }
+ }
+ this._ActiveCount = 0;
+ }
+
+ public void ActualReturnAll(bool bChangeParent = false)
+ {
+ while (this._ToBeRemoved.Count > 0)
+ {
+ int index = this._ToBeRemoved.Pop();
+ this._DisableGameObject(this._pool[index], bChangeParent);
+ this._used[index] = false;
+ }
+ }
+
+ public void ReturnAll(bool bChangeParent = false)
+ {
+ for (int i = 0; i < this._pool.Count; i++)
+ {
+ GameObject go = this._pool[i];
+ this._DisableGameObject(go, bChangeParent);
+ }
+ for (int j = 0; j < this._used.Count; j++)
+ {
+ this._used[j] = false;
+ }
+ this._ActiveCount = 0;
+ }
+
+ public void ReturnAllDisable()
+ {
+ for (int i = 0; i < this._pool.Count; i++)
+ {
+ bool flag = !this._pool[i].activeSelf;
+ if (flag)
+ {
+ bool flag2 = i < this._used.Count;
+ if (flag2)
+ {
+ this._used[i] = false;
+ }
+ this._ActiveCount--;
+ }
+ }
+ }
+
+ public void ReturnInstance(GameObject go, bool bChangeParent = false)
+ {
+ this._DisableGameObject(go, bChangeParent);
+ int num = -1;
+ for (int i = 0; i < this._pool.Count; i++)
+ {
+ bool flag = this._pool[i] == go;
+ if (flag)
+ {
+ num = i;
+ break;
+ }
+ }
+ bool flag2 = num > -1 && num < this._used.Count;
+ if (flag2)
+ {
+ this._used[num] = false;
+ }
+ this._ActiveCount--;
+ }
+
+ public void ReturnAny(int count, bool bChangeParent = false)
+ {
+ int num = 0;
+ while (num < this._pool.Count && count > 0)
+ {
+ bool flag = this._used[num];
+ if (flag)
+ {
+ this._used[num] = false;
+ this._DisableGameObject(this._pool[num], bChangeParent);
+ this._ActiveCount--;
+ count--;
+ }
+ num++;
+ }
+ }
+
+ private void _DisableGameObject(GameObject go, bool bChangeParent)
+ {
+ if (bChangeParent)
+ {
+ go.transform.parent = this._tpl.transform.parent;
+ }
+ bool bEffectiveMode = this._bEffectiveMode;
+ if (bEffectiveMode)
+ {
+ go.transform.localPosition = Vector3.one * (float)XUIPool._far_far_away;
+ }
+ else
+ {
+ this.MakeGameObjectEnabled(go, false);
+ }
+ }
+
+ public void GetActiveList(List<GameObject> ret)
+ {
+ int i = 0;
+ int count = this._pool.Count;
+ while (i < count)
+ {
+ GameObject gameObject = this._pool[i];
+ bool bEffectiveMode = this._bEffectiveMode;
+ if (bEffectiveMode)
+ {
+ bool flag = gameObject.transform.localPosition.x < (float)XUIPool._far_far_away;
+ if (flag)
+ {
+ ret.Add(gameObject);
+ }
+ }
+ else
+ {
+ bool activeInHierarchy = gameObject.activeInHierarchy;
+ if (activeInHierarchy)
+ {
+ ret.Add(gameObject);
+ }
+ }
+ i++;
+ }
+ }
+
+ protected void MakeGameObjectEnabled(GameObject go, bool enabled)
+ {
+ go.SetActive(enabled);
+ }
+
+ public void PlayFadeInWithActiveList()
+ {
+ List<GameObject> list = ListPool<GameObject>.Get();
+ this.GetActiveList(list);
+ bool flag = list.Count != 0;
+ if (flag)
+ {
+ IXTweenFadeIn ixtweenFadeIn = list[0].GetComponent("TweenFadeIn") as IXTweenFadeIn;
+ bool flag2 = ixtweenFadeIn == null;
+ if (flag2)
+ {
+ XSingleton<XDebug>.singleton.AddErrorLog("Tpl ActiveList haven't FadeIn Component but Fetch try to get it.", null, null, null, null, null);
+ }
+ else
+ {
+ ixtweenFadeIn.ResetGroupDelay();
+ for (int i = 0; i < list.Count; i++)
+ {
+ this.CheckFadeIn(true, list[i]);
+ }
+ }
+ }
+ ListPool<GameObject>.Release(list);
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUIPool.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XUIPool.cs.meta new file mode 100644 index 00000000..f9389472 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUIPool.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2af120a5b727c7c4682b2f93e8b1a701 +timeCreated: 1611465303 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater.meta b/Client/Assets/Scripts/XUtliPoolLib/XUpdater.meta new file mode 100644 index 00000000..5023ab44 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 2889f77fb0898b747bc1e7fdf5160187 +folderAsset: yes +timeCreated: 1611465282 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AssetLevel.cs b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AssetLevel.cs new file mode 100644 index 00000000..8d4ac78b --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AssetLevel.cs @@ -0,0 +1,11 @@ +using System;
+
+namespace XUpdater
+{
+ public enum AssetLevel
+ {
+ Memory,
+ Image,
+ Disk
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AssetLevel.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AssetLevel.cs.meta new file mode 100644 index 00000000..bebf8f33 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AssetLevel.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 11511373ad6c83c4ebf7b1a96b877ae9 +timeCreated: 1611465291 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncAssemblyRequest.cs b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncAssemblyRequest.cs new file mode 100644 index 00000000..8ce94783 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncAssemblyRequest.cs @@ -0,0 +1,12 @@ +using System;
+using System.Reflection;
+
+namespace XUpdater
+{
+ public sealed class AsyncAssemblyRequest
+ {
+ public Assembly Main = null;
+
+ public bool IsDone = false;
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncAssemblyRequest.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncAssemblyRequest.cs.meta new file mode 100644 index 00000000..96a8513d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncAssemblyRequest.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: ab80306a5baed0b438a50ef96d8ed683 +timeCreated: 1611465741 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncCachedRequest.cs b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncCachedRequest.cs new file mode 100644 index 00000000..a3809d6d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncCachedRequest.cs @@ -0,0 +1,13 @@ +using System;
+
+namespace XUpdater
+{
+ internal sealed class AsyncCachedRequest
+ {
+ public bool Cached = false;
+
+ public bool MaybeCached = false;
+
+ public bool IsDone = false;
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncCachedRequest.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncCachedRequest.cs.meta new file mode 100644 index 00000000..ab02c220 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncCachedRequest.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: fefa949f138c8da418ebb1ac4c88d742 +timeCreated: 1611465813 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncDecompressRequest.cs b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncDecompressRequest.cs new file mode 100644 index 00000000..44410f71 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncDecompressRequest.cs @@ -0,0 +1,13 @@ +using System;
+
+namespace XUpdater
+{
+ public sealed class AsyncDecompressRequest
+ {
+ public bool IsDone = false;
+
+ public bool HasError = false;
+
+ public float Ratio = 0f;
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncDecompressRequest.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncDecompressRequest.cs.meta new file mode 100644 index 00000000..80baef0a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncDecompressRequest.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c1b139bb74e9c65488af36d532dbe8ec +timeCreated: 1611465753 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncExtractRequest.cs b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncExtractRequest.cs new file mode 100644 index 00000000..697345a0 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncExtractRequest.cs @@ -0,0 +1,11 @@ +using System;
+
+namespace XUpdater
+{
+ internal sealed class AsyncExtractRequest
+ {
+ public bool IsDone = false;
+
+ public byte[] Data = null;
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncExtractRequest.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncExtractRequest.cs.meta new file mode 100644 index 00000000..876e2aad --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncExtractRequest.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 5011231640afbcc4c8ac6dc741d6862f +timeCreated: 1611465643 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncLogRequest.cs b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncLogRequest.cs new file mode 100644 index 00000000..138ca5f3 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncLogRequest.cs @@ -0,0 +1,9 @@ +using System;
+
+namespace XUpdater
+{
+ internal sealed class AsyncLogRequest
+ {
+ public bool IsDone = false;
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncLogRequest.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncLogRequest.cs.meta new file mode 100644 index 00000000..2292840b --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncLogRequest.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 266c9c0b4ff1d5f44b4dc47febd01fa8 +timeCreated: 1611465301 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncReadRequest.cs b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncReadRequest.cs new file mode 100644 index 00000000..6cddb9e3 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncReadRequest.cs @@ -0,0 +1,11 @@ +using System;
+
+namespace XUpdater
+{
+ internal sealed class AsyncReadRequest
+ {
+ public bool IsDone = false;
+
+ public byte[] bytes = null;
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncReadRequest.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncReadRequest.cs.meta new file mode 100644 index 00000000..63a452d2 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncReadRequest.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c49dde5a2c4330d43a70cb229f191ee3 +timeCreated: 1611465755 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncVersionProcessRequest.cs b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncVersionProcessRequest.cs new file mode 100644 index 00000000..35d4bf1d --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncVersionProcessRequest.cs @@ -0,0 +1,11 @@ +using System;
+
+namespace XUpdater
+{
+ internal sealed class AsyncVersionProcessRequest
+ {
+ public bool IsDone = false;
+
+ public bool IsCorrect = false;
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncVersionProcessRequest.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncVersionProcessRequest.cs.meta new file mode 100644 index 00000000..e563b514 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncVersionProcessRequest.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a9c0ae94ae541204d9b38b7b61fcaa13 +timeCreated: 1611465739 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncWriteRequest.cs b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncWriteRequest.cs new file mode 100644 index 00000000..53577bdd --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncWriteRequest.cs @@ -0,0 +1,17 @@ +using System;
+
+namespace XUpdater
+{
+ internal sealed class AsyncWriteRequest
+ {
+ public bool IsDone = false;
+
+ public bool HasError = false;
+
+ public string Location = null;
+
+ public string Name = null;
+
+ public uint Size = 0u;
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncWriteRequest.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncWriteRequest.cs.meta new file mode 100644 index 00000000..37f0f188 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/AsyncWriteRequest.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: e366103fe3b18ee4d95e430c195d3e06 +timeCreated: 1611465801 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/BuildTarget.cs b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/BuildTarget.cs new file mode 100644 index 00000000..4b58adae --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/BuildTarget.cs @@ -0,0 +1,12 @@ +using System;
+
+namespace XUpdater
+{
+ public enum BuildTarget
+ {
+ Unknown,
+ IOS,
+ Android,
+ Standalone
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/BuildTarget.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/BuildTarget.cs.meta new file mode 100644 index 00000000..544f6004 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/BuildTarget.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 29d77a42d1136f0429c70b41706ba425 +timeCreated: 1611465303 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/BundleMetaRes.cs b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/BundleMetaRes.cs new file mode 100644 index 00000000..37e47794 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/BundleMetaRes.cs @@ -0,0 +1,7 @@ +using System;
+using System.Collections.Generic;
+
+namespace XUpdater
+{
+ public delegate List<XMetaResPackage> BundleMetaRes(List<string> rawList, string destFoler);
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/BundleMetaRes.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/BundleMetaRes.cs.meta new file mode 100644 index 00000000..96b725a2 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/BundleMetaRes.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 2f6317ec5b64c3c4a9291fdbeafb266e +timeCreated: 1611465307 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/HandleBundleDownload.cs b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/HandleBundleDownload.cs new file mode 100644 index 00000000..08e62a97 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/HandleBundleDownload.cs @@ -0,0 +1,7 @@ +using System;
+using UnityEngine;
+
+namespace XUpdater
+{
+ internal delegate AsyncWriteRequest HandleBundleDownload(WWW www, XBundleData bundle, string error);
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/HandleBundleDownload.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/HandleBundleDownload.cs.meta new file mode 100644 index 00000000..776a5042 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/HandleBundleDownload.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4e48883f185e30c498dbd279d7ceddf7 +timeCreated: 1611465642 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/HandleFetchBundle.cs b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/HandleFetchBundle.cs new file mode 100644 index 00000000..9270b174 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/HandleFetchBundle.cs @@ -0,0 +1,7 @@ +using System;
+using UnityEngine;
+
+namespace XUpdater
+{
+ internal delegate void HandleFetchBundle(WWW bundle, byte[] bytes, XBundleData data, bool newdownload);
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/HandleFetchBundle.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/HandleFetchBundle.cs.meta new file mode 100644 index 00000000..0ee08764 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/HandleFetchBundle.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 54c07dfa9833fa14abfce085cbf6dc3e +timeCreated: 1611465645 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/HandleLoadAsset.cs b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/HandleLoadAsset.cs new file mode 100644 index 00000000..eacf231b --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/HandleLoadAsset.cs @@ -0,0 +1,7 @@ +using System;
+using UnityEngine;
+
+namespace XUpdater
+{
+ internal delegate void HandleLoadAsset(XResPackage package, UnityEngine.Object asset);
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/HandleLoadAsset.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/HandleLoadAsset.cs.meta new file mode 100644 index 00000000..ef4377e4 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/HandleLoadAsset.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 6d4aa5d1cc5ccba43a34283eb79b80d8 +timeCreated: 1611465685 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/HandleLoadBundle.cs b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/HandleLoadBundle.cs new file mode 100644 index 00000000..55482def --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/HandleLoadBundle.cs @@ -0,0 +1,7 @@ +using System;
+using UnityEngine;
+
+namespace XUpdater
+{
+ internal delegate void HandleLoadBundle(AssetBundle bundle);
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/HandleLoadBundle.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/HandleLoadBundle.cs.meta new file mode 100644 index 00000000..ae3b1392 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/HandleLoadBundle.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 93f6995e1f9a4de44a45bbd084448aed +timeCreated: 1611465707 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/HandlePreDecompressing.cs b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/HandlePreDecompressing.cs new file mode 100644 index 00000000..b4436ea3 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/HandlePreDecompressing.cs @@ -0,0 +1,6 @@ +using System;
+
+namespace XUpdater
+{
+ public delegate void HandlePreDecompressing(string error);
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/HandlePreDecompressing.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/HandlePreDecompressing.cs.meta new file mode 100644 index 00000000..345a87bb --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/HandlePreDecompressing.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 9c4e5dd84410a0e40a0423a53f181555 +timeCreated: 1611465711 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/HandleVersionDownload.cs b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/HandleVersionDownload.cs new file mode 100644 index 00000000..77435200 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/HandleVersionDownload.cs @@ -0,0 +1,7 @@ +using System;
+using UnityEngine;
+
+namespace XUpdater
+{
+ internal delegate AsyncVersionProcessRequest HandleVersionDownload(TextAsset text);
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/HandleVersionDownload.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/HandleVersionDownload.cs.meta new file mode 100644 index 00000000..48c83647 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/HandleVersionDownload.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 15065b61bf5ac3d478f327cb5ae7a10b +timeCreated: 1611465294 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/HandleVersionLoaded.cs b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/HandleVersionLoaded.cs new file mode 100644 index 00000000..efc66aa0 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/HandleVersionLoaded.cs @@ -0,0 +1,6 @@ +using System;
+
+namespace XUpdater
+{
+ internal delegate void HandleVersionLoaded(bool correct);
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/HandleVersionLoaded.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/HandleVersionLoaded.cs.meta new file mode 100644 index 00000000..de47e11e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/HandleVersionLoaded.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: cffebd77213e132488f925c85afdb585 +timeCreated: 1611465760 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/ResourceType.cs b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/ResourceType.cs new file mode 100644 index 00000000..a4e52b27 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/ResourceType.cs @@ -0,0 +1,11 @@ +using System;
+
+namespace XUpdater
+{
+ public enum ResourceType
+ {
+ Assets,
+ Scene,
+ Script
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/ResourceType.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/ResourceType.cs.meta new file mode 100644 index 00000000..19ade6ce --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/ResourceType.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4bed5f3fc6adece4f9497c3d92c4fa51 +timeCreated: 1611465641 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XBundle.cs b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XBundle.cs new file mode 100644 index 00000000..acb8fa42 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XBundle.cs @@ -0,0 +1,64 @@ +using System;
+using System.Collections;
+using UnityEngine;
+
+namespace XUpdater
+{
+ internal sealed class XBundle : MonoBehaviour
+ {
+ private AssetBundleRequest _assetloader = null;
+
+ public void GetBundle(WWW www, byte[] data, HandleLoadBundle callback, bool load)
+ {
+ base.StartCoroutine(this.LoadBundle(www, data, callback, load));
+ }
+
+ public void GetAsset(AssetBundle bundle, XResPackage package, HandleLoadAsset callback)
+ {
+ base.StartCoroutine(this.LoadAsset(bundle, package, callback));
+ }
+
+ private IEnumerator LoadBundle(WWW www, byte[] data, HandleLoadBundle callback, bool load)
+ {
+ AssetBundle bundle = null;
+ if (load)
+ {
+ bool flag = www != null;
+ if (flag)
+ {
+ bundle = www.assetBundle;
+ }
+ else
+ {
+ bundle = AssetBundle.LoadFromMemory(data);
+ }
+ yield return null;
+ }
+ bool flag2 = callback != null;
+ if (flag2)
+ {
+ callback(bundle);
+ }
+ bool flag3 = www != null;
+ if (flag3)
+ {
+ www.Dispose();
+ }
+ www = null;
+ yield break;
+ }
+
+ private IEnumerator LoadAsset(AssetBundle bundle, XResPackage package, HandleLoadAsset callback)
+ {
+ this._assetloader = bundle.LoadAssetAsync(base.name, XUpdater.Ass.GetType(package.type));
+ yield return this._assetloader;
+ bool flag = callback != null;
+ if (flag)
+ {
+ callback(package, this._assetloader.asset);
+ }
+ this._assetloader = null;
+ yield break;
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XBundle.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XBundle.cs.meta new file mode 100644 index 00000000..4c9a9bdb --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XBundle.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d74b1473d4088034d828831e70be9ad7 +timeCreated: 1611465764 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XBundleData.cs b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XBundleData.cs new file mode 100644 index 00000000..e42cb345 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XBundleData.cs @@ -0,0 +1,16 @@ +using System;
+
+namespace XUpdater
+{
+ [Serializable]
+ public class XBundleData
+ {
+ public string Name;
+
+ public string MD5;
+
+ public uint Size;
+
+ public AssetLevel Level = AssetLevel.Memory;
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XBundleData.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XBundleData.cs.meta new file mode 100644 index 00000000..2fa3cc7b --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XBundleData.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 77c36f6c000743e479e8dce789a1d43e +timeCreated: 1611465691 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XCaching.cs b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XCaching.cs new file mode 100644 index 00000000..a4780a7a --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XCaching.cs @@ -0,0 +1,404 @@ +using System;
+using System.IO;
+using System.Security.Cryptography;
+using System.Text;
+using System.Threading;
+using UnityEngine;
+using XUtliPoolLib;
+
+namespace XUpdater
+{
+ public sealed class XCaching : XSingleton<XCaching>
+ {
+ public string VersionServer
+ {
+ get
+ {
+ return this._version_server;
+ }
+ }
+
+ public string HostUrl
+ {
+ get
+ {
+ return this._host_url;
+ }
+ }
+
+ public string UpdatePath
+ {
+ get
+ {
+ return this._update_path;
+ }
+ }
+
+ public XDownloader Downloader
+ {
+ get
+ {
+ return this._down_loader;
+ }
+ }
+
+ private string _version_server = null;
+
+ private string _host_url = null;
+
+ internal static readonly string UPDATE_DIRECTORY = "/update/";
+
+ private string _update_path = null;
+
+ private StringBuilder _log = new StringBuilder();
+
+ private XDownloader _down_loader = null;
+
+ private MD5CryptoServiceProvider _md5Generator = null;
+
+ private AsyncExtractRequest _aer = null;
+
+ private AsyncWriteRequest _meta_awr = null;
+
+ internal string GetLocalPath(XBundleData data)
+ {
+ return string.Format("{0}{1}.assetbundle", this._update_path, data.Name);
+ }
+
+ internal string GetLocalUrl(XBundleData data)
+ {
+ bool flag = XSingleton<XUpdater>.singleton.RunTimePlatform == BuildTarget.Standalone;
+ string arg;
+ if (flag)
+ {
+ arg = "file:///";
+ }
+ else
+ {
+ arg = "file://";
+ }
+ string text = string.Format("{0}{1}{2}.assetbundle", arg, this._update_path, data.Name);
+ XSingleton<XDebug>.singleton.AddLog("LocalURL: ", text, null, null, null, null, XDebugColor.XDebug_None);
+ return text;
+ }
+
+ public string GetLoginServerAddress(string loginType)
+ {
+ IPlatform xplatform = XSingleton<XUpdater>.singleton.XPlatform;
+ return xplatform.GetHostWithHttpDns(xplatform.GetLoginServer(loginType));
+ }
+
+ internal string GetDownloadUrl(XBundleData data)
+ {
+ return this.MakeToken(string.Format("{0}{1}/{2}.assetbundle", this.HostUrl, XSingleton<XUpdater>.singleton.Platform, data.Name));
+ }
+
+ internal string MakeToken(string url)
+ {
+ return string.Format("{0}?token={1}", url, DateTime.Now.Ticks);
+ }
+
+ public override bool Init()
+ {
+ IPlatform xplatform = XSingleton<XUpdater>.singleton.XPlatform;
+ this._version_server = xplatform.GetHostWithHttpDns(xplatform.GetVersionServer());
+ this._host_url = xplatform.GetHostUrl();
+ this._md5Generator = new MD5CryptoServiceProvider();
+ this._down_loader = XUpdater.XGameRoot.AddComponent<XDownloader>();
+ this._update_path = Application.persistentDataPath + XCaching.UPDATE_DIRECTORY;
+ return true;
+ }
+
+ internal bool EnableCache()
+ {
+ bool flag = !Directory.Exists(this._update_path);
+ if (flag)
+ {
+ XSingleton<XDebug>.singleton.AddLog("Create new path " + this._update_path, null, null, null, null, null, XDebugColor.XDebug_None);
+ try
+ {
+ Directory.CreateDirectory(this._update_path);
+ return Directory.Exists(this._update_path);
+ }
+ catch (Exception ex)
+ {
+ XSingleton<XDebug>.singleton.AddErrorLog(string.Format("Error ", ex.Message), null, null, null, null, null);
+ return false;
+ }
+ }
+ XSingleton<XDebug>.singleton.AddLog(string.Format("Path {0} exists.", this._update_path), null, null, null, null, null, XDebugColor.XDebug_None);
+ return true;
+ }
+
+ internal AsyncCachedRequest IsBundleCached(XBundleData bundle, uint size)
+ {
+ string fullpath = this.GetLocalPath(bundle);
+ AsyncCachedRequest req = new AsyncCachedRequest();
+ bool flag = bundle.Size < size;
+ if (flag)
+ {
+ new Thread((ThreadStart) delegate
+ {
+ bool flag2 = File.Exists(fullpath);
+ if (flag2)
+ {
+ byte[] bundle2 = this.LoadFile(fullpath);
+ string a = this.CalculateMD5(bundle2);
+ req.Cached = (a == bundle.MD5);
+ req.MaybeCached = true;
+ }
+ req.IsDone = true;
+ }).Start();
+ }
+ else
+ {
+ req.MaybeCached = File.Exists(fullpath);
+ req.IsDone = true;
+ }
+ return req;
+ }
+
+ internal bool CleanCache()
+ {
+ string path = ((int)Application.platform == 8) ? ("/private" + this._update_path) : this._update_path;
+ bool result;
+ try
+ {
+ bool flag = Directory.Exists(path);
+ if (flag)
+ {
+ DirectoryInfo directoryInfo = new DirectoryInfo(path);
+ directoryInfo.Delete(true);
+ bool flag2 = !Directory.Exists(path);
+ bool flag3 = flag2;
+ if (flag3)
+ {
+ result = this.EnableCache();
+ }
+ else
+ {
+ result = false;
+ }
+ }
+ else
+ {
+ result = true;
+ }
+ }
+ catch (Exception ex)
+ {
+ XSingleton<XDebug>.singleton.AddErrorLog("CleanCache error: ", ex.Message, null, null, null, null);
+ result = false;
+ }
+ return result;
+ }
+
+ internal byte[] LoadFile(string fullpath)
+ {
+ return File.ReadAllBytes(fullpath);
+ }
+
+ private AsyncReadRequest LoadFileAsync(string fullpath)
+ {
+ AsyncReadRequest arr = new AsyncReadRequest();
+ new Thread((ThreadStart) delegate
+ {
+ arr.bytes = File.ReadAllBytes(fullpath);
+ arr.IsDone = true;
+ }).Start();
+ return arr;
+ }
+
+ internal void Download(XBundleData bundle, HandleFetchBundle callback, float percent)
+ {
+ this._down_loader.GetBundle(bundle, this.GetDownloadUrl(bundle), new HandleBundleDownload(this.OnBundleDownload), callback, percent);
+ }
+
+ internal AsyncWriteRequest Download(string meta, uint size, float percent)
+ {
+ this._meta_awr = new AsyncWriteRequest();
+ this._meta_awr.Size = size;
+ this._meta_awr.Location = meta;
+ this._meta_awr.Name = meta.Substring(meta.LastIndexOf('/') + 1);
+ this._meta_awr.HasError = false;
+ string name = meta.Substring(meta.LastIndexOf("/") + 1);
+ meta = this.MakeToken(this.HostUrl + XSingleton<XUpdater>.singleton.Platform + meta);
+ this._down_loader.GetMeta(meta, name, new XDownloader.HandleBytesDownload(this.OnMetaDownload), percent);
+ return this._meta_awr;
+ }
+
+ internal bool Extract(XBundleData bundle, HandleFetchBundle callback, float percent)
+ {
+ bool flag =(int) Application.platform == 8;
+ bool result;
+ if (flag)
+ {
+ bool flag2 = this._aer == null;
+ if (flag2)
+ {
+ this._aer = new AsyncExtractRequest();
+ new Thread((ThreadStart)delegate
+ {
+ string localPath = this.GetLocalPath(bundle);
+ this._aer.Data = File.ReadAllBytes(localPath);
+ this._aer.IsDone = true;
+ }).Start();
+ }
+ bool isDone = this._aer.IsDone;
+ if (isDone)
+ {
+ callback(null, this._aer.Data, bundle, false);
+ this._aer.Data = null;
+ this._aer = null;
+ result = true;
+ }
+ else
+ {
+ result = false;
+ }
+ }
+ else
+ {
+ this._down_loader.GetBundle(bundle, this.GetLocalUrl(bundle), null, callback, percent);
+ result = true;
+ }
+ return result;
+ }
+
+ private void OnMetaDownload(WWW www, string error)
+ {
+ bool flag = string.IsNullOrEmpty(error);
+ if (flag)
+ {
+ byte[] bs = www.bytes;
+ new Thread((ThreadStart)delegate
+ {
+ try
+ {
+ bool needCheckFile = XSingleton<XUpdater>.singleton.NeedCheckFile;
+ if (needCheckFile)
+ {
+ bool flag2 = Path.GetExtension(this._meta_awr.Location).Contains("ab");
+ if (flag2)
+ {
+ bool flag3 = bs[0] != 85 || bs[1] != 110 || bs[2] != 105 || bs[3] != 116 || bs[4] != 121 || bs[5] != 70 || bs[6] != 83;
+ if (flag3)
+ {
+ throw new Exception("Meta head check failed.");
+ }
+ }
+ }
+ string text = Path.Combine(this._update_path, "AssetBundles");
+ string fileName = Path.GetFileName(this._meta_awr.Location);
+ bool flag4 = !Directory.Exists(text);
+ if (flag4)
+ {
+ Directory.CreateDirectory(text);
+ }
+ string text2 = Path.Combine(text, fileName);
+ File.WriteAllBytes(text2, bs);
+ bool needCheckFile2 = XSingleton<XUpdater>.singleton.NeedCheckFile;
+ if (needCheckFile2)
+ {
+ Thread.Sleep(1);
+ bool flag5 = this.CheckFileSize(text2, (long)((ulong)this._meta_awr.Size));
+ if (!flag5)
+ {
+ throw new Exception("Meta File size " + this._meta_awr.Size + " not match.");
+ }
+ XSingleton<XUpdater>.singleton.XPlatform.SetNoBackupFlag(text2);
+ this._meta_awr.IsDone = true;
+ }
+ else
+ {
+ XSingleton<XUpdater>.singleton.XPlatform.SetNoBackupFlag(text2);
+ this._meta_awr.IsDone = true;
+ }
+ }
+ catch (Exception ex)
+ {
+ this.OnDownloadFailed(ex.Message, this._meta_awr);
+ }
+ }).Start();
+ }
+ else
+ {
+ this.OnDownloadFailed(error, this._meta_awr);
+ }
+ }
+
+ private void OnDownloadFailed(string error, AsyncWriteRequest awr)
+ {
+ XSingleton<XDebug>.singleton.AddErrorLog("Download Meta ", awr.Name, " error: ", error, null, null);
+ awr.HasError = true;
+ }
+
+ private AsyncWriteRequest OnBundleDownload(WWW www, XBundleData bundle, string error)
+ {
+ AsyncWriteRequest req = new AsyncWriteRequest();
+ bool flag = string.IsNullOrEmpty(error);
+ if (flag)
+ {
+ byte[] bs = www.bytes;
+ new Thread((ThreadStart)delegate
+ {
+ req.Location = this.GetLocalPath(bundle);
+ try
+ {
+ File.WriteAllBytes(req.Location, bs);
+ req.IsDone = true;
+ }
+ catch (Exception ex)
+ {
+ this.OnDownloadFailed(ex.Message, req);
+ }
+ }).Start();
+ }
+ else
+ {
+ this.OnDownloadFailed(error, req);
+ }
+ return req;
+ }
+
+ internal string CalculateMD5(byte[] bundle)
+ {
+ byte[] value = this._md5Generator.ComputeHash(bundle);
+ return BitConverter.ToString(value);
+ }
+
+ internal string CalculateMD5(byte[] bundle, int offset, int count)
+ {
+ byte[] value = this._md5Generator.ComputeHash(bundle, offset, count);
+ return BitConverter.ToString(value);
+ }
+
+ public bool CheckFileSize(string filePath, long fileSize)
+ {
+ bool result;
+ try
+ {
+ bool flag = !File.Exists(filePath);
+ if (flag)
+ {
+ result = false;
+ }
+ else
+ {
+ FileInfo fileInfo = new FileInfo(filePath);
+ result = (fileSize == fileInfo.Length);
+ }
+ }
+ catch (Exception ex)
+ {
+ XSingleton<XDebug>.singleton.AddErrorLog("XCaching.CheckFileSize: " + ex.Message, null, null, null, null, null);
+ result = false;
+ }
+ return result;
+ }
+
+ public override void Uninit()
+ {
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XCaching.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XCaching.cs.meta new file mode 100644 index 00000000..6ab14d04 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XCaching.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: e212f5e587fc78e44bfa392acdcc623d +timeCreated: 1611465800 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XDownloader.cs b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XDownloader.cs new file mode 100644 index 00000000..00e347ae --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XDownloader.cs @@ -0,0 +1,149 @@ +using System;
+using System.Collections;
+using System.Text;
+using UnityEngine;
+using XUtliPoolLib;
+
+namespace XUpdater
+{
+ public sealed class XDownloader : MonoBehaviour
+ {
+ private StringBuilder _log = new StringBuilder();
+
+ private WWW _downloader = null;
+
+ private bool _download = true;
+
+ private uint _token = 0u;
+
+ private float _total_percent = 0f;
+
+ private string _current_name = null;
+
+ private XTimerMgr.ElapsedEventHandler _progressCb = null;
+
+ public delegate void HandleBytesDownload(WWW www, string error);
+
+ private void Awake()
+ {
+ this._progressCb = new XTimerMgr.ElapsedEventHandler(this.Progress);
+ }
+
+ internal void GetBundle(XBundleData bundle, string url, HandleBundleDownload callback1, HandleFetchBundle callback2, float percent)
+ {
+ this._download = url.Contains("?token=");
+ this._current_name = bundle.Name;
+ this._total_percent = percent;
+ base.StartCoroutine(this.Download(bundle, url, callback1, callback2));
+ }
+
+ public void GetMeta(string url, string name, XDownloader.HandleBytesDownload callback, float percent)
+ {
+ this._download = true;
+ this._current_name = name;
+ this._total_percent = percent;
+ base.StartCoroutine(this.MetaDownload(url, callback));
+ }
+
+ public void GetBytes(string url, XDownloader.HandleBytesDownload callback)
+ {
+ base.StartCoroutine(this.BytesDownload(url, callback));
+ }
+
+ private IEnumerator MetaDownload(string url, XDownloader.HandleBytesDownload callback)
+ {
+ XSingleton<XTimerMgr>.singleton.KillTimer(this._token);
+ this._token = XSingleton<XTimerMgr>.singleton.SetTimer(0.1f, this._progressCb, null);
+ this._downloader = new WWW(url);
+ yield return this._downloader;
+ XSingleton<XTimerMgr>.singleton.KillTimer(this._token);
+ this.Progress(null);
+ XSingleton<XTimerMgr>.singleton.KillTimer(this._token);
+ bool flag = callback != null;
+ if (flag)
+ {
+ callback(this._downloader, this._downloader.error);
+ }
+ this._downloader.Dispose();
+ this._downloader = null;
+ yield break;
+ }
+
+ private IEnumerator BytesDownload(string url, XDownloader.HandleBytesDownload callback)
+ {
+ WWW www = new WWW(url);
+ yield return www;
+ bool flag = callback != null;
+ if (flag)
+ {
+ callback(www, www.error);
+ }
+ www.Dispose();
+ www = null;
+ yield break;
+ }
+
+ private IEnumerator Download(XBundleData bundle, string url, HandleBundleDownload callback1, HandleFetchBundle callback2)
+ {
+ XSingleton<XTimerMgr>.singleton.KillTimer(this._token);
+ this._token = XSingleton<XTimerMgr>.singleton.SetTimer(0.1f, this._progressCb, null);
+ this._downloader = new WWW(url);
+ yield return this._downloader;
+ XSingleton<XTimerMgr>.singleton.KillTimer(this._token);
+ this.Progress(null);
+ XSingleton<XTimerMgr>.singleton.KillTimer(this._token);
+ bool error = false;
+ bool flag = callback1 != null;
+ if (flag)
+ {
+ AsyncWriteRequest awr = callback1(this._downloader, bundle, this._downloader.error);
+ while (!awr.IsDone)
+ {
+ bool hasError = awr.HasError;
+ if (hasError)
+ {
+ error = true;
+ break;
+ }
+ yield return null;
+ }
+ XSingleton<XUpdater>.singleton.XPlatform.SetNoBackupFlag(awr.Location);
+ awr = null;
+ }
+ bool flag2 = error;
+ if (flag2)
+ {
+ this._log.Length = 0;
+ this._log.AppendFormat(XSingleton<XStringTable>.singleton.GetString("XUPDATE_ERROR_DOWNLOADRESFAILED"), bundle.Name);
+ XSingleton<XLoadingUI>.singleton.SetStatus(this._log.ToString(), byte.MaxValue, byte.MaxValue, byte.MaxValue);
+ }
+ else
+ {
+ bool flag3 = callback2 != null;
+ if (flag3)
+ {
+ callback2(this._downloader, this._downloader.bytes, bundle, this._download);
+ }
+ }
+ this._downloader = null;
+ yield break;
+ }
+
+ private void Progress(object o)
+ {
+ this._log.Remove(0, this._log.Length);
+ int num = Mathf.FloorToInt(this._total_percent * 100f);
+ bool download = this._download;
+ if (download)
+ {
+ this._log.AppendFormat(XSingleton<XStringTable>.singleton.GetString("XUPDATE_INFO_DOWNLOADING"), num);
+ }
+ else
+ {
+ this._log.AppendFormat(XSingleton<XStringTable>.singleton.GetString("XUPDATE_INFO_EXTRACTING"), num);
+ }
+ XSingleton<XLoadingUI>.singleton.SetStatus(this._log.ToString(), byte.MaxValue, byte.MaxValue, byte.MaxValue);
+ this._token = XSingleton<XTimerMgr>.singleton.SetTimer(0.1f, this._progressCb, o);
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XDownloader.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XDownloader.cs.meta new file mode 100644 index 00000000..637a01b8 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XDownloader.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 011390f5919ea604ba6a551c2601f729 +timeCreated: 1611465284 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XLaunchMode.cs b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XLaunchMode.cs new file mode 100644 index 00000000..9b9e8e8e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XLaunchMode.cs @@ -0,0 +1,11 @@ +using System;
+
+namespace XUpdater
+{
+ public enum XLaunchMode
+ {
+ Live = 100,
+ PreProduct,
+ Dev = 200
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XLaunchMode.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XLaunchMode.cs.meta new file mode 100644 index 00000000..e559afb3 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XLaunchMode.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: a9dca030da976a842a72f0ce356aa6a5 +timeCreated: 1611465740 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XLoadingUI.cs b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XLoadingUI.cs new file mode 100644 index 00000000..b74f8e39 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XLoadingUI.cs @@ -0,0 +1,238 @@ +using System;
+using UILib;
+using UnityEngine;
+using XUtliPoolLib;
+
+namespace XUpdater
+{
+ internal class XLoadingUI : XSingleton<XLoadingUI>
+ {
+ private IXUISprite JY;
+
+ private IXUISprite Black;
+
+ private IXUITweenTool JYPlayTween;
+
+ private IXUITweenTool BlackPlayTween;
+
+ private IXUILabel StatusText;
+
+ private IXUILabel VersionText;
+
+ private IXUISprite ClickBox;
+
+ public bool LoadingOK = false;
+
+ private bool TweenOK = false;
+
+ private Transform mTextureTransform;
+
+ private Transform mDialogTransform;
+
+ private IXUIButton mDialogSureBtn;
+
+ private IXUIButton mDialogCancelBtn;
+
+ private IXUILabel mDialogCapacityLabel;
+
+ private IXUITexture mDownLoadTexture;
+
+ private IXUIButton mDownLoadNewBtn;
+
+ private Transform mDownLoadTransform;
+
+ private XLoadingUI.OnSureCallBack mDialogCallBack;
+
+ private XLoadingUI.OnSureCallBack mDialogCancelCallBack;
+
+ private XLoadingUI.OnSureCallBack mDownCallBack;
+
+ public delegate void OnSureCallBack();
+
+ public override bool Init()
+ {
+ PlayerPrefs.SetString("Language", "Language");
+ GameObject gameObject = GameObject.Find("UIRoot/StartLoadingDlg/Bg/Ailin");
+ GameObject gameObject2 = GameObject.Find("UIRoot/StartLoadingDlg/Bg/JY");
+ GameObject gameObject3 = GameObject.Find("UIRoot/StartLoadingDlg/Bg").transform.Find("Black").gameObject;
+ this.StatusText = (GameObject.Find("UIRoot/StartLoadingDlg/Bg/LabelStatus").GetComponent("XUILabel") as IXUILabel);
+ this.VersionText = (GameObject.Find("UIRoot/StartLoadingDlg/Bg/LabelVersion").GetComponent("XUILabel") as IXUILabel);
+ this.JY = (gameObject2.GetComponent("XUISprite") as IXUISprite);
+ this.Black = (gameObject3.GetComponent("XUISprite") as IXUISprite);
+ this.JYPlayTween = (gameObject2.GetComponent("XUIPlayTween") as IXUITweenTool);
+ this.BlackPlayTween = (gameObject3.GetComponent("XUIPlayTween") as IXUITweenTool);
+ this.JYPlayTween.SetTargetGameObject(gameObject2);
+ this.JYPlayTween.RegisterOnFinishEventHandler(new OnTweenFinishEventHandler(this.OnJYPlayTweenFinish));
+ this.Black.SetVisible(true);
+ this.BlackPlayTween.SetTargetGameObject(gameObject3);
+ this.BlackPlayTween.RegisterOnFinishEventHandler(new OnTweenFinishEventHandler(this.OnBlackPlayTweenFinish));
+ this.StatusText.SetVisible(false);
+ this.VersionText.SetVisible(false);
+ this.Black.SetVisible(false);
+ this.JY.SetVisible(true);
+ this.JYPlayTween.PlayTween(true, -1f);
+ this.ClickBox = (GameObject.Find("UIRoot/StartLoadingDlg/Bg").GetComponent("XUISprite") as IXUISprite);
+ this.ClickBox.RegisterSpriteClickEventHandler(new SpriteClickEventHandler(this.OnBoxClick));
+ this.mTextureTransform = GameObject.Find("UIRoot/StartLoadingDlg/Bg/Texture").transform;
+ this.mDialogTransform = GameObject.Find("UIRoot/StartLoadingDlg/Bg/Dialog").transform;
+ this.mDialogSureBtn = (this.mDialogTransform.Find("OK").GetComponent("XUIButton") as IXUIButton);
+ this.mDialogCancelBtn = (this.mDialogTransform.Find("Cancel").GetComponent("XUIButton") as IXUIButton);
+ this.mDialogCapacityLabel = (this.mDialogTransform.Find("CapacityValue").GetComponent("XUILabel") as IXUILabel);
+ this.mDialogSureBtn.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnDialogSureClick));
+ this.mDialogCancelBtn.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnDialogCancelClick));
+ this.mTextureTransform.gameObject.SetActive(false);
+ this.mDialogTransform.gameObject.SetActive(false);
+ this.mDownLoadTransform = GameObject.Find("UIRoot/StartLoadingDlg/Bg/DownNew").transform;
+ this.mDownLoadTexture = (this.mDownLoadTransform.Find("Pic").GetComponent("XUITexture") as IXUITexture);
+ this.mDownLoadNewBtn = (this.mDownLoadTransform.Find("OK").GetComponent("XUIButton") as IXUIButton);
+ this.mDownLoadTransform.gameObject.SetActive(false);
+ this.mDownLoadNewBtn.RegisterClickEventHandler(new ButtonClickEventHandler(this.OnDownLoadCallback));
+ return true;
+ }
+
+ public bool OnDialogSureClick(IXUIButton btn)
+ {
+ this.mDialogTransform.gameObject.SetActive(false);
+ bool flag = this.mDialogCallBack != null;
+ if (flag)
+ {
+ this.mDialogCallBack();
+ }
+ return true;
+ }
+
+ public bool OnDialogCancelClick(IXUIButton btn)
+ {
+ this.mDialogTransform.gameObject.SetActive(false);
+ bool flag = this.mDialogCancelCallBack != null;
+ if (flag)
+ {
+ this.mDialogCancelCallBack();
+ }
+ return true;
+ }
+
+ public bool OnDownLoadCallback(IXUIButton btn)
+ {
+ this.mDownLoadTransform.gameObject.SetActive(false);
+ bool flag = this.mDownCallBack != null;
+ if (flag)
+ {
+ this.mDownCallBack();
+ }
+ return true;
+ }
+
+ public void OnBoxClick(IXUISprite sp)
+ {
+ XSingleton<XUpdater>.singleton.OnRetry();
+ }
+
+ private void OnBlackPlayTweenFinish(IXUITweenTool iPlayTween)
+ {
+ XSingleton<XUpdater>.singleton.Phase = eUPdatePhase.xUP_Finish;
+ }
+
+ private void OnAilinPlayTweenFinish(IXUITweenTool iPlayTween)
+ {
+ this.TweenOK = true;
+ }
+
+ private void OnJYPlayTweenFinish(IXUITweenTool iPlayTween)
+ {
+ this.JY.SetVisible(false);
+ this.mTextureTransform.gameObject.SetActive(true);
+ this.TweenOK = true;
+ XSingleton<XUpdater>.singleton.Begin();
+ }
+
+ private void LoadFinishClean()
+ {
+ this.JY = null;
+ this.Black = null;
+ this.JYPlayTween = null;
+ this.BlackPlayTween = null;
+ this.StatusText = null;
+ this.VersionText = null;
+ this.ClickBox = null;
+ this.mDialogCallBack = null;
+ this.mDialogCancelCallBack = null;
+ this.mDialogCancelBtn = null;
+ this.mDialogSureBtn = null;
+ this.mDialogCapacityLabel = null;
+ this.mDialogTransform = null;
+ this.mDownLoadNewBtn = null;
+ this.mDownLoadTransform = null;
+ }
+
+ public void SetDialog(ulong capacity, XLoadingUI.OnSureCallBack sureCallBack, XLoadingUI.OnSureCallBack cancelCallBack)
+ {
+ this.mDialogCallBack = sureCallBack;
+ this.mDialogCancelCallBack = cancelCallBack;
+ this.mDialogTransform.gameObject.SetActive(true);
+ this.mDialogCapacityLabel.SetText(this.GetCapacityValue(capacity));
+ }
+
+ public void SetDownLoad(XLoadingUI.OnSureCallBack sureCallBack, Texture tex)
+ {
+ this.mDownCallBack = sureCallBack;
+ this.mDownLoadTransform.gameObject.SetActive(true);
+ bool flag = tex != null;
+ if (flag)
+ {
+ this.mDownLoadTexture.SetRuntimeTex(tex, true);
+ }
+ }
+
+ private string GetCapacityValue(ulong capacity)
+ {
+ bool flag = capacity < 1048576UL;
+ string result;
+ if (flag)
+ {
+ result = string.Format("{0}K", (capacity / 1024UL).ToString("F2"));
+ }
+ else
+ {
+ result = string.Format("{0}M", (capacity / 1024UL / 1024UL).ToString("F2"));
+ }
+ return result;
+ }
+
+ public void SetStatus(string text, byte r = 255, byte g = 255, byte b = 255)
+ {
+ bool flag = !this.StatusText.IsVisible();
+ if (flag)
+ {
+ this.StatusText.SetVisible(true);
+ }
+ this.StatusText.SetColor(new Color32(r, g, b, byte.MaxValue));
+ this.StatusText.SetText(text);
+ }
+
+ public void SetVersion(string text)
+ {
+ bool flag = !this.VersionText.IsVisible();
+ if (flag)
+ {
+ this.VersionText.SetVisible(true);
+ }
+ this.VersionText.SetText(text);
+ }
+
+ public void OnUpdate()
+ {
+ bool flag = this.TweenOK && this.LoadingOK;
+ if (flag)
+ {
+ this.TweenOK = (this.LoadingOK = false);
+ XSingleton<XUpdater>.singleton.Phase = eUPdatePhase.xUP_Finish;
+ this.LoadFinishClean();
+ }
+ }
+
+ public override void Uninit()
+ {
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XLoadingUI.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XLoadingUI.cs.meta new file mode 100644 index 00000000..622cc014 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XLoadingUI.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 3a2909fecca65674ead27371201b0a69 +timeCreated: 1611465631 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XMetaResPackage.cs b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XMetaResPackage.cs new file mode 100644 index 00000000..61145a31 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XMetaResPackage.cs @@ -0,0 +1,16 @@ +using System;
+
+namespace XUpdater
+{
+ [Serializable]
+ public class XMetaResPackage
+ {
+ public string download;
+
+ public string buildinpath;
+
+ public string bundle;
+
+ public uint Size;
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XMetaResPackage.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XMetaResPackage.cs.meta new file mode 100644 index 00000000..f88076a3 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XMetaResPackage.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 40e229542a04c8b4e963b01fdd9911d4 +timeCreated: 1611465635 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XResPackage.cs b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XResPackage.cs new file mode 100644 index 00000000..55d3277e --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XResPackage.cs @@ -0,0 +1,16 @@ +using System;
+
+namespace XUpdater
+{
+ [Serializable]
+ public class XResPackage
+ {
+ public string location;
+
+ public string type;
+
+ public string bundle;
+
+ public ResourceType rtype = ResourceType.Assets;
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XResPackage.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XResPackage.cs.meta new file mode 100644 index 00000000..05281744 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XResPackage.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: de0d4b26a3f172d4bb888f7450d92e37 +timeCreated: 1611465797 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XShell.cs b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XShell.cs new file mode 100644 index 00000000..81f4ee45 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XShell.cs @@ -0,0 +1,229 @@ +using System;
+using System.Reflection;
+using UnityEngine;
+using UnityEngine.SceneManagement;
+using XUtliPoolLib;
+
+namespace XUpdater
+{
+ public sealed class XShell : XSingleton<XShell>
+ {
+ public bool Pause
+ {
+ get
+ {
+ return this._bPause;
+ }
+ set
+ {
+ bool isDone = XSingleton<XUpdater>.singleton.IsDone;
+ if (isDone)
+ {
+ this._bPauseTrigger = value;
+ }
+ }
+ }
+
+ public float CurrentTimeMagic
+ {
+ get
+ {
+ return Time.timeScale;
+ }
+ }
+
+ public static readonly int TargetFrame = 30;
+
+ private float _time_scale = 1f;
+
+ private bool _bPause = false;
+
+ private bool _bPauseTrigger = false;
+
+ private IEntrance _entrance = null;
+
+ public void PreLaunch()
+ {
+ this._entrance.Awake();
+ bool flag = this._entrance != null;
+ if (flag)
+ {
+ IPlatform xplatform = XSingleton<XUpdater>.singleton.XPlatform;
+ bool flag2 = xplatform != null;
+ if (flag2)
+ {
+ this._entrance.SetQualityLevel(xplatform.GetQualityLevel());
+ }
+ }
+ }
+
+ public void Launch()
+ {
+ this._entrance.Awake();
+ }
+
+ public bool Launched()
+ {
+ return this._entrance.Awaked;
+ }
+
+ public void StartGame()
+ {
+ this._entrance.Start();
+ }
+
+ public void Awake()
+ {
+ bool flag = !XSingleton<XUpdater>.singleton.IsDone;
+ if (flag)
+ {
+ XSingleton<XUpdater>.singleton.Init();
+ }
+ }
+
+ public void Start()
+ {
+ Screen.sleepTimeout = -1;
+ Application.targetFrameRate = -1;
+ }
+
+ private void NetUpdate()
+ {
+ this._entrance.NetUpdate();
+ }
+
+ public void PreUpdate()
+ {
+ this.NetUpdate();
+ bool pause = this.Pause;
+ if (!pause)
+ {
+ this._entrance.PreUpdate();
+ }
+ }
+
+ public void Update()
+ {
+ bool isDone = XSingleton<XUpdater>.singleton.IsDone;
+ if (isDone)
+ {
+ XSingleton<XTimerMgr>.singleton.updateStartTime = Time.time;
+ this.PreUpdate();
+ bool pause = this.Pause;
+ if (!pause)
+ {
+ bool update = XSingleton<XTimerMgr>.singleton.update;
+ if (update)
+ {
+ XSingleton<XTimerMgr>.singleton.Update(Time.deltaTime);
+ }
+ bool needFixedUpdate = XSingleton<XTimerMgr>.singleton.NeedFixedUpdate;
+ if (needFixedUpdate)
+ {
+ XSingleton<XResourceLoaderMgr>.singleton.Update(Time.deltaTime);
+ }
+ XSingleton<XEngineCommandMgr>.singleton.Update();
+ this._entrance.Update();
+ }
+ }
+ else
+ {
+ XSingleton<XTimerMgr>.singleton.Update(Time.deltaTime);
+ XSingleton<XUpdater>.singleton.Update();
+ }
+ }
+
+ public void PostUpdate()
+ {
+ bool isDone = XSingleton<XUpdater>.singleton.IsDone;
+ if (isDone)
+ {
+ this.PauseChecker();
+ this._entrance.FadeUpdate();
+ bool pause = this.Pause;
+ if (pause)
+ {
+ return;
+ }
+ this._entrance.PostUpdate();
+ XSingleton<XTimerMgr>.singleton.PostUpdate();
+ }
+ bool reboot = XSingleton<XUpdater>.singleton.Reboot;
+ if (reboot)
+ {
+ this.Quit();
+ SceneManager.LoadScene(0);
+ }
+ }
+
+ public void Quit()
+ {
+ bool isDone = XSingleton<XUpdater>.singleton.IsDone;
+ if (isDone)
+ {
+ this._entrance.Quit();
+ }
+ XSingleton<XUpdater>.singleton.Uninit();
+ }
+
+ public void MakeEntrance(Assembly main)
+ {
+ Type type = main.GetType("XMainClient.XGameEntrance");
+ MethodInfo method = type.GetMethod("Fire");
+ method.Invoke(null, null);
+ this._entrance = XSingleton<XInterfaceMgr>.singleton.GetInterface<IEntrance>(0u);
+ }
+
+ //!
+ public void _MakeEntrance()
+ {
+ XMainClient.XGameEntrance.Fire();
+ this._entrance = XSingleton<XInterfaceMgr>.singleton.GetInterface<IEntrance>(0u);
+ }
+
+ public float TimeMagic(float value)
+ {
+ bool flag = Time.timeScale == 1f && !this._bPause;
+ if (flag)
+ {
+ Time.timeScale = value;
+ this._time_scale = value;
+ }
+ return Time.timeScale;
+ }
+
+ public void TimeMagicBack()
+ {
+ Time.timeScale = 1f;
+ this._time_scale = 1f;
+ }
+
+ private void PauseChecker()
+ {
+ bool flag = this._bPause == this._bPauseTrigger;
+ if (!flag)
+ {
+ this._bPause = this._bPauseTrigger;
+ Time.timeScale = (this._bPause ? 0f : this._time_scale);
+ }
+ }
+
+ public override bool Init()
+ {
+ return true;
+ }
+
+ public override void Uninit()
+ {
+ }
+
+ public void MonoObjectRegister(string key, MonoBehaviour behavior)
+ {
+ bool flag = this._entrance != null;
+ if (flag)
+ {
+ this._entrance.MonoObjectRegister(key, behavior);
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XShell.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XShell.cs.meta new file mode 100644 index 00000000..d224cbd8 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XShell.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 28fb5d2f5ca05b943a403b7e467f69b8 +timeCreated: 1611465302 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XUpdater.cs b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XUpdater.cs new file mode 100644 index 00000000..dba75741 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XUpdater.cs @@ -0,0 +1,1644 @@ +using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.IO;
+using System.Reflection;
+using System.Text;
+using System.Threading;
+using System.Xml.Serialization;
+using UnityEngine;
+using XUtliPoolLib;
+
+namespace XUpdater
+{
+ public sealed class XUpdater : XSingleton<XUpdater>
+ {
+ public static XLaunchMode LaunchMode
+ {
+ get
+ {
+ return XUpdater._launch_mode;
+ }
+ }
+
+ public bool EditorMode
+ {
+ get
+ {
+ return this._bEditorMode;
+ }
+ }
+
+ public string Version
+ {
+ get
+ {
+ return this._version;
+ }
+ }
+
+ public string TargetVersion
+ {
+ get
+ {
+ return this._target_version;
+ }
+ }
+
+ public bool NeedCheckFile
+ {
+ get
+ {
+ return this._need_check_file;
+ }
+ }
+
+ public BuildTarget RunTimePlatform
+ {
+ get
+ {
+ return this._runtime_platform;
+ }
+ }
+
+ public string Platform
+ {
+ get
+ {
+ return this._platform_name;
+ }
+ }
+
+ public IPlatform XPlatform
+ {
+ get
+ {
+ return this._platform;
+ }
+ }
+
+ public ILuaEngine XLuaEngine
+ {
+ get
+ {
+ return this._lua_engine;
+ }
+ }
+
+ public IApolloManager XApolloManager
+ {
+ get
+ {
+ return this._apolloManager;
+ }
+ }
+
+ public IBroardcast XBroadCast
+ {
+ get
+ {
+ return this._broadcast;
+ }
+ }
+
+ public ITssSdk XTssSdk
+ {
+ get
+ {
+ return this._tssSdk;
+ }
+ }
+
+ public IXPandoraMgr XPandoraManager
+ {
+ get
+ {
+ return this._pandoraManager;
+ }
+ }
+
+ public IXGameSirControl GameSirControl
+ {
+ get
+ {
+ return this._SirControl;
+ }
+ }
+
+ public IResourceHelp XResourceHelp
+ {
+ get
+ {
+ return this._resourcehelp;
+ }
+ }
+
+ public bool IsDone
+ {
+ get
+ {
+ return this._update_done;
+ }
+ }
+
+ internal eUPdatePhase Phase
+ {
+ set
+ {
+ this._phase = value;
+ }
+ }
+
+ public int ManagedThreadId
+ {
+ get
+ {
+ return this._main_threadId;
+ }
+ }
+
+ public bool Reboot { get; set; }
+
+ public static readonly uint Major_Version = 1u;
+
+ private static XLaunchMode _launch_mode = XLaunchMode.Live;
+
+ public static GameObject XGameRoot = null;
+
+ public static Assembly Ass = Assembly.GetAssembly(typeof(GameObject));
+
+ public static int Md5Length = 16;
+
+ private int _main_threadId = 0;
+
+ private bool _bEditorMode = false;
+
+ private bool _bFetchVersion = false;
+
+ private bool _bFetchServer = false;
+
+ private StringBuilder _log = new StringBuilder();
+
+ private IEnumerator _downloader = null;
+
+ private IEnumerator _download_prepare = null;
+
+ private IEnumerator _comparer = null;
+
+ private IEnumerator _launcher = null;
+
+ private IEnumerator _finish = null;
+
+ private byte[] _script = null;
+
+ private bool _on_file_download_retry = false;
+
+ private bool _on_file_download_need_retry = false;
+
+ private bool _update_done = false;
+
+ private bool _bundle_fetching = false;
+
+ private bool _asset_loading = false;
+
+ private XVersion _version_getter = null;
+
+ private XBundle _bundle_getter = null;
+
+ private XFileLog _filelog_getter = null;
+
+ private IFMOD_Listener _fmod_listenter = null;
+
+ private ITssSdk _tssSdk = null;
+
+ private IApolloManager _apolloManager = null;
+
+ private IBroardcast _broadcast = null;
+
+ private ILuaEngine _lua_engine = null;
+
+ private IXPandoraMgr _pandoraManager = null;
+
+ private IXGameSirControl _SirControl = null;
+
+ private IXVideo _video = null;
+
+ private IPlatform _platform = null;
+
+ private BuildTarget _runtime_platform = BuildTarget.Unknown;
+
+ private string _platform_name = "";
+
+ private string _version = "0.0.0";
+
+ private string _target_version = "0.0.0";
+
+ private bool _need_check_file = false;
+
+ private bool _need_play_cg = true;
+
+ private XFetchVersionNetwork _fetch_version_network = null;
+
+ private float _fetch_version_time = 0f;
+
+ private ulong _update_pakcage_size = 0UL;
+
+ private XVersionData _server = null;
+
+ private XVersionData _client = null;
+
+ private XVersionData _buildin = null;
+
+ private IResourceHelp _resourcehelp = null;
+
+ private XBundleData _bundle_data = null;
+
+ private eUPdatePhase _phase = eUPdatePhase.xUP_None;
+
+ private List<XBundleData> _download_bundle = new List<XBundleData>();
+
+ private List<XBundleData> _cacheload_bundle = new List<XBundleData>();
+
+ private List<XMetaResPackage> _meta_bundle = new List<XMetaResPackage>();
+
+ private Dictionary<uint, UnityEngine.Object> _persist_assets = new Dictionary<uint, UnityEngine.Object>();
+
+ private Dictionary<uint, byte[]> _persist_image = new Dictionary<uint, byte[]>();
+
+ private Dictionary<uint, XBundleData> _assets = new Dictionary<uint, XBundleData>();
+
+ private Dictionary<uint, XResPackage> _res_list = new Dictionary<uint, XResPackage>();
+
+ private Dictionary<uint, AssetBundle> _bundles = new Dictionary<uint, AssetBundle>();
+
+ public AssetBundleManager ABManager;
+
+ private bool _is_download_update_pic = false;
+
+ public override bool Init()
+ {
+ this._main_threadId = Thread.CurrentThread.ManagedThreadId;
+ this._bEditorMode = ((int)Application.platform == 7 || (int)Application.platform == 0 || (int)Application.platform == 2);
+ this.Reboot = false;
+ XUpdater.XGameRoot = GameObject.Find("XGamePoint");
+ this.GetLaunchMode();
+ RuntimePlatform platform = Application.platform;
+ if ((int)platform != 8)
+ {
+ if ((int)platform != 11)
+ {
+ this._runtime_platform = BuildTarget.Standalone;
+ this._platform_name = (this.PatchPrefix() ?? "");
+ }
+ else
+ {
+ this._runtime_platform = BuildTarget.Android;
+ this._platform_name = this.PatchPrefix() + "Android/";
+ }
+ }
+ else
+ {
+ this._runtime_platform = BuildTarget.IOS;
+ this._platform_name = this.PatchPrefix() + "IOS/";
+ }
+ this._version_getter = XUpdater.XGameRoot.AddComponent<XVersion>();
+ this._bundle_getter = XUpdater.XGameRoot.AddComponent<XBundle>();
+ this._filelog_getter = XUpdater.XGameRoot.AddComponent<XFileLog>();
+ this._fmod_listenter = (GameObject.Find("Main Camera").GetComponent("FMOD_Listener") as IFMOD_Listener);
+ this._tssSdk = (XUpdater.XGameRoot.GetComponent("TssSDKManager") as ITssSdk);
+ this._apolloManager = (XUpdater.XGameRoot.GetComponent("ApolloManager") as IApolloManager);
+ this._broadcast = (XUpdater.XGameRoot.GetComponent("BroadcastManager") as IBroardcast);
+ this._platform = (XUpdater.XGameRoot.GetComponent("XPlatform") as IPlatform);
+ this._video = (XUpdater.XGameRoot.GetComponent("XVideoMgr") as IXVideo);
+ this._lua_engine = (XUpdater.XGameRoot.GetComponent("LuaEngine") as ILuaEngine);
+ this._pandoraManager = (XUpdater.XGameRoot.GetComponent("XPandoraMgr") as IXPandoraMgr);
+ this._SirControl = (XUpdater.XGameRoot.GetComponent("XGameSirControl") as IXGameSirControl);
+ bool flag = this._SirControl != null;
+ if (flag)
+ {
+ this._SirControl.Init();
+ }
+ this.ABManager = XUpdater.XGameRoot.AddComponent<AssetBundleManager>();
+ this.ABManager.Init();
+ XSingleton<XDebug>.singleton.Init(this._platform, this._filelog_getter);
+ XSingleton<XCaching>.singleton.Init();
+ XSingleton<XLoadingUI>.singleton.Init();
+ XBinaryReader.Init();
+ UnityEngine.Object.DontDestroyOnLoad(XUpdater.XGameRoot);
+ return true;
+ }
+
+ public override void Uninit()
+ {
+ foreach (AssetBundle assetBundle in this._bundles.Values)
+ {
+ assetBundle.Unload(false);
+ }
+ this._assets.Clear();
+ this._persist_assets.Clear();
+ this._bundles.Clear();
+ this._res_list.Clear();
+ bool flag = this._video != null && this._video.isPlaying;
+ if (flag)
+ {
+ this._video.Stop();
+ }
+ this._phase = eUPdatePhase.xUP_Prepare;
+ this._update_done = false;
+ bool flag2 = this._fetch_version_network != null;
+ if (flag2)
+ {
+ this._fetch_version_network.Close();
+ }
+ UnityEngine.Object.Destroy(XUpdater.XGameRoot);
+ }
+
+ public void Clear()
+ {
+ foreach (KeyValuePair<uint, AssetBundle> keyValuePair in this._bundles)
+ {
+ AssetBundle value = keyValuePair.Value;
+ value.Unload(false);
+ }
+ this._bundles.Clear();
+ }
+
+ public void Update()
+ {
+ switch (this._phase)
+ {
+ case eUPdatePhase.xUP_Prepare:
+ {
+ bool flag = this.Preparing();
+ if (flag)
+ {
+ this._phase = eUPdatePhase.xUP_FetchVersion;
+ }
+ else
+ {
+ XSingleton<XLoadingUI>.singleton.SetStatus(XSingleton<XStringTable>.singleton.GetString("XUPDATE_ERROR_FETCHLOCALVERSIONERROR"), byte.MaxValue, byte.MaxValue, byte.MaxValue);
+ this.OnError();
+ }
+ break;
+ }
+ case eUPdatePhase.xUP_FetchVersion:
+ {
+ bool flag2 = !this._bFetchVersion;
+ if (flag2)
+ {
+ bool flag3 = this._fetch_version_network == null;
+ if (flag3)
+ {
+ this._fetch_version_network = new XFetchVersionNetwork();
+ }
+ XSingleton<XLoadingUI>.singleton.SetStatus(XSingleton<XStringTable>.singleton.GetString("XUPDATE_INFO_FETCHVERSION"), byte.MaxValue, byte.MaxValue, byte.MaxValue);
+ this._fetch_version_network.Init();
+ string host = XSingleton<XCaching>.singleton.VersionServer.Substring(0, XSingleton<XCaching>.singleton.VersionServer.LastIndexOf(':'));
+ string s = XSingleton<XCaching>.singleton.VersionServer.Substring(XSingleton<XCaching>.singleton.VersionServer.LastIndexOf(':') + 1);
+ bool flag4 = this._fetch_version_network.Connect(host, int.Parse(s));
+ if (flag4)
+ {
+ this._bFetchVersion = true;
+ this._fetch_version_time = Time.time;
+ }
+ else
+ {
+ XSingleton<XLoadingUI>.singleton.SetStatus(XSingleton<XStringTable>.singleton.GetString("XUPDATE_ERROR_FETCHVERSIONERROR"), byte.MaxValue, byte.MaxValue, byte.MaxValue);
+ XSingleton<XUpdater>.singleton.OnError();
+ this._fetch_version_network.Close();
+ }
+ }
+ else
+ {
+ bool flag5 = Time.time - this._fetch_version_time > 5f;
+ if (flag5)
+ {
+ XSingleton<XLoadingUI>.singleton.SetStatus(XSingleton<XStringTable>.singleton.GetString("XUPDATE_ERROR_FETCHVERSIONERROR"), byte.MaxValue, byte.MaxValue, byte.MaxValue);
+ XSingleton<XUpdater>.singleton.OnError();
+ this._fetch_version_network.Close();
+ }
+ }
+ break;
+ }
+ case eUPdatePhase.xUP_LoadVersion:
+ {
+ bool flag6 = !this._bFetchServer;
+ if (flag6)
+ {
+ this._cacheload_bundle.Clear();
+ this._download_bundle.Clear();
+ this._meta_bundle.Clear();
+ this._version_getter.ServerDownload(new HandleVersionDownload(this.OnVersionDownloaded), new HandleVersionLoaded(this.OnVersionLoaded));
+ }
+ this._bFetchServer = true;
+ break;
+ }
+ case eUPdatePhase.xUP_CompareVersion:
+ {
+ bool flag7 = this._comparer == null;
+ if (flag7)
+ {
+ this._comparer = this.VersionComparer();
+ }
+ else
+ {
+ bool flag8 = !this._comparer.MoveNext();
+ if (flag8)
+ {
+ this._comparer = null;
+ }
+ }
+ break;
+ }
+ case eUPdatePhase.xUP_DownLoadBundle:
+ {
+ bool flag9 = this._downloader == null;
+ if (flag9)
+ {
+ this._downloader = this.DownLoadBundles();
+ }
+ else
+ {
+ bool flag10 = !this._downloader.MoveNext();
+ if (flag10)
+ {
+ this._downloader = null;
+ this._phase = eUPdatePhase.xUP_ShowVersion;
+ }
+ }
+ break;
+ }
+ case eUPdatePhase.xUP_ShowVersion:
+ this.ShowVersionInfo(this._server, true);
+ break;
+ case eUPdatePhase.xUP_LaunchGame:
+ {
+ bool flag11 = this._launcher == null;
+ if (flag11)
+ {
+ this._launcher = this.LaunchGame();
+ }
+ else
+ {
+ bool flag12 = !this._launcher.MoveNext();
+ if (flag12)
+ {
+ this._launcher = null;
+ this.OnEnding();
+ }
+ }
+ break;
+ }
+ case eUPdatePhase.xUP_Finish:
+ {
+ bool flag13 = this._finish == null;
+ if (flag13)
+ {
+ this._finish = this.Finish();
+ }
+ else
+ {
+ bool flag14 = !this._finish.MoveNext();
+ if (flag14)
+ {
+ this._finish = null;
+ this._update_done = true;
+ XSingleton<XShell>.singleton.StartGame();
+ }
+ }
+ break;
+ }
+ }
+ XSingleton<XLoadingUI>.singleton.OnUpdate();
+ }
+
+ public void Begin()
+ {
+ this._update_done = false;
+ this._bFetchVersion = false;
+ this._bFetchServer = false;
+ bool flag = !XSingleton<XStringTable>.singleton.SyncInit();
+ if (flag)
+ {
+ this._log.Remove(0, this._log.Length);
+ this._log.Append("Error occurred when loading string table.");
+ XSingleton<XLoadingUI>.singleton.SetStatus(this._log.ToString(), byte.MaxValue, byte.MaxValue, byte.MaxValue);
+ XSingleton<XUpdater>.singleton.OnError();
+ }
+ else
+ {
+ bool flag2 = !this.CheckMemory();
+ if (flag2)
+ {
+ this._log.Remove(0, this._log.Length);
+ this._log.Append(XSingleton<XStringTable>.singleton.GetString("XUPDATE_INFO_EXCLUDE1GPHONE"));
+ XSingleton<XLoadingUI>.singleton.SetStatus(this._log.ToString(), byte.MaxValue, byte.MaxValue, byte.MaxValue);
+ XSingleton<XUpdater>.singleton.OnError();
+ }
+ else
+ {
+ bool flag3 = XSingleton<XCaching>.singleton.EnableCache();
+ if (flag3)
+ {
+ this._phase = eUPdatePhase.xUP_Prepare;
+ }
+ else
+ {
+ this._log.Remove(0, this._log.Length);
+ this._log.Append(XSingleton<XStringTable>.singleton.GetString("XUPDATE_ERROR_ACCESSDENIED"));
+ XSingleton<XLoadingUI>.singleton.SetStatus(this._log.ToString(), byte.MaxValue, byte.MaxValue, byte.MaxValue);
+ XSingleton<XUpdater>.singleton.OnError();
+ }
+ }
+ }
+ }
+
+ private IEnumerator Finish()
+ {
+ bool flag = this._server != null;
+ if (flag)
+ {
+ this._server.Bundles.Clear();
+ this._version = this._server.ToString();
+ }
+ this._server = null;
+ this._client = null;
+ this._buildin = null;
+ bool flag2 = this._need_play_cg && this._video != null;
+ if (flag2)
+ {
+ this._video.Play(false);
+ yield return null;
+ while (this._video.isPlaying)
+ {
+ yield return null;
+ }
+ }
+ UnityEngine.Object.DestroyObject(this._version_getter);
+ UnityEngine.Object.DestroyObject(this._bundle_getter);
+ yield break;
+ }
+
+ public void OnError()
+ {
+ this._phase = eUPdatePhase.xUP_Error;
+ }
+
+ public void DevStart()
+ {
+ this._phase = eUPdatePhase.xUP_ShowVersion;
+ }
+
+ public void OnRetry()
+ {
+ eUPdatePhase phase = this._phase;
+ if (phase != eUPdatePhase.xUP_DownLoadBundle)
+ {
+ if (phase != eUPdatePhase.xUP_Finish)
+ {
+ if (phase == eUPdatePhase.xUP_Error)
+ {
+ bool flag = this._server == null;
+ if (flag)
+ {
+ this.Begin();
+ }
+ }
+ }
+ else
+ {
+ bool isPlaying = this._video.isPlaying;
+ if (isPlaying)
+ {
+ this._video.Stop();
+ }
+ }
+ }
+ else
+ {
+ bool on_file_download_need_retry = this._on_file_download_need_retry;
+ if (on_file_download_need_retry)
+ {
+ this._on_file_download_retry = true;
+ }
+ }
+ }
+
+ private void OnEnding()
+ {
+ XSingleton<XLoadingUI>.singleton.LoadingOK = true;
+ this._download_bundle.Clear();
+ this._cacheload_bundle.Clear();
+ this._meta_bundle.Clear();
+ this._phase = eUPdatePhase.xUP_Ending;
+ }
+
+ public bool ContainRes(uint hash)
+ {
+ return this._res_list.ContainsKey(hash);
+ }
+
+ public UnityEngine.Object ResourceLoad(uint hash)
+ {
+ UnityEngine.Object result = null;
+ XResPackage xresPackage = null;
+ bool flag = this._res_list != null && this._res_list.TryGetValue(hash, out xresPackage);
+ if (flag)
+ {
+ bool flag2 = !this._persist_assets.TryGetValue(hash, out result);
+ if (flag2)
+ {
+ AssetBundle assetBundle = null;
+ uint key = XSingleton<XCommon>.singleton.XHash(xresPackage.bundle);
+ bool flag3 = !this._bundles.TryGetValue(key, out assetBundle);
+ if (flag3)
+ {
+ byte[] array = null;
+ bool flag4 = !this._persist_image.TryGetValue(key, out array);
+ if (flag4)
+ {
+ XBundleData data = null;
+ bool flag5 = this._assets.TryGetValue(key, out data);
+ if (!flag5)
+ {
+ return null;
+ }
+ array = XSingleton<XCaching>.singleton.LoadFile(XSingleton<XCaching>.singleton.GetLocalPath(data));
+ }
+ assetBundle = AssetBundle.LoadFromMemory(array);
+ this._bundles.Add(key, assetBundle);
+ }
+ string text = xresPackage.location.Substring(xresPackage.location.LastIndexOf('/') + 1);
+ result = assetBundle.LoadAsset(text, XUpdater.Ass.GetType(xresPackage.type));
+ }
+ }
+ return result;
+ }
+
+ private AsyncVersionProcessRequest OnVersionDownloaded(TextAsset text)
+ {
+ AsyncVersionProcessRequest avpr = new AsyncVersionProcessRequest();
+ XSingleton<XLoadingUI>.singleton.SetStatus(XSingleton<XStringTable>.singleton.GetString("XUPDATE_INFO_FETCHMANIFEST"), byte.MaxValue, byte.MaxValue, byte.MaxValue);
+ bool flag = text != null;
+ if (flag)
+ {
+ byte[] contents = text.bytes;
+ //!
+ new Thread((ThreadStart)delegate
+ {
+ avpr.IsCorrect = this.LoadVersion(contents);
+ avpr.IsDone = true;
+ }).Start();
+ }
+ else
+ {
+ avpr.IsDone = true;
+ avpr.IsCorrect = false;
+ }
+ return avpr;
+ }
+
+ private void OnVersionLoaded(bool correct)
+ {
+ if (correct)
+ {
+ this._phase = eUPdatePhase.xUP_CompareVersion;
+ }
+ else
+ {
+ this._log.Remove(0, this._log.Length);
+ this._log.Append(XSingleton<XStringTable>.singleton.GetString("XUPDATE_ERROR_MANIFESTERROR"));
+ XSingleton<XLoadingUI>.singleton.SetStatus(this._log.ToString(), byte.MaxValue, byte.MaxValue, byte.MaxValue);
+ XSingleton<XUpdater>.singleton.OnError();
+ }
+ }
+
+ private void OnBundleFetched(WWW www, byte[] bytes, XBundleData data, bool newdownload)
+ {
+ if (newdownload)
+ {
+ XSingleton<XDebug>.singleton.AddLog("Finished Download ", data.Name, null, null, null, null, XDebugColor.XDebug_None);
+ this._log.Remove(0, this._log.Length);
+ this._log.AppendFormat(XSingleton<XStringTable>.singleton.GetString("XUPDATE_INFO_DOWNLOAD_FILE_COMPLETE"), data.Name);
+ XSingleton<XLoadingUI>.singleton.SetStatus(this._log.ToString(), byte.MaxValue, byte.MaxValue, byte.MaxValue);
+ }
+ else
+ {
+ XSingleton<XDebug>.singleton.AddLog("Finished Extract ", data.Name, null, null, null, null, XDebugColor.XDebug_None);
+ this._log.Remove(0, this._log.Length);
+ this._log.AppendFormat(XSingleton<XStringTable>.singleton.GetString("XUPDATE_INFO_EXTRACTING_COMPLETE"), data.Name);
+ XSingleton<XLoadingUI>.singleton.SetStatus(this._log.ToString(), byte.MaxValue, byte.MaxValue, byte.MaxValue);
+ }
+ uint key = XSingleton<XCommon>.singleton.XHash(data.Name);
+ bool load = false;
+ this._bundle_data = data;
+ switch (this._bundle_data.Level)
+ {
+ case AssetLevel.Memory:
+ load = true;
+ break;
+ case AssetLevel.Image:
+ {
+ byte[] array = new byte[bytes.Length];
+ bytes.CopyTo(array, 0);
+ this._persist_image.Add(key, array);
+ break;
+ }
+ }
+ this._assets.Add(key, this._bundle_data);
+ this._bundle_getter.GetBundle(www, bytes, new HandleLoadBundle(this.OnBundleLoaded), load);
+ }
+
+ private void OnBundleLoaded(AssetBundle bundle)
+ {
+ bool flag = bundle != null;
+ if (flag)
+ {
+ this._bundles.Add(XSingleton<XCommon>.singleton.XHash(this._bundle_data.Name), bundle);
+ }
+ this._bundle_fetching = false;
+ }
+
+ private void OnAssetLoaded(XResPackage package, UnityEngine.Object asset)
+ {
+ uint key = XSingleton<XCommon>.singleton.XHash(package.location);
+ bool flag = asset != null;
+ if (flag)
+ {
+ bool flag2 = !this._persist_assets.ContainsKey(key);
+ if (flag2)
+ {
+ this._persist_assets.Add(key, asset);
+ }
+ else
+ {
+ this._persist_assets[key] = asset;
+ }
+ }
+ this._asset_loading = false;
+ }
+
+ private void UpdateLocalVersion(Stream s)
+ {
+ this._buildin = this.FetchBuildIn(s);
+ this._client = this.FetchBuildOut();
+ bool flag = this._buildin != null;
+ if (flag)
+ {
+ XSingleton<XDebug>.singleton.AddLog("BuildIn version: ", this._buildin.ToString(), null, null, null, null, XDebugColor.XDebug_None);
+ }
+ bool flag2 = this._client != null;
+ if (flag2)
+ {
+ XSingleton<XDebug>.singleton.AddLog("BuildOut version: ", this._client.ToString(), null, null, null, null, XDebugColor.XDebug_None);
+ }
+ this._need_play_cg = (this._client == null);
+ bool flag3 = this._client == null;
+ if (flag3)
+ {
+ this._client = new XVersionData(this._buildin);
+ bool flag4 = !XSingleton<XCaching>.singleton.CleanCache();
+ if (flag4)
+ {
+ this._log.Remove(0, this._log.Length);
+ this._log.Append(XSingleton<XStringTable>.singleton.GetString("XUPDATE_ERROR_DELETEDENIED"));
+ XSingleton<XLoadingUI>.singleton.SetStatus(this._log.ToString(), byte.MaxValue, byte.MaxValue, byte.MaxValue);
+ XSingleton<XUpdater>.singleton.OnError();
+ }
+ }
+ else
+ {
+ int num = this._client.CompareTo(this._buildin);
+ bool flag5 = num < 0 || this._buildin.Build_Version != this._client.Build_Version;
+ if (flag5)
+ {
+ this._need_play_cg = true;
+ this._client.VersionCopy(this._buildin);
+ bool flag6 = !XSingleton<XCaching>.singleton.CleanCache();
+ if (flag6)
+ {
+ this._log.Remove(0, this._log.Length);
+ this._log.Append(XSingleton<XStringTable>.singleton.GetString("XUPDATE_ERROR_DELETEDENIED"));
+ XSingleton<XLoadingUI>.singleton.SetStatus(this._log.ToString(), byte.MaxValue, byte.MaxValue, byte.MaxValue);
+ XSingleton<XUpdater>.singleton.OnError();
+ }
+ }
+ }
+ XSingleton<XDebug>.singleton.AddLog("Client version: ", this._client.ToString(), null, null, null, null, XDebugColor.XDebug_None);
+ }
+
+ private XVersionData FetchBuildIn(Stream s)
+ {
+ bool flag = s == null;
+ XVersionData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ StreamReader streamReader = new StreamReader(s);
+ string version = streamReader.ReadToEnd();
+ result = XVersionData.Convert2Version(version);
+ }
+ return result;
+ }
+
+ private XVersionData FetchBuildOut()
+ {
+ string localVersion = XVersion.GetLocalVersion();
+ XSingleton<XDebug>.singleton.AddLog("Local Version Path " + localVersion, null, null, null, null, null, XDebugColor.XDebug_None);
+ XVersionData result = null;
+ bool flag = File.Exists(localVersion);
+ if (flag)
+ {
+ byte[] buffer = this.XCryptography(File.ReadAllBytes(localVersion));
+ using (MemoryStream memoryStream = new MemoryStream(buffer))
+ {
+ XmlSerializer xmlSerializer = new XmlSerializer(typeof(XVersionData));
+ try
+ {
+ result = (xmlSerializer.Deserialize(memoryStream) as XVersionData);
+ }
+ catch (Exception ex)
+ {
+ result = null;
+ XSingleton<XDebug>.singleton.AddLog("Build Out Version Fetching FAILED! " + ex.Message, null, null, null, null, null, XDebugColor.XDebug_None);
+ }
+ finally
+ {
+ memoryStream.Close();
+ }
+ }
+ }
+ else
+ {
+ XSingleton<XDebug>.singleton.AddLog("Local Version Path " + localVersion + " not exists.", null, null, null, null, null, XDebugColor.XDebug_None);
+ }
+ return result;
+ }
+
+ private bool LoadVersion(byte[] text)
+ {
+ string a = BitConverter.ToString(text, 0, XUpdater.Md5Length);
+ string b = XSingleton<XCaching>.singleton.CalculateMD5(text, XUpdater.Md5Length, text.Length - XUpdater.Md5Length);
+ bool flag = a == b;
+ if (flag)
+ {
+ using (MemoryStream memoryStream = new MemoryStream(text, XUpdater.Md5Length, text.Length - XUpdater.Md5Length))
+ {
+ XmlSerializer xmlSerializer = new XmlSerializer(typeof(XVersionData));
+ this._server = (xmlSerializer.Deserialize(memoryStream) as XVersionData);
+ bool flag2 = this._server != null && this._server.Target_Platform == this._runtime_platform;
+ if (flag2)
+ {
+ XSingleton<XDebug>.singleton.AddLog("Server version: ", this._server.ToString(), null, null, null, null, XDebugColor.XDebug_None);
+ return true;
+ }
+ }
+ }
+ XSingleton<XDebug>.singleton.AddLog("Analysis Server version error!", null, null, null, null, null, XDebugColor.XDebug_None);
+ this._server = null;
+ return false;
+ }
+
+ private bool CheckMemory()
+ {
+ return true;
+ }
+
+ private bool Preparing()
+ {
+ Stream stream = null;
+ XSingleton<XDebug>.singleton.AddLog("Fetch local version...", null, null, null, null, null, XDebugColor.XDebug_None);
+ bool flag = (int)Application.platform == 8;
+ if (flag)
+ {
+ stream = XSingleton<XResourceLoaderMgr>.singleton.ReadText("ios-version", ".bytes", false);
+ }
+ else
+ {
+ bool flag2 = (int)Application.platform == 11;
+ if (flag2)
+ {
+ stream = XSingleton<XResourceLoaderMgr>.singleton.ReadText("android-version", ".bytes", false);
+ }
+ }
+ bool flag3 = stream != null;
+ bool result;
+ if (flag3)
+ {
+ this.UpdateLocalVersion(stream);
+ XSingleton<XResourceLoaderMgr>.singleton.ClearStream(stream);
+ result = true;
+ }
+ else
+ {
+ result = (XUpdater.LaunchMode == XLaunchMode.Dev);
+ }
+ return result;
+ }
+
+ private IEnumerator VersionComparer()
+ {
+ int compare = this._client.CompareTo(this._server);
+ this._update_pakcage_size = 0UL;
+ bool flag = compare > 0;
+ if (flag)
+ {
+ this._server = this._client;
+ this._download_prepare = null;
+ this.DownLoadConfirmed(false);
+ }
+ else
+ {
+ bool flag2 = compare == 0 || (compare < 0 && this._client.CanUpdated(this._server));
+ if (flag2)
+ {
+ bool flag3 = this._download_prepare == null;
+ if (flag3)
+ {
+ this._download_prepare = this.DownLoadPrepare();
+ }
+ while (this._download_prepare.MoveNext())
+ {
+ yield return null;
+ }
+ this._download_prepare = null;
+ this.DownLoadConfirmed(compare != 0);
+ }
+ else
+ {
+ XSingleton<XLoadingUI>.singleton.SetStatus(XSingleton<XStringTable>.singleton.GetString("XUPDATE_ERROR_VERSIONNOTMATCH"), byte.MaxValue, byte.MaxValue, byte.MaxValue);
+ this.ShowVersionInfo(this._client, false);
+ Texture tex = null;
+ bool flag4 = !this._is_download_update_pic;
+ if (flag4)
+ {
+ WWW www = new WWW("https://image.lzgjx.qq.com/sharingicon/updateimg.jpg");
+ while (!www.isDone)
+ {
+ yield return null;
+ }
+ bool flag5 = string.IsNullOrEmpty(www.error);
+ if (flag5)
+ {
+ tex = www.texture;
+ }
+ www.Dispose();
+ this._is_download_update_pic = true;
+ www = null;
+ }
+ this._phase = eUPdatePhase.xUP_Error;
+ XSingleton<XLoadingUI>.singleton.SetDownLoad(new XLoadingUI.OnSureCallBack(this.ToAppStore), tex);
+ tex = null;
+ }
+ }
+ yield break;
+ }
+
+ private void ToAppStore()
+ {
+ RuntimePlatform platform = Application.platform;
+ if ((int)platform != 8)
+ {
+ if ((int)platform == 11)
+ {
+ for (int i = 0; i < this._client.Res.Count; i++)
+ {
+ bool flag = this._client.Res[i].location == "Table/StringTable";
+ if (flag)
+ {
+ XBundleData specificBundle = this._client.GetSpecificBundle(this._client.Res[i].bundle);
+ string localPath = XSingleton<XCaching>.singleton.GetLocalPath(specificBundle);
+ try
+ {
+ byte[] array = File.ReadAllBytes(localPath);
+ bool flag2 = array != null;
+ if (flag2)
+ {
+ AssetBundle assetBundle = AssetBundle.LoadFromMemory(array);
+ bool flag3 = assetBundle != null;
+ if (flag3)
+ {
+ TextAsset textAsset = assetBundle.LoadAsset("StringTable", typeof(TextAsset)) as TextAsset;
+ bool flag4 = textAsset != null;
+ if (flag4)
+ {
+ bool flag5 = !XSingleton<XStringTable>.singleton.ReInit(textAsset);
+ if (flag5)
+ {
+ XSingleton<XStringTable>.singleton.SyncInit();
+ }
+ }
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ XSingleton<XDebug>.singleton.AddErrorLog("ToAndroidAppStore: ", ex.Message, null, null, null, null);
+ }
+ break;
+ }
+ }
+ string @string = XSingleton<XStringTable>.singleton.GetString("XUPDATE_ERROR_VERSIONNOTMATCH_ANDROID_URL");
+ XSingleton<XDebug>.singleton.AddLog("AndroidAppStore Url: ", @string, null, null, null, null, XDebugColor.XDebug_None);
+ Application.OpenURL(@string);
+ }
+ }
+ else
+ {
+ for (int j = 0; j < this._client.Res.Count; j++)
+ {
+ bool flag6 = this._client.Res[j].location == "Table/StringTable";
+ if (flag6)
+ {
+ XBundleData specificBundle2 = this._client.GetSpecificBundle(this._client.Res[j].bundle);
+ string localPath2 = XSingleton<XCaching>.singleton.GetLocalPath(specificBundle2);
+ try
+ {
+ byte[] array2 = File.ReadAllBytes(localPath2);
+ bool flag7 = array2 != null;
+ if (flag7)
+ {
+ AssetBundle assetBundle2 = AssetBundle.LoadFromMemory(array2);
+ bool flag8 = assetBundle2 != null;
+ if (flag8)
+ {
+ TextAsset textAsset2 = assetBundle2.LoadAsset("StringTable", typeof(TextAsset)) as TextAsset;
+ bool flag9 = textAsset2 != null;
+ if (flag9)
+ {
+ bool flag10 = !XSingleton<XStringTable>.singleton.ReInit(textAsset2);
+ if (flag10)
+ {
+ XSingleton<XStringTable>.singleton.SyncInit();
+ }
+ }
+ }
+ }
+ }
+ catch (Exception ex2)
+ {
+ XSingleton<XDebug>.singleton.AddErrorLog("ToAppStore: ", ex2.Message, null, null, null, null);
+ }
+ break;
+ }
+ }
+ string string2 = XSingleton<XStringTable>.singleton.GetString("XUPDATE_ERROR_VERSIONNOTMATCH_URL");
+ XSingleton<XDebug>.singleton.AddLog("AppStore Url: ", string2, null, null, null, null, XDebugColor.XDebug_None);
+ Application.OpenURL(string2);
+ }
+ }
+
+ private void DownLoadConfirmedCallBack()
+ {
+ this._phase = eUPdatePhase.xUP_DownLoadBundle;
+ }
+
+ private void DownLoadCancelledCallBack()
+ {
+ this._phase = eUPdatePhase.xUP_Error;
+ XSingleton<XLoadingUI>.singleton.SetStatus("", byte.MaxValue, byte.MaxValue, byte.MaxValue);
+ this.ShowVersionInfo(this._client, false);
+ }
+
+ private void DownLoadConfirmed(bool updated)
+ {
+ if (updated)
+ {
+ bool flag = this._update_pakcage_size < 1048576UL;
+ if (flag)
+ {
+ this.DownLoadConfirmedCallBack();
+ }
+ else
+ {
+ XSingleton<XLoadingUI>.singleton.SetDialog(this._update_pakcage_size, new XLoadingUI.OnSureCallBack(this.DownLoadConfirmedCallBack), new XLoadingUI.OnSureCallBack(this.DownLoadCancelledCallBack));
+ this._phase = eUPdatePhase.xUP_DownLoadConfirm;
+ }
+ }
+ else
+ {
+ this._phase = eUPdatePhase.xUP_DownLoadBundle;
+ }
+ }
+
+ private IEnumerator DownLoadPrepare()
+ {
+ int num;
+ for (int i = 0; i < this._server.Res.Count; i = num + 1)
+ {
+ bool flag = !this._buildin.NeedDownload(this._server.Res[i].bundle);
+ if (!flag)
+ {
+ XBundleData bundle = this._server.GetSpecificBundle(this._server.Res[i].bundle);
+ bool flag2 = bundle == null;
+ if (flag2)
+ {
+ XSingleton<XDebug>.singleton.AddLog("Bundle ", this._server.Res[i].bundle, " is missing in sever bundle set.", null, null, null, XDebugColor.XDebug_None);
+ }
+ else
+ {
+ bool flag3 = this._cacheload_bundle.Contains(bundle);
+ if (!flag3)
+ {
+ bool flag4 = this._download_bundle.Contains(bundle);
+ if (!flag4)
+ {
+ AsyncCachedRequest acr = XSingleton<XCaching>.singleton.IsBundleCached(bundle, this._server.MD5_Size);
+ while (!acr.IsDone)
+ {
+ yield return null;
+ }
+ bool flag5 = !acr.Cached && acr.MaybeCached;
+ if (flag5)
+ {
+ XBundleData clientData = null;
+ foreach (XBundleData data in this._client.Bundles)
+ {
+ bool flag6 = data.Name == bundle.Name;
+ if (flag6)
+ {
+ clientData = data;
+ break;
+ }
+ //data = null;
+ }
+ List<XBundleData>.Enumerator enumerator = default(List<XBundleData>.Enumerator);
+ acr.Cached = (clientData != null && clientData.MD5 == bundle.MD5);
+ clientData = null;
+ }
+ XSingleton<XDebug>.singleton.AddLog("Bundle ", bundle.Name, " cached is ", acr.Cached.ToString(), null, null, XDebugColor.XDebug_None);
+ bool cached = acr.Cached;
+ if (cached)
+ {
+ this._cacheload_bundle.Add(bundle);
+ }
+ else
+ {
+ this._download_bundle.Add(bundle);
+ this._update_pakcage_size += (ulong)bundle.Size;
+ }
+ bundle = null;
+ acr = null;
+ }
+ }
+ }
+ }
+ num = i;
+ }
+ this.MetaPrepare(this._server.AB);
+ this.MetaPrepare(this._server.Scene);
+ this.MetaPrepare(this._server.FMOD);
+ yield break;
+ }
+
+ private void MetaPrepare(List<XMetaResPackage> meta)
+ {
+ bool flag = this._platform != null && !this._platform.IsPublish();
+ for (int i = 0; i < meta.Count; i++)
+ {
+ bool flag2 = !this._buildin.NeedDownload(meta[i].bundle) || !this._client.NeedDownload(meta[i].bundle);
+ if (!flag2)
+ {
+ bool flag3 = !this._meta_bundle.Contains(meta[i]);
+ if (flag3)
+ {
+ this._meta_bundle.Add(meta[i]);
+ }
+ bool flag4 = flag;
+ if (flag4)
+ {
+ XSingleton<XDebug>.singleton.AddLog("Meta ", meta[i].download, " is prepared to downloading...", null, null, null, XDebugColor.XDebug_None);
+ }
+ this._update_pakcage_size += (ulong)meta[i].Size;
+ }
+ }
+ }
+
+ private IEnumerator DownLoadBundles()
+ {
+ bool log = this._platform != null && !this._platform.IsPublish();
+ int total = this._download_bundle.Count + this._cacheload_bundle.Count + this._meta_bundle.Count;
+ int processed = 0;
+ int num;
+ for (int i = 0; i < this._download_bundle.Count; i = num + 1)
+ {
+ while (this._bundle_fetching)
+ {
+ yield return null;
+ }
+ bool flag = log;
+ if (flag)
+ {
+ XSingleton<XDebug>.singleton.AddLog("Updating ", this._download_bundle[i].Name, " ... ", processed.ToString(), "/", total.ToString(), XDebugColor.XDebug_None);
+ }
+ this._bundle_fetching = true;
+ num = processed + 1;
+ processed = num;
+ XSingleton<XCaching>.singleton.Download(this._download_bundle[i], new HandleFetchBundle(this.OnBundleFetched), (float)processed / (float)total);
+ num = i;
+ }
+ for (int j = 0; j < this._cacheload_bundle.Count; j = num + 1)
+ {
+ while (this._bundle_fetching)
+ {
+ yield return null;
+ }
+ bool flag2 = log;
+ if (flag2)
+ {
+ XSingleton<XDebug>.singleton.AddLog("Extracting ", this._cacheload_bundle[j].Name, " ... ", processed.ToString(), "/", total.ToString(), XDebugColor.XDebug_None);
+ }
+ this._bundle_fetching = true;
+ num = processed + 1;
+ processed = num;
+ bool flag3 = (int)Application.platform == 8;
+ if (flag3)
+ {
+ while (!XSingleton<XCaching>.singleton.Extract(this._cacheload_bundle[j], new HandleFetchBundle(this.OnBundleFetched), (float)processed / (float)total))
+ {
+ yield return null;
+ }
+ }
+ else
+ {
+ XSingleton<XCaching>.singleton.Extract(this._cacheload_bundle[j], new HandleFetchBundle(this.OnBundleFetched), (float)processed / (float)total);
+ }
+ num = j;
+ }
+ while (this._bundle_fetching)
+ {
+ yield return null;
+ }
+ for (int k = 0; k < this._meta_bundle.Count; k = num + 1)
+ {
+ num = processed + 1;
+ processed = num;
+ AsyncWriteRequest awr = XSingleton<XCaching>.singleton.Download(this._meta_bundle[k].download, this._meta_bundle[k].Size, (float)processed / (float)total);
+ bool flag4 = log;
+ if (flag4)
+ {
+ XSingleton<XDebug>.singleton.AddLog("Download meta ", this._meta_bundle[k].download, " ... ", processed.ToString(), "/", total.ToString(), XDebugColor.XDebug_None);
+ }
+ while (!awr.IsDone)
+ {
+ bool hasError = awr.HasError;
+ if (hasError)
+ {
+ bool on_file_download_retry = this._on_file_download_retry;
+ if (on_file_download_retry)
+ {
+ this._on_file_download_retry = false;
+ this._on_file_download_need_retry = false;
+ num = k;
+ k = num - 1;
+ num = processed;
+ processed = num - 1;
+ this._log.Length = 0;
+ this._log.Append(XSingleton<XStringTable>.singleton.GetString("XUPDATE_INFO_RETRY"));
+ XSingleton<XLoadingUI>.singleton.SetStatus(this._log.ToString(), byte.MaxValue, byte.MaxValue, byte.MaxValue);
+ yield return null;
+ break;
+ }
+ this._on_file_download_need_retry = true;
+ this._log.Length = 0;
+ this._log.AppendFormat(XSingleton<XStringTable>.singleton.GetString("XUPDATE_ERROR_DOWNLOADRESFAILED_AND_RETRY"), awr.Name);
+ XSingleton<XLoadingUI>.singleton.SetStatus(this._log.ToString(), byte.MaxValue, byte.MaxValue, byte.MaxValue);
+ yield return null;
+ }
+ else
+ {
+ yield return null;
+ }
+ }
+ awr = null;
+ num = k;
+ }
+ for (int l = 0; l < this._server.Res.Count; l = num + 1)
+ {
+ bool flag5 = this.ProcessAssets(this._server.Res[l]);
+ if (flag5)
+ {
+ bool flag6 = this._server.Res[l].rtype != ResourceType.Script;
+ if (flag6)
+ {
+ uint hash = XSingleton<XCommon>.singleton.XHash(this._server.Res[l].location);
+ this._res_list.Add(hash, this._server.Res[l]);
+ }
+ this._log.Remove(0, this._log.Length);
+ this._log.AppendFormat(XSingleton<XStringTable>.singleton.GetString("XUPDATE_INFO_PRELOADING"), ((float)l / (float)this._server.Res.Count * 100f).ToString("F0"));
+ XSingleton<XLoadingUI>.singleton.SetStatus(this._log.ToString(), byte.MaxValue, byte.MaxValue, byte.MaxValue);
+ bool flag7 = l << 30 == 0;
+ if (flag7)
+ {
+ yield return null;
+ }
+ }
+ num = l;
+ }
+ AsyncLogRequest alr = this.LogNewVersion();
+ while (!alr.IsDone)
+ {
+ Thread.Sleep(1);
+ }
+ this.XPlatform.SetNoBackupFlag(XVersion.GetLocalVersion());
+ yield break;
+ }
+
+ private AsyncLogRequest LogNewVersion()
+ {
+ AsyncLogRequest alr = new AsyncLogRequest();
+ bool flag = this._server != this._client;
+ if (flag)
+ {
+ new Thread((ThreadStart)delegate
+ {
+ using (MemoryStream memoryStream = new MemoryStream())
+ {
+ XmlSerializer xmlSerializer = new XmlSerializer(typeof(XVersionData));
+ XmlSerializerNamespaces xmlSerializerNamespaces = new XmlSerializerNamespaces();
+ xmlSerializerNamespaces.Add(string.Empty, string.Empty);
+ xmlSerializer.Serialize(memoryStream, this._server, xmlSerializerNamespaces);
+ File.WriteAllBytes(XVersion.GetLocalVersion(), this.XCryptography(memoryStream.ToArray()));
+ }
+ alr.IsDone = true;
+ }).Start();
+ }
+ else
+ {
+ alr.IsDone = true;
+ }
+ return alr;
+ }
+
+ private void ShowVersionInfo(XVersionData data, bool launch = true)
+ {
+ bool flag = data != null;
+ if (flag)
+ {
+ this._log.Remove(0, this._log.Length);
+ this._log.Append("v").Append(data.ToString());
+ XSingleton<XLoadingUI>.singleton.SetVersion(this._log.ToString());
+ }
+ else
+ {
+ XSingleton<XLoadingUI>.singleton.SetVersion("Dev 0.0.0");
+ }
+ if (launch)
+ {
+ this._phase = eUPdatePhase.xUP_LaunchGame;
+ }
+ }
+
+ private bool ProcessAssets(XResPackage res)
+ {
+ AssetBundle assetBundle = null;
+ bool flag = this._bundles.TryGetValue(XSingleton<XCommon>.singleton.XHash(res.bundle), out assetBundle);
+ bool result;
+ if (flag)
+ {
+ string text = res.location.Substring(res.location.LastIndexOf('/') + 1);
+ ResourceType rtype = res.rtype;
+ if (rtype != ResourceType.Assets)
+ {
+ if (rtype == ResourceType.Script)
+ {
+ TextAsset textAsset = assetBundle.LoadAsset(text, XUpdater.Ass.GetType(res.type)) as TextAsset;
+ this._script = textAsset.bytes;
+ assetBundle.Unload(false);
+ this._bundles.Remove(XSingleton<XCommon>.singleton.XHash(res.bundle));
+ }
+ }
+ else
+ {
+ this.OnAssetLoaded(res, assetBundle.LoadAsset(text, XUpdater.Ass.GetType(res.type)));
+ }
+ result = true;
+ }
+ else
+ {
+ result = false;
+ }
+ return result;
+ }
+
+ private IEnumerator AsyncProcessAssets(XResPackage package, AssetBundle bundle)
+ {
+ string name = package.location.Substring(package.location.LastIndexOf('/') + 1);
+ this._asset_loading = true;
+ this._bundle_getter.GetAsset(bundle, package, new HandleLoadAsset(this.OnAssetLoaded));
+ while (this._asset_loading)
+ {
+ yield return null;
+ }
+ yield break;
+ }
+
+ private IEnumerator LaunchGame()
+ {
+ XSingleton<XLoadingUI>.singleton.SetStatus(XSingleton<XStringTable>.singleton.GetString("XUPDATE_INFO_LOADING"), byte.MaxValue, byte.MaxValue, byte.MaxValue);
+ yield return null;
+ this.ABManager.Init();
+ this.XPlatform.ReloadFMOD();
+ AsyncAssemblyRequest aar = new AsyncAssemblyRequest();
+ ResourceRequest rrq = null;
+ bool flag = (int) Application.platform == 11;
+ if (flag)
+ {
+ string path = Application.persistentDataPath + "/XMainClient.bytes";
+ bool flag2 = File.Exists(path);
+ if (flag2)
+ {
+ this._script = File.ReadAllBytes(path);
+ }
+ bool flag3 = this._script == null && (int)Application.platform == 11;
+ if (flag3)
+ {
+ rrq = Resources.LoadAsync("XMainClient", typeof(TextAsset));
+ yield return rrq;
+ this._script = (rrq.asset as TextAsset).bytes;
+ }
+ path = null;
+ }
+ RuntimePlatform platform = Application.platform;
+ if ((int)platform != 8)
+ {
+ if ((int)platform != 11)
+ {
+ }
+ //!
+ // aar.Main = ((this._script == null) ? Assembly.Load("XMainClient") : Assembly.Load(this._script));
+ }
+ else
+ {
+// aar.Main = Assembly.Load("XMainClient");
+ }
+ // XSingleton<XShell>.singleton.MakeEntrance(aar.Main);
+ XSingleton<XShell>.singleton._MakeEntrance();
+
+ bool flag4 = rrq != null && rrq.asset != null;
+ if (flag4)
+ {
+ Resources.UnloadAsset(rrq.asset);
+ }
+ this._script = null;
+ this._log.Remove(0, this._log.Length);
+ this._log.Append(XSingleton<XStringTable>.singleton.GetString("XUPDATE_INFO_LAUNCHING"));
+ XSingleton<XLoadingUI>.singleton.SetStatus(this._log.ToString(), byte.MaxValue, byte.MaxValue, byte.MaxValue);
+ yield return null;
+ XSingleton<XShell>.singleton.PreLaunch();
+ while (!XSingleton<XShell>.singleton.Launched())
+ {
+ yield return null;
+ XSingleton<XShell>.singleton.Launch();
+ }
+ this.XLuaEngine.InitLua();
+ yield break;
+ }
+
+ private byte[] XCryptography(byte[] bs)
+ {
+ for (int i = 0; i < bs.Length; i++)
+ {
+ bs[i] ^= 154;
+ }
+ return bs;
+ }
+
+ private string PatchPrefix()
+ {
+ XLaunchMode launchMode = XUpdater.LaunchMode;
+ string result;
+ if (launchMode != XLaunchMode.Live)
+ {
+ if (launchMode != XLaunchMode.PreProduct)
+ {
+ if (launchMode != XLaunchMode.Dev)
+ {
+ result = "Patch/Live/";
+ }
+ else
+ {
+ result = "Patch/Dev/";
+ }
+ }
+ else
+ {
+ result = "Patch/PreProduct/";
+ }
+ }
+ else
+ {
+ result = "Patch/Live/";
+ }
+ return result;
+ }
+
+ private void GetLaunchMode()
+ {
+ XUpdater._launch_mode = XLaunchMode.Dev;
+ }
+
+ public void PlayCG(object o = null)
+ {
+ this._video.Play(false);
+ }
+
+ public void SetServerVersion(string data)
+ {
+ string b = "";
+ bool flag = this._buildin != null;
+ if (flag)
+ {
+ b = this._buildin.Build_Version.ToString();
+ }
+ string[] array = data.Split(new char[]
+ {
+ '|'
+ });
+ RuntimePlatform platform = Application.platform;
+ if ((int)platform != 8)
+ {
+ if ((int)platform == 11)
+ {
+ this._target_version = array[1];
+ try
+ {
+ bool flag2 = array.Length > 4;
+ if (flag2)
+ {
+ string[] array2 = array[4].Split(new char[]
+ {
+ ':'
+ });
+ for (int i = 0; i < array2.Length; i++)
+ {
+ string[] array3 = array2[i].Split(new char[]
+ {
+ '.'
+ });
+ bool flag3 = array3.Length > 1 && array3[1] == b;
+ if (flag3)
+ {
+ this._target_version = array2[i];
+ }
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ XSingleton<XDebug>.singleton.AddErrorLog("GetServer ExData Error!!! " + ex.Message, null, null, null, null, null);
+ }
+ }
+ }
+ else
+ {
+ this._target_version = array[0];
+ try
+ {
+ bool flag4 = array.Length > 3;
+ if (flag4)
+ {
+ string[] array4 = array[3].Split(new char[]
+ {
+ ':'
+ });
+ for (int j = 0; j < array4.Length; j++)
+ {
+ string[] array5 = array4[j].Split(new char[]
+ {
+ '.'
+ });
+ bool flag5 = array5.Length > 1 && array5[1] == b;
+ if (flag5)
+ {
+ this._target_version = array4[j];
+ }
+ }
+ }
+ }
+ catch (Exception ex2)
+ {
+ XSingleton<XDebug>.singleton.AddErrorLog("GetServer ExData Error!!! " + ex2.Message, null, null, null, null, null);
+ }
+ }
+ try
+ {
+ bool flag6 = array.Length > 2;
+ if (flag6)
+ {
+ this._need_check_file = (array[2] == "1");
+ }
+ }
+ catch (Exception ex3)
+ {
+ XSingleton<XDebug>.singleton.AddErrorLog("GetServer CheckFile Flag Error!!! " + ex3.Message, null, null, null, null, null);
+ }
+ XSingleton<XDebug>.singleton.AddGreenLog(data, null, null, null, null, null);
+ this._fetch_version_network.Close();
+ this._phase = eUPdatePhase.xUP_LoadVersion;
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XUpdater.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XUpdater.cs.meta new file mode 100644 index 00000000..5c15329c --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XUpdater.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f2420f6e29a73574bb6c20d4c46e16fa +timeCreated: 1611465807 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XVersion.cs b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XVersion.cs new file mode 100644 index 00000000..6c9759de --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XVersion.cs @@ -0,0 +1,174 @@ +using System;
+using System.Collections;
+using System.IO;
+using System.Threading;
+using UnityEngine;
+using XUtliPoolLib;
+
+namespace XUpdater
+{
+ internal sealed class XVersion : MonoBehaviour
+ {
+ public static string VERSION_FILE
+ {
+ get
+ {
+ return string.Format("manifest.{0}.assetbundle", XSingleton<XUpdater>.singleton.TargetVersion.ToString());
+ }
+ }
+
+ public static readonly string LOCAL_VERSION_FILE = "manifest.asset";
+
+ private WWW _server_Version = null;
+
+ private uint _time_out_token = 0u;
+
+ private delegate void HandleFinishDownload(WWW www, string error);
+
+ public static string GetLocalVersion()
+ {
+ return XSingleton<XCaching>.singleton.UpdatePath + XVersion.LOCAL_VERSION_FILE;
+ }
+
+ public void ServerDownload(HandleVersionDownload callback1, HandleVersionLoaded callback2)
+ {
+ base.StopAllCoroutines();
+ string text = XSingleton<XCaching>.singleton.HostUrl + XSingleton<XUpdater>.singleton.Platform;
+ XSingleton<XLoadingUI>.singleton.SetStatus(XSingleton<XStringTable>.singleton.GetString("XUPDATE_INFO_CONNECTING"), byte.MaxValue, byte.MaxValue, byte.MaxValue);
+ XSingleton<XDebug>.singleton.AddLog("connecting to update server: ", text, null, null, null, null, XDebugColor.XDebug_None);
+ this._time_out_token = XSingleton<XTimerMgr>.singleton.SetTimer(5f, new XTimerMgr.ElapsedEventHandler(this.OnTimeOut), null);
+ base.StartCoroutine(this.DownloadVersion(XSingleton<XCaching>.singleton.MakeToken(text + XVersion.VERSION_FILE), callback1, callback2));
+ }
+
+ private IEnumerator DownloadVersion(string url, HandleVersionDownload callback1, HandleVersionLoaded callback2)
+ {
+ this._server_Version = new WWW(url);
+ yield return this._server_Version;
+ XSingleton<XLoadingUI>.singleton.SetStatus(XSingleton<XStringTable>.singleton.GetString("XUPDATE_INFO_CHECKUPDATING"), byte.MaxValue, byte.MaxValue, byte.MaxValue);
+ XSingleton<XTimerMgr>.singleton.KillTimer(this._time_out_token);
+ bool flag = this._server_Version != null;
+ if (flag)
+ {
+ bool flag2 = string.IsNullOrEmpty(this._server_Version.error);
+ if (flag2)
+ {
+ bool flag3 = callback1 != null;
+ if (flag3)
+ {
+ AssetBundle ab = this._server_Version.assetBundle;
+ bool flag4 = ab == null;
+ if (flag4)
+ {
+ XSingleton<XDebug>.singleton.AddErrorLog("load server manifest bundle error.", null, null, null, null, null);
+ XSingleton<XLoadingUI>.singleton.SetStatus(XSingleton<XStringTable>.singleton.GetString("XUPDATE_ERROR_FETCHMANIFESTERROR"), byte.MaxValue, byte.MaxValue, byte.MaxValue);
+ XSingleton<XUpdater>.singleton.OnError();
+ }
+ else
+ {
+ UnityEngine.Object asset = ab.LoadAsset("manifest", typeof(TextAsset));
+ bool flag5 = asset == null;
+ if (flag5)
+ {
+ XSingleton<XDebug>.singleton.AddErrorLog("load server manifest bundle error.", null, null, null, null, null);
+ XSingleton<XLoadingUI>.singleton.SetStatus(XSingleton<XStringTable>.singleton.GetString("XUPDATE_ERROR_FETCHMANIFESTERROR"), byte.MaxValue, byte.MaxValue, byte.MaxValue);
+ XSingleton<XUpdater>.singleton.OnError();
+ }
+ else
+ {
+ AsyncVersionProcessRequest avpr = callback1(asset as TextAsset);
+ while (!avpr.IsDone)
+ {
+ Thread.Sleep(1);
+ }
+ bool flag6 = callback2 != null;
+ if (flag6)
+ {
+ callback2(avpr.IsCorrect);
+ }
+ ab.Unload(false);
+ avpr = null;
+ }
+ asset = null;
+ }
+ ab = null;
+ }
+ }
+ else
+ {
+ bool flag7 = XUpdater.LaunchMode == XLaunchMode.Dev;
+ if (flag7)
+ {
+ XSingleton<XUpdater>.singleton.DevStart();
+ }
+ else
+ {
+ XSingleton<XDebug>.singleton.AddErrorLog(this._server_Version.error, null, null, null, null, null);
+ XSingleton<XLoadingUI>.singleton.SetStatus(XSingleton<XStringTable>.singleton.GetString("XUPDATE_ERROR_FETCHMANIFESTERROR"), byte.MaxValue, byte.MaxValue, byte.MaxValue);
+ XSingleton<XUpdater>.singleton.OnError();
+ }
+ }
+ this._server_Version.Dispose();
+ this._server_Version = null;
+ }
+ else
+ {
+ XSingleton<XDebug>.singleton.AddErrorLog("ERROR: _server_Version is NULL!", null, null, null, null, null);
+ XSingleton<XLoadingUI>.singleton.SetStatus(XSingleton<XStringTable>.singleton.GetString("XUPDATE_ERROR_FETCHMANIFESTERROR"), byte.MaxValue, byte.MaxValue, byte.MaxValue);
+ XSingleton<XUpdater>.singleton.OnError();
+ }
+ yield break;
+ }
+
+ private IEnumerator LocalDownload(XVersion.HandleFinishDownload callback)
+ {
+ string path = Application.persistentDataPath + XVersion.VERSION_FILE;
+ bool flag = !File.Exists(path);
+ if (flag)
+ {
+ bool flag2 = callback != null;
+ if (flag2)
+ {
+ callback(null, null);
+ }
+ }
+ else
+ {
+ string local_location = "file://" + path;
+ WWW localVersion = new WWW(local_location);
+ yield return localVersion;
+ bool flag3 = callback != null;
+ if (flag3)
+ {
+ callback(localVersion, localVersion.error);
+ }
+ localVersion.Dispose();
+ localVersion = null;
+ local_location = null;
+ localVersion = null;
+ }
+ yield break;
+ }
+
+ private void OnTimeOut(object o)
+ {
+ bool flag = XUpdater.LaunchMode == XLaunchMode.Dev;
+ if (flag)
+ {
+ XSingleton<XUpdater>.singleton.DevStart();
+ bool flag2 = (int)Application.platform == 7 || Application.platform == 0;
+ if (flag2)
+ {
+ XSingleton<XDebug>.singleton.AddErrorLog("Connect to update server timeout...", null, null, null, null, null);
+ }
+ }
+ else
+ {
+ XSingleton<XLoadingUI>.singleton.SetStatus(XSingleton<XStringTable>.singleton.GetString("XUPDATE_ERROR_CANNOTCONNECTTOSERVER"), byte.MaxValue, byte.MaxValue, byte.MaxValue);
+ XSingleton<XUpdater>.singleton.OnError();
+ }
+ base.StopAllCoroutines();
+ this._server_Version.Dispose();
+ this._server_Version = null;
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XVersion.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XVersion.cs.meta new file mode 100644 index 00000000..4c400128 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XVersion.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: dc1c1d77f6956704f90eda9af3c6ef9b +timeCreated: 1611465795 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XVersionData.cs b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XVersionData.cs new file mode 100644 index 00000000..714d2189 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XVersionData.cs @@ -0,0 +1,287 @@ +using System;
+using System.Collections.Generic;
+using System.Text.RegularExpressions;
+using XUtliPoolLib;
+
+namespace XUpdater
+{
+ [Serializable]
+ public class XVersionData : IComparable<XVersionData>
+ {
+ public bool HasRCVersion
+ {
+ get
+ {
+ return this.rc_Build_Version > 0u || this.rc_Minor_Version > 0u;
+ }
+ }
+
+ public bool IsNewly
+ {
+ get
+ {
+ return this.Build_Version == 0u && this.Minor_Version == 0u;
+ }
+ }
+
+ public uint Major_Version
+ {
+ get
+ {
+ return this._major_version;
+ }
+ }
+
+ private static readonly string pattern = "^(\\d+).(\\d+).(\\d+)(.(\\d+)p(\\d+))?\\b";
+
+ private static Regex r = new Regex(XVersionData.pattern);
+
+ private uint _major_version;
+
+ public uint Build_Version = 0u;
+
+ public uint Minor_Version = 0u;
+
+ public uint rc_Build_Version = 0u;
+
+ public uint rc_Minor_Version = 0u;
+
+ public uint MD5_Size = 1048576u;
+
+ public BuildTarget Target_Platform = BuildTarget.Unknown;
+
+ public List<XBundleData> Bundles = new List<XBundleData>();
+
+ public List<XResPackage> Res = new List<XResPackage>();
+
+ public List<XMetaResPackage> AB = new List<XMetaResPackage>();
+
+ public List<XMetaResPackage> Scene = new List<XMetaResPackage>();
+
+ public List<XMetaResPackage> FMOD = new List<XMetaResPackage>();
+
+ public XVersionData()
+ {
+ this._major_version = XUpdater.Major_Version;
+ }
+
+ public XVersionData(uint major)
+ {
+ this._major_version = major;
+ }
+
+ public XVersionData(XVersionData rhs) : this()
+ {
+ this.VersionCopy(rhs);
+ }
+
+ public void VersionCopy(XVersionData rhs)
+ {
+ bool flag = rhs == null;
+ if (flag)
+ {
+ this.Build_Version = 0u;
+ this.Minor_Version = 0u;
+ this.rc_Build_Version = 0u;
+ this.rc_Minor_Version = 0u;
+ }
+ else
+ {
+ this.Build_Version = rhs.Build_Version;
+ this.Minor_Version = rhs.Minor_Version;
+ this.rc_Build_Version = rhs.rc_Build_Version;
+ this.rc_Minor_Version = rhs.rc_Minor_Version;
+ }
+ }
+
+ public void RC()
+ {
+ bool hasRCVersion = this.HasRCVersion;
+ if (!hasRCVersion)
+ {
+ this.rc_Build_Version = 1u;
+ }
+ }
+
+ public XVersionData Increment(bool rebuild)
+ {
+ XVersionData xversionData = new XVersionData(this);
+ if (rebuild)
+ {
+ bool hasRCVersion = this.HasRCVersion;
+ if (hasRCVersion)
+ {
+ xversionData.rc_Build_Version += 1u;
+ xversionData.rc_Minor_Version = 0u;
+ }
+ else
+ {
+ xversionData.Build_Version += 1u;
+ xversionData.Minor_Version = 0u;
+ xversionData.rc_Build_Version = 0u;
+ xversionData.rc_Minor_Version = 0u;
+ }
+ }
+ else
+ {
+ bool hasRCVersion2 = this.HasRCVersion;
+ if (hasRCVersion2)
+ {
+ xversionData.rc_Minor_Version += 1u;
+ }
+ else
+ {
+ xversionData.Minor_Version += 1u;
+ xversionData.rc_Build_Version = 0u;
+ xversionData.rc_Minor_Version = 0u;
+ }
+ }
+ return xversionData;
+ }
+
+ public override string ToString()
+ {
+ return this.HasRCVersion ? string.Format("{0}.{1}.{2}.{3}p{4}", new object[]
+ {
+ this._major_version,
+ this.Build_Version,
+ this.Minor_Version,
+ this.rc_Build_Version,
+ this.rc_Minor_Version
+ }) : string.Format("{0}.{1}.{2}", this._major_version, this.Build_Version, this.Minor_Version);
+ }
+
+ public static XVersionData Convert2Version(string version)
+ {
+ Match match = XVersionData.r.Match(version);
+ bool success = match.Success;
+ XVersionData result;
+ if (success)
+ {
+ XVersionData xversionData = new XVersionData(uint.Parse(match.Groups[1].Value));
+ xversionData.Build_Version = uint.Parse(match.Groups[2].Value);
+ xversionData.Minor_Version = uint.Parse(match.Groups[3].Value);
+ bool flag = !string.IsNullOrEmpty(match.Groups[4].Value);
+ if (flag)
+ {
+ xversionData.rc_Build_Version = uint.Parse(match.Groups[5].Value);
+ xversionData.rc_Minor_Version = uint.Parse(match.Groups[6].Value);
+ }
+ result = xversionData;
+ }
+ else
+ {
+ result = null;
+ }
+ return result;
+ }
+
+ public int CompareTo(XVersionData other)
+ {
+ bool flag = other == null;
+ int result;
+ if (flag)
+ {
+ result = 1;
+ }
+ else
+ {
+ bool flag2 = this._major_version == other.Major_Version;
+ if (flag2)
+ {
+ bool flag3 = this.Build_Version == other.Build_Version;
+ if (flag3)
+ {
+ bool flag4 = this.Minor_Version == other.Minor_Version;
+ if (flag4)
+ {
+ bool flag5 = this.rc_Build_Version == other.rc_Build_Version;
+ if (flag5)
+ {
+ bool flag6 = this.rc_Minor_Version == other.rc_Minor_Version;
+ if (flag6)
+ {
+ result = 0;
+ }
+ else
+ {
+ result = (int)(this.rc_Minor_Version - other.rc_Minor_Version);
+ }
+ }
+ else
+ {
+ result = (int)(this.rc_Build_Version - other.rc_Build_Version);
+ }
+ }
+ else
+ {
+ result = (int)(this.Minor_Version - other.Minor_Version);
+ }
+ }
+ else
+ {
+ result = (int)(this.Build_Version - other.Build_Version);
+ }
+ }
+ else
+ {
+ result = (int)(this._major_version - other.Major_Version);
+ }
+ }
+ return result;
+ }
+
+ public bool CanUpdated(XVersionData other)
+ {
+ bool flag = this._major_version == other.Major_Version;
+ if (flag)
+ {
+ bool flag2 = this.Build_Version == other.Build_Version;
+ if (flag2)
+ {
+ bool flag3 = this.Minor_Version == other.Minor_Version;
+ if (!flag3)
+ {
+ return !this.HasRCVersion && !other.HasRCVersion;
+ }
+ bool flag4 = this.rc_Build_Version == other.rc_Build_Version;
+ if (flag4)
+ {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ public bool NeedDownload(string version)
+ {
+ XVersionData xversionData = XVersionData.Convert2Version(version);
+ bool flag = xversionData == null;
+ bool result;
+ if (flag)
+ {
+ XSingleton<XDebug>.singleton.AddErrorLog("Error bundle with name ", version, null, null, null, null);
+ result = false;
+ }
+ else
+ {
+ result = (this.CompareTo(xversionData) < 0);
+ }
+ return result;
+ }
+
+ public XBundleData GetSpecificBundle(string name)
+ {
+ for (int i = 0; i < this.Bundles.Count; i++)
+ {
+ bool flag = name == this.Bundles[i].Name;
+ if (flag)
+ {
+ return this.Bundles[i];
+ }
+ }
+ return null;
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XVersionData.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XVersionData.cs.meta new file mode 100644 index 00000000..d316b132 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/XVersionData.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 167c1ce87a560024da3c8f9f142f83da +timeCreated: 1611465295 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/eUPdatePhase.cs b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/eUPdatePhase.cs new file mode 100644 index 00000000..560b15cd --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/eUPdatePhase.cs @@ -0,0 +1,20 @@ +using System;
+
+namespace XUpdater
+{
+ internal enum eUPdatePhase
+ {
+ xUP_None,
+ xUP_Prepare,
+ xUP_FetchVersion,
+ xUP_LoadVersion,
+ xUP_CompareVersion,
+ xUP_DownLoadConfirm,
+ xUP_DownLoadBundle,
+ xUP_ShowVersion,
+ xUP_LaunchGame,
+ xUP_Ending,
+ xUP_Finish,
+ xUP_Error
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUpdater/eUPdatePhase.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/eUPdatePhase.cs.meta new file mode 100644 index 00000000..a4dd6f19 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUpdater/eUPdatePhase.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b8a4179b6e8aefe4aadb7ec6af562313 +timeCreated: 1611465748 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUtliPoolLib.csproj b/Client/Assets/Scripts/XUtliPoolLib/XUtliPoolLib.csproj new file mode 100644 index 00000000..fbd81454 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUtliPoolLib.csproj @@ -0,0 +1,685 @@ +<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProjectGuid>{B1AD6835-3615-4028-A15D-D7BC74909D04}</ProjectGuid>
+ <OutputType>Library</OutputType>
+ <RootNamespace>XUtliPoolLib</RootNamespace>
+ <AssemblyName>XUtliPoolLib</AssemblyName>
+ <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <PlatformTarget>AnyCPU</PlatformTarget>
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <PlatformTarget>AnyCPU</PlatformTarget>
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="UnityEngine">
+ <HintPath>..\..\..\..\..\..\..\Games\Steam\steamapps\common\My Friend Pedro\My Friend Pedro - Blood Bullets Bananas_Data\Managed\UnityEngine.dll</HintPath>
+ </Reference>
+ <Reference Include="System" />
+ <Reference Include="UILib">
+ <HintPath>..\..\..\Client\Assets\Lib\UILib.dll</HintPath>
+ </Reference>
+ <Reference Include="System.Xml" />
+ <Reference Include="System.Core" />
+ <Reference Include="enum2int">
+ <HintPath>..\..\..\Client\Assets\Lib\enum2int.dll</HintPath>
+ </Reference>
+ </ItemGroup>
+ <ItemGroup>
+ <AppDesigner Include="Properties\" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="AbyssPartyListTable.cs" />
+ <Compile Include="AbyssPartyTypeTable.cs" />
+ <Compile Include="AccessCallback.cs" />
+ <Compile Include="AchievementPointRewardTable.cs" />
+ <Compile Include="AchievementV2Table.cs" />
+ <Compile Include="AchivementTable.cs" />
+ <Compile Include="ActionAudio.cs" />
+ <Compile Include="ActivityChestTable.cs" />
+ <Compile Include="ActivityListTable.cs" />
+ <Compile Include="ActivityPopInfo.cs" />
+ <Compile Include="ActivityTabInfo.cs" />
+ <Compile Include="ActivityTable.cs" />
+ <Compile Include="AncientTask.cs" />
+ <Compile Include="AncientTimesTable.cs" />
+ <Compile Include="AndroidAssetBundleLoader.cs" />
+ <Compile Include="AnimLoadCallback.cs" />
+ <Compile Include="ArgentaDaily.cs" />
+ <Compile Include="ArgentaTask.cs" />
+ <Compile Include="ArtifactComposeTable.cs" />
+ <Compile Include="ArtifactEffect.cs" />
+ <Compile Include="ArtifactListTable.cs" />
+ <Compile Include="ArtifactSuitTable.cs" />
+ <Compile Include="AssetBundleData.cs" />
+ <Compile Include="AssetBundleDataBinaryReader.cs" />
+ <Compile Include="AssetBundleDataReader.cs" />
+ <Compile Include="AssetBundleExportType.cs" />
+ <Compile Include="AssetBundleInfo.cs" />
+ <Compile Include="AssetBundleLoader.cs" />
+ <Compile Include="AssetBundleLoadProgress.cs" />
+ <Compile Include="AssetBundleManager.cs" />
+ <Compile Include="AssetBundlePathResolver.cs" />
+ <Compile Include="AsyncXNGUILoad.cs" />
+ <Compile Include="AttributeEmblem.cs" />
+ <Compile Include="AuctionDiscountTable.cs" />
+ <Compile Include="AuctionTypeList.cs" />
+ <Compile Include="AudioChannel.cs" />
+ <Compile Include="BackflowActivity.cs" />
+ <Compile Include="BackflowShop.cs" />
+ <Compile Include="BagExpandItemListTable.cs" />
+ <Compile Include="BattleFieldPointReward.cs" />
+ <Compile Include="BeforeUnityUnLoadResource.cs" />
+ <Compile Include="BigMeleePointReward.cs" />
+ <Compile Include="BigMeleeRankReward.cs" />
+ <Compile Include="BlockInfo.cs" />
+ <Compile Include="BossRushBuffTable.cs" />
+ <Compile Include="BossRushTable.cs" />
+ <Compile Include="BufferBlock.cs" />
+ <Compile Include="BufferPoolMgr.cs" />
+ <Compile Include="BuffTable.cs" />
+ <Compile Include="BuyDragonCoin.cs" />
+ <Compile Include="BuyFatigueTable.cs" />
+ <Compile Include="BuyGoldTable.cs" />
+ <Compile Include="CallMonsterData.cs" />
+ <Compile Include="CameraMotionSpace.cs" />
+ <Compile Include="CameraMotionType.cs" />
+ <Compile Include="CampDuelPointReward.cs" />
+ <Compile Include="CampDuelRankReward.cs" />
+ <Compile Include="CanExecuteHandler.cs" />
+ <Compile Include="CardRewardTable.cs" />
+ <Compile Include="CardsFireProperty.cs" />
+ <Compile Include="CardsGroup.cs" />
+ <Compile Include="CardsGroupList.cs" />
+ <Compile Include="CardsList.cs" />
+ <Compile Include="CardStoreTable.cs" />
+ <Compile Include="Career.cs" />
+ <Compile Include="CharacterAttributesList.cs" />
+ <Compile Include="CharacterCommonInfo.cs" />
+ <Compile Include="ChatApollo.cs" />
+ <Compile Include="ChatOpen.cs" />
+ <Compile Include="ChatTable.cs" />
+ <Compile Include="ChestList.cs" />
+ <Compile Include="ChickenDinnerRankReward.cs" />
+ <Compile Include="CombatParamTable.cs" />
+ <Compile Include="CommandCallback.cs" />
+ <Compile Include="CommonObjectPool.cs" />
+ <Compile Include="CompeteDragonRankRewardTable.cs" />
+ <Compile Include="CookingFoodInfo.cs" />
+ <Compile Include="CookingLevel.cs" />
+ <Compile Include="CrossGvgReward.cs" />
+ <Compile Include="CustomBattleSystemTable.cs" />
+ <Compile Include="CustomBattleTable.cs" />
+ <Compile Include="CustomBattleTypeTable.cs" />
+ <Compile Include="CustomRewardTable.cs" />
+ <Compile Include="CustomSystemRewardTable.cs" />
+ <Compile Include="CVSReader.cs" />
+ <Compile Include="DailyTask.cs" />
+ <Compile Include="DailyTaskLuck.cs" />
+ <Compile Include="DailyTaskReward.cs" />
+ <Compile Include="DanceConfig.cs" />
+ <Compile Include="DargonReward.cs" />
+ <Compile Include="DataHandler.cs" />
+ <Compile Include="DebugHandler.cs" />
+ <Compile Include="DefaultEquip.cs" />
+ <Compile Include="DeJson\Deserializer.cs" />
+ <Compile Include="DeJson\Serializer.cs" />
+ <Compile Include="DelegateHandler.cs" />
+ <Compile Include="DelLuaError.cs" />
+ <Compile Include="DelLuaRespond.cs" />
+ <Compile Include="DesignationTable.cs" />
+ <Compile Include="DetectEnemyInRangeArg.cs" />
+ <Compile Include="DictionaryPool.cs" />
+ <Compile Include="DoubleActivity.cs" />
+ <Compile Include="DragonExpList.cs" />
+ <Compile Include="DragonGuildAchieveTable.cs" />
+ <Compile Include="DragonGuildConfigTable.cs" />
+ <Compile Include="DragonGuildIntroduce.cs" />
+ <Compile Include="DragonGuildLivenessTable.cs" />
+ <Compile Include="DragonGuildPermissionTable.cs" />
+ <Compile Include="DragonGuildTable.cs" />
+ <Compile Include="DragonGuildTaskTable.cs" />
+ <Compile Include="DragonNestTable.cs" />
+ <Compile Include="DragonNestType.cs" />
+ <Compile Include="DropList.cs" />
+ <Compile Include="EAsyncLoadState.cs" />
+ <Compile Include="EClassType.cs" />
+ <Compile Include="EComponentType.cs" />
+ <Compile Include="ECreateHideType.cs" />
+ <Compile Include="EDelayProcessType.cs" />
+ <Compile Include="EffectDesTable.cs" />
+ <Compile Include="EffectTable.cs" />
+ <Compile Include="EmblemBasic.cs" />
+ <Compile Include="EnchantEquip.cs" />
+ <Compile Include="EnhanceFxTable.cs" />
+ <Compile Include="EnhanceMaster.cs" />
+ <Compile Include="EnhanceTable.cs" />
+ <Compile Include="EPartType.cs" />
+ <Compile Include="EquipFusionExpTable.cs" />
+ <Compile Include="EquipFusionTable.cs" />
+ <Compile Include="EquipList.cs" />
+ <Compile Include="EquipSuitTable.cs" />
+ <Compile Include="ExecuteCommandHandler.cs" />
+ <Compile Include="ExpBackTable.cs" />
+ <Compile Include="ExpeditionTable.cs" />
+ <Compile Include="FashionCharm.cs" />
+ <Compile Include="FashionComposeSet.cs" />
+ <Compile Include="FashionComposeTable.cs" />
+ <Compile Include="FashionEffectTable.cs" />
+ <Compile Include="FashionEnhanceFx.cs" />
+ <Compile Include="FashionHair.cs" />
+ <Compile Include="FashionList.cs" />
+ <Compile Include="FashionSuitSpecialEffects.cs" />
+ <Compile Include="FashionSuitTable.cs" />
+ <Compile Include="FashionSynthesis.cs" />
+ <Compile Include="FestivityLovePersonReward.cs" />
+ <Compile Include="FestivityLoveRankReward.cs" />
+ <Compile Include="FestivityLoveTable.cs" />
+ <Compile Include="FestScene.cs" />
+ <Compile Include="FightDesignation.cs" />
+ <Compile Include="FightGroupTable.cs" />
+ <Compile Include="FilterSkillArg.cs" />
+ <Compile Include="FirstPassReward.cs" />
+ <Compile Include="FirstPassTable.cs" />
+ <Compile Include="FishInfo.cs" />
+ <Compile Include="FloatCurve.cs" />
+ <Compile Include="FlowerRain.cs" />
+ <Compile Include="FlowerRankRewardTable.cs" />
+ <Compile Include="FlowerSendNoticeTable.cs" />
+ <Compile Include="FlowerWeekRankReward.cs" />
+ <Compile Include="ForbidWord.cs" />
+ <Compile Include="ForgeAttributes.cs" />
+ <Compile Include="FpGoToLevelUp.cs" />
+ <Compile Include="FpStrengthenTable.cs" />
+ <Compile Include="FpStrengthNew.cs" />
+ <Compile Include="FriendInfo.cs" />
+ <Compile Include="FriendSysConfigTable.cs" />
+ <Compile Include="FriendTable.cs" />
+ <Compile Include="FxLoadCallback.cs" />
+ <Compile Include="GameCommunityTable.cs" />
+ <Compile Include="GardenBanquetCfg.cs" />
+ <Compile Include="GardenFishConfig.cs" />
+ <Compile Include="GlobalTable.cs" />
+ <Compile Include="GoalAwards.cs" />
+ <Compile Include="GroupStageType.cs" />
+ <Compile Include="GuildAuctReward.cs" />
+ <Compile Include="GuildBonusTable.cs" />
+ <Compile Include="GuildBossConfigTable.cs" />
+ <Compile Include="GuildBossRewardTable.cs" />
+ <Compile Include="GuildBossRoleRewardTable.cs" />
+ <Compile Include="GuildBuffTable.cs" />
+ <Compile Include="GuildCamp.cs" />
+ <Compile Include="GuildCampPartyReward.cs" />
+ <Compile Include="GuildCampRank.cs" />
+ <Compile Include="GuildCheckinBoxTable.cs" />
+ <Compile Include="GuildCheckinTable.cs" />
+ <Compile Include="GuildConfigTable.cs" />
+ <Compile Include="GuildHall.cs" />
+ <Compile Include="Guildintroduce.cs" />
+ <Compile Include="GuildMineralBattle.cs" />
+ <Compile Include="GuildMineralBattleReward.cs" />
+ <Compile Include="GuildMineralBufflist.cs" />
+ <Compile Include="GuildMineralStorage.cs" />
+ <Compile Include="GuildPermissionTable.cs" />
+ <Compile Include="GuildPkRankReward.cs" />
+ <Compile Include="GuildRankRewardTable.cs" />
+ <Compile Include="GuildRelaxGameList.cs" />
+ <Compile Include="GuildSalaryDesc.cs" />
+ <Compile Include="GuildSalaryTable.cs" />
+ <Compile Include="GuildSkillTable.cs" />
+ <Compile Include="GuildTransfer.cs" />
+ <Compile Include="GuildZiCai.cs" />
+ <Compile Include="HairColorTable.cs" />
+ <Compile Include="HashPool.cs" />
+ <Compile Include="HeroBattleExperienceHero.cs" />
+ <Compile Include="HeroBattleMapCenter.cs" />
+ <Compile Include="HeroBattleTips.cs" />
+ <Compile Include="HeroBattleWeekReward.cs" />
+ <Compile Include="Horse.cs" />
+ <Compile Include="HotfixAttribute.cs" />
+ <Compile Include="HotfixIgnoreAttribute.cs" />
+ <Compile Include="HotfixMode.cs" />
+ <Compile Include="IAnimStateMachine.cs" />
+ <Compile Include="IApolloManager.cs" />
+ <Compile Include="IAssociatedCamera.cs" />
+ <Compile Include="IBroardcast.cs" />
+ <Compile Include="IBShop.cs" />
+ <Compile Include="IColliderRenderLinker.cs" />
+ <Compile Include="IControlParticle.cs" />
+ <Compile Include="IDelayLoad.cs" />
+ <Compile Include="IEntrance.cs" />
+ <Compile Include="IEnvSetting.cs" />
+ <Compile Include="IFMOD_Listener.cs" />
+ <Compile Include="IFxPro.cs" />
+ <Compile Include="IGameSysMgr.cs" />
+ <Compile Include="IHere.cs" />
+ <Compile Include="IHotfixManager.cs" />
+ <Compile Include="ILoopItemObject.cs" />
+ <Compile Include="ILoopScrollView.cs" />
+ <Compile Include="ILuaEngine.cs" />
+ <Compile Include="ILuaExtion.cs" />
+ <Compile Include="ILuaFunction.cs" />
+ <Compile Include="ILuaGameInfo.cs" />
+ <Compile Include="ILuaNetSender.cs" />
+ <Compile Include="ILuaNetwork.cs" />
+ <Compile Include="ILuaUIManager.cs" />
+ <Compile Include="IModalDlg.cs" />
+ <Compile Include="INativePlugin.cs" />
+ <Compile Include="IObjectPool.cs" />
+ <Compile Include="Ionic\Crc\CRC32.cs" />
+ <Compile Include="Ionic\Crc\CrcCalculatorStream.cs" />
+ <Compile Include="Ionic\Zlib\Adler.cs" />
+ <Compile Include="Ionic\Zlib\BlockState.cs" />
+ <Compile Include="Ionic\Zlib\CompressionLevel.cs" />
+ <Compile Include="Ionic\Zlib\CompressionMode.cs" />
+ <Compile Include="Ionic\Zlib\CompressionStrategy.cs" />
+ <Compile Include="Ionic\Zlib\DeflateFlavor.cs" />
+ <Compile Include="Ionic\Zlib\DeflateManager.cs" />
+ <Compile Include="Ionic\Zlib\DeflateStream.cs" />
+ <Compile Include="Ionic\Zlib\FlushType.cs" />
+ <Compile Include="Ionic\Zlib\GZipStream.cs" />
+ <Compile Include="Ionic\Zlib\InflateBlocks.cs" />
+ <Compile Include="Ionic\Zlib\InflateCodes.cs" />
+ <Compile Include="Ionic\Zlib\InflateManager.cs" />
+ <Compile Include="Ionic\Zlib\InfTree.cs" />
+ <Compile Include="Ionic\Zlib\InternalConstants.cs" />
+ <Compile Include="Ionic\Zlib\InternalInflateConstants.cs" />
+ <Compile Include="Ionic\Zlib\ParallelDeflateOutputStream.cs" />
+ <Compile Include="Ionic\Zlib\SharedUtils.cs" />
+ <Compile Include="Ionic\Zlib\StaticTree.cs" />
+ <Compile Include="Ionic\Zlib\Tree.cs" />
+ <Compile Include="Ionic\Zlib\WorkItem.cs" />
+ <Compile Include="Ionic\Zlib\ZlibBaseStream.cs" />
+ <Compile Include="Ionic\Zlib\ZlibCodec.cs" />
+ <Compile Include="Ionic\Zlib\ZlibConstants.cs" />
+ <Compile Include="Ionic\Zlib\ZlibException.cs" />
+ <Compile Include="Ionic\Zlib\ZlibStream.cs" />
+ <Compile Include="Ionic\Zlib\ZlibStreamFlavor.cs" />
+ <Compile Include="IOSAssetBundleLoader.cs" />
+ <Compile Include="IPlatform.cs" />
+ <Compile Include="IQueueObject.cs" />
+ <Compile Include="IRenderObject.cs" />
+ <Compile Include="IResourceHelp.cs" />
+ <Compile Include="ISeqListRef.2.cs" />
+ <Compile Include="ISeqListRef.cs" />
+ <Compile Include="ISeqRef.2.cs" />
+ <Compile Include="ISeqRef.cs" />
+ <Compile Include="ItemBackTable.cs" />
+ <Compile Include="ItemBuffTable.cs" />
+ <Compile Include="ItemComposeTable.cs" />
+ <Compile Include="ItemList.cs" />
+ <Compile Include="ItemTransform.cs" />
+ <Compile Include="ItemUseButtonList.cs" />
+ <Compile Include="ITssSdk.cs" />
+ <Compile Include="ITssSdkSend.cs" />
+ <Compile Include="IUiUtility.cs" />
+ <Compile Include="IWeaponTail.cs" />
+ <Compile Include="IX3DAvatarMgr.cs" />
+ <Compile Include="IXAIGeneralMgr.cs" />
+ <Compile Include="IXBehaviorTree.cs" />
+ <Compile Include="IXBuglyMgr.cs" />
+ <Compile Include="IXCamera.cs" />
+ <Compile Include="IXCurve.cs" />
+ <Compile Include="IXDragonExpedition.cs" />
+ <Compile Include="IXDummy.cs" />
+ <Compile Include="IXFmod.cs" />
+ <Compile Include="IXFmodBus.cs" />
+ <Compile Include="IXGameSirControl.cs" />
+ <Compile Include="IXGameUI.cs" />
+ <Compile Include="IXHUDDescription.cs" />
+ <Compile Include="IXIFlyMgr.cs" />
+ <Compile Include="IXInterface.cs" />
+ <Compile Include="IXNGUI.cs" />
+ <Compile Include="IXNGUICallback.cs" />
+ <Compile Include="IXNGUIClickEventHandler.cs" />
+ <Compile Include="IXNormalItemDrawer.cs" />
+ <Compile Include="IXOperationRecord.cs" />
+ <Compile Include="IXPandoraMgr.cs" />
+ <Compile Include="IXPlayerAction.cs" />
+ <Compile Include="IXPositionGroup.cs" />
+ <Compile Include="IXRedpointDirtyMgr.cs" />
+ <Compile Include="IXRedpointExMgr.cs" />
+ <Compile Include="IXRedpointForbidMgr.cs" />
+ <Compile Include="IXRedpointMgr.cs" />
+ <Compile Include="IXRedpointRelationMgr.cs" />
+ <Compile Include="IXScene.cs" />
+ <Compile Include="IXSceneOperation.cs" />
+ <Compile Include="IXTutorial.cs" />
+ <Compile Include="IXTweenFadeIn.cs" />
+ <Compile Include="IXVideo.cs" />
+ <Compile Include="JadeGroupTable.cs" />
+ <Compile Include="JadeSealTable.cs" />
+ <Compile Include="JadeSlotTable.cs" />
+ <Compile Include="JadeTable.cs" />
+ <Compile Include="JsonUtil.cs" />
+ <Compile Include="LeagueRankReward.cs" />
+ <Compile Include="LevelSealNewFunctionTable.cs" />
+ <Compile Include="LevelSealTypeTable.cs" />
+ <Compile Include="ListPool.cs" />
+ <Compile Include="LiveTable.cs" />
+ <Compile Include="LoadAsyncTask.cs" />
+ <Compile Include="LoadCallback.2.cs" />
+ <Compile Include="LoadCallBack.cs" />
+ <Compile Include="LoadFrom.cs" />
+ <Compile Include="LoadInfo.cs" />
+ <Compile Include="LoadState.cs" />
+ <Compile Include="LoopItemData.cs" />
+ <Compile Include="MarriageLevel.cs" />
+ <Compile Include="MemoryPool.cs" />
+ <Compile Include="MentorCompleteRewardTable.cs" />
+ <Compile Include="MentorTaskTable.cs" />
+ <Compile Include="MilitaryRankByExploit.cs" />
+ <Compile Include="MilitaryRankReward.cs" />
+ <Compile Include="MiniJSON\Json.cs" />
+ <Compile Include="MobaLevel.cs" />
+ <Compile Include="MobaMiniMap.cs" />
+ <Compile Include="MobaSignalTable.cs" />
+ <Compile Include="MobaWeekReward.cs" />
+ <Compile Include="MobileAssetBundleLoader.cs" />
+ <Compile Include="MultiActivityList.cs" />
+ <Compile Include="NestListTable.cs" />
+ <Compile Include="NestStarReward.cs" />
+ <Compile Include="NestTypeTable.cs" />
+ <Compile Include="NoticeTable.cs" />
+ <Compile Include="NpcFeeling.cs" />
+ <Compile Include="NpcFeelingAttr.cs" />
+ <Compile Include="NpcFeelingSpecial.cs" />
+ <Compile Include="NpcUniteAttr.cs" />
+ <Compile Include="ObjectPool.cs" />
+ <Compile Include="ObjectPoolCache.cs" />
+ <Compile Include="OnFxDestroyed.cs" />
+ <Compile Include="OnlineRewardTable.cs" />
+ <Compile Include="OnLoadedCallback.cs" />
+ <Compile Include="OpenServerActivity.cs" />
+ <Compile Include="OpenSystemTable.cs" />
+ <Compile Include="OperatingActivity.cs" />
+ <Compile Include="OperationRecord.cs" />
+ <Compile Include="OverrideAnimCallback.cs" />
+ <Compile Include="OverWatchTable.cs" />
+ <Compile Include="PandoraHeart.cs" />
+ <Compile Include="PandoraHeartReward.cs" />
+ <Compile Include="PartnerLivenessTable.cs" />
+ <Compile Include="PartnerTable.cs" />
+ <Compile Include="PartnerWelfare.cs" />
+ <Compile Include="PayAileenTable.cs" />
+ <Compile Include="PayCardTable.cs" />
+ <Compile Include="PayFirst.cs" />
+ <Compile Include="PayGiftTable.cs" />
+ <Compile Include="PayListTable.cs" />
+ <Compile Include="PayMarketingInfo.cs" />
+ <Compile Include="PayMemberTable.cs" />
+ <Compile Include="PayWelfareTable.cs" />
+ <Compile Include="PDatabase.cs" />
+ <Compile Include="PetBubble.cs" />
+ <Compile Include="PetFoodTable.cs" />
+ <Compile Include="PetInfoTable.cs" />
+ <Compile Include="PetItemTable.cs" />
+ <Compile Include="PetLevelTable.cs" />
+ <Compile Include="PetMoodTipsTable.cs" />
+ <Compile Include="PetPassiveSkillTable.cs" />
+ <Compile Include="PetSkillBook.cs" />
+ <Compile Include="PhotographEffectCfg.cs" />
+ <Compile Include="PInfo.cs" />
+ <Compile Include="PkPointTable.cs" />
+ <Compile Include="PkProfessionTable.cs" />
+ <Compile Include="PkRankTable.cs" />
+ <Compile Include="PlantSeed.cs" />
+ <Compile Include="PlantSprite.cs" />
+ <Compile Include="PlayerInfo.cs" />
+ <Compile Include="PlayerLevelTable.cs" />
+ <Compile Include="PokerTournamentReward.cs" />
+ <Compile Include="PowerPointCoeffTable.cs" />
+ <Compile Include="PreloadAnimationList.cs" />
+ <Compile Include="Prerogative.cs" />
+ <Compile Include="PrerogativeContent.cs" />
+ <Compile Include="ProfessionConvertTable.cs" />
+ <Compile Include="ProfessionTable.cs" />
+ <Compile Include="ProfSkillTable.cs" />
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ <Compile Include="PushMessageTable.cs" />
+ <Compile Include="PushSetting.cs" />
+ <Compile Include="PushSubscribeTable.cs" />
+ <Compile Include="PUtil.cs" />
+ <Compile Include="PVEAttrModify.cs" />
+ <Compile Include="PveProfessionTable.cs" />
+ <Compile Include="PVPActivityList.cs" />
+ <Compile Include="QAConditionTable.cs" />
+ <Compile Include="QALevelRewardTable.cs" />
+ <Compile Include="QuestionLibraryTable.cs" />
+ <Compile Include="QueuePool.cs" />
+ <Compile Include="QuickReplyTable.cs" />
+ <Compile Include="RandomAttributes.cs" />
+ <Compile Include="RandomBossTable.cs" />
+ <Compile Include="RandomName.cs" />
+ <Compile Include="RandomSceneTable.cs" />
+ <Compile Include="RandomTaskTable.cs" />
+ <Compile Include="RechargeTable.cs" />
+ <Compile Include="RecommendFightNum.cs" />
+ <Compile Include="RenameList.cs" />
+ <Compile Include="ResetCallback.cs" />
+ <Compile Include="Rift.cs" />
+ <Compile Include="RiftBuffSuitMonsterType.cs" />
+ <Compile Include="RiftRankReward.cs" />
+ <Compile Include="RiftType.cs" />
+ <Compile Include="RiftWelfareReward.cs" />
+ <Compile Include="RiskMapFile.cs" />
+ <Compile Include="SceneTable.cs" />
+ <Compile Include="Seq2.cs" />
+ <Compile Include="SeqList.cs" />
+ <Compile Include="SeqListRef.cs" />
+ <Compile Include="SeqRef.cs" />
+ <Compile Include="SetRedpointUIHandler.cs" />
+ <Compile Include="SevenImportTable.cs" />
+ <Compile Include="ShaderManager.cs" />
+ <Compile Include="ShadowCatReward.cs" />
+ <Compile Include="ShareBgTexture.cs" />
+ <Compile Include="ShareCallBackType.cs" />
+ <Compile Include="ShareTable.cs" />
+ <Compile Include="ShopTable.cs" />
+ <Compile Include="ShopTypeTable.cs" />
+ <Compile Include="SimpleQueue.cs" />
+ <Compile Include="SkillCombo.cs" />
+ <Compile Include="SkillEmblem.cs" />
+ <Compile Include="SkillFxType.cs" />
+ <Compile Include="SkillList.cs" />
+ <Compile Include="SkillTreeConfigTable.cs" />
+ <Compile Include="SkyArenaReward.cs" />
+ <Compile Include="SmallBuffer.cs" />
+ <Compile Include="SmallBufferPool.cs" />
+ <Compile Include="SpectateLevelRewardConfig.cs" />
+ <Compile Include="SpriteEvolution.cs" />
+ <Compile Include="SpriteLevel.cs" />
+ <Compile Include="SpritePreviewTable.cs" />
+ <Compile Include="SpriteSkill.cs" />
+ <Compile Include="SpriteTable.cs" />
+ <Compile Include="StageRankTable.cs" />
+ <Compile Include="StringTable.cs" />
+ <Compile Include="SuperActivity.cs" />
+ <Compile Include="SuperActivityTask.cs" />
+ <Compile Include="SuperActivityTime.cs" />
+ <Compile Include="SuperArmorRecoveryCoffTable.cs" />
+ <Compile Include="SystemAnnounce.cs" />
+ <Compile Include="SystemHelpTable.cs" />
+ <Compile Include="SystemRewardTable.cs" />
+ <Compile Include="TaJieHelpTab.cs" />
+ <Compile Include="TaJieHelpUrl.cs" />
+ <Compile Include="TaskTableNew.cs" />
+ <Compile Include="TeamTowerRewardTable.cs" />
+ <Compile Include="TerritoryBattle.cs" />
+ <Compile Include="TerritoryRewd.cs" />
+ <Compile Include="ThemeActivity.cs" />
+ <Compile Include="TitleTable.cs" />
+ <Compile Include="TrophyInfo.cs" />
+ <Compile Include="TrophyReward.cs" />
+ <Compile Include="UniqueString.cs" />
+ <Compile Include="VIPTable.cs" />
+ <Compile Include="WeddingLoverLiveness.cs" />
+ <Compile Include="WeekEnd4v4List.cs" />
+ <Compile Include="WeekEndNestActivity.cs" />
+ <Compile Include="WorldBossRewardTable.cs" />
+ <Compile Include="WorldLevelExpBuff.cs" />
+ <Compile Include="WXGroupCallBackType.cs" />
+ <Compile Include="WXGroupInfo.cs" />
+ <Compile Include="WXGroupResult.cs" />
+ <Compile Include="XActorDataClip.cs" />
+ <Compile Include="XAnimationClip.cs" />
+ <Compile Include="XAnimationPool.cs" />
+ <Compile Include="XAnimator.cs" />
+ <Compile Include="XAudioData.cs" />
+ <Compile Include="XAudioDataClip.cs" />
+ <Compile Include="XBaseData.cs" />
+ <Compile Include="XBaseSingleton.cs" />
+ <Compile Include="XBeHitPhase.cs" />
+ <Compile Include="XBeHitState.cs" />
+ <Compile Include="XBeHitState_Animation.cs" />
+ <Compile Include="XBinaryReader.cs" />
+ <Compile Include="XCallCommand.cs" />
+ <Compile Include="XCameraEffectData.cs" />
+ <Compile Include="XCameraMotionData.cs" />
+ <Compile Include="XCameraPostEffectData.cs" />
+ <Compile Include="XCastChain.cs" />
+ <Compile Include="XChapter.cs" />
+ <Compile Include="XChargeData.cs" />
+ <Compile Include="XClipType.cs" />
+ <Compile Include="XCombinedData.cs" />
+ <Compile Include="XCommon.cs" />
+ <Compile Include="XCurrentGrid.cs" />
+ <Compile Include="XCutSceneClip.cs" />
+ <Compile Include="XCutSceneData.cs" />
+ <Compile Include="XDataFileLoadException.cs" />
+ <Compile Include="XDataWrapper.cs" />
+ <Compile Include="XDebug.cs" />
+ <Compile Include="XDebugChannel.cs" />
+ <Compile Include="XDebugColor.cs" />
+ <Compile Include="XDirectory.cs" />
+ <Compile Include="XDoubleNewException.cs" />
+ <Compile Include="XElapseTimer.cs" />
+ <Compile Include="XEngineCommand.cs" />
+ <Compile Include="XEngineCommandMgr.cs" />
+ <Compile Include="XEngineObject.cs" />
+ <Compile Include="XEntityPresentation.cs" />
+ <Compile Include="XEntityStatistics.cs" />
+ <Compile Include="XErrorEventArgTypeException.cs" />
+ <Compile Include="XErrorUnregisteredComponentException.cs" />
+ <Compile Include="XException.cs" />
+ <Compile Include="XFastEnumIntEqualityComparer.cs" />
+ <Compile Include="XFetchVersionNetwork.cs" />
+ <Compile Include="XFile.cs" />
+ <Compile Include="XFileLog.cs" />
+ <Compile Include="XFileReadAsync.cs" />
+ <Compile Include="XFx.cs" />
+ <Compile Include="XFxData.cs" />
+ <Compile Include="XFxDataClip.cs" />
+ <Compile Include="XFxMgr.cs" />
+ <Compile Include="XGameObject.cs" />
+ <Compile Include="XGameSirKeyCode.cs" />
+ <Compile Include="XGrid.cs" />
+ <Compile Include="XHeap.cs" />
+ <Compile Include="XHitData.cs" />
+ <Compile Include="XInterfaceMgr.cs" />
+ <Compile Include="XInterpolate.cs" />
+ <Compile Include="XInvalidSkillException.cs" />
+ <Compile Include="XJAData.cs" />
+ <Compile Include="XLocalPRSAsyncData.cs" />
+ <Compile Include="XLogicalData.cs" />
+ <Compile Include="XLongAttackResultData.cs" />
+ <Compile Include="XLuaLong.cs" />
+ <Compile Include="XManipulationData.cs" />
+ <Compile Include="XMeshPartList.cs" />
+ <Compile Include="XMeshRenderInfo.cs" />
+ <Compile Include="XMissAnimationException.cs" />
+ <Compile Include="XMissEventDescriptionException.cs" />
+ <Compile Include="XMobUnitData.cs" />
+ <Compile Include="XNpcInfo.cs" />
+ <Compile Include="XObjAsyncData.cs" />
+ <Compile Include="XOperationTable.cs" />
+ <Compile Include="XOptions.cs" />
+ <Compile Include="XPlatformType.cs" />
+ <Compile Include="XPlayerDataClip.cs" />
+ <Compile Include="XQTEData.cs" />
+ <Compile Include="XQTEStatusTable.cs" />
+ <Compile Include="XRedpointDirtyMgr.cs" />
+ <Compile Include="XRedpointExMgr.cs" />
+ <Compile Include="XRedpointForbidMgr.cs" />
+ <Compile Include="XRedpointMgr.cs" />
+ <Compile Include="XRedpointRelationMgr.cs" />
+ <Compile Include="XResourceLoaderMgr.cs" />
+ <Compile Include="XResultAffectDirection.cs" />
+ <Compile Include="XResultBulletType.cs" />
+ <Compile Include="XResultData.cs" />
+ <Compile Include="XScriptData.cs" />
+ <Compile Include="XSetParentCommand.cs" />
+ <Compile Include="XSingleton.cs" />
+ <Compile Include="XSkillData.cs" />
+ <Compile Include="XSkillScriptGen.cs" />
+ <Compile Include="XSkillUnexpectedFireException.cs" />
+ <Compile Include="XSlashDataClip.cs" />
+ <Compile Include="XStrickenResponse.cs" />
+ <Compile Include="XStringDefine.cs" />
+ <Compile Include="XStringFormatHelper.cs" />
+ <Compile Include="XStringTable.cs" />
+ <Compile Include="XSubTitleDataClip.cs" />
+ <Compile Include="XTableAsyncLoader.cs" />
+ <Compile Include="XTimerMgr.cs" />
+ <Compile Include="XUIPool.cs" />
+ <Compile Include="XUpdater.XUpdater\AssetLevel.cs" />
+ <Compile Include="XUpdater.XUpdater\AsyncAssemblyRequest.cs" />
+ <Compile Include="XUpdater.XUpdater\AsyncCachedRequest.cs" />
+ <Compile Include="XUpdater.XUpdater\AsyncDecompressRequest.cs" />
+ <Compile Include="XUpdater.XUpdater\AsyncExtractRequest.cs" />
+ <Compile Include="XUpdater.XUpdater\AsyncLogRequest.cs" />
+ <Compile Include="XUpdater.XUpdater\AsyncReadRequest.cs" />
+ <Compile Include="XUpdater.XUpdater\AsyncVersionProcessRequest.cs" />
+ <Compile Include="XUpdater.XUpdater\AsyncWriteRequest.cs" />
+ <Compile Include="XUpdater.XUpdater\BuildTarget.cs" />
+ <Compile Include="XUpdater.XUpdater\BundleMetaRes.cs" />
+ <Compile Include="XUpdater.XUpdater\eUPdatePhase.cs" />
+ <Compile Include="XUpdater.XUpdater\HandleBundleDownload.cs" />
+ <Compile Include="XUpdater.XUpdater\HandleFetchBundle.cs" />
+ <Compile Include="XUpdater.XUpdater\HandleLoadAsset.cs" />
+ <Compile Include="XUpdater.XUpdater\HandleLoadBundle.cs" />
+ <Compile Include="XUpdater.XUpdater\HandlePreDecompressing.cs" />
+ <Compile Include="XUpdater.XUpdater\HandleVersionDownload.cs" />
+ <Compile Include="XUpdater.XUpdater\HandleVersionLoaded.cs" />
+ <Compile Include="XUpdater.XUpdater\ResourceType.cs" />
+ <Compile Include="XUpdater.XUpdater\XBundle.cs" />
+ <Compile Include="XUpdater.XUpdater\XBundleData.cs" />
+ <Compile Include="XUpdater.XUpdater\XCaching.cs" />
+ <Compile Include="XUpdater.XUpdater\XDownloader.cs" />
+ <Compile Include="XUpdater.XUpdater\XLaunchMode.cs" />
+ <Compile Include="XUpdater.XUpdater\XLoadingUI.cs" />
+ <Compile Include="XUpdater.XUpdater\XMetaResPackage.cs" />
+ <Compile Include="XUpdater.XUpdater\XResPackage.cs" />
+ <Compile Include="XUpdater.XUpdater\XShell.cs" />
+ <Compile Include="XUpdater.XUpdater\XUpdater.XUpdater.cs" />
+ <Compile Include="XUpdater.XUpdater\XVersion.cs" />
+ <Compile Include="XUpdater.XUpdater\XVersionData.cs" />
+ <Compile Include="XWarningData.cs" />
+ <Compile Include="XWarningType.cs" />
+ <Compile Include="XZeroCoolDownTimeException.cs" />
+ <Compile Include="XZeroDelayException.cs" />
+ <Compile Include="YorozuyaTable.cs" />
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+</Project>
\ No newline at end of file diff --git a/Client/Assets/Scripts/XUtliPoolLib/XUtliPoolLib.csproj.meta b/Client/Assets/Scripts/XUtliPoolLib/XUtliPoolLib.csproj.meta new file mode 100644 index 00000000..01e95be1 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XUtliPoolLib.csproj.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6ddba18448ada8548a80a91bffd3a111 +timeCreated: 1611465283 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XWarningData.cs b/Client/Assets/Scripts/XUtliPoolLib/XWarningData.cs new file mode 100644 index 00000000..a85f3c31 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XWarningData.cs @@ -0,0 +1,65 @@ +using System;
+using System.ComponentModel;
+using UnityEngine;
+
+namespace XUtliPoolLib
+{
+ [Serializable]
+ public class XWarningData : XBaseData
+ {
+ [SerializeField]
+ public XWarningType Type = XWarningType.Warning_None;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float At;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float FxDuration;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float OffsetX;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float OffsetY;
+
+ [SerializeField]
+ [DefaultValue(0f)]
+ public float OffsetZ;
+
+ [SerializeField]
+ public string Fx = null;
+
+ [SerializeField]
+ [DefaultValue(1f)]
+ public float Scale = 1f;
+
+ [SerializeField]
+ [DefaultValue(false)]
+ public bool Mobs_Inclusived;
+
+ [SerializeField]
+ [DefaultValue(0)]
+ public int MaxRandomTarget;
+
+ [SerializeField]
+ [DefaultValue(false)]
+ public bool RandomWarningPos;
+
+ [SerializeField]
+ [DefaultValue(0)]
+ public float PosRandomRange;
+
+ [SerializeField]
+ [DefaultValue(0)]
+ public int PosRandomCount;
+
+ public XWarningData()
+ {
+ this.Scale = 1f;
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XWarningData.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XWarningData.cs.meta new file mode 100644 index 00000000..b1f08c30 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XWarningData.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b09c7ce7886575c43b39b941eb9597c0 +timeCreated: 1611465744 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XWarningType.cs b/Client/Assets/Scripts/XUtliPoolLib/XWarningType.cs new file mode 100644 index 00000000..7279c241 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XWarningType.cs @@ -0,0 +1,12 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public enum XWarningType
+ {
+ Warning_None,
+ Warning_Target,
+ Warning_Multiple,
+ Warning_All
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XWarningType.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XWarningType.cs.meta new file mode 100644 index 00000000..0ff047d2 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XWarningType.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8621d1c249a343a42b09409c706d7be6 +timeCreated: 1611465696 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XZeroCoolDownTimeException.cs b/Client/Assets/Scripts/XUtliPoolLib/XZeroCoolDownTimeException.cs new file mode 100644 index 00000000..3b3dfce6 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XZeroCoolDownTimeException.cs @@ -0,0 +1,16 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ [Serializable]
+ public class XZeroCoolDownTimeException : XException
+ {
+ public XZeroCoolDownTimeException(string message) : base(message)
+ {
+ }
+
+ public XZeroCoolDownTimeException(string message, Exception inner) : base(message, inner)
+ {
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XZeroCoolDownTimeException.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XZeroCoolDownTimeException.cs.meta new file mode 100644 index 00000000..385bc02f --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XZeroCoolDownTimeException.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: daf1eee6a169f944d9ada0d88b2e4f82 +timeCreated: 1611465765 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/XZeroDelayException.cs b/Client/Assets/Scripts/XUtliPoolLib/XZeroDelayException.cs new file mode 100644 index 00000000..dc6f088b --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XZeroDelayException.cs @@ -0,0 +1,16 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ [Serializable]
+ public class XZeroDelayException : XException
+ {
+ public XZeroDelayException(string message) : base(message)
+ {
+ }
+
+ public XZeroDelayException(string message, Exception inner) : base(message, inner)
+ {
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/XZeroDelayException.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/XZeroDelayException.cs.meta new file mode 100644 index 00000000..4d1cc6fc --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/XZeroDelayException.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 3f2d91badaa8a7442a9c53cd4021e54d +timeCreated: 1611465633 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Client/Assets/Scripts/XUtliPoolLib/YorozuyaTable.cs b/Client/Assets/Scripts/XUtliPoolLib/YorozuyaTable.cs new file mode 100644 index 00000000..3c6301b0 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/YorozuyaTable.cs @@ -0,0 +1,75 @@ +using System;
+
+namespace XUtliPoolLib
+{
+ public class YorozuyaTable : CVSReader
+ {
+ public YorozuyaTable.RowData[] Table = null;
+
+ public class RowData
+ {
+ public byte ID;
+
+ public SeqListRef<uint> SceneIDs;
+
+ public string IconName;
+
+ public string Name;
+
+ public byte IsOpen;
+ }
+
+ public YorozuyaTable.RowData GetByID(byte key)
+ {
+ bool flag = this.Table == null || this.Table.Length == 0;
+ YorozuyaTable.RowData result;
+ if (flag)
+ {
+ result = null;
+ }
+ else
+ {
+ for (int i = 0; i < this.Table.Length; i++)
+ {
+ bool flag2 = this.Table[i].ID == key;
+ if (flag2)
+ {
+ return this.Table[i];
+ }
+ }
+ result = null;
+ }
+ return result;
+ }
+
+ protected override void ReadLine(XBinaryReader reader)
+ {
+ YorozuyaTable.RowData rowData = new YorozuyaTable.RowData();
+ base.Read<byte>(reader, ref rowData.ID, CVSReader.byteParse);
+ this.columnno = 0;
+ rowData.SceneIDs.Read(reader, this.m_DataHandler);
+ this.columnno = 1;
+ base.Read<string>(reader, ref rowData.IconName, CVSReader.stringParse);
+ this.columnno = 2;
+ base.Read<string>(reader, ref rowData.Name, CVSReader.stringParse);
+ this.columnno = 3;
+ base.Read<byte>(reader, ref rowData.IsOpen, CVSReader.byteParse);
+ this.columnno = 4;
+ this.Table[this.lineno] = rowData;
+ this.columnno = -1;
+ }
+
+ protected override void OnClear(int lineCount)
+ {
+ bool flag = lineCount > 0;
+ if (flag)
+ {
+ this.Table = new YorozuyaTable.RowData[lineCount];
+ }
+ else
+ {
+ this.Table = null;
+ }
+ }
+ }
+}
diff --git a/Client/Assets/Scripts/XUtliPoolLib/YorozuyaTable.cs.meta b/Client/Assets/Scripts/XUtliPoolLib/YorozuyaTable.cs.meta new file mode 100644 index 00000000..db0854b8 --- /dev/null +++ b/Client/Assets/Scripts/XUtliPoolLib/YorozuyaTable.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 64f5bf1875f17cc41b51b2ce6d7f9890 +timeCreated: 1611465655 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: |