public static bool SetupRequirement( InventoryGui __instance, Transform elementRoot, ItemDrop item, int amount, Player player) { var icon = elementRoot.transform.Find("res_icon").GetComponent <Image>(); var nameText = elementRoot.transform.Find("res_name").GetComponent <Text>(); var amountText = elementRoot.transform.Find("res_amount").GetComponent <Text>(); var tooltip = elementRoot.GetComponent <UITooltip>(); if (item != null) { icon.gameObject.SetActive(true); nameText.gameObject.SetActive(true); amountText.gameObject.SetActive(true); if (item.m_itemData.IsMagicCraftingMaterial()) { var rarity = item.m_itemData.GetCraftingMaterialRarity(); icon.sprite = item.m_itemData.m_shared.m_icons[EpicLoot.GetRarityIconIndex(rarity)]; } else { icon.sprite = item.m_itemData.GetIcon(); } icon.color = Color.white; var bgIconTransform = icon.transform.parent.Find("bgIcon"); if (item.m_itemData.UseMagicBackground()) { if (bgIconTransform == null) { bgIconTransform = Object.Instantiate(icon, icon.transform.parent, true).transform; bgIconTransform.name = "bgIcon"; bgIconTransform.SetSiblingIndex(icon.transform.GetSiblingIndex()); } bgIconTransform.gameObject.SetActive(true); var bgIcon = bgIconTransform.GetComponent <Image>(); bgIcon.sprite = EpicLoot.GetMagicItemBgSprite(); bgIcon.color = item.m_itemData.GetRarityColor(); } else if (bgIconTransform != null) { bgIconTransform.gameObject.SetActive(false); } tooltip.m_text = Localization.instance.Localize(item.m_itemData.m_shared.m_name); nameText.text = Localization.instance.Localize(item.m_itemData.m_shared.m_name); if (amount <= 0) { InventoryGui.HideRequirement(elementRoot); return(false); } amountText.text = amount.ToString(); amountText.color = Color.white; } return(true); }
public void SetupRequirementList(InventoryGui __instance, Player player, EnchantRecipe recipe, bool canCraft) { var requirementStates = new[] { Auga.RequirementWireState.Absent, Auga.RequirementWireState.Absent, Auga.RequirementWireState.Absent, Auga.RequirementWireState.Absent }; var index = 0; var cost = GetRecipeCost(recipe, SelectedRarity); foreach (var product in cost) { if (SetupRequirement(__instance, __instance.m_recipeRequirementList[index].transform, product.Key, product.Value, player, true, out var haveMaterials)) { requirementStates[index] = haveMaterials ? Auga.RequirementWireState.Have : Auga.RequirementWireState.DontHave; ++index; } } for (; index < __instance.m_recipeRequirementList.Length; ++index) { InventoryGui.HideRequirement(__instance.m_recipeRequirementList[index].transform); } if (EpicLoot.HasAuga) { Auga.API.RequirementsPanel_SetWires(AugaTabData.RequirementsPanelGO, requirementStates, canCraft); } }
public override void UpdateRecipe(InventoryGui __instance, Player player, float dt, Image bgImage) { if (SelectedRecipe >= 0 && SelectedRecipe < Recipes.Count) { var recipe = Recipes[SelectedRecipe]; var itemData = recipe.FromItem; __instance.m_recipeIcon.enabled = true; __instance.m_recipeIcon.sprite = itemData.GetIcon(); __instance.m_recipeName.enabled = true; __instance.m_recipeName.text = Localization.instance.Localize(itemData.GetDecoratedName()); __instance.m_recipeDecription.enabled = true; __instance.m_recipeDecription.text = Localization.instance.Localize(ItemDrop.ItemData.GetTooltip(itemData, itemData.m_quality, true)); __instance.m_recipeDecription.text += "\n\n<color=red>This item will be DESTROYED as a SACRIFICE to the gods.</color>"; bgImage.color = recipe.FromItem.GetRarityColor(); bgImage.enabled = recipe.FromItem.UseMagicBackground(); __instance.m_itemCraftType.gameObject.SetActive(true); __instance.m_itemCraftType.text = "Destroy this item and get:"; __instance.m_variantButton.gameObject.SetActive(false); SetupRequirementList(__instance, player, recipe); __instance.m_minStationLevelIcon.gameObject.SetActive(false); var isEquipped = recipe.FromItem.m_equiped; var canPutProductsInInventory = CanAddItems(player.GetInventory(), recipe.Products, 1); __instance.m_craftButton.interactable = canPutProductsInInventory && !isEquipped; __instance.m_craftButton.GetComponentInChildren <Text>().text = "Sacrifice"; __instance.m_craftButton.GetComponent <UITooltip>().m_text = canPutProductsInInventory ? (isEquipped ? "Item is currently equipped" : "") : Localization.instance.Localize("$inventory_full"); } else { bgImage.enabled = false; __instance.m_itemCraftType.gameObject.SetActive(false); __instance.m_variantButton.gameObject.SetActive(false); __instance.m_minStationLevelIcon.gameObject.SetActive(false); __instance.m_recipeIcon.enabled = false; __instance.m_recipeName.enabled = false; __instance.m_recipeDecription.enabled = false; foreach (var req in __instance.m_recipeRequirementList) { InventoryGui.HideRequirement(req.transform); } __instance.m_craftButton.interactable = false; } }
public static void SetupRequirementList(InventoryGui __instance, Player player, DisenchantRecipe recipe) { var index = 0; foreach (var product in recipe.Products) { if (SetupRequirement(__instance, __instance.m_recipeRequirementList[index].transform, product.Key, product.Value, player, false)) { ++index; } } for (; index < __instance.m_recipeRequirementList.Length; ++index) { InventoryGui.HideRequirement(__instance.m_recipeRequirementList[index].transform); } }
private static bool Prefix(Transform elementRoot, Piece.Requirement req, Player player, bool craft, int quality, ref bool __result) { Image component = elementRoot.transform.Find("res_icon").GetComponent <Image>(); Text component2 = elementRoot.transform.Find("res_name").GetComponent <Text>(); Text component3 = elementRoot.transform.Find("res_amount").GetComponent <Text>(); UITooltip component4 = elementRoot.GetComponent <UITooltip>(); if (req.m_resItem != null) { component.gameObject.SetActive(true); component2.gameObject.SetActive(true); component3.gameObject.SetActive(true); component.sprite = req.m_resItem.m_itemData.GetIcon(); component.color = Color.white; component4.m_text = Localization.instance.Localize(req.m_resItem.m_itemData.m_shared.m_name); component2.text = Localization.instance.Localize(req.m_resItem.m_itemData.m_shared.m_name); int num = player.GetInventory().CountItems(req.m_resItem.m_itemData.m_shared.m_name); int amount = req.GetAmount(quality); if (amount <= 0) { InventoryGui.HideRequirement(elementRoot); __result = false; return(false); } component3.text = num + "/" + amount.ToString(); if (num < amount) { component3.color = ((Mathf.Sin(Time.time * 10f) > 0f) ? Color.red : Color.white); } else { component3.color = Color.white; } component3.fontSize = 14; if (component3.text.Length > 5) { component3.fontSize -= component3.text.Length - 5; } } __result = true; return(false); }
static bool Prefix(ref bool __result, Transform elementRoot, Piece.Requirement req, Player player, bool craft, int quality) { Image icon = elementRoot.transform.Find("res_icon").GetComponent <Image>(); Text nameText = elementRoot.transform.Find("res_name").GetComponent <Text>(); Text amountText = elementRoot.transform.Find("res_amount").GetComponent <Text>(); UITooltip tooltip = elementRoot.GetComponent <UITooltip>(); if (req.m_resItem != null) { icon.gameObject.SetActive(true); nameText.gameObject.SetActive(true); amountText.gameObject.SetActive(true); icon.sprite = req.m_resItem.m_itemData.GetIcon(); icon.color = Color.white; tooltip.m_text = Localization.instance.Localize(req.m_resItem.m_itemData.m_shared.m_name); nameText.text = Localization.instance.Localize(req.m_resItem.m_itemData.m_shared.m_name); int num = ImprovedBuildHud.GetAvailableItems(req.m_resItem.m_itemData.m_shared.m_name); int amount = req.GetAmount(quality); if (amount <= 0) { InventoryGui.HideRequirement(elementRoot); __result = false; return(false); } amountText.supportRichText = true; amountText.horizontalOverflow = HorizontalWrapMode.Overflow; var inventoryAmount = string.Format(ImprovedBuildHudConfig.InventoryAmountFormat.Value, num); if (!string.IsNullOrEmpty(ImprovedBuildHudConfig.InventoryAmountColor.Value)) { inventoryAmount = $"<color={ImprovedBuildHudConfig.InventoryAmountColor.Value}>{inventoryAmount}</color>"; } amountText.text = $"{amount} {inventoryAmount}"; if (num < amount) { amountText.color = (double)Mathf.Sin(Time.time * 10f) > 0.0 ? Color.red : Color.white; } else { amountText.color = Color.white; } } __result = true; return(false); }
public void SetupRequirementList(InventoryGui __instance, Player player, AugmentRecipe recipe) { var index = 0; var cost = GetRecipeCost(recipe); foreach (var product in cost) { if (SetupRequirement(__instance, __instance.m_recipeRequirementList[index].transform, product.Key, product.Value, player, true)) { ++index; } } for (; index < __instance.m_recipeRequirementList.Length; ++index) { InventoryGui.HideRequirement(__instance.m_recipeRequirementList[index].transform); } }
public override void UpdateRecipe(InventoryGui __instance, Player player, float dt, Image bgImage) { if (SelectedRecipe >= 0 && SelectedRecipe < Recipes.Count) { var recipe = Recipes[SelectedRecipe]; var itemData = recipe.FromItem; var magicItem = itemData.GetMagicItem(); var rarity = itemData.GetRarity(); var rarityColorARGB = EpicLoot.GetRarityColorARGB(rarity); __instance.m_recipeIcon.enabled = true; __instance.m_recipeIcon.sprite = itemData.GetIcon(); __instance.m_recipeName.enabled = true; __instance.m_recipeName.text = Localization.instance.Localize(itemData.GetDecoratedName()); __instance.m_recipeDecription.enabled = true; __instance.m_recipeDecription.text = "Replace one magical effect. Once an effect has been augmented, the others are locked."; if (magicItem.HasBeenAugmented()) { recipe.EffectIndex = magicItem.AugmentedEffectIndex; } GenerateAugmentSelectors(recipe, __instance); bgImage.color = rarityColorARGB; bgImage.enabled = true; __instance.m_itemCraftType.gameObject.SetActive(false); __instance.m_variantButton.gameObject.SetActive(false); SetupRequirementList(__instance, player, recipe); __instance.m_minStationLevelIcon.gameObject.SetActive(false); var canCraft = Player.m_localPlayer.HaveRequirements(GetRecipeRequirementArray(recipe), false, 1); var hasSelectedEffect = recipe.EffectIndex >= 0; var hasAnyAvailableEnchants = GetAvailableAugments(recipe, recipe.FromItem, recipe.FromItem.GetMagicItem(), recipe.FromItem.GetRarity()).Count > 0; __instance.m_craftButton.interactable = canCraft && hasSelectedEffect && hasAnyAvailableEnchants; __instance.m_craftButton.GetComponentInChildren <Text>().text = "Augment"; __instance.m_craftButton.GetComponent <UITooltip>().m_text = hasSelectedEffect ? (canCraft ? (hasAnyAvailableEnchants ? "" : "No available effects") : Localization.instance.Localize("$msg_missingrequirement")) : "Select an effect to augment"; } else { bgImage.enabled = false; __instance.m_itemCraftType.gameObject.SetActive(false); __instance.m_variantButton.gameObject.SetActive(false); __instance.m_minStationLevelIcon.gameObject.SetActive(false); __instance.m_recipeIcon.enabled = false; __instance.m_recipeName.enabled = false; __instance.m_recipeDecription.enabled = false; foreach (var toggle in EffectSelectors) { toggle.gameObject.SetActive(false); } foreach (var req in __instance.m_recipeRequirementList) { InventoryGui.HideRequirement(req.transform); } __instance.m_craftButton.interactable = false; } }
private static bool Prefix(Transform elementRoot, Piece.Requirement req, Player player, bool craft, int quality, ref bool __result) { if (!Configuration.Current.Hud.IsEnabled && !Configuration.Current.CraftFromChest.IsEnabled || !Configuration.Current.Hud.showRequiredItems && !Configuration.Current.CraftFromChest.IsEnabled) { return(true); } Image component = elementRoot.transform.Find("res_icon").GetComponent <Image>(); Text component2 = elementRoot.transform.Find("res_name").GetComponent <Text>(); Text component3 = elementRoot.transform.Find("res_amount").GetComponent <Text>(); UITooltip component4 = elementRoot.GetComponent <UITooltip>(); if (req.m_resItem != null) { component.gameObject.SetActive(true); component2.gameObject.SetActive(true); component3.gameObject.SetActive(true); component.sprite = req.m_resItem.m_itemData.GetIcon(); component.color = Color.white; component4.m_text = Localization.instance.Localize(req.m_resItem.m_itemData.m_shared.m_name); component2.text = Localization.instance.Localize(req.m_resItem.m_itemData.m_shared.m_name); int num = player.GetInventory().CountItems(req.m_resItem.m_itemData.m_shared.m_name); int amount = req.GetAmount(quality); if (amount <= 0) { InventoryGui.HideRequirement(elementRoot); __result = false; return(false); } if (Configuration.Current.CraftFromChest.IsEnabled) { Stopwatch delta; GameObject pos = player.GetCurrentCraftingStation()?.gameObject; if (!pos || !Configuration.Current.CraftFromChest.checkFromWorkbench) { pos = player.gameObject; delta = Inventory_NearbyChests_Cache.delta; } else { delta = GameObjectAssistant.GetStopwatch(pos); } int lookupInterval = Helper.Clamp(Configuration.Current.CraftFromChest.lookupInterval, 1, 10) * 1000; if (!delta.IsRunning || delta.ElapsedMilliseconds > lookupInterval) { Inventory_NearbyChests_Cache.chests = InventoryAssistant.GetNearbyChests(pos, Helper.Clamp(Configuration.Current.CraftFromChest.range, 1, 50)); delta.Restart(); } num += InventoryAssistant.GetItemAmountInItemList(InventoryAssistant.GetNearbyChestItemsByContainerList(Inventory_NearbyChests_Cache.chests), req.m_resItem.m_itemData); } component3.text = num + "/" + amount.ToString(); if (num < amount) { component3.color = ((Mathf.Sin(Time.time * 10f) > 0f) ? Color.red : Color.white); } else { component3.color = Color.white; } component3.fontSize = 14; if (component3.text.Length > 5) { component3.fontSize -= component3.text.Length - 5; } } __result = true; return(false); }
public override void UpdateRecipe(InventoryGui __instance, Player player, float dt, Image bgImage) { __instance.m_craftButton.GetComponentInChildren <Text>().text = Localization.instance.Localize("$mod_epicloot_sacrifice"); if (SelectedRecipe >= 0 && SelectedRecipe < Recipes.Count) { var recipe = Recipes[SelectedRecipe]; var itemData = recipe.FromItem; var canPutProductsInInventory = CanAddItems(player.GetInventory(), recipe.Products, 1); var isEquipped = recipe.FromItem.m_equiped; var canCraft = canPutProductsInInventory && !isEquipped; var tooltip = Localization.instance.Localize(canPutProductsInInventory ? (isEquipped ? "$mod_epicloot_sacrifice_equipped" : "") : "$inventory_full"); SetupRequirementList(__instance, player, recipe); __instance.m_craftButton.interactable = canCraft; __instance.m_craftButton.GetComponent <UITooltip>().m_text = tooltip; var isStack = itemData.m_stack > 1; DisenchantAllButton.interactable = isStack; DisenchantAllButton.gameObject.SetActive(__instance.m_craftButton.gameObject.activeSelf); bgImage.color = recipe.FromItem.GetRarityColor(); bgImage.enabled = recipe.FromItem.UseMagicBackground(); if (EpicLoot.HasAuga) { AugaTabData.ItemInfoGO.SetActive(true); AugaTabData.RequirementsPanelGO.SetActive(true); Auga.API.ComplexTooltip_SetItem(AugaTabData.ItemInfoGO, itemData, itemData.m_quality, itemData.m_variant); Auga.API.ComplexTooltip_SetTopic(AugaTabData.ItemInfoGO, Localization.instance.Localize(itemData.GetDecoratedName())); __instance.m_itemCraftType.text = Localization.instance.Localize($"\n\n<color={Auga.API.RedText}>$mod_epicloot_sacrifice_warning</color>"); var requirementStates = new[] { Auga.RequirementWireState.Absent, Auga.RequirementWireState.Absent, Auga.RequirementWireState.Absent, Auga.RequirementWireState.Absent }; for (var i = 0; i < recipe.Products.Count; ++i) { requirementStates[i] = Auga.RequirementWireState.Have; } Auga.API.RequirementsPanel_SetWires(AugaTabData.RequirementsPanelGO, requirementStates, canCraft); } else { __instance.m_recipeIcon.enabled = true; __instance.m_recipeIcon.sprite = itemData.GetIcon(); __instance.m_recipeName.enabled = true; __instance.m_recipeName.text = Localization.instance.Localize(itemData.GetDecoratedName()); __instance.m_recipeDecription.enabled = true; __instance.m_recipeDecription.text = Localization.instance.Localize(ItemDrop.ItemData.GetTooltip(itemData, itemData.m_quality, true)); __instance.m_recipeDecription.text += Localization.instance.Localize("\n\n<color=red>$mod_epicloot_sacrifice_warning</color>"); __instance.m_itemCraftType.gameObject.SetActive(true); __instance.m_itemCraftType.text = Localization.instance.Localize("$mod_epicloot_sacrifice_explanation"); __instance.m_variantButton.gameObject.SetActive(false); __instance.m_minStationLevelIcon.gameObject.SetActive(false); } } else { if (EpicLoot.HasAuga) { AugaTabData.ItemInfoGO.SetActive(false); AugaTabData.RequirementsPanelGO.SetActive(false); } bgImage.enabled = false; __instance.m_itemCraftType.gameObject.SetActive(false); __instance.m_variantButton.gameObject.SetActive(false); __instance.m_minStationLevelIcon.gameObject.SetActive(false); __instance.m_recipeIcon.enabled = false; __instance.m_recipeName.enabled = false; __instance.m_recipeDecription.enabled = false; foreach (var req in __instance.m_recipeRequirementList) { InventoryGui.HideRequirement(req.transform); } __instance.m_craftButton.interactable = false; DisenchantAllButton.interactable = false; } }
public override void UpdateRecipe(InventoryGui __instance, Player player, float dt, Image bgImage) { __instance.m_craftButton.GetComponentInChildren <Text>().text = Localization.instance.Localize("$mod_epicloot_enchant"); if (SelectedRecipe >= 0 && SelectedRecipe < Recipes.Count) { var recipe = Recipes[SelectedRecipe]; var itemData = recipe.FromItem; var rarityColor = EpicLoot.GetRarityColor(SelectedRarity); var rarityColorARGB = EpicLoot.GetRarityColorARGB(SelectedRarity); var isCrafting = __instance.m_craftTimer >= 0.0f; for (var index = 0; index < RarityButtons.Count; index++) { var rarityButton = RarityButtons[index]; var rarity = (ItemRarity)index; var canEnchantRarity = CanEnchantRarity(player, rarity); rarityButton.gameObject.SetActive(!isCrafting && canEnchantRarity); rarityButton.interactable = SelectedRarity != rarity; if (!EpicLoot.HasAuga) { var outline = rarityButton.transform.Find("EnchantOutline").GetComponent <Image>(); outline.enabled = !rarityButton.interactable; } } bgImage.color = rarityColorARGB; bgImage.enabled = true; __instance.m_itemCraftType.gameObject.SetActive(false); __instance.m_variantButton.gameObject.SetActive(false); __instance.m_minStationLevelIcon.gameObject.SetActive(false); var canCraft = Player.m_localPlayer.HaveRequirements(GetRecipeRequirementArray(recipe, SelectedRarity), false, 1); __instance.m_craftButton.interactable = canCraft; __instance.m_craftButton.GetComponent <UITooltip>().m_text = canCraft ? "" : Localization.instance.Localize("$msg_missingrequirement"); SetupRequirementList(__instance, player, recipe, canCraft); if (EpicLoot.HasAuga) { AugaTabData.ItemInfoGO.SetActive(true); AugaTabData.RequirementsPanelGO.SetActive(true); Auga.API.ComplexTooltip_ClearTextBoxes(AugaTabData.ItemInfoGO); Auga.API.ComplexTooltip_SetItemNoTextBoxes(AugaTabData.ItemInfoGO, itemData, itemData.m_quality, itemData.m_variant); Auga.API.ComplexTooltip_SetTopic(AugaTabData.ItemInfoGO, Localization.instance.Localize(itemData.GetDecoratedName())); __instance.m_itemCraftType.text = ""; var textbox = Auga.API.ComplexTooltip_AddTwoColumnTextBox(AugaTabData.ItemInfoGO); Auga.API.TooltipTextBox_AddLine(textbox, GenerateEnchantTooltip(recipe)); } else { __instance.m_recipeIcon.enabled = true; __instance.m_recipeIcon.sprite = itemData.GetIcon(); __instance.m_recipeName.enabled = true; __instance.m_recipeName.text = Localization.instance.Localize(itemData.GetDecoratedName(rarityColor)); __instance.m_recipeDecription.enabled = true; __instance.m_recipeDecription.text = Localization.instance.Localize(GenerateEnchantTooltip(recipe)); } } else { if (EpicLoot.HasAuga) { AugaTabData.ItemInfoGO.SetActive(false); AugaTabData.RequirementsPanelGO.SetActive(false); } bgImage.enabled = false; __instance.m_itemCraftType.gameObject.SetActive(false); __instance.m_variantButton.gameObject.SetActive(false); __instance.m_minStationLevelIcon.gameObject.SetActive(false); __instance.m_recipeIcon.enabled = false; __instance.m_recipeName.enabled = false; __instance.m_recipeDecription.enabled = false; foreach (var rarityButton in RarityButtons) { rarityButton.gameObject.SetActive(false); } foreach (var req in __instance.m_recipeRequirementList) { InventoryGui.HideRequirement(req.transform); } __instance.m_craftButton.interactable = false; } }
public override void UpdateRecipe(InventoryGui __instance, Player player, float dt, Image bgImage) { if (SelectedRecipe >= 0 && SelectedRecipe < Recipes.Count) { var recipe = Recipes[SelectedRecipe]; var itemData = recipe.FromItem; var rarityColor = EpicLoot.GetRarityColor(SelectedRarity); var rarityColorARGB = EpicLoot.GetRarityColorARGB(SelectedRarity); for (var index = 0; index < RarityButtons.Count; index++) { var rarityButton = RarityButtons[index]; var rarity = (ItemRarity)index; var canEnchantRarity = CanEnchantRarity(player, rarity); rarityButton.gameObject.SetActive(canEnchantRarity); rarityButton.interactable = SelectedRarity != rarity; var outline = rarityButton.transform.Find("EnchantOutline").GetComponent <Image>(); outline.enabled = !rarityButton.interactable; } __instance.m_recipeIcon.enabled = true; __instance.m_recipeIcon.sprite = itemData.GetIcon(); __instance.m_recipeName.enabled = true; __instance.m_recipeName.text = Localization.instance.Localize(itemData.GetDecoratedName(rarityColor)); __instance.m_recipeDecription.enabled = true; __instance.m_recipeDecription.text = Localization.instance.Localize(GenerateEnchantTooltip(recipe)); bgImage.color = rarityColorARGB; bgImage.enabled = true; __instance.m_itemCraftType.gameObject.SetActive(false); __instance.m_variantButton.gameObject.SetActive(false); SetupRequirementList(__instance, player, recipe); __instance.m_minStationLevelIcon.gameObject.SetActive(false); var canCraft = Player.m_localPlayer.HaveRequirements(GetRecipeRequirementArray(recipe, SelectedRarity), false, 1); __instance.m_craftButton.interactable = canCraft; __instance.m_craftButton.GetComponentInChildren <Text>().text = "Enchant"; __instance.m_craftButton.GetComponent <UITooltip>().m_text = canCraft ? "" : Localization.instance.Localize("$msg_missingrequirement"); } else { bgImage.enabled = false; __instance.m_itemCraftType.gameObject.SetActive(false); __instance.m_variantButton.gameObject.SetActive(false); __instance.m_minStationLevelIcon.gameObject.SetActive(false); __instance.m_recipeIcon.enabled = false; __instance.m_recipeName.enabled = false; __instance.m_recipeDecription.enabled = false; foreach (var rarityButton in RarityButtons) { rarityButton.gameObject.SetActive(false); } foreach (var req in __instance.m_recipeRequirementList) { InventoryGui.HideRequirement(req.transform); } __instance.m_craftButton.interactable = false; } }
public static bool SetupRequirement( InventoryGui __instance, Transform elementRoot, ItemDrop item, int amount, Player player, bool showOutOfMaterials, out bool haveMaterials) { haveMaterials = false; var icon = elementRoot.transform.Find("res_icon").GetComponent <Image>(); var nameText = elementRoot.transform.Find("res_name").GetComponent <Text>(); var amountText = elementRoot.transform.Find("res_amount").GetComponent <Text>(); var tooltip = elementRoot.GetComponent <UITooltip>(); if (item != null) { icon.gameObject.SetActive(true); nameText.gameObject.SetActive(true); amountText.gameObject.SetActive(true); if (item.m_itemData.IsMagicCraftingMaterial()) { var rarity = item.m_itemData.GetCraftingMaterialRarity(); icon.sprite = item.m_itemData.m_shared.m_icons[EpicLoot.GetRarityIconIndex(rarity)]; } else { icon.sprite = item.m_itemData.GetIcon(); } icon.color = Color.white; var bgIconTransform = (RectTransform)icon.transform.parent.Find("bgIcon"); if (item.m_itemData.UseMagicBackground()) { if (bgIconTransform == null) { bgIconTransform = (RectTransform)Object.Instantiate(icon, icon.transform.parent, true).transform; bgIconTransform.name = "bgIcon"; bgIconTransform.SetSiblingIndex(icon.transform.GetSiblingIndex()); bgIconTransform.anchorMin = Vector2.zero; bgIconTransform.anchorMax = new Vector2(1, 1); bgIconTransform.sizeDelta = Vector2.zero; bgIconTransform.pivot = new Vector2(0.5f, 0.5f); bgIconTransform.anchoredPosition = Vector2.zero; } bgIconTransform.gameObject.SetActive(true); var bgIcon = bgIconTransform.GetComponent <Image>(); bgIcon.sprite = EpicLoot.GetMagicItemBgSprite(); bgIcon.color = item.m_itemData.GetRarityColor(); } else if (bgIconTransform != null) { bgIconTransform.gameObject.SetActive(false); } tooltip.m_text = Localization.instance.Localize(item.m_itemData.m_shared.m_name); nameText.text = Localization.instance.Localize(item.m_itemData.m_shared.m_name); if (amount <= 0) { InventoryGui.HideRequirement(elementRoot); return(false); } amountText.text = amount.ToString(); haveMaterials = player.HaveRequirements(new [] { new Piece.Requirement() { m_resItem = item, m_amount = amount } }, false, 1); if (showOutOfMaterials && !haveMaterials) { amountText.color = Mathf.Sin(Time.time * 10.0f) > 0.0f ? Color.red : Color.white; } else { amountText.color = Color.white; } } else { var bgIconTransform = icon.transform.parent.Find("bgIcon"); if (bgIconTransform != null) { bgIconTransform.gameObject.SetActive(false); } } return(true); }
public override void UpdateRecipe(InventoryGui __instance, Player player, float dt, Image bgImage) { __instance.m_craftButton.GetComponentInChildren <Text>().text = Localization.instance.Localize("$mod_epicloot_augment"); if (SelectedRecipe >= 0 && SelectedRecipe < Recipes.Count) { var recipe = Recipes[SelectedRecipe]; var itemData = recipe.FromItem; var rarity = itemData.GetRarity(); var rarityColorARGB = EpicLoot.GetRarityColorARGB(rarity); __instance.m_itemCraftType.gameObject.SetActive(false); __instance.m_variantButton.gameObject.SetActive(false); __instance.m_minStationLevelIcon.gameObject.SetActive(false); var canCraft = Player.m_localPlayer.HaveRequirements(GetRecipeRequirementArray(recipe), false, 1) || player.NoCostCheat(); var hasSelectedEffect = recipe.EffectIndex >= 0; var hasAnyAvailableEnchants = GetAvailableAugments(recipe, recipe.FromItem, recipe.FromItem.GetMagicItem(), recipe.FromItem.GetRarity()).Count > 0; __instance.m_craftButton.interactable = canCraft && hasSelectedEffect && hasAnyAvailableEnchants; __instance.m_craftButton.GetComponent <UITooltip>().m_text = hasSelectedEffect ? (canCraft ? (hasAnyAvailableEnchants ? "" : Localization.instance.Localize("$mod_epicloot_augment_noeffects")) : Localization.instance.Localize("$msg_missingrequirement")) : Localization.instance.Localize("$mod_epicloot_augment_selecteffect"); SetupRequirementList(__instance, player, recipe, canCraft); if (EpicLoot.HasAuga) { AugaTabData.ItemInfoGO.SetActive(true); AugaTabData.RequirementsPanelGO.SetActive(true); EpicLoot.AugaTooltipNoTextBoxes = true; Auga.API.ComplexTooltip_SetItemNoTextBoxes(AugaTabData.ItemInfoGO, itemData, itemData.m_quality, itemData.m_variant); Auga.API.ComplexTooltip_SetTopic(AugaTabData.ItemInfoGO, Localization.instance.Localize(itemData.GetDecoratedName())); Auga.API.ComplexTooltip_SetDescription(AugaTabData.ItemInfoGO, Localization.instance.Localize("$mod_epicloot_augment_explain")); EpicLoot.AugaTooltipNoTextBoxes = false; __instance.m_itemCraftType.text = ""; } else { __instance.m_recipeIcon.enabled = true; __instance.m_recipeIcon.sprite = itemData.GetIcon(); __instance.m_recipeName.enabled = true; __instance.m_recipeName.text = Localization.instance.Localize(itemData.GetDecoratedName()); __instance.m_recipeDecription.enabled = true; __instance.m_recipeDecription.text = Localization.instance.Localize("$mod_epicloot_augment_explain"); } bgImage.color = rarityColorARGB; bgImage.enabled = true; GenerateAugmentSelectors(recipe, __instance); } else { if (EpicLoot.HasAuga) { AugaTabData.ItemInfoGO.SetActive(false); AugaTabData.RequirementsPanelGO.SetActive(false); } bgImage.enabled = false; __instance.m_itemCraftType.gameObject.SetActive(false); __instance.m_variantButton.gameObject.SetActive(false); __instance.m_minStationLevelIcon.gameObject.SetActive(false); __instance.m_recipeIcon.enabled = false; __instance.m_recipeName.enabled = false; __instance.m_recipeDecription.enabled = false; if (!EpicLoot.HasAuga) { foreach (var toggle in EffectSelectors) { toggle.gameObject.SetActive(false); } } foreach (var req in __instance.m_recipeRequirementList) { InventoryGui.HideRequirement(req.transform); } __instance.m_craftButton.interactable = false; } }