diff --git a/Scenes/Items/Yin_Yang_Ammo.tscn b/Scenes/Items/Yin_Yang_Ammo.tscn index c940b56a..9005aba1 100644 --- a/Scenes/Items/Yin_Yang_Ammo.tscn +++ b/Scenes/Items/Yin_Yang_Ammo.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=7 format=3 uid="uid://sjxkj5jdndxb"] +[gd_scene load_steps=8 format=3 uid="uid://sjxkj5jdndxb"] [ext_resource type="Script" uid="uid://b3h7b30kerf60" path="res://Scripts/Interactables/ItemPickup.cs" id="1_o42iv"] [ext_resource type="Resource" uid="uid://diqm2ju0xakkt" path="res://Resources/Items/Yin_Yang_Ammo.tres" id="2_o42iv"] +[ext_resource type="Script" uid="uid://epnwjptvks3t" path="res://Scripts/Resources/LootItem.cs" id="2_q76u6"] [ext_resource type="Texture2D" uid="uid://b61po207ggn63" path="res://Sprites/Items/Yin_Ammo.png" id="3_o42iv"] [sub_resource type="CircleShape2D" id="CircleShape2D_6vv2s"] @@ -25,7 +26,7 @@ animations = [{ collision_layer = 4 collision_mask = 2 script = ExtResource("1_o42iv") -LootTable = [ExtResource("2_o42iv")] +LootTable = Array[ExtResource("2_q76u6")]([ExtResource("2_o42iv")]) [node name="CollisionShape2D" type="CollisionShape2D" parent="."] shape = SubResource("CircleShape2D_6vv2s") diff --git a/Scenes/test.tscn b/Scenes/test.tscn index d638601b..19e24f4b 100644 --- a/Scenes/test.tscn +++ b/Scenes/test.tscn @@ -97,7 +97,7 @@ [sub_resource type="Resource" id="Resource_6sau4"] script = ExtResource("7_l32kg") EggIndex = 0 -StartingEquipment = [ExtResource("6_khabp")] +StartingEquipment = Array[ExtResource("6_8tdlb")]([ExtResource("6_khabp")]) [sub_resource type="RectangleShape2D" id="RectangleShape2D_ksslq"] size = Vector2(184, 46.5) @@ -987,7 +987,7 @@ position = Vector2(-2000, -736) [node name="ControlPad8" parent="Factory Tilemaps/LevelProps" node_paths=PackedStringArray("Targets") instance=ExtResource("12_hfkf1")] position = Vector2(-2027, -735) Targets = [NodePath("../HorizontalForceField")] -Requirements = [ExtResource("84_ma1ta")] +Requirements = Array[ExtResource("6_8tdlb")]([ExtResource("84_ma1ta")]) [node name="Ammo6" parent="Factory Tilemaps/LevelProps" instance=ExtResource("34_17pjh")] position = Vector2(-872, -220) diff --git a/Scripts/Hud.cs b/Scripts/Hud.cs index 244a4a79..f508616b 100644 --- a/Scripts/Hud.cs +++ b/Scripts/Hud.cs @@ -333,7 +333,7 @@ public partial class Hud : CanvasLayer // Clear all items foreach (var hudItem in _items) { - hudItem.Value.QueueFree(); + hudItem.Value.Delete(); } _items.Clear(); diff --git a/Scripts/InventoryManager.cs b/Scripts/InventoryManager.cs index 418d1d3a..e12f98e3 100644 --- a/Scripts/InventoryManager.cs +++ b/Scripts/InventoryManager.cs @@ -65,9 +65,10 @@ public partial class InventoryManager : Node2D itm.Count -= amount; - if (itm.Count <= 0) + if (itm.Count < 0) { - _itemsDict.Remove(itemKey); + itm.Count = 0; + //_itemsDict.Remove(itemKey); } EmitSignal(SignalName.ItemRemoved, itemKey, itm.Count); @@ -118,17 +119,7 @@ public partial class InventoryManager : Node2D return true; } - - public void AddRedKeycard() - { - RedKeycard = true; - } - - public void RemoveRedKeycard() - { - RedKeycard = false; - } - + public bool UseItem(string itemKey) { if (!_itemsDict.TryGetValue(itemKey, out var itm)) return false; diff --git a/Scripts/UI/WeaponAmmoCounter.cs b/Scripts/UI/WeaponAmmoCounter.cs index 8fe899be..25ae87f8 100644 --- a/Scripts/UI/WeaponAmmoCounter.cs +++ b/Scripts/UI/WeaponAmmoCounter.cs @@ -37,13 +37,31 @@ public partial class WeaponAmmoCounter : Container return; } + if (InventoryManager.Instance.TryGetItem(item.WeaponData.AmmoKey, out var ammoItem)) + { + AmmoIcon.Texture = ammoItem.Item.InventorySprite; + } + else + { + AmmoIcon.Hide(); + } + //AmmoIcon.Texture = InventoryManager.Instance. + UpdateCounter(); // Register this only if there's ammo - InventoryManager.Instance.TotalAmmoChanged += (ammoKey, count) => - { - if (ammoKey != Item.WeaponData.AmmoKey) return; - TotalAmmoLabel.Text = count.ToString(); - }; + InventoryManager.Instance.TotalAmmoChanged += OnInstanceOnTotalAmmoChanged; + } + + private void OnInstanceOnTotalAmmoChanged(StringName ammoKey, int count) + { + if (ammoKey != Item.WeaponData.AmmoKey) return; + TotalAmmoLabel.Text = count.ToString(); + } + + public void Delete() + { + InventoryManager.Instance.TotalAmmoChanged -= OnInstanceOnTotalAmmoChanged; + QueueFree(); } private void UpdateCounter() diff --git a/Sprites/Items/BlueKeycard_Small.aseprite b/Sprites/Items/BlueKeycard_Small.aseprite index ef16343d..3213d594 100644 --- a/Sprites/Items/BlueKeycard_Small.aseprite +++ b/Sprites/Items/BlueKeycard_Small.aseprite @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bd1d4ff5766ae3e342ce9cd6f7c2065c7a9de954e21280a7265d3507403877a4 -size 742 +oid sha256:b4987454beb0c6fba2445eb7e33d91fa089e33febbfb5e008e8806cf60976ece +size 619 diff --git a/Sprites/Items/BlueKeycard_Small.png b/Sprites/Items/BlueKeycard_Small.png index 314ced8e..7d1e0d13 100644 --- a/Sprites/Items/BlueKeycard_Small.png +++ b/Sprites/Items/BlueKeycard_Small.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:49f00becbe15e113ed829d4f5d3359b07ef5e5b4e889e176b7a0f23fcf2e7cae -size 181 +oid sha256:5d381ddc97c5d1e6ab06bd77629d3c7e970952e8aa6782494476dcd866ea96e1 +size 254 diff --git a/Sprites/Items/GreenKeycard_Small.aseprite b/Sprites/Items/GreenKeycard_Small.aseprite index a2fc23fc..4c1bca2d 100644 --- a/Sprites/Items/GreenKeycard_Small.aseprite +++ b/Sprites/Items/GreenKeycard_Small.aseprite @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2d74cbc7aa5064781b9290a6c46c87c99f4d8401f946631d2dc353eca7c4310a -size 745 +oid sha256:0ed9c9dcf4d9f7c53cac24f7ad70563e6910dd1fb915a08eaece9d201abab9da +size 622 diff --git a/Sprites/Items/GreenKeycard_Small.png b/Sprites/Items/GreenKeycard_Small.png index ae5065dc..75f9f46a 100644 --- a/Sprites/Items/GreenKeycard_Small.png +++ b/Sprites/Items/GreenKeycard_Small.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1afb2d02e94775fb27f4e6d932b6b855c79f20d9fde26e5b8aa32a6d0cd8448f -size 185 +oid sha256:dbe1cb7f58c8c6a5fd35d443ef5acffea3b1d1b47a530e36ae7f7946e7462f59 +size 256 diff --git a/Sprites/Items/RedKeycard_Small.aseprite b/Sprites/Items/RedKeycard_Small.aseprite index 814b6743..88028cfb 100644 --- a/Sprites/Items/RedKeycard_Small.aseprite +++ b/Sprites/Items/RedKeycard_Small.aseprite @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b2efb90e5b31f357fdd64d8d8b000444f1d99d734d01c9df5bbe2b1df4143829 -size 746 +oid sha256:a3fca005a5b005243b350751c4fbc67a0d803134b401b69f2264b643a33759b8 +size 615 diff --git a/Sprites/Items/RedKeycard_Small.png b/Sprites/Items/RedKeycard_Small.png index 9df8209b..d044587b 100644 --- a/Sprites/Items/RedKeycard_Small.png +++ b/Sprites/Items/RedKeycard_Small.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2905b828de32dd58fe4531e9815c4ab0ace407f6818bce7471fd1015b764c4fe -size 184 +oid sha256:ebe9133866755995b910094e2b5cb08c7cf59575fe7f5093188a3a6c0df280e4 +size 253