From 5110cace0738045bafefe1146224fd7d222abc02 Mon Sep 17 00:00:00 2001 From: Marco Date: Fri, 31 Jan 2025 10:06:27 +0100 Subject: [PATCH] Multicolored keycards --- Resources/Items/Blue_Keycard.tres | 9 +++++ Resources/Items/Green_Keycard.tres | 9 +++++ Scenes/Items/Blue_Keycard.tscn | 33 +++++++++++++++++ Scenes/Items/Green_Keycard.tscn | 31 ++++++++++++++++ Scenes/Items/Red_Keycard.tscn | 41 +++++++++++++++++++++ Scenes/Red_Keycard.tscn | 21 ----------- Scenes/test.tscn | 5 ++- Scripts/Interactables/ItemPickup.cs | 26 +++++++++++++ Sprites/Items/BlueKeycard_Small.aseprite | 3 ++ Sprites/Items/BlueKeycard_Small.png | 3 ++ Sprites/Items/BlueKeycard_Small.png.import | 34 +++++++++++++++++ Sprites/Items/GreenKeycard_Small.aseprite | 3 ++ Sprites/Items/GreenKeycard_Small.png | 3 ++ Sprites/Items/GreenKeycard_Small.png.import | 34 +++++++++++++++++ Sprites/Items/RedKeycard_Small.aseprite | 3 ++ Sprites/Items/RedKeycard_Small.png | 3 ++ Sprites/Items/RedKeycard_Small.png.import | 34 +++++++++++++++++ 17 files changed, 273 insertions(+), 22 deletions(-) create mode 100644 Resources/Items/Blue_Keycard.tres create mode 100644 Resources/Items/Green_Keycard.tres create mode 100644 Scenes/Items/Blue_Keycard.tscn create mode 100644 Scenes/Items/Green_Keycard.tscn create mode 100644 Scenes/Items/Red_Keycard.tscn delete mode 100644 Scenes/Red_Keycard.tscn create mode 100644 Scripts/Interactables/ItemPickup.cs create mode 100644 Sprites/Items/BlueKeycard_Small.aseprite create mode 100644 Sprites/Items/BlueKeycard_Small.png create mode 100644 Sprites/Items/BlueKeycard_Small.png.import create mode 100644 Sprites/Items/GreenKeycard_Small.aseprite create mode 100644 Sprites/Items/GreenKeycard_Small.png create mode 100644 Sprites/Items/GreenKeycard_Small.png.import create mode 100644 Sprites/Items/RedKeycard_Small.aseprite create mode 100644 Sprites/Items/RedKeycard_Small.png create mode 100644 Sprites/Items/RedKeycard_Small.png.import diff --git a/Resources/Items/Blue_Keycard.tres b/Resources/Items/Blue_Keycard.tres new file mode 100644 index 00000000..e930115a --- /dev/null +++ b/Resources/Items/Blue_Keycard.tres @@ -0,0 +1,9 @@ +[gd_resource type="Resource" script_class="LootItem" load_steps=2 format=3 uid="uid://cj5aa7btaw6q0"] + +[ext_resource type="Script" path="res://Scripts/Resources/LootItem.cs" id="1_k8cnp"] + +[resource] +script = ExtResource("1_k8cnp") +Item = 1 +Amount = 1 +Max = 1 diff --git a/Resources/Items/Green_Keycard.tres b/Resources/Items/Green_Keycard.tres new file mode 100644 index 00000000..2da9e079 --- /dev/null +++ b/Resources/Items/Green_Keycard.tres @@ -0,0 +1,9 @@ +[gd_resource type="Resource" script_class="LootItem" load_steps=2 format=3 uid="uid://cspcgkr0tane2"] + +[ext_resource type="Script" path="res://Scripts/Resources/LootItem.cs" id="1_t0s5w"] + +[resource] +script = ExtResource("1_t0s5w") +Item = 2 +Amount = 1 +Max = 1 diff --git a/Scenes/Items/Blue_Keycard.tscn b/Scenes/Items/Blue_Keycard.tscn new file mode 100644 index 00000000..96ee1d16 --- /dev/null +++ b/Scenes/Items/Blue_Keycard.tscn @@ -0,0 +1,33 @@ +[gd_scene load_steps=7 format=3 uid="uid://d0yes7huiyisw"] + +[ext_resource type="PackedScene" uid="uid://dxs3ks2ucaxl4" path="res://Scenes/Items/Red_Keycard.tscn" id="1_8f4hq"] +[ext_resource type="Resource" uid="uid://cj5aa7btaw6q0" path="res://Resources/Items/Blue_Keycard.tres" id="2_woclw"] +[ext_resource type="Texture2D" uid="uid://bvybqletsvqgk" path="res://Sprites/Items/BlueKeycard_Small.png" id="3_k20dr"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_kprwo"] +atlas = ExtResource("3_k20dr") +region = Rect2(0, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_kems3"] +atlas = ExtResource("3_k20dr") +region = Rect2(16, 0, 16, 16) + +[sub_resource type="SpriteFrames" id="SpriteFrames_gbw5v"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_kprwo") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_kems3") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] + +[node name="BlueKeycard" instance=ExtResource("1_8f4hq")] +LootTable = [ExtResource("2_woclw")] + +[node name="AnimatedSprite2D" parent="." index="1"] +sprite_frames = SubResource("SpriteFrames_gbw5v") diff --git a/Scenes/Items/Green_Keycard.tscn b/Scenes/Items/Green_Keycard.tscn new file mode 100644 index 00000000..57147ee4 --- /dev/null +++ b/Scenes/Items/Green_Keycard.tscn @@ -0,0 +1,31 @@ +[gd_scene load_steps=6 format=3 uid="uid://r25rq6ijgm6m"] + +[ext_resource type="PackedScene" uid="uid://dxs3ks2ucaxl4" path="res://Scenes/Items/Red_Keycard.tscn" id="1_o26qb"] +[ext_resource type="Texture2D" uid="uid://bvkjnc3ggp7ba" path="res://Sprites/Items/GreenKeycard_Small.png" id="2_lts72"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_3c71u"] +atlas = ExtResource("2_lts72") +region = Rect2(0, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_tdlc7"] +atlas = ExtResource("2_lts72") +region = Rect2(16, 0, 16, 16) + +[sub_resource type="SpriteFrames" id="SpriteFrames_y8q6b"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_3c71u") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_tdlc7") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] + +[node name="GreenKeyCard" instance=ExtResource("1_o26qb")] + +[node name="AnimatedSprite2D" parent="." index="1"] +sprite_frames = SubResource("SpriteFrames_y8q6b") diff --git a/Scenes/Items/Red_Keycard.tscn b/Scenes/Items/Red_Keycard.tscn new file mode 100644 index 00000000..cde5c9a6 --- /dev/null +++ b/Scenes/Items/Red_Keycard.tscn @@ -0,0 +1,41 @@ +[gd_scene load_steps=8 format=3 uid="uid://dxs3ks2ucaxl4"] + +[ext_resource type="Script" path="res://Scripts/Interactables/ItemPickup.cs" id="1_cvvxn"] +[ext_resource type="Resource" uid="uid://dibquna7fww7t" path="res://Resources/Items/Red_Keycard.tres" id="4_84krq"] +[ext_resource type="Texture2D" uid="uid://bad6gbl2gity3" path="res://Sprites/Items/RedKeycard_Small.png" id="4_k5oc1"] + +[sub_resource type="CircleShape2D" id="CircleShape2D_6vv2s"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_o0au0"] +atlas = ExtResource("4_k5oc1") +region = Rect2(0, 0, 16, 16) + +[sub_resource type="AtlasTexture" id="AtlasTexture_fx6tu"] +atlas = ExtResource("4_k5oc1") +region = Rect2(16, 0, 16, 16) + +[sub_resource type="SpriteFrames" id="SpriteFrames_vi6i0"] +animations = [{ +"frames": [{ +"duration": 1.0, +"texture": SubResource("AtlasTexture_o0au0") +}, { +"duration": 1.0, +"texture": SubResource("AtlasTexture_fx6tu") +}], +"loop": true, +"name": &"default", +"speed": 5.0 +}] + +[node name="RedKeyCard" type="Area2D" groups=["Interactable"]] +collision_layer = 4 +collision_mask = 2 +script = ExtResource("1_cvvxn") +LootTable = [ExtResource("4_84krq")] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +shape = SubResource("CircleShape2D_6vv2s") + +[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] +sprite_frames = SubResource("SpriteFrames_vi6i0") diff --git a/Scenes/Red_Keycard.tscn b/Scenes/Red_Keycard.tscn deleted file mode 100644 index 135fa094..00000000 --- a/Scenes/Red_Keycard.tscn +++ /dev/null @@ -1,21 +0,0 @@ -[gd_scene load_steps=5 format=3 uid="uid://dxs3ks2ucaxl4"] - -[ext_resource type="Script" path="res://Scenes/Interactable.cs" id="1_8ev2v"] -[ext_resource type="Texture2D" uid="uid://c53bchw2krocb" path="res://Sprites/Red_Keycard.png" id="2_onmup"] -[ext_resource type="Script" path="res://Scripts/Pickupper.cs" id="3_t6rqq"] - -[sub_resource type="RectangleShape2D" id="RectangleShape2D_x0adl"] - -[node name="ControlPad" type="Area2D" groups=["Interactable"]] -collision_layer = 4 -collision_mask = 2 -script = ExtResource("1_8ev2v") - -[node name="CollisionShape2D" type="CollisionShape2D" parent="."] -shape = SubResource("RectangleShape2D_x0adl") - -[node name="Sprite2D" type="Sprite2D" parent="."] -texture = ExtResource("2_onmup") - -[node name="Pickupper" type="Node2D" parent="."] -script = ExtResource("3_t6rqq") diff --git a/Scenes/test.tscn b/Scenes/test.tscn index 3f70aa13..d5538061 100644 --- a/Scenes/test.tscn +++ b/Scenes/test.tscn @@ -22,7 +22,7 @@ [ext_resource type="Script" path="res://Scripts/InventoryManager.cs" id="18_dvo37"] [ext_resource type="PackedScene" uid="uid://v8s3kubgb2qg" path="res://Scenes/Enemy.tscn" id="18_ixcwn"] [ext_resource type="Resource" uid="uid://dibquna7fww7t" path="res://Resources/Items/Red_Keycard.tres" id="18_t6ass"] -[ext_resource type="PackedScene" uid="uid://dxs3ks2ucaxl4" path="res://Scenes/Red_Keycard.tscn" id="19_8fb73"] +[ext_resource type="PackedScene" uid="uid://dxs3ks2ucaxl4" path="res://Scenes/Items/Red_Keycard.tscn" id="19_8fb73"] [ext_resource type="PackedScene" uid="uid://dkwi1hu1bixoe" path="res://Scenes/HUD/HUD.tscn" id="22_krk0o"] [ext_resource type="Script" path="res://Scenes/CameraTarget.gd" id="24_0c2yt"] [ext_resource type="PackedScene" uid="uid://djf0y08ix66fn" path="res://Scenes/Interactable/Chest.tscn" id="25_4b2ed"] @@ -444,3 +444,6 @@ script = ExtResource("24_0c2yt") [node name="PlayerStartPosition" type="Marker2D" parent="."] position = Vector2(-790, -161) + +[node name="RedKeyCard2" parent="." instance=ExtResource("19_8fb73")] +position = Vector2(-824, -152) diff --git a/Scripts/Interactables/ItemPickup.cs b/Scripts/Interactables/ItemPickup.cs new file mode 100644 index 00000000..b958a858 --- /dev/null +++ b/Scripts/Interactables/ItemPickup.cs @@ -0,0 +1,26 @@ +using Cirno.Scripts.Resources; +using Godot; +using Godot.Collections; + +namespace Cirno.Scripts.Interactables; + +public partial class ItemPickup : Interactable +{ + [Export] public Array LootTable = new Array(); + + public override bool Activate() + { + GD.Print("Attempting to Pickup Item"); + + if (!MeetsRequirements()) return false; + foreach (var item in LootTable) + { + _inventoryManager.AddItem(item.Item, item.Amount); + } + + // Delet This + QueueFree(); + + return true; + } +} \ No newline at end of file diff --git a/Sprites/Items/BlueKeycard_Small.aseprite b/Sprites/Items/BlueKeycard_Small.aseprite new file mode 100644 index 00000000..ef16343d --- /dev/null +++ b/Sprites/Items/BlueKeycard_Small.aseprite @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bd1d4ff5766ae3e342ce9cd6f7c2065c7a9de954e21280a7265d3507403877a4 +size 742 diff --git a/Sprites/Items/BlueKeycard_Small.png b/Sprites/Items/BlueKeycard_Small.png new file mode 100644 index 00000000..314ced8e --- /dev/null +++ b/Sprites/Items/BlueKeycard_Small.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:49f00becbe15e113ed829d4f5d3359b07ef5e5b4e889e176b7a0f23fcf2e7cae +size 181 diff --git a/Sprites/Items/BlueKeycard_Small.png.import b/Sprites/Items/BlueKeycard_Small.png.import new file mode 100644 index 00000000..accabfa7 --- /dev/null +++ b/Sprites/Items/BlueKeycard_Small.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bvybqletsvqgk" +path="res://.godot/imported/BlueKeycard_Small.png-b925d0e80a2eaa9ef7fe1ee182ce6c65.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Sprites/Items/BlueKeycard_Small.png" +dest_files=["res://.godot/imported/BlueKeycard_Small.png-b925d0e80a2eaa9ef7fe1ee182ce6c65.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Sprites/Items/GreenKeycard_Small.aseprite b/Sprites/Items/GreenKeycard_Small.aseprite new file mode 100644 index 00000000..a2fc23fc --- /dev/null +++ b/Sprites/Items/GreenKeycard_Small.aseprite @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2d74cbc7aa5064781b9290a6c46c87c99f4d8401f946631d2dc353eca7c4310a +size 745 diff --git a/Sprites/Items/GreenKeycard_Small.png b/Sprites/Items/GreenKeycard_Small.png new file mode 100644 index 00000000..ae5065dc --- /dev/null +++ b/Sprites/Items/GreenKeycard_Small.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1afb2d02e94775fb27f4e6d932b6b855c79f20d9fde26e5b8aa32a6d0cd8448f +size 185 diff --git a/Sprites/Items/GreenKeycard_Small.png.import b/Sprites/Items/GreenKeycard_Small.png.import new file mode 100644 index 00000000..6121903d --- /dev/null +++ b/Sprites/Items/GreenKeycard_Small.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bvkjnc3ggp7ba" +path="res://.godot/imported/GreenKeycard_Small.png-a8d591427ed9e736d5a900d3111dd142.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Sprites/Items/GreenKeycard_Small.png" +dest_files=["res://.godot/imported/GreenKeycard_Small.png-a8d591427ed9e736d5a900d3111dd142.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Sprites/Items/RedKeycard_Small.aseprite b/Sprites/Items/RedKeycard_Small.aseprite new file mode 100644 index 00000000..814b6743 --- /dev/null +++ b/Sprites/Items/RedKeycard_Small.aseprite @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b2efb90e5b31f357fdd64d8d8b000444f1d99d734d01c9df5bbe2b1df4143829 +size 746 diff --git a/Sprites/Items/RedKeycard_Small.png b/Sprites/Items/RedKeycard_Small.png new file mode 100644 index 00000000..9df8209b --- /dev/null +++ b/Sprites/Items/RedKeycard_Small.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2905b828de32dd58fe4531e9815c4ab0ace407f6818bce7471fd1015b764c4fe +size 184 diff --git a/Sprites/Items/RedKeycard_Small.png.import b/Sprites/Items/RedKeycard_Small.png.import new file mode 100644 index 00000000..4ba60498 --- /dev/null +++ b/Sprites/Items/RedKeycard_Small.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bad6gbl2gity3" +path="res://.godot/imported/RedKeycard_Small.png-11803ebfee263388f1f5d2bd1a970e0e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Sprites/Items/RedKeycard_Small.png" +dest_files=["res://.godot/imported/RedKeycard_Small.png-11803ebfee263388f1f5d2bd1a970e0e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1