Beispiel #1
0
    // Called when the node enters the scene tree for the first time.
    public override void _Ready()
    {
        _itemSprite = GetNode <Sprite>("Item");

        _interactParticle = GD.Load <PackedScene>("res://particle/ArcaneBurst.tscn");

        ItemStack = new Item.ItemStack(Items.ELDERBERRIES, 1);
    }
Beispiel #2
0
    public override void _Ready()
    {
        GD.Randomize();
        ItemStack         = new Item.ItemStack(possibleItems[(int)(GD.Randi() % (uint)possibleItems.Count)], 1);
        _interactParticle = GD.Load <PackedScene>("res://particle/ArcaneBurst.tscn");

        ZIndex = Mathf.FloorToInt(Position.y);
    }
Beispiel #3
0
    public void ItemButtonReleased()
    {
        if (_inventory.SelectedItemId < 0)
        {
            return;
        }

        Item.ItemStack selectedItemStack = _itemList[_inventory.SelectedItemId];

        if (_alchemyStage == AlchemyStage.MortarPestle && _mortarPestleStage == MortarPestleStage.PickReagents && _potionReagents.Count < 4)
        {
            if (selectedItemStack.stackCount > 1)
            {
                _itemList[_inventory.SelectedItemId] = Item.DecreaseItemStackCount(selectedItemStack, 1);
            }
            else
            {
                _itemList.RemoveAt(_inventory.SelectedItemId);
            }

            _inventory.Update();

            HBoxContainer itemInfo = new HBoxContainer();
            itemInfo.Set("custom_constants/separation", 10f);

            Control itemIcon = new Control();
            itemIcon.RectMinSize = new Vector2(16f, 16f);

            Sprite itemBG = new Sprite();
            itemBG.Texture  = _singleItemSlot;
            itemBG.Centered = false;

            Sprite itemSprite = new Sprite();
            itemSprite.Texture  = selectedItemStack.item.IconTex;
            itemSprite.Centered = false;
            itemSprite.Position = new Vector2(2f, 2f);
            itemBG.AddChild(itemSprite);
            itemIcon.AddChild(itemBG);
            itemInfo.AddChild(itemIcon);

            Label itemName = new Label();
            itemName.Text = selectedItemStack.item.Name;
            itemName.AddFontOverride("font", _smallFont);
            itemName.MarginLeft = 4f;
            itemInfo.AddChild(itemName);

            _potionReagentsBox.AddChild(itemInfo);

            _potionReagents.Add(selectedItemStack.item);
            _proceedToCrush.Disabled = false;
        }

        GD.Print("Selected: " + selectedItemStack.item.Name);
    }
Beispiel #4
0
    public void PickupItem(Item.ItemStack itemStack)
    {
        for (int i = 0; i < _invItems.Count; i++)
        {
            if (_invItems[i].item == itemStack.item)
            {
                _invItems[i] = new Item.ItemStack(itemStack.item, _invItems[i].stackCount + itemStack.stackCount);
                _inventory.Update();
                return;
            }
        }

        _invItems.Add(itemStack);
        _inventory.Update();
    }
Beispiel #5
0
    public override void _Ready()
    {
        if (GetNodeOrNull(_nodeToShakePath) is Node2D shakeNode)
        {
            _nodeToShake = shakeNode;
        }
        if (GetNodeOrNull(_nodeToHidePath) is Node2D hideNode)
        {
            _nodeToHide = hideNode;
        }

        _bouncingItem = GD.Load <PackedScene>("res://BouncingItem.tscn");

        _tween = new Tween();
        AddChild(_tween);

        _itemStack = new Item.ItemStack(Items.HOLLY_BERRIES, 1);
    }