Exemple #1
0
    public bool NeedSmithBadge(SmithCreateItemInfo create_info, bool is_pickup = false)
    {
        if (smithBadgeData == null)
        {
            return(false);
        }
        if (create_info == null || create_info.equipTableData.id == 0)
        {
            return(false);
        }
        if (create_info.equipTableData.listId == 0)
        {
            return(false);
        }
        if ((int)create_info.smithCreateTableData.researchLv > MonoBehaviourSingleton <UserInfoManager> .I.userStatus.researchLv)
        {
            return(false);
        }
        if (!MonoBehaviourSingleton <InventoryManager> .I.IsHaveingKeyMaterial(create_info.smithCreateTableData.needKeyOrder, create_info.smithCreateTableData.needMaterial))
        {
            return(false);
        }
        int id = (int)create_info.equipTableData.id;

        return(!GameSaveData.instance.IsCheckedSmithCreateRecipe(id));
    }
Exemple #2
0
    public static ItemIcon CreateSmithCreateEquipDetailIcon(ITEM_ICON_TYPE icon_type, int icon_id, RARITY_TYPE?rarity, SmithCreateSortData item_data, Transform parent = null, string event_name = null, int event_data = 0, ItemIconDetail.ICON_STATUS icon_status = ItemIconDetail.ICON_STATUS.NONE, bool is_new = false, int toggle_group = -1, bool is_select = false, bool is_equipping = false, GET_TYPE getType = GET_TYPE.PAY)
    {
        SmithCreateItemInfo smithCreateItemInfo = item_data.GetItemData() as SmithCreateItemInfo;
        string icon_under_text = (!smithCreateItemInfo.equipTableData.IsWeapon()) ? smithCreateItemInfo.equipTableData.baseDef.ToString() : smithCreateItemInfo.equipTableData.baseAtk.ToString();
        ItemIconDetailSmall itemIconDetailSmall = ItemIcon.CreateIcon <ItemIconDetailSmall>(MonoBehaviourSingleton <GlobalSettingsManager> .I.linkResources.itemIconDetailSmallPrefab, icon_type, icon_id, rarity, parent, smithCreateItemInfo.equipTableData.GetTargetElementPriorityToTable(), null, -1, event_name, event_data, is_new, toggle_group, is_select, icon_under_text, is_equipping, 0, 0, false, QUEST_ICON_SIZE_TYPE.DEFAULT, getType);

        itemIconDetailSmall.EquipTypeIconInit(smithCreateItemInfo.equipTableData);
        itemIconDetailSmall.SetEquipIndexSprite(-1);
        itemIconDetailSmall.SetIconStatusSprite(icon_status);
        itemIconDetailSmall.SetupSelectNumberSprite(-1);
        itemIconDetailSmall.SetFavoriteIcon(false);
        return(itemIconDetailSmall);
    }
    protected override void SelectingInventoryFirst()
    {
        if (localInventoryEquipData != null && localInventoryEquipData.Length != 0 && localInventoryEquipData[0] != null)
        {
            SmithCreateItemInfo smithCreateItemInfo = localInventoryEquipData[0].GetItemData() as SmithCreateItemInfo;
            if (smithCreateItemInfo != null)
            {
                selectInventoryIndex = 0;
                SmithManager.SmithCreateData smithData = MonoBehaviourSingleton <SmithManager> .I.GetSmithData <SmithManager.SmithCreateData>();

                smithData.generateTableData    = smithCreateItemInfo.equipTableData;
                smithData.createEquipItemTable = smithCreateItemInfo.smithCreateTableData;
            }
        }
    }
Exemple #4
0
    public static ItemIcon CreateSmithCreateEquipDetailIcon(ITEM_ICON_TYPE icon_type, int icon_id, RARITY_TYPE?rarity, SmithCreateSortData item_data, SkillSlotUIData[] skill_slot_data, bool is_show_main_status, Transform parent = null, string event_name = null, int event_data = 0, ICON_STATUS icon_status = ICON_STATUS.NONE, bool is_new = false, int toggle_group = -1, bool is_select = false, bool is_equipping = false, GET_TYPE getType = GET_TYPE.PAY)
    {
        SmithCreateItemInfo smithCreateItemInfo = item_data.GetItemData() as SmithCreateItemInfo;
        ItemIconDetail      itemIconDetail      = ItemIcon.CreateIcon <ItemIconDetail>(MonoBehaviourSingleton <GlobalSettingsManager> .I.linkResources.itemIconDetailPrefab, icon_type, icon_id, rarity, parent, smithCreateItemInfo.equipTableData.GetTargetElementPriorityToTable(), null, -1, event_name, event_data, is_new, toggle_group, is_select, string.Empty, is_equipping, 0, 0, false, QUEST_ICON_SIZE_TYPE.DEFAULT, getType);

        EquipItemTable.EquipItemData equipTableData = item_data.createData.equipTableData;
        itemIconDetail.setupperEquip.Set(new object[6]
        {
            equipTableData,
            skill_slot_data,
            is_show_main_status,
            icon_status,
            -1,
            -1
        });
        return(itemIconDetail);
    }
