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)); }
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; } } }
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); }
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); } } }); } }
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()); }
private int GetSortIndex(List <SortData> sort_data, SmithCreateItemInfo search_data) { return(sort_data.Find((SortData _data) => _data.data == search_data).index); }
public SortData(SmithCreateItemInfo _data, int _index) { data = _data; index = _index; }
public override void SetItem(object item) { createData = (SmithCreateItemInfo)item; }
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); }