From 6eb915c129fc90c6f4c82ae097dd6ffad5239efc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Jan 2021 14:28:30 +0800 Subject: +scripts --- .../XMainClient/Equip/EquipSlotAttrDatas.cs | 197 +++++++++++++++++++++ 1 file changed, 197 insertions(+) create mode 100644 Client/Assets/Scripts/XMainClient/Equip/EquipSlotAttrDatas.cs (limited to 'Client/Assets/Scripts/XMainClient/Equip/EquipSlotAttrDatas.cs') diff --git a/Client/Assets/Scripts/XMainClient/Equip/EquipSlotAttrDatas.cs b/Client/Assets/Scripts/XMainClient/Equip/EquipSlotAttrDatas.cs new file mode 100644 index 00000000..189b3dc5 --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/Equip/EquipSlotAttrDatas.cs @@ -0,0 +1,197 @@ +using System; +using System.Collections.Generic; +using XMainClient.UI; +using XUtliPoolLib; + +namespace XMainClient +{ + internal class EquipSlotAttrDatas + { + public uint EquipId + { + get + { + return this.m_equipId; + } + } + + private uint m_equipId = 0u; + + private List m_slotDataList; + + public EquipSlotAttrDatas(uint equipId) + { + this.m_equipId = equipId; + this.m_slotDataList = new List(); + } + + public void Add(RandomAttributes.RowData row) + { + for (int i = 0; i < this.m_slotDataList.Count; i++) + { + bool flag = this.m_slotDataList[i].Slot == (uint)row.Slot; + if (flag) + { + this.m_slotDataList[i].Add(row); + return; + } + } + EquipSlotAttrData equipSlotAttrData = new EquipSlotAttrData((uint)row.Slot); + equipSlotAttrData.Add(row); + this.m_slotDataList.Add(equipSlotAttrData); + } + + public void Add(ForgeAttributes.RowData row) + { + for (int i = 0; i < this.m_slotDataList.Count; i++) + { + bool flag = this.m_slotDataList[i].Slot == (uint)row.Slot; + if (flag) + { + this.m_slotDataList[i].Add(row); + return; + } + } + EquipSlotAttrData equipSlotAttrData = new EquipSlotAttrData((uint)row.Slot); + equipSlotAttrData.Add(row); + this.m_slotDataList.Add(equipSlotAttrData); + } + + public EquipAttrData GetAttrData(int slot, XItemChangeAttr attr) + { + return this.GetAttrData(slot, attr.AttrID); + } + + public EquipAttrData GetAttrData(int slot, uint attrid) + { + for (int i = 0; i < this.m_slotDataList.Count; i++) + { + bool flag = (ulong)this.m_slotDataList[i].Slot == (ulong)((long)slot); + if (flag) + { + return this.m_slotDataList[i].GetAttrData(attrid); + } + } + return null; + } + + public double GetPercentValue(int slot, XItemChangeAttr attr) + { + EquipAttrData attrData = this.GetAttrData(slot, attr); + bool flag = attrData == null; + double result; + if (flag) + { + result = 0.0; + } + else + { + result = attrData.GetPercentValue(attr.AttrValue); + } + return result; + } + + public string GetColor(int slot, XItemChangeAttr attr) + { + EquipAttrData attrData = this.GetAttrData(slot, attr); + bool flag = attrData == null; + string result; + if (flag) + { + result = XSingleton.singleton.GetItemQualityRGB(0); + } + else + { + result = attrData.GetColor(attr.AttrValue); + } + return result; + } + + public EquipSlotAttrData GetAttrData(int slot) + { + for (int i = 0; i < this.m_slotDataList.Count; i++) + { + bool flag = (ulong)this.m_slotDataList[i].Slot == (ulong)((long)slot); + if (flag) + { + return this.m_slotDataList[i]; + } + } + return null; + } + + public static uint GetMinPPT(EquipSlotAttrDatas data, XAttributes attributes, bool isForge) + { + uint num = 0u; + bool flag = !isForge; + if (flag) + { + for (int i = 0; i < data.m_slotDataList.Count; i++) + { + uint num2 = uint.MaxValue; + EquipSlotAttrData equipSlotAttrData = data.m_slotDataList[i]; + for (int j = 0; j < equipSlotAttrData.AttrDataList.Count; j++) + { + EquipAttrData equipAttrData = equipSlotAttrData.AttrDataList[j]; + bool flag2 = equipAttrData.RangValue.Prob == 0u; + if (!flag2) + { + num2 = Math.Min(num2, (uint)XSingleton.singleton.GetPPT(equipAttrData.AttrId, (double)equipAttrData.RangValue.Min, attributes, -1)); + } + } + bool flag3 = num2 == uint.MaxValue; + if (flag3) + { + num2 = 0u; + } + num += num2; + } + } + else + { + bool flag4 = data.m_slotDataList.Count == 0; + if (flag4) + { + } + num = uint.MaxValue; + EquipSlotAttrData equipSlotAttrData2 = data.m_slotDataList[0]; + for (int k = 0; k < equipSlotAttrData2.AttrDataList.Count; k++) + { + EquipAttrData equipAttrData2 = equipSlotAttrData2.AttrDataList[k]; + bool flag5 = equipAttrData2.RangValue.Prob == 0u; + if (!flag5) + { + num = Math.Min(num, (uint)XSingleton.singleton.GetPPT(equipAttrData2.AttrId, (double)equipAttrData2.RangValue.Min, attributes, -1)); + } + } + bool flag6 = num == uint.MaxValue; + if (flag6) + { + num = 0u; + } + } + return num; + } + + public static uint GetMaxPPT(EquipSlotAttrDatas data, XAttributes attributes) + { + uint num = 0u; + for (int i = 0; i < data.m_slotDataList.Count; i++) + { + uint num2 = 0u; + EquipSlotAttrData equipSlotAttrData = data.m_slotDataList[i]; + for (int j = 0; j < equipSlotAttrData.AttrDataList.Count; j++) + { + EquipAttrData equipAttrData = equipSlotAttrData.AttrDataList[j]; + bool flag = equipAttrData.RangValue.Prob == 0u; + if (!flag) + { + num2 = Math.Max(num2, (uint)XSingleton.singleton.GetPPT(equipAttrData.AttrId, (double)equipAttrData.RangValue.Max, attributes, -1)); + } + } + num += num2; + } + return num; + } + } +} -- cgit v1.1-26-g67d0