protected SkillSlotUIData[] GetSkillSlotData(EquipItemInfo equip) { if (equip == null) { return(null); } int maxSlot = equip.GetMaxSlot(); if (maxSlot == 0) { return(null); } SkillSlotUIData[] ui_slot_data = new SkillSlotUIData[maxSlot]; int currentSetNo = MonoBehaviourSingleton <StatusManager> .I.GetCurrentEquipSetNo(); SkillItemInfo[] skillInventoryClone = MonoBehaviourSingleton <InventoryManager> .I.GetSkillInventoryClone(); SkillItemInfo[] array = Array.FindAll(skillInventoryClone, (SkillItemInfo skill_item) => skill_item.equipSetSkill.Find((EquipSetSkillData skill) => skill.equipItemUniqId == equip.uniqueID && skill.equipSetNo == currentSetNo) != null); if (array != null && array.Length > maxSlot) { Log.Error("Attach Skill Num is Over Skill Slot Num"); } SkillItemTable.SkillSlotData[] slot_data = equip.tableData.GetSkillSlot(equip.exceed); Array.ForEach(array, delegate(SkillItemInfo info) { if (info != null) { EquipSetSkillData equipSetSkillData = info.equipSetSkill.Find((EquipSetSkillData x) => x.equipSetNo == currentSetNo); if (equipSetSkillData != null) { int num2 = equipSetSkillData.equipSlotNo; if (equip.IsExceedSkillSlot(num2)) { num2 = equip.GetExceedSkillIndex(equipSetSkillData.equipSlotNo); } ui_slot_data[num2] = new SkillSlotUIData(); ui_slot_data[num2].slotData = new SkillItemTable.SkillSlotData(info.tableData.id, slot_data[num2].slotType); ui_slot_data[num2].itemData = info; } } }); int i = 0; for (int num = ui_slot_data.Length; i < num; i++) { if (ui_slot_data[i] == null) { ui_slot_data[i] = new SkillSlotUIData(); ui_slot_data[i].slotData = new SkillItemTable.SkillSlotData(0u, equip.tableData.GetSkillSlot(equip.exceed)[i].slotType); } } return(ui_slot_data); }