Exemple #5
0
    public void CreateBadgeData(bool is_force = false)
    {
        if (smithBadgeData == null || is_force)
        {
            smithBadgeData = new SmithBadgeData();
            EQUIPMENT_TYPE[] array = (EQUIPMENT_TYPE[])Enum.GetValues(typeof(EQUIPMENT_TYPE));
            int i = 0;
            for (int num = array.Length; i < num; i++)
            {
                EQUIPMENT_TYPE        type = array[i];
                SmithCreateItemInfo[] createEquipItemDataAry = Singleton <CreateEquipItemTable> .I.GetCreateEquipItemDataAry(type);

                if (createEquipItemDataAry != null && createEquipItemDataAry.Length > 0)
                {
                    int j = 0;
                    for (int num2 = createEquipItemDataAry.Length; j < num2; j++)
                    {
                        SmithCreateItemInfo create_info = createEquipItemDataAry[j];
                        CheckAndAddSmithBadge(create_info, false);
                    }
                }
            }
            smithBadgeData.DebugShowCount();
            SmithCreateItemInfo[] pickupItemAry = Singleton <CreatePickupItemTable> .I.GetPickupItemAry(SortBase.TYPE.WEAPON_ALL);

            int k = 0;
            for (int num3 = pickupItemAry.Length; k < num3; k++)
            {
                SmithCreateItemInfo create_info2 = pickupItemAry[k];
                CheckAndAddSmithBadge(create_info2, true);
            }
            smithBadgeData.DebugShowCount();
            SmithCreateItemInfo[] pickupItemAry2 = Singleton <CreatePickupItemTable> .I.GetPickupItemAry(SortBase.TYPE.ARMOR_ALL);

            int l = 0;
            for (int num4 = pickupItemAry2.Length; l < num4; l++)
            {
                SmithCreateItemInfo create_info3 = pickupItemAry2[l];
                CheckAndAddSmithBadge(create_info3, true);
            }
            smithBadgeData.DebugShowCount();
        }
    }
    protected override int GetSelectItemIndex()
    {
        if (localInventoryEquipData == null || localInventoryEquipData.Length == 0 || localInventoryEquipData[0] == null)
        {
            return(-1);
        }
        SmithManager.SmithCreateData smithData = MonoBehaviourSingleton <SmithManager> .I.GetSmithData <SmithManager.SmithCreateData>();

        int i = 0;

        for (int num = localInventoryEquipData.Length; i < num; i++)
        {
            SmithCreateItemInfo smithCreateItemInfo = localInventoryEquipData[i].GetItemData() as SmithCreateItemInfo;
            if (smithCreateItemInfo != null && smithCreateItemInfo.equipTableData.id == smithData.generateTableData.id && smithCreateItemInfo.smithCreateTableData.id == smithData.createEquipItemTable.id)
            {
                return(i);
            }
        }
        return(-1);
    }
    private void OnQuery_ABILITY()
    {
        int num  = (int)GameSection.GetEventData();
        int num2 = num >> 16;
        int num3 = num % 65536;
        SmithCreateItemInfo smithCreateItemInfo = localInventoryEquipData[num2].GetItemData() as SmithCreateItemInfo;
        EquipItemAbility    equipItemAbility    = null;

        if (smithCreateItemInfo != null)
        {
            equipItemAbility = new EquipItemAbility((uint)smithCreateItemInfo.equipTableData.fixedAbility[num3].id, 0);
        }
        if (equipItemAbility == null)
        {
            GameSection.StopEvent();
        }
        else
        {
            GameSection.SetEventData(equipItemAbility);
        }
    }
 protected override void LocalInventory()
 {
     SetupEnableInventoryUI();
     SetLabelText((Enum)UI.LBL_SORT, sortSettings.GetSortLabel());
     if (localInventoryEquipData != null)
     {
         SortBase.TYPE tYPE       = TranslateInventoryType(selectTypeIndex);
         bool          _is_pickup = tYPE == SortBase.TYPE.WEAPON_ALL || tYPE == SortBase.TYPE.ARMOR_ALL;
         SetDynamicList((Enum)InventoryUI, string.Empty, localInventoryEquipData.Length, false, (Func <int, bool>) delegate(int check_index)
         {
             SmithCreateItemInfo smithCreateItemInfo = localInventoryEquipData[check_index].GetItemData() as SmithCreateItemInfo;
             if (smithCreateItemInfo == null)
             {
                 return(false);
             }
             if (!MonoBehaviourSingleton <InventoryManager> .I.IsHaveingKeyMaterial(smithCreateItemInfo.smithCreateTableData.needKeyOrder, smithCreateItemInfo.smithCreateTableData.needMaterial))
             {
                 return(false);
             }
             if ((int)smithCreateItemInfo.smithCreateTableData.researchLv > MonoBehaviourSingleton <UserInfoManager> .I.userStatus.researchLv)
             {
                 return(false);
             }
             if (localInventoryEquipData[check_index].GetTableID() == 0)
             {
                 return(false);
             }
             SortCompareData sortCompareData = localInventoryEquipData[check_index];
             if (sortCompareData == null || !sortCompareData.IsPriority(sortSettings.orderTypeAsc))
             {
                 return(false);
             }
             return(true);
         }, (Func <int, Transform, Transform>) null, (Action <int, Transform, bool>) delegate(int i, Transform t, bool is_recycle)
         {
             SmithCreateItemInfo create_info = localInventoryEquipData[i].GetItemData() as SmithCreateItemInfo;
             uint tableID = localInventoryEquipData[i].GetTableID();
             if (tableID == 0)
             {
                 SetActive(t, false);
             }
             else
             {
                 SetActive(t, true);
                 SmithCreateSortData smithCreateSortData = localInventoryEquipData[i] as SmithCreateSortData;
                 if (smithCreateSortData != null && smithCreateSortData.IsPriority(sortSettings.orderTypeAsc))
                 {
                     EquipItemTable.EquipItemData equipItemData = Singleton <EquipItemTable> .I.GetEquipItemData(tableID);
                     ITEM_ICON_TYPE iconType         = localInventoryEquipData[i].GetIconType();
                     SkillSlotUIData[] skillSlotData = GetSkillSlotData(equipItemData, 0);
                     bool flag         = false;
                     flag              = MonoBehaviourSingleton <SmithManager> .I.NeedSmithBadge(create_info, _is_pickup);
                     ItemIcon itemIcon = CreateSmithCreateItemIconDetail(getType: smithCreateSortData.GetGetType(), icon_type: iconType, icon_id: equipItemData.GetIconID(MonoBehaviourSingleton <UserInfoManager> .I.userStatus.sex), rarity: equipItemData.rarity, item_data: smithCreateSortData, skill_slot_data: skillSlotData, is_show_main_status: base.IsShowMainStatus, parent: t, event_name: "SELECT_ITEM", event_data: i, icon_status: smithCreateSortData.GetIconStatus(), is_new: flag, toggle_group: -1, is_select: false);
                     itemIcon.SetItemID(smithCreateSortData.GetTableID());
                     itemIcon.SetButtonColor(localInventoryEquipData[i].IsPriority(sortSettings.orderTypeAsc), true);
                     SetLongTouch(itemIcon.transform, "DETAIL", i);
                 }
             }
         });
     }
 }
