public List <CEquipItem> GetItemListByClothType(ItemCloth_Type clothType) { List <CEquipItem> listItem = new List <CEquipItem>(); CItemBase item = null; CEquipItem equipItem = null; for (Item_Column column = 0; column < Item_Column.ItemBagColumn_Storage + 1; ++column) { List <CItemBase> itemBaseList = GetItemList(column); if (itemBaseList != null && itemBaseList.Count > 0) { int baseCount = itemBaseList.Count; for (int i = 0; i < baseCount; ++i) { item = itemBaseList[i]; if (item != null && item.IsEquip()) { equipItem = item as CEquipItem; if (equipItem != null) { if (equipItem.GetClothPos() == (byte)clothType) { listItem.Add(equipItem); } } } } } } return(listItem); }
//the equiped items of main player will not be serialized in separate array, use the flag IsEquiped to check public override void UpdateItem(Item_Column column, ushort grid, CItemBase itemBase) { if (column == Item_Column.ItemBagColumn_ClothCapsule) { CEquipItem oldEquip = (CEquipItem)m_AllItem[(int)column][grid]; base.UpdateItem(column, grid, itemBase); if (oldEquip != null && oldEquip.IsEquiped) { m_AllItem[(int)Item_Column.ItemPlayerColumn_ClothCapsule][oldEquip.GetClothPos()] = null; } CEquipItem newEquip = itemBase as CEquipItem; if (newEquip != null && newEquip.IsEquiped) { m_AllItem[(int)Item_Column.ItemPlayerColumn_ClothCapsule][newEquip.GetClothPos()] = newEquip; } } else { base.UpdateItem(column, grid, itemBase); CheckNeedArrangeItem(); } }