Ejemplo n.º 1
0
    protected SkillSlotUIData[] GetSkillSlotData(EquipItemTable.EquipItemData table_data, int exceed_cnt)
    {
        if (table_data == null)
        {
            return(null);
        }
        if (table_data.GetSkillSlot(exceed_cnt) == null)
        {
            return(null);
        }
        SkillItemTable.SkillSlotData[] skillSlot = table_data.GetSkillSlot(exceed_cnt);
        SkillSlotUIData[] array = new SkillSlotUIData[skillSlot.Length];
        int i = 0;

        for (int num = skillSlot.Length; i < num; i++)
        {
            array[i] = new SkillSlotUIData();
            if (skillSlot[i] != null)
            {
                array[i].slotData = skillSlot[i];
            }
            else
            {
                array[i].slotData = new SkillItemTable.SkillSlotData(0u, skillSlot[i].slotType);
            }
        }
        return(array);
    }
Ejemplo n.º 2
0
    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);
    }
Ejemplo n.º 3
0
    protected EquipItemAndSkillData[] GetEquipSetAttachSkillListData(List <CharaInfo.EquipItem> equip_item_data)
    {
        EquipItemAndSkillData[] ary = new EquipItemAndSkillData[7];
        int weapon_cnt = 0;

        equip_item_data.ForEach(delegate(CharaInfo.EquipItem data)
        {
            EquipItemAndSkillData equipItemAndSkillData = new EquipItemAndSkillData
            {
                equipItemInfo = new EquipItemInfo(data)
            };
            int maxSlot             = equipItemAndSkillData.equipItemInfo.GetMaxSlot();
            SkillSlotUIData[] array = new SkillSlotUIData[maxSlot];
            List <int> list         = new List <int>();
            int j = 0;
            for (int num = maxSlot; j < num; j++)
            {
                array[j]                   = new SkillSlotUIData();
                array[j].slotData          = equipItemAndSkillData.equipItemInfo.tableData.GetSkillSlot(data.exceed)[j];
                array[j].slotData.skill_id = 0u;
                array[j].itemData          = null;
                int k = 0;
                for (int count = data.sIds.Count; k < count; k++)
                {
                    if (list.IndexOf(k) == -1)
                    {
                        SkillItemTable.SkillItemData skillItemData = Singleton <SkillItemTable> .I.GetSkillItemData((uint)data.sIds[k]);
                        if (skillItemData.type == array[j].slotData.slotType)
                        {
                            int exceed = 0;
                            if (k < data.sExs.Count)
                            {
                                exceed = data.sExs[k];
                            }
                            array[j].itemData          = new SkillItemInfo(j, data.sIds[k], data.sLvs[k], exceed);
                            array[j].slotData.skill_id = (uint)data.sIds[k];
                            list.Add(k);
                            break;
                        }
                    }
                }
            }
            equipItemAndSkillData.skillSlotUIData = array;
            int num2 = 0;
            switch (equipItemAndSkillData.equipItemInfo.tableData.type)
            {
            case EQUIPMENT_TYPE.ARMOR:
                num2 = 3;
                break;

            case EQUIPMENT_TYPE.HELM:
                num2 = 4;
                break;

            case EQUIPMENT_TYPE.ARM:
                num2 = 5;
                break;

            case EQUIPMENT_TYPE.LEG:
                num2 = 6;
                break;

            default:
                num2 = ++weapon_cnt;
                break;
            }
            ary[num2] = equipItemAndSkillData;
        });
        for (int i = 0; i < 7; i++)
        {
            if (ary[i] == null)
            {
                ary[i] = new EquipItemAndSkillData();
            }
        }
        return(ary);
    }