Exemple #9
0
    public SmithCreateItemInfo[] GetPickupItemAry(SortBase.TYPE item_type = SortBase.TYPE.EQUIP_ALL)
    {
        if (!Singleton <EquipItemTable> .IsValid() || !Singleton <QuestTable> .IsValid())
        {
            return(null);
        }
        List <SmithCreateItemInfo> list      = new List <SmithCreateItemInfo>();
        List <SortData>            sort_data = new List <SortData>();

        pickupTable.ForEach(delegate(CreatePickupItemData pickup_data)
        {
            if ((pickup_data.eventLocationID == 0) ? true : false)
            {
                CreateEquipItemTable.CreateEquipItemData createEquipItemTableData = Singleton <CreateEquipItemTable> .I.GetCreateEquipItemTableData(pickup_data.createTableID);
                if (createEquipItemTableData != null)
                {
                    EquipItemTable.EquipItemData equipItemData = Singleton <EquipItemTable> .I.GetEquipItemData(createEquipItemTableData.equipItemID);
                    if (equipItemData != null)
                    {
                        SmithCreateItemInfo smithCreateItemInfo = new SmithCreateItemInfo(equipItemData, createEquipItemTableData);
                        SortBase.TYPE tYPE = SortBase.TYPE.NONE;
                        switch (smithCreateItemInfo.equipTableData.type)
                        {
                        case EQUIPMENT_TYPE.ARMOR:
                        case EQUIPMENT_TYPE.VISUAL_ARMOR:
                            tYPE = SortBase.TYPE.ARMOR;
                            break;

                        case EQUIPMENT_TYPE.HELM:
                        case EQUIPMENT_TYPE.VISUAL_HELM:
                            tYPE = SortBase.TYPE.HELM;
                            break;

                        case EQUIPMENT_TYPE.ARM:
                        case EQUIPMENT_TYPE.VISUAL_ARM:
                            tYPE = SortBase.TYPE.ARMOR;
                            break;

                        case EQUIPMENT_TYPE.LEG:
                        case EQUIPMENT_TYPE.VISUAL_LEG:
                            tYPE = SortBase.TYPE.LEG;
                            break;

                        case EQUIPMENT_TYPE.ONE_HAND_SWORD:
                            tYPE = SortBase.TYPE.ONE_HAND_SWORD;
                            break;

                        case EQUIPMENT_TYPE.TWO_HAND_SWORD:
                            tYPE = SortBase.TYPE.TWO_HAND_SWORD;
                            break;

                        case EQUIPMENT_TYPE.SPEAR:
                            tYPE = SortBase.TYPE.SPEAR;
                            break;

                        case EQUIPMENT_TYPE.PAIR_SWORDS:
                            tYPE = SortBase.TYPE.PAIR_SWORDS;
                            break;

                        case EQUIPMENT_TYPE.ARROW:
                            tYPE = SortBase.TYPE.ARROW;
                            break;

                        default:
                            tYPE = SortBase.TYPE.NONE;
                            break;
                        }
                        if ((tYPE & item_type) != 0)
                        {
                            bool flag = true;
                            if (!MonoBehaviourSingleton <InventoryManager> .I.IsHaveingKeyMaterial(createEquipItemTableData.needKeyOrder, createEquipItemTableData.needMaterial))
                            {
                                flag = false;
                            }
                            if ((int)createEquipItemTableData.researchLv > MonoBehaviourSingleton <UserInfoManager> .I.userStatus.researchLv)
                            {
                                flag = false;
                            }
                            if (flag)
                            {
                                list.Add(smithCreateItemInfo);
                                sort_data.Add(new SortData(smithCreateItemInfo, (int)pickup_data.id));
                            }
                        }
                    }
                }
            }
        });
        list.Sort((SmithCreateItemInfo l, SmithCreateItemInfo r) => GetSortIndex(sort_data, l) - GetSortIndex(sort_data, r));
        return(list.ToArray());
    }
