public static void Postfix(InventoryGui __instance) { if (__instance.m_craftRecipe == null) { RunicPower.StopCraftingAll(false); } }
public static bool Prefix(InventoryGui __instance, Player player) { // if it's not a rune, do the normal flow var data = __instance.m_craftRecipe?.m_item?.m_itemData?.GetRuneData(); if (data == null) { RunicPower.StopCraftingAll(false); return(true); } // if the player does not have the requeriments, do the normal flow var qualityLevel = 1; if (!player.HaveRequirements(__instance.m_craftRecipe, discover: false, qualityLevel) && !player.NoCostCheat()) { RunicPower.StopCraftingAll(false); return(true); } // getting hte spell inventory var inv = SpellsBar.invBarGrid.m_inventory; // if there is not an 'empty' slot, do the normal flow if (!inv.HaveEmptySlot()) { RunicPower.StopCraftingAll(false); return(true); } var craftItem = __instance.m_craftRecipe.m_item; GameObject go = Object.Instantiate(craftItem.gameObject); ItemDrop item = go.GetComponent <ItemDrop>(); item.m_itemData.m_stack = __instance.m_craftRecipe.m_amount; item.m_itemData.m_quality = qualityLevel; item.m_itemData.m_variant = __instance.m_craftVariant; item.m_itemData.m_durability = item.m_itemData.GetMaxDurability(); item.m_itemData.m_crafterID = player.GetPlayerID(); item.m_itemData.m_crafterName = player.GetPlayerName(); var crafted = inv.AddItem(item.m_itemData); if (crafted) { if (!player.NoCostCheat()) { player.ConsumeResources(__instance.m_craftRecipe.m_resources, qualityLevel); } __instance.UpdateCraftingPanel(); } // displaying some effects CraftingStation currentCraftingStation = Player.m_localPlayer.GetCurrentCraftingStation(); var effs = (currentCraftingStation != null) ? currentCraftingStation.m_craftItemDoneEffects : __instance.m_craftItemDoneEffects; effs.Create(player.transform.position, Quaternion.identity); Game.instance.GetPlayerProfile().m_playerStats.m_crafts++; Gogan.LogEvent("Game", "Crafted", __instance.m_craftRecipe.m_item.m_itemData.m_shared.m_name, qualityLevel); return(false); }
public static void Prefix(InventoryGui __instance) { RunicPower.StopCraftingAll(false); }