Exemple #1
0
    public void Set(CraftingButton cb)
    {
        if (breakingDown)
        {
            if (playerUsing.inventory[cb.invSlotForBreakdown].asset.breakdownMaterials.Count > 0)
            {
                if (playerUsing.inventory[cb.invSlotForBreakdown].amount > 0)
                {
                    breakdownIndex = cb.invSlotForBreakdown;
                    working        = true;
                    workTimerTotal = 3f;
                }
            }
        }
        else
        {
            craftData = cb.craftBlueprintData;
            bool canCraft = true;
            List <AssetInventorySlot> inventoryCopy = new List <AssetInventorySlot>();
            foreach (AssetInventorySlot slot in playerUsing.inventory)
            {
                var clone = slot.Clone();
                inventoryCopy.Add(clone);
            }
            foreach (AssetData a in craftData.craftingMaterials)
            {
                bool foundAsset = false;
                foreach (AssetInventorySlot s in inventoryCopy)
                {
                    if (s.asset == a && s.amount > 0)
                    {
                        s.amount--;
                        foundAsset = true;
                    }
                }
                if (!foundAsset)
                {
                    canCraft = false;
                    break;
                }
            }
            if (canCraft)
            {
                working        = true;
                workTimerTotal = Mathf.Max(3, craftData.baseValue * .6f);
            }
        }

        if (working)
        {
            workshopCanvas.gameObject.SetActive(true);
            playerUsing.pui.craftingPanel.SetActive(false);
        }
    }
Exemple #2
0
    private void Start()
    {
        uiManager   = UIManager.Instance;
        playerStats = PlayerManager.Instance.playerStats;
        playerStats.OnCraftingSkilledUp += UpdateCraftingSkillText;

        List <Item> craftableItems = GameManager.Instance.GetCraftableItems();

        craftableItems.Sort((x, y) => x.craftingSkillRequired.CompareTo(y.craftingSkillRequired));

        foreach (Item item in craftableItems)
        {
            GameObject     newItemButton = Instantiate(itemButton, itemButtonSpacer1, false);
            CraftingButton cButton       = newItemButton.GetComponent <CraftingButton>();
            cButton.SetItem(item);
            cButtons.Add(cButton);
        }
        craftingUI.SetActive(false);
        ResetCraftingUI();
    }