Exemple #10
0
 private int GetSortIndex(List <SortData> sort_data, SmithCreateItemInfo search_data)
 {
     return(sort_data.Find((SortData _data) => _data.data == search_data).index);
 }
Exemple #11
0
 public SortData(SmithCreateItemInfo _data, int _index)
 {
     data  = _data;
     index = _index;
 }
 public override void SetItem(object item)
 {
     createData = (SmithCreateItemInfo)item;
 }
Exemple #13
0
    private void CheckAndAddSmithBadge(SmithCreateItemInfo create_info, bool is_pickup = false)
    {
        int id = (int)create_info.equipTableData.id;

        if (NeedSmithBadge(create_info, is_pickup))
        {
            if (create_info.equipTableData.IsWeapon())
            {
                int equipmentTypeIndex = UIBehaviour.GetEquipmentTypeIndex(create_info.equipTableData.type);
                if (is_pickup)
                {
                    if (smithBadgeData.pickupBadgeIds[0] == null)
                    {
                        smithBadgeData.pickupBadgeIds[0] = new List <int>();
                    }
                    smithBadgeData.pickupBadgeIds[0].Add(id);
                    smithBadgeData.pickupBadgeNum[0]++;
                }
                else
                {
                    if (smithBadgeData.weaponsBadgeIds[equipmentTypeIndex] == null)
                    {
                        smithBadgeData.weaponsBadgeIds[equipmentTypeIndex] = new List <int>();
                    }
                    smithBadgeData.weaponsBadgeIds[equipmentTypeIndex].Add(id);
                    smithBadgeData.weaponsBadgeNum[equipmentTypeIndex]++;
                }
            }
            else if (create_info.equipTableData.IsVisual())
            {
                int num = UIBehaviour.GetEquipmentTypeIndex(create_info.equipTableData.type) - 5;
                if (is_pickup)
                {
                    if (smithBadgeData.pickupBadgeIds[1] == null)
                    {
                        smithBadgeData.pickupBadgeIds[1] = new List <int>();
                    }
                    smithBadgeData.pickupBadgeIds[1].Add(id);
                    smithBadgeData.pickupBadgeNum[1]++;
                }
                else
                {
                    if (smithBadgeData.visualBadgeIds[num] == null)
                    {
                        smithBadgeData.visualBadgeIds[num] = new List <int>();
                    }
                    smithBadgeData.visualBadgeIds[num].Add(id);
                    smithBadgeData.visualBadgeNum[num]++;
                }
            }
            else
            {
                int num2 = UIBehaviour.GetEquipmentTypeIndex(create_info.equipTableData.type) - 5;
                if (is_pickup)
                {
                    if (smithBadgeData.pickupBadgeIds[1] == null)
                    {
                        smithBadgeData.pickupBadgeIds[1] = new List <int>();
                    }
                    smithBadgeData.pickupBadgeIds[1].Add(id);
                    smithBadgeData.pickupBadgeNum[1]++;
                }
                else
                {
                    if (smithBadgeData.defenseBadgeIds[num2] == null)
                    {
                        smithBadgeData.defenseBadgeIds[num2] = new List <int>();
                    }
                    smithBadgeData.defenseBadgeIds[num2].Add(id);
                    smithBadgeData.defenseBadgeNum[num2]++;
                }
            }
        }
    }
    public int IsHaveingMaterialAndPayAndObtained(SmithCreateItemInfo createData)
    {
        bool flag  = false;
        bool flag2 = true;
        bool flag3 = false;
        int  num   = 0;
        bool flag4 = equipItemFilterList.ContainsKey(createData.smithCreateTableData.equipItemID);

        if (flag4)
        {
            flag2 = equipItemFilterList[createData.smithCreateTableData.equipItemID].isCreateble;
            flag  = equipItemFilterList[createData.smithCreateTableData.equipItemID].isPay;
            flag3 = equipItemFilterList[createData.smithCreateTableData.equipItemID].isObtained;
        }
        else
        {
            NeedMaterial[] needMaterial = createData.smithCreateTableData.needMaterial;
            if (createData.equipTableData.getType == GET_TYPE.PAY)
            {
                flag = true;
            }
            flag3 = MonoBehaviourSingleton <AchievementManager> .I.CheckEquipItemCollection(createData.equipTableData);

            List <NeedMaterial> list = new List <NeedMaterial>(needMaterial);
            int count = list.Count;
            if (count > 0)
            {
                LinkedListNode <ItemInfo> node;
                for (node = itemInventory.GetFirstNode(); node != null; node = node.Next)
                {
                    NeedMaterial find_enough_material = null;
                    list.ForEach(delegate(NeedMaterial material)
                    {
                        if (material.itemID == node.Value.tableID && material.num <= node.Value.num)
                        {
                            find_enough_material = material;
                        }
                    });
                    if (find_enough_material != null)
                    {
                        list.Remove(find_enough_material);
                    }
                }
                if (list.Count != 0)
                {
                    flag2 = false;
                }
            }
        }
        if (MonoBehaviourSingleton <UserInfoManager> .I.userStatus.money < (int)createData.smithCreateTableData.needMoney)
        {
            flag2 = false;
        }
        if (!flag4)
        {
            EquipItemFilter equipItemFilter = new EquipItemFilter();
            equipItemFilter.itemId      = createData.smithCreateTableData.equipItemID;
            equipItemFilter.isCreateble = flag2;
            equipItemFilter.isPay       = flag;
            equipItemFilter.isObtained  = flag3;
            equipItemFilterList[equipItemFilter.itemId] = equipItemFilter;
        }
        num = ((!flag2) ? (num | 8) : (num | 4));
        num = ((!flag) ? (num | 2) : (num | 1));
        if (!flag3)
        {
            return(num | 0x20);
        }
        return(num | 0x10);
    }