예제 #1
0
 public void Close()
 {
     if (StoreInventory != null)
     {
         foreach (InventoryItemStack item in BasketInventory.ContainedStacks)
         {
             StoreInventory.Add(item.ContainedItem, (uint)item.Amount);
         }
     }
     BasketInventory.ContainedStacks.Clear();
     GetComponent <WindowToggle>().Close();
 }
예제 #2
0
 public void AddToBasket(InventoryItemStack pStack)
 {
     StoreInventory.RemoveFromStack(pStack, 1);
     BasketInventory.Add(pStack.ContainedItem, 1);
     DrawStore();
     DrawBasket();
 }
예제 #3
0
    public void Apply()
    {
        TargetStorage = GetComponent <StorageObject>();

        if (TargetStorage.GetType() == typeof(PlayerInventory))
        {
            VariableName = "PlayerInventory";
        }
        else
        {
            VariableName = "Chest " + TargetStorage.Level + " " + transform.position.x.ToString() + "," + transform.position.y.ToString();
        }

        //        print(VariableName);
        int slotAmount = DialogueLua.GetVariable(VariableName + "SlotAmount").asInt;

        TargetStorage.Init = DialogueLua.GetVariable(VariableName + "Init").asBool;


        for (int i = 0; i < slotAmount; i++)
        {
            int    itemAmount         = DialogueLua.GetVariable(VariableName + "StackAmount" + i).asInt;
            string itemName           = DialogueLua.GetVariable(VariableName + "StackItem" + i).asString;
            string itemType           = DialogueLua.GetVariable(VariableName + "StackItemType" + i).asString;
            ItemSystem.ItemTypes type = (ItemSystem.ItemTypes)System.Enum.Parse(typeof(ItemSystem.ItemTypes), itemType);

            ItemBase item        = ItemSystem.Instance.GetItemClone(itemName);
            int      amountAdded = TargetStorage.Add(item, (uint)itemAmount);
            int      amountLeft  = itemAmount - amountAdded;
            if (amountLeft > 0)
            {
                Debug.LogWarning("Saver could not add all items to storage: " + TargetStorage.Name);
            }
        }
    }
예제 #4
0
 void PopulateStorage()
 {
     Storage.ContainedStacks.Clear();
     foreach (StoreItem item in PossibleItems)
     {
         print(Storage.Add(item.ContainedItem, (uint)item.Amount));
     }
 }
예제 #5
0
    void SellContents(int pDayIndex)
    {
        float    coins    = 0;
        ItemBase coinItem = ItemSystem.Instance.GetItemClone("Coin");

        print(coinItem);
        ItemBase halfCoinItem = ItemSystem.Instance.GetItemClone("Halfcoin");

        foreach (InventoryItemStack stack in Storage.ContainedStacks)
        {
            if (stack.ContainedItem.ID != coinItem.ID && stack.ContainedItem.ID != halfCoinItem.ID)
            {
                coins += stack.ContainedItem.Value * stack.Amount;
                GameManager.Instance.AddShippedItem(stack.ContainedItem, stack.Amount);
                PixelCrushers.MessageSystem.SendMessage(this, "SellItem", stack.ContainedItem.Name, stack.Amount);
            }
        }

        //        print(coins);

        int coinItems = Mathf.FloorToInt(coins);
        //        print(coinItems);
        int halfCoinItems = (int)((coins % 1) / 0.5);

        //       print(halfCoinItems);
        Storage.ClearStorage();


        int amountAdded = Storage.Add(coinItem, (uint)coinItems);
        int amountLeft  = coinItems - amountAdded;

        if (amountLeft > 0)
        {
            Debug.LogWarning("Could not add " + amountLeft + " " + coinItem.Name + " to storage: " + Storage.Name);
        }

        amountAdded = Storage.Add(halfCoinItem, (uint)halfCoinItems);
        amountLeft  = halfCoinItems - amountAdded;
        if (amountLeft > 0)
        {
            Debug.LogWarning("Could not add " + amountLeft + " " + coinItem.Name + " to storage: " + Storage.Name);
        }
    }