From 6eb915c129fc90c6f4c82ae097dd6ffad5239efc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 25 Jan 2021 14:28:30 +0800 Subject: +scripts --- Client/Assets/Scripts/XMainClient/XBodyBag.cs | 145 ++++++++++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 Client/Assets/Scripts/XMainClient/XBodyBag.cs (limited to 'Client/Assets/Scripts/XMainClient/XBodyBag.cs') diff --git a/Client/Assets/Scripts/XMainClient/XBodyBag.cs b/Client/Assets/Scripts/XMainClient/XBodyBag.cs new file mode 100644 index 00000000..56c903c6 --- /dev/null +++ b/Client/Assets/Scripts/XMainClient/XBodyBag.cs @@ -0,0 +1,145 @@ +using System; +using XUtliPoolLib; + +namespace XMainClient +{ + internal class XBodyBag + { + public XItem this[int key] + { + get + { + return this.Bag[key]; + } + set + { + this.Bag[key] = value; + } + } + + public int Length + { + get + { + return this.Bag.Length; + } + } + + private XItem[] Bag; + + public XBodyBag(int length) + { + this.Bag = new XItem[length]; + } + + public void UpdateItem(XItem item) + { + for (int i = 0; i < this.Bag.Length; i++) + { + bool flag = this.Bag[i] != null && this.Bag[i].uid == item.uid; + if (flag) + { + this.Bag[i].Recycle(); + this.Bag[i] = item; + break; + } + } + } + + public XItem GetItemByUID(ulong uid) + { + for (int i = 0; i < this.Bag.Length; i++) + { + bool flag = this.Bag[i] != null && this.Bag[i].uid == uid; + if (flag) + { + return this.Bag[i]; + } + } + return null; + } + + public XItem GetItemByID(int id) + { + for (int i = 0; i < this.Bag.Length; i++) + { + bool flag = this.Bag[i] != null && this.Bag[i].itemID == id; + if (flag) + { + return this.Bag[i]; + } + } + return null; + } + + public int GetItemCountByID(int id) + { + int num = 0; + for (int i = 0; i < this.Bag.Length; i++) + { + bool flag = this.Bag[i] != null && this.Bag[i].itemID == id; + if (flag) + { + num += this.Bag[i].itemCount; + } + } + return num; + } + + public bool HasItem(ulong uid) + { + for (int i = 0; i < this.Bag.Length; i++) + { + bool flag = this.Bag[i] != null && this.Bag[i].uid == uid; + if (flag) + { + return true; + } + } + return false; + } + + public bool GetItemPos(ulong uid, out int pos) + { + for (int i = 0; i < this.Bag.Length; i++) + { + bool flag = this.Bag[i] != null && this.Bag[i].uid == uid; + if (flag) + { + pos = i; + return true; + } + } + pos = -1; + return false; + } + + public XItem GetDefaultSelectedItem(ItemType type) + { + int num = 0; + bool flag = type == ItemType.EQUIP; + if (flag) + { + num = XFastEnumIntEqualityComparer.ToInt(EquipPosition.Mainweapon); + } + bool flag2 = num < this.Bag.Length; + if (flag2) + { + bool flag3 = this.Bag[num] != null && this.Bag[num].uid > 0UL; + if (flag3) + { + return this.Bag[num]; + } + } + for (int i = 0; i < this.Bag.Length; i++) + { + bool flag4 = this.Bag[i] != null && this.Bag[i].uid > 0UL; + if (flag4) + { + return this.Bag[i]; + } + } + return null; + } + } +} -- cgit v1.1-26-g